レゴブロック日記
ErlangをインストールするときにXML-RPCライブラリも一緒に入れたのだけど、 PythonからRPCするんだったらPy-Interfaceを使うのがいいようだ。
= 今日は錦糸町に棚を作るための材料とブロックスデュオを買いに行ったのだけど、 両方なかった。
レゴブロックを買ってしまった。面白い。 青いコンテナだけ買うと変な形のブロックが多くてダメだ取ろうと思って、 普通の形のブロックばっかりのセットをもう一つ買った。 結果からいうと失敗だった。変な形のブロックが面白い。 回る。
僕が子供の頃にこんなのあったっけ…。
回る部品がもっと欲しい。
= どうでもいいつっこみなのでここで。
「所持していいものなら作ってもいいだろ」 って朴訥すぎる。 例えば、お酒は持っててもOKだし、身分証なしでも簡単に買えるけど、 自分で作ると違法でしょう。 ちなみにちょっと調べてみたところ、 酒類の密造は5年以下の懲役又は50万円以下の罰金(酒税法)、 刑法で同じ懲役の罪を探してみたら業務上過失致死傷罪が懲役・禁固5年以下または罰金100万円。
もう一つ。 「AとBは必ずしも一致しない」という意味で 「AとBは直交する」と言われると猛烈な違和感を感じる。 直交は無相関とイコールであって、 単に「AなしのBが存在しうる」だけでは直交すると言うには不十分。 「AありのB」も「AなしのB」も同程度の数存在するとか、 プログラミングで言うならAありでBを作るのもAなしで作るのも労力に大差ないような状態でないと…。 と思うのだけど、まぁ言葉の定義が人によって異なることなんてよくあることなので、 別に「こっちが正しい!」とか言うつもりはなく、 単に違和感を感じたからそう書いただけ。
= Onion開発日記(2007-05-16)。 腹筋腹筋!
腹筋とは関係ないけど、誰の日記を見て腹筋をはじめたのかを可視化すると面白いかと思った。腹筋しながら。
= 自分のダイエットもそうだけど、カバンのダイエットも必要だな。 少なくともデジカメの充電器を毎日持ち歩く必要はないはずだし。 マシンも最近は安定しているのでねじ回しを持ち歩かなくてもいいはず。
= Thinkpadのハードディスク、やっぱり大きいものに変えておくべきだったか。 もういっぱい。何か捨てないと。 写真を外付けHDDに移したり。
= 声の入っている曲だと考えるのの邪魔になるので、 クラシックのMIDIを探していたら、 懐かしい曲がいっぱい公開されているページを発見。 選曲がとても懐かしい。 音楽の教科書に載っている楽譜を片っ端から打ち込んでいるんじゃないかとw
こきりこ節とか。
= 「いつも忙しい人、なぜか余裕のある人」 読了。 造語しすぎ。「KDDはダメ」って言うから何かと思ったら 「カン、度胸、出たとこ勝負」だって。 「3好」って何かと思ったら「好意、好感、好印象」だって。
それはさておき、レバレッジメモ。 毎日トイレでビジネスジョークの翻訳をしているらしい。 10分で1個訳して、年間で300個だって。 で本も出すし、講演にも使うんだって。 なるほど。
目標は明確に。長期的な目標も持たなければいけない。 お城の全体像を把握した上で煉瓦を積むのと、 目の前だけを見て煉瓦を積むのではモチベーションがだいぶ違う。 目の前だけ見ていてはいがむし。
目標の明確化。SMART:Specific(具体的)、Measurable(測定可能)、Achievable(達成可能)、Realistic(現実的)、Time-related(期限付き)
思っていたよりも、もっともっと明確にしないといけない。 30歳ぐらいにパパになりたいなぁ、ではダメで、 どんな人を妻にしたいのか、どんな家庭を築きたいのか、そういうのまで明確にする。 で、紙に書く。
種を蒔かなければ秋に刈り取ることはできない。 あらかじめ行動することが必要。 同じことが聖書に書いてあったなぁと思ったけど、それは 「少しだけ蒔く者は、少しだけ刈り取り、豊かに蒔く者は、豊かに刈り取る(第二コリント9:6)」 だった。 あらかじめ、というより、量のことだなぁ。
= XML-RPCとリフレクションでググってみて発見。 西尾泰和のブログ: XML-RPC→リフレクション
当初、Jythonでやろうと思っていたことが、Javaだけでもリフレクションを使えばできると気がついたのでJavaだけでやる方針に変更しました。(中略)
あー、追加した頂点にいろんなパラメータをセットするために、その頂点のメソッドを呼び出すところでつまずきました。そうか、Javaは名前だけでメソッドをゲットできないんですな。シグネチャが違えば同じ名前で複数のメソッドを作れるから。Pythonとはそこがちょっと違う。
(中略)
Jythonを使っていればもっと楽ちんだったのですが…まぁ、そんなに大変でもないからいいや。でもとりあえずXML-RPCで好きな色の丸い頂点を追加することはできるようになりました。
そしてこの判断が誤りだったとわかるのは1年後のことだった…。 リフレクションでもできるけど、リフレクションではメソッドの作成まではできない。 似たような内容のメソッドをまとめて生成するなんてことができない。
>>> class Foo(object): def __init__(self): params = dict(name = "Taro", age = 25) for key in params: self.__dict__["get" + key] = ( lambda key: lambda: params[key])(key) >>> f = Foo() >>> f.getname() 'Taro' >>> f.getage() 25あ、ちなみにこのコードは適当なので、 汎用的に使えるともJythonで使えるとも言わないので注意。
= Firefoxのメモリ食いを小食にする (うむらうす)。 !。
= 木曜日だ。金曜日にブログを更新しようとすると、 ミーティングで何か面白いことが起きた場合に飛んでしまうので、 今日書いて帰ろう。
= 仕事中に作ったけども、仕事ブログに整理して書くほどのネタじゃないのでこっちに書いてみる。 下のようなコードをいちいち書くのが面倒なので…
def isPyFloat(o):
return isinstance(o, PyFloat)
def isDouble(o):
return isinstance(o, Double)
def isPyInteger(o):
return isinstance(o, PyInteger)
def isInteger(o):
return isinstance(o, Integer)
こうしてみた↓
class IS:
def __getattr__(self, name):
globals()["is" + name] = \
lambda o: isinstance(o, eval(name))
Is = IS()
Is.Integer
Is.PyDictionary
でも1ヶ月後に訳がわからなくなっていそうな気がするので
下のようにわりとまっとうな形に書き換えた。
def make_IsFunc(*classes):
for c in classes:
globals()["is" + c.getSimpleName()] = \
lambda o, c=c: isinstance(o, c)
make_IsFunc(
PyInteger, Integer,
PyDictionary, Map, Hashtable, HashMap
PyList, List, Vector, ArrayList,
PyTuple,
PyFloat, Double,
)
= υは"Oops!"と発音するらしい by Knuth
= c:\cygwin\binにtimeがなかったので「あー、timeが入ってないやー」と思ったのだけど cygwinのシェルからtimeってやったらちゃんと時間が出る timeは実行可能ファイルじゃなくてシェルのコマンドなのかな?
man timeしたらbash builtinだと言われた。
$ time python c:/cur/misc/erlang/tarai.py real 0m2.547s user 0m2.499s sys 0m0.077ssysとuserを足すとrealを超えるけど…誤差の範囲内??
$ time runghc c:/cur/misc/erlang/tarai.hs 13 8593750000000 real 0m8.891s user 0m0.031s sys 0m0.000sおっと、sysとuserを足しても全然足りないけど、残りはどこへ行ったんだ??
= 日曜日にそうじを手伝ってもらった人になんかおしゃれな感じにされた。
いままで色々買った役に立たないものたちが、一堂に会してなんか醸し出している。
= 日曜日はレゴブロックを買った。 青いバケツを買ったのだけど、 僕が小さい時ってこんな部品あったっけ、というような形の部品がたくさん。
=
= ベッドの下に棚をつけた。 折りたたみベッドなので普通に下にものを置くと足に蹴られてしまうため、 どうしようかなーと思っていたのだけど、スライドする側に棚をつけてしまえばOK。
= しまった。ラボブログにちょっと技術的なことを書こうかと思ったのに、 もうすぐ10時だ。
= クリックブリックって言うレゴブロックの専門店に行ってみたのだけど、 600円くらいのクリエイター3in1ってのがかなりよかった。 少ないブロックの個数でサルとかヘリコプターとかいろいろな形になるために、 「普通の形」のブロックがほとんどない。180度を8分割した任意の位置で固定できるヒンジが4つに 無段階のヒンジがたくさん。
レゴブロックの通販で回転する部品ばっかりたくさん買ってしまった。
