2012年読書メモ
購入リスト含む、本棚はこちら http://booklog.jp/users/techman99
- [読了]松岡圭祐: 万能鑑定士Qの事件簿XII (1/2)
- [読了]鎌池和馬: 新約 とある魔術の禁書目録(1) (1/7)
- [読了]ドナルド・C・ゴース,G.M.ワインバーグ: ライト、ついてますか―問題発見の人間学(1/9)
- [読了]結城浩: 数学ガール/乱択アルゴリズム(1/10)
- [読了]杉原厚吉: どう書くか―理科系のための論文作法(1/11)
- [読了]鎌池和馬: 新約 とある魔術の禁書目録(2) (1/17)
- [読了]鎌池和馬: 新約 とある魔術の禁書目録(3) (2/27)
- [読了]Tarek Ziade(著), 稲田 直哉 (翻訳), 渋川 よしき (翻訳), 清水川 貴之 (翻訳), 森本 哲也 (翻訳): エキスパートPythonプログラミング(3/7)
- [読了]夏海公司: なれる!SE〈6〉楽々実践?サイドビジネス(3/9)
- [読了]伊東寛: 「第5の戦場」サイバー戦の脅威(3/18)
- [読了]高木信尚: C/C++プログラミングの「迷信」と「誤解」(3/19) [積ん読状態から解放w]
- [読了]木村英紀: 制御工学の考え方(3/24)
- [読了]小柳義夫ほか: スーパーコンピュータ (岩波講座 計算科学 別巻) (3/26)
- [読了]森博嗣: 大学の話をしましょうか―最高学府のデバイスとポテンシャル(3/27)
- [読了]大竹智也: Emacs実践入門 〜思考を直感的にコード化し、開発を加速する(3/27)
- [読了]中村亨: ガロアの群論 (ブルーバックス) (3/29)
- [読了]岡嶋裕史: 実験でわかるインターネット(4/2)
- [読了]森博嗣: 科学的とはどういう意味か (4/6)
- [読了]竹内健: 世界で勝負する仕事術 最先端ITに挑むエンジニアの激走記(4/13)
- [読了]松岡圭祐: 万能鑑定士Qの推理劇I (5/6)
- [読了]佐藤一郎: IDの秘密 (丸善ライブラリー―情報研シリーズ) (8/1)
- [読了]児島将康: 科研費獲得の方法とコツ 改訂第2版(8/1)
- [読了]橋本洋志ほか: プログラミングの力を生み出す本―インテルCPUのGNUユーザへ (8/1)
- [読了]片山善夫: Cプログラム高速化研究班 コードを高速化する20の実験と達人の技(8/1)
- [読了]大場寧子ほか: たのしい開発 スタートアップRuby (8/12)
- [読了]やねうらお: ひなた先生が教えるデバッグが256倍速くなるテクニック (Software Design Books) (8/14)
- [読了]金田康正: スパコンとは何か (ウェッジ選書46) (8/22)
- [読了]川中真耶ほか: アルゴリズムを学ぼう (8/22)
- [読了]松井博: 僕がアップルで学んだこと 環境を整えれば人が変わる、組織が変わる (アスキー新書) (8/24)
- [読了]漆原次郎: 日産 驚異の会議 改革の10年が生み落としたノウハウ (8/29)
- [読了]平澤章: オブジェクト指向でなぜつくるのか第2版(10/2)
- [読了]Dustin Boswell: リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック (Theory in practice) (10/12)
- [読了]川野辺正博: アリスとボブのGit入門レッスン(10/15)
- [読了]岡嶋裕史: ハッカーの手口 ソーシャルからサイバー攻撃まで(10/22)
- [読了]土屋大洋: サイバー・テロ 日米vs.中国 (10/30)
- [読了]押井守: コミュニケーションは、要らない(11/2)
- [読了]庄義和: 灘中の数学学習法(11/7)
- [読了]荒井秀和: できるリーダーの人心掌握術 (11/25)
- [読了]松浦智之: 覚えて便利 いますぐ使える!シェルスクリプトシンプルレシピ54(11/25)
- [読了]谷口長世: サイバー時代の戦争(11/28)
- [読了]三輪賢一: プロのための〔図解〕ネットワーク機器入門 スイッチ、ルータからファイアウォールまで徹底解説(12/3)
- [読了]岡嶋裕史: 迷惑メールは誰が出す? (12/4)
- [読了]山崎泰史ほか: 絵で見てわかるITインフラの仕組み(12/11)
- [読了]夏海公司: なれる! SE7 (12/12)
- [読了]夏海公司: なれる! SE8 (12/12)
- [読了]結城浩: 数学ガール ガロア理論 (12/26)
- [読了]長尾真:「わかる」とは何か (12/28)
2012年の目標
2011年からの積み残し
- 並列処理(並行処理)の勉強をする
2012年の目標
- 英語の勉強を必ずやる
- コンピュータサイエンスの総復習をやる
- 論文サーベイ年間最低50本はやらないとな...
- 国際会議・論文誌に投稿
2011年を振り返る
2011年各月ごとに振り返るまとめ日記
- 2011年1月
- 博士論文公聴会フルぼっこ(´;ω;`)
- 公聴会後、外出してたらどこかでインフルエンザもらってきて1週間寝込んでいた
- この時期に、いろいろ〆切重なってちょっとしんどかった...
- 公聴会での指摘を博士論文に反映する作業をひっしにしてた...
- 魔法少女まどか☆マギカ(血だまりスケッチ)はじまる
- 2011年2月
- 博士論文提出
- 密室での最終審査
- 就職先決定...
- 2011年3月
- 学位授与式!
- 7年間住んだ奈良を旅発つ
- 血だまりスケッチ飛んだ...
- 2011年4月
- つくばへ移住
- 現在の勤務先へ就職
- TBSで血だまりスケッチ最終回実況中継がんばる
- 1day での最大tweets数を達成(217tweets)
- 2011年6月
- なんだっけわすれてもーた(´・ω・`)
- 2011年7月
- 今年初の映画。
- 鋼の錬金術師 嘆きの丘の聖なる星を見た
- 久々のビアガーデン
- HP ProLiant ML110 G6買った。
- メモリ16GBにした。(あまり活用できてないなぁ(´・ω・`))
- 今年初の映画。
- 2011年8月
- 出身研究室の研究室合宿で、温泉へ
- 2011年9月
- 情報科学若手の会初参戦
- 2011年10月
- なんだっけわすれてもーた(´・ω・`)
- 2011年12月
- 映画けいおん舞台挨拶参戦!!
- あいなまさん、団地妻、あやにゃんかわいかったー。
- 奈々様東京ドームライブ参戦!!
- 久々に某研究会へ参加
- 大学院同期の結婚式参戦
- 自分以外、同期が入籍等、幸せになった模様(´・ω・`)
- 映画けいおん舞台挨拶参戦!!
総論: 今年後半のくじ運はよかった。
はてなブログのテスト
1000人限定で、はてなブログ利用申し込み受付しているとのことなので、申し込んでみた。
http://staff.hatenablog.com/entry/2011/11/24/180013
とりあえず、テスト。
はてダとの使い分けどうしよう。こっちをメインにするか:p
iCalのデータを読み込んで、メールで送信
iCalのicsファイルから今日の予定を読み込んで、メールで送信するPythonプログラムを書いてみた。
- icsファイルの取り扱い
Pythonで、icsファイルを取り扱うのに適したモジュールはないかと調べていたら、あった。
iCalendar package for Python, http://codespeak.net/icalendar/
安定版のリリースが、2006年?と思ったが、以下のようにSVNで開発版のソースを取得したらicalendar 2.2が取得できた。
You can also check out the development version of iCalendar from subversion, using a command like:
svn co http://codespeak.net/svn/iCalendar/trunk iCalendar
よく調べたら、pypiに登録されていた。http://pypi.python.org/pypi/icalendar/
こっちだと、githubにソースコードがあった。http://github.com/collective/icalendar
Python2.7で、icalendar 3.0を使ってみたが、最終的に動作させる環境がFreeBSDなので、
portsにicalendarのパッケージがあったが、バージョンが2.1だったので
ひとまず、バージョン2.2でプログラムを組むことにした。
icsファイルに記述されたデータを表示する例。
from icalendar import Calendar from date time import datetime cal = Calendar.from_string(open('schedule.ics', rb').read()) body = "" for ev in cal.walk(): if ev.name == 'VEVENT': start_dt = ev.decoded("dtstart") end_dt = ev.decoded("dtend") summary = ev['summary'].encode('utf-8') print "{start} - {end} : {summary}".format(start=start_dt.strftime("%Y/%m/%d %H:%M"), end=end_dt.strftime("%Y/%m/%d %H:%M"), summary=summary) # body = "{start} - {end} : {summary}".format(start=start_dt.strftime("%Y/%m/%d %H:%M"), end=end_dt.strftime("%Y/%m/%d %H:%M"), summary=summary)
- メールで送信
icalendarモジュールで取り出した今日の予定をメールで送信する。
import smtplib from email.MIMEText import MIMEText from email.Utils import formatdate from email.Header import Header encoding = 'ISO-2022-JP' msg = MIMEText(body.encode(encoding), 'plain', encoding) # bodyはicsファイルから取得したスケジュールの文字列 msg['Subject'] = Header(u'本日の予定', encoding) msg['From'] = 'Hoge<hoge@example.com>' msg['To'] = 'dummy@example.com' msg['Date'] = formatdate() from_addr = 'huge@example.com' to_addr = ['dummy@example.com'] send(from_addr, to_addr, msg)
UTF-8で文字列が格納されているbodyを、MIMETextの第一引数として渡すが、
このとき、UTF-8からISO-2022-JPへencodeしてやらないと、
SubjectはISO-2022-JP、本文はUTF-8ととなり、本文だけ文字化けして読めないという悲しい状況に陥る。
(ぐぐって、参考にしたサイトで変更していないものもあった...)
- HTTP+Basic認証
icsファイルを、WebDavサーバ上に置いている。
スケジュールなので、一応Basic認証をかけている。
urllib2モジュールで、icsファイルを取得する処理は以下の通り。
import urllib2 passman = urllib2.HTTPPasswordMgrWithDefaultRealm() passman.add_password(None, 'webserver_no_FQDN', 'username', 'password') auth_handler = urllib2.HTTPBasicAuthHandler(passman) opener = urllib2.build_opener(auth_handler) urllib2.install_opener(opener) url = "http://example.com/dav/schedule.ics" r = urllib2.urlopen(url) tmp_file = open('/tmp/schedule.ics', 'w') tmp_file.write(r.read()) tmp_file.close()
- UTF-8での文字列処理
スクリプトの文字コードをUTF-8にしたり、スクリプトの最初に #-*- coding: utf-8 -*-と記述しても、
実行すると、以下のようにUTF-8の処理で引っかかる。
techman999@minako:~/dev/git/pyical$ python today_schedule.py File "today_schedule.py", line 40 SyntaxError: Non-ASCII character '\xe5' in file today_schedule.py on line 40, but no encoding declared; see http://www.python.org/peps/pep-0263.html for details
結論としては、/usr/lib/python2.6/sitecustomize.py を以下のように追記して対処した。
import sys sys.setdefaultencoding("utf-8")
こんな感じで、トータル4時間で完成。
たまには、お遊びプログラム書いていかないとね:p