30032011 music
somaの中ではAlex Smokeと並んで最も好きなアーティストの一人であるVector Loversのベストトラック+新曲
3,4,6,9,10,11と名曲揃い。
チルっぽい遅めのテクノというかエレクトロニカというか、とにかく柔らかい感じのメロディーが好きならオススメです。
30032011 music
somaの中ではAlex Smokeと並んで最も好きなアーティストの一人であるVector Loversのベストトラック+新曲
3,4,6,9,10,11と名曲揃い。
チルっぽい遅めのテクノというかエレクトロニカというか、とにかく柔らかい感じのメロディーが好きならオススメです。
30032011 Python
最近朝早く起きて読みまくっているので、結構減った。
標準モジュール読むと、コードのお作法とか勉強になるし、あーこうなってんのか!という気付きが何度もあって階段登ってるという実感があって楽しい。
cPythonのソースコードも読むと楽しいのかな?
30032011 Python
addpackage関数を読んでいたら
for line in f: if line.startswith("#"): continue if line.startswith(("import ", "import\t")): exec line continue line = line.rstrip() dir, dircase = makepath(sitedir, line) if not dircase in known_paths and os.path.exists(dir): sys.path.append(dir) known_paths.add(dircase)
最初のifはコメント対応で次はpthでimportではじまる場合にはimportするってことだ。最後は行のパスがまだモジュール検索パスに含まれていなかったら追加するようになっている。
またmain関数は設定が出力されるようになっている。
$ python /opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site.py sys.path = [ '/opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6', ... '/opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/PyObjC', '/opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/wx-2.8-mac-unicode', ] USER_BASE: '/Users/kzfm/.local' (exists) USER_SITE: '/Users/kzfm/.local/lib/python2.6/site-packages' (doesn't exist) ENABLE_USER_SITE: True
あれ、USER_SITEってことはローカルにライブラリインストールして使えるってことか?
easy_installのヘルプを見たら--userオプション入れればローカルにインストールすることが出来るって書いてあった。いつもvirtualenv使っているから知らなかった。
29032011 chemoinformatics work
僕はドラッグデザインにはアートの要素が沢山含まれていて楽しい仕事だと思っているし、工業デザインの範疇に入ると考えている。
例えば
これは、スキャフォールドのポテンシャルは決まっていて、リードオプティマイゼーションってのはスキャフォールドをできるだけ磨いて薬剤としての美しさを引き出す行為とも捉えることができるし
これはファーマコフォアをきちんと認識することの重要性ともろかぶりする
ドラッグデザインを工業デザインとして捉えるヒトはあんまり知らないけど、ケミストやケモインフォマティストが本書を読めば新たな視点が開けると思う
29032011 Python
pycはバイトコードのキャッシュファイルなんだが、実際に中身がどうなっているかはpy_compile.pyのソースコードを読んで理解した。
with open(cfile, 'wb') as fc: fc.write('\0\0\0\0') wr_long(fc, timestamp) marshal.dump(codeobject, fc) fc.flush() fc.seek(0, 0) fc.write(MAGIC)
ここで、codeobjectは
codeobject = __builtin__.compile(codestring, dfile or file,'exec')
でコンパイルしたコードでMAGICはimp.get_magic()で得られたマジックナンバー、wr_longはリトルエンディアンで32bitの整数値を書きこむ関数(py_compileで定義されてる)
つまり、先頭の4バイトがマジックナンバーで次の4バイトにタイムスタンプが続き、その後にmarshalでダンプされたコードオブジェクトが続いたものがpycファイルということだ
実際にpy_compile.pycで確かめてみる。まずマジックナンバーは
>>> import imp >>> imp.get_magic() '\x03\xf3\r\n'
タイムスタンプ
>>> l = long(os.stat('py_compile.py').st_mtime) >>> hex(l & 0xff) '0xbbL' >>> hex((l >>8) & 0xff) '0x8L' >>> hex((l >>16) & 0xff) '0x8fL' >>> hex((l >>24) & 0xff) '0x4dL'
pycをbviで開いて確かめてみる
00000000 03 F3 0D 0A BB 08 8F 4D 63 00 00 00 00 00 00 00 00
確かに先頭からマジックナンバー、タイムスタンプの順に入っていることがわかる。
ところで、なぜ最初に'\0\0\0\0'を入れてからfseekで先頭に戻ってきて改めてマジックナンバーを書き出しているんだろうか?
28032011 life
僕がよく撮るような「料理」とか「日本酒」は天逆光で撮れと。
27032011 life
娘がピザを作りたいと言い出したのでピザ作り。強力粉400gから直径18cmの生地が8枚くらい出来る分量なので薄い生地ですな。後ろに見えるのは食べるラー油。ピザにかけてみようかと買ってみた。トマトソースもめんどくさかったので市販のミートソースで代用した。

強力粉は子供には捏ねることができないので混ぜるとこだけやらせたが、捏ねたいと言って聞かなかったので飽きるまで捏ねさせてみた。ちなみに台は蕎麦打ち用のやつだったりする。

休ませて8等分して、麺棒でゴロゴロやって延ばす。手でちまちまやるのはめんどくさいし強力粉はなかなか延びない。

生地が出来たら色々載せてオーブンで焼く

勝沼醸造のワインをあわせた

27032011 Python
wikiで必要なデータってこれぐらいしかなかった。
27032011 Linux
今週からさくらのVPSを使い始めた。
sshをきちんと使えなきゃなということで数年前に買って積んでいたこの本をじっくり読んだら、大変勉強になったというかちゃんと読んでよかった。
7章のクライアント使用法 応用編が役に立った。
特にscpは非常に便利で使い方覚えたらこればっか使うようになってしまい、Cyberduck立ち上げなくなった。
25032011 Python
defするときに*とか**といった可変引数を取れるのはおなじみ
>>> add = lambda x,y: x+y >>> l = [1,2] >>> add(l) Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: <lambda>() takes exactly 2 arguments (1 given)
このキーワードは関数実行の際にも使えることを今日知った
>>> add(*l) 3
知ってしまえば自然に感じるが、なぜそういう思考に至らなかったのだろうか?