去年飲んだやつのほうがキレイめだったようなきがするが、これも美味しかった。

ぬる燗というよりはひやか人肌よりもぬるいくらいで飲んでた。
去年飲んだやつのほうがキレイめだったようなきがするが、これも美味しかった。

ぬる燗というよりはひやか人肌よりもぬるいくらいで飲んでた。
泊まったホテルの近くに天一があったので、ふらふらと吸い込まれていった。

こってり(並)

よく考えたら、学生時代もそんなに食べなかったので記憶がすり変わっていた。新福菜館とか一番星とかよく行ってたな。
01112010 家庭菜園
去年より10日ぐらい遅い種まきなのに、妙にほうれん草の成長が遅い気がする。
ラディッシュは根元がふくらんでいた

そら豆は思ったよりも芽が出てきた。順調に生育しているように見える。

31102010 work
ユーザー会お疲れ様でした。私の同僚の内容の思想的な部分はRESTful Webサービスのリソース指向アーキテクチャの章を読めばいいかなと。
いまだとJSON返してjQueryとかで組み立てるような仕組みを採用するかなぁ。iPad対応とか(無駄に)してみたいし。
さて、自分の内容で「ハイパーグラフは使わんのか?」という質問があったのだが、ピンとこなかったので、帰ってきてから調べてみた。
グラフとは異なり、ハイパーグラフは紙上に図示するのが困難である。そのため、グラフ理論のような図解をされることは少なく、集合論の用語で表される傾向がある。
ハイパーグラフは他の数理科学分野では別の名前で知られていることも多い。たとえば協力ゲーム理論で「シンプルゲーム」(投票ゲーム) とよばれる概念がそれに該当し、社会選択理論の重要な問題を解くために応用されている。
あーこれだと複数のグラフをまとめて扱えますね。でも、薬理活性、ADME,in silicoのネットワークから、共通部分グラフを取り出したいだけだったら、別にHypergraphを使う必要ないからなぁ。実際に具体的な事例があるともうちょい理解度深まるかな。
久しぶりの東京出張。しかも雅叙園@目黒だったので、昼はかれーの店うどん@五反田で。五反田には花善もあるしね。
ちょっと早く着きすぎてオープンしてなかったので、ぶらっとしたら、うどんのすぐ先に豚と小麦って店があって結構人が入っていたので、ココでもいいかなとふらふら入りそうになったけど、なんとなく察知して結局入らなかった。あとで調べたら、二郎インスパイア系だったので正解。昼に二郎系は濃すぎて無理だからな。

ぶらっと近所をぐるットして戻ってきたらopenしてたので入店。季節の夜かれー(薬膳)を注文

これがもう、ジワジワ来る感満載の味で。まぁそんな感じの表現しかできないな。
さて、来週はIBISで東大駒場か。嚆矢は一度は行くとして他にどこを攻めるかなぁ。
Izu.R #0お疲れ様でした。いつもは22時前には寝るのだけど、2時半くらいまで起きてコード書いてた。たのしす。

