Heat-Hazeの日記

ネット上で様々の有益な情報を発信する人に感謝。

csvファイルを読み込んでディクショナリを作成する

Pythonの使い方メモ。csvファイルを読み込んでディクショナリを作成する方法。 以下のような中身のcsvファイル(Month.csv)があり、キーと値がペアで並んでいるとする。

1,january
2,february
3,march
4,april
5,may
6,june
7,july
8,august
9,september
10,october
11,november
12,december

csvモジュールで読み込み、dict()の引数にそのまま渡せばよい。

import csv

def readcsv():
    file = open("Month.csv", "r")
    csv_data = csv.reader(file)
    mydic = dict(csv_data)
    return mydic

if __name__ == "__main__":

    monthDic = readcsv()
    for k, v in monthDic.items():
        print(k + "=" + v )

実行すると次のようになる。

6=june
8=august
10=october
2=february
5=may
11=november
1=january
3=march
9=september
4=april
12=december
7=july
Press any key to continue . . .

CSVファイルとfor文の読み出しでは並び順が一致しないので注意が必要。

Event-B: リファインメント・モデリングに基づく形式手法

2月にEvent-Bを解説した書籍が出ると以前書きましたが、 アマゾンを覗いたら登録されていました。

Event-B: リファインメント・モデリングに基づく形式手法

Event-B: リファインメント・モデリングに基づく形式手法

Event-Bの本が出るらしい。 - Heat-Hazeの日記

Event-Bについて

EclipseベースのRodinという開発環境を使って検証をする定理証明系のツールである。 日本語で詳しい解説があるのは以下のサイトだが、この記事を書いた時点では更新が止まっている。

Event-B - 形式手法 Event-B

形式手法そのものについては以下のサイトに形式手法の概要が説明されており、参考になる。一言に形式手法といっても様々な手法があるようで、対象とする問題によって適性が異なるようだ。  

形式手法とは?|ディペンダブル・システムのための形式手法の実践ポータル

株式会社ヴィッツのサイトに話題沸騰ポットをEvent-Bでモデル検証した例題が掲載されている。参考になりそう。

Event-B | 株式会社ジェーエフピー

なぜ、こんなものを調べているかというと仕事上でソフト開発をする際、不具合があった場合にプログラムのバグというより仕様上の検討漏れや明確に記述されてない振る舞いが問題となることが多いからだ。コーディングミスやAPIの使い方が間違っているというのは、ユニットテスト、コードレビューや静的チェックツール等で見つかるし、修正することも易しい。
しかし、機能仕様上の問題があとになって見つかると影響する範囲が大きかったりと何かと大変な目にあうことが多い。しかも、たいてい見つかるのは統合テスト以降で開発期限まで時間があまり残されていない場合である。
最近は早めにリリースして動かしながら改良していくというスタイルが主流らしい。多少バグがあっても他社よりサービスを早くリリースする方が大事と判断することもあるだろう。
ウェブサービス系はそれでいいとしても、自動車、航空、医療の組み込みや金融などのバグが許されないソフトではそうはいかない。一度不具合が出ればオオゴトである。そのような用途に使われるソフトであれば手間のかかる形式手法による検証をする価値があるというものである。

数理的に組み込みソフトを開発する方法

形式手法を理解するためのよい資料を見つけたので自分用にブックマーク。

しかし、リンク先URLを入れるだけでスライドが埋め込みで表示されるなんてすごいな。

Embedded-Note lagavulin1956: 形式手法あれこれ

Event-Bの本が出るらしい。

Event-Bとは形式手法の1つ。Bメソッドと呼ばれるものがベースになっている。

Event-Bの本が出版

仕事がら形式手法について興味があるのだが、Event-Bは今まで日本語で書籍が出ていない。これはちょっと気になる。 Event-Bについて日本語で比較的まとまった情報があるのはこちら。

Event-B - 形式手法 Event-B

開発環境にEclipseベースのRodinというものがある。公式のガイドブックがあり、そちらにはけっこう詳細な解説があるのだが当然英語。 ちょっと敷居が高い。この本はRodinの使い方とかにも触れているのかなぁ。
形式手法自体、2,3年前に注目が集まったのだがその後さっぱり話題に上らないところみるとまだ研究段階で実用にならないのかなぁといった感じ。

冬のお風呂

うちは賃貸アパートに嫁さんと二人で住んでいるのだが、お風呂が風呂釜がなく、追い炊きできないタイプ。
二人とも共働きで、帰ってくる時間が嫁さんはほぼ定時帰り、自分は遅くなりがち。だが、嫁さんは帰ってきてすぐに風呂に入りたいタイプで帰宅後すぐにお風呂を沸かす。なので、夜自分が帰ってくるころにはお風呂はすっかり冷めているといった具合で、いつもお湯を入れなおすか、大量の足し湯をするので光熱費を考えるとなんとかならんかなぁ・・・となやんでいたところ見つけたのがこのフロバンス。

いつでも あったか お風呂! 風呂バンス 600

いつでも あったか お風呂! 風呂バンス 600

一言でいえば風呂用の電気ヒータでお風呂を保温してくれる。ほかにも類似商品があったがレビューの評価が高かったのでこちらの商品にした。
お風呂に入れ、ヒーターのスイッチを入れるだけの簡単操作。温度設定すらできないはイマイチだが、少し熱めに保温してくれるのでぬるいといったことはない。以下気になる点をいくつか。

  • 取り出す際はスイッチを切って2分経ってから出さないとヒーターを痛めるとのこと。
  • 冬に朝風呂入ろうとして前日の残り湯にフロバンスを入れたらお湯になるまで5時間かかった。沸かし直しはできないこともないが正直使えない。夏ならなんとか。
  • 風呂のサイズや寒さの厳しい地方など状況次第では保温できないといったレビューが見受けられた。うちのアパートの少々狭い風呂ではそういったことはない。
  • 入浴剤を入れたお湯には使えない。

追い炊きできない風呂なのに入る時間がバラバラで困っている人にはオススメだと思います。買って一年経っていますが故障もなし(夏場は使ってません)。

Markdownエディタ

はてなブログはMarkdown形式で記述ができる。なるべく簡単にいきたいということで覚えやすい(と思った)Markdown形式を使って書いていくことにした。
ただ、テキストエディタで書いていくのも大変なのでWindows用で使いやすいエディタがないか探したところ、CuteMarkEdというソフトを見つけた。

CuteMarkEd - The open source, cross-platform Markdown editor

f:id:Heat-Haze:20141229112258p:plain

良いところは

  • メニュー等日本語に翻訳されている。
  • オーソドックスな2ペインでリアルタイムプレビューに対応
  • HTML,PDFでのエクスポートが可能
  • スタイルを指定することができる。初期状態からいくつかのスタイルが用意されている。(Githubなど)
  • Ctrl-Spaceでコードスニペットが使える。初期状態でいくつか登録されている。

気になった点

  • ファイルが大きくなるにつれて動作が重くなる。環境にもよるだろうが自分のPCでは500行くらいからもたつきを感じる。
  • プレビュー側とエディタ側の表示がずれる。
  • コードスニペットが行頭でしか動かない。

少々不満もあるが、他によいエディタもなさそうなのでしばらくはこれを使って行こうと思う。現時点でバージョンはVer0.10.0である。上記の点が改善されるとよいなぁ。