今回が初めてで、Rらしく発表+LT的なほうがいいのか、ハッカソン的なもののほうがいいのか、わからなかったうえに初めての宿という不安はあったが、とりあえず集まってみて様子見しようという感じでしたが、蓋を開けてみれば、楽しい会になってくれて良かった。
次回もやる方向で考えているので、興味があれば。
今回のキーワード
pythonで書かれたワークフロー管理ツール。@bonohu さんに初期の導入のあたりを教えてもらいながら。みんな、ほとんどこれいじってたような。
ちなみにmacportsのpythonだと依存関係トラブリまくってうまく動かないので、潔く/usr/binのを使えという結論に落ち着いた。
これはもう少しいじる。次回にはなんか成果物をもっていきたいかな。
これはよい。あとで内容をきちんと把握する。あの、ユーザー会は一定の確率で面白い内容出てくるからよいです。面白さを面白いと感じるためには、面白さに対して感度をあげる努力を怠るとダメですな。
きっかけは覚えてないが、MADの方向に行ってきた。
ついでに、一人ふぁぼ界に引きずり込まれてた。
みんなのPythonは良書ですよね。
そういえば、前日の二次会でもPython利用者率を上げていこうという結論で落ち着いた(Pythonistaの中で)
openbabelで荒く構造立ち上げて、その後量子化学計算で精密化して、Mulliken Chargeとか楽に求めたいこと多いので、サクサク出来るようにラッパー欲しかったので書いてた。 ファイルの読み込みとかよくわからんバグが出ててはまったが、なんとか動くとこまでいった。
あとはもう少しちゃんと書いてクックブックにでもあげとく。
import openbabel as ob
from tempfile import mkstemp, mkdtemp
from os import removedirs, unlink, system, environ
import re
import os.path
import string
from random import choice
def randstr(n):
"ランダムなファイル名を生成するため"
return u''.join(choice('abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ') for i in xrange(n))
class Gamess(object):
def __init__(self):
self.tempdir = mkdtemp()
self.gamess = "/Users/kzfm/gamess/rungms"
self.jobname = ''
self.cwd = os.getcwd()
def calc(self, mol):
self.jobname = randstr(6)
obc = ob.OBConversion()
obc.SetInFormat("gamout")
gamin = self.write_file(mol)
gamout = self.tempdir + "/" + self.jobname + ".out"
os.chdir(self.tempdir)
os.system("%s %s> %s 2> /dev/null" % (self.gamess, self.jobname, gamout))
# エラーが出たのでstringを渡したらなおった
# TypeError: in method 'OBConversion_ReadFile', argument 3 of type 'std::string'
new_mol = ob.OBMol()
s = open(gamout).read()
next = obc.ReadString(new_mol, s)
os.chdir(self.cwd)
unlink(gamin)
unlink(gamout)
return new_mol
def header(self):
h = """ $BASIS GBASIS=STO NGAUSS=3 $END
$CONTRL SCFTYP=RHF RUNTYP=OPTIMIZE $END
$STATPT OPTTOL=0.0001 NSTEP=20 $END"""
return h
def write_file(self,mol):
obc = ob.OBConversion()
obc.SetOutFormat("gamin")
gamess_input_file = self.tempdir + "/" + self.jobname +".inp"
gamess_input_str = obc.WriteString(mol)
h = self.header()
ng = gamess_input_str.replace(" $CONTRL COORD=CART UNITS=ANGS $END",h)
with open(gamess_input_file, "w") as f:
f.write(ng)
return gamess_input_file
def __del__(self):
#print "remove " + self.tempdir
removedirs(self.tempdir)
if __name__ == '__main__':
g = Gamess()
obc = ob.OBConversion()
obc.SetInFormat("mol")
mol = ob.OBMol()
next = obc.ReadFile(mol,"test.mol")
newmol = g.calc(mol)
print [obatom.GetPartialCharge() for obatom in ob.OBMolAtomIter(newmol)]
GAMESSに関しては動く環境をもっているのが前提なので、そこをやりたい場合はこの本が良いです。
29102010 Python
今日の朝、時計をもっていないことに気づいて。
import sys,os
import Growl
import threading
def timenotify(notify_string):
image = Growl.Image.imageFromPath("/Users/kzfm/.tw_growl/kzfm.png")
g = Growl.GrowlNotifier(applicationName='Timer', notifications=['Watch'])
g.register()
g.notify(
noteType='Watch',
title="GrowlTimer",
description= notify_string,
icon=image,
sticky=False)
if __name__ == "__main__":
t1 = threading.Timer(600, timenotify, args=["10分経過しました"])
t2 = threading.Timer(1200, timenotify, args=["20分経過しました"])
t3 = threading.Timer(1500, timenotify, args=["25分経過しました。そろそろまとめ"])
t4 = threading.Timer(1800, timenotify, args=["30分経過しました。発表終了"])
t1.start()
t2.start()
t3.start()
t4.start()
やっつけスクリプト
近所の情報が載ってないと悲しい思いをするので、中見てからだな。
27102010 life
5,6年使ってたのが壊れたので、新しいのを買った。ちなみに初代iPod nanoを使っていて、バッテリーはないけど車内では電源があるのであまり困らない(電車内ではすぐ切れて使い物にならないが)。
色によって値段がかなり違うが色にはこだわらないので安いの購入。
満足。朝聴いてたHospital podcastのNu:Logic - Sundownがやたらと良かった。
27102010 Haskell
apoL'を使ってinsertを定義する
-- 3.14
apoL' :: (b -> Maybe (a, Either b (List a))) -> b -> List a
apoL' f u = case f u of
Nothing -> Nil
Just (x, Left v) -> Cons x (apoL' f v)
Just (x, Right xs) -> Cons x xs
insert3 = apoL' step u
where
step Nil = Nothing
step (Cons x xs) = if x < u then Just (x, Left xs) else Just (x, Right xs)
とやると
Not in scope: `u'
と言われるが理由がわからん。
疲れたので、今日はもう読むのをやめよう。