23122011 家庭菜園
一ヶ月以上前に撒いたのだけど、まだまだだ。

来年はベランダ菜園も増やしていこうかと。リーフ系の野菜を育てておくと便利なので。
23122011 Linux
Nodeを触っているのは楽しいんだけど、じゃぁなんか作りたいものがあるのかと言われたらイマイチ思い浮かばない。リアルタイムウェブ〜とか言っておいて(言ってないけど)アイデアが浮かばないってのはまずかろうとソケットプログラミングの本を読んでみることにした。
ソケットプログラミングを覚えるにはいい本だった。サンプルはCで書いてあるんだけど、システムコールとかの低レベルのモジュールはPerlもPythonもほとんど一緒なので、動きがイメージできるようになって良い感じ。本を読み終えたついでにSocketServerのソースコード読んでみたけど、理解度がさらにあがった。
本の内容は、
非同期はselect使っています。8章でデーモンの入門の章だったんだけど、なんでforkを二回するのかわかりやすい説明ではなかったので、ここを読むといいですね。
3章のチャットっぽいものをPythonとPerlで書いてみた
import socket host = socket.gethostbyname('localhost') port = 50000 soc_waiting = socket.socket(socket.AF_INET, socket.SOCK_STREAM) soc_waiting.bind((host, port)) soc_waiting.listen(1) print "server running at %d\n" % port (soc, client_addr) = soc_waiting.accept() soc_waiting.close() print "Go ahead!" msg = "" while True: msg = raw_input() soc.send(msg) msg = soc.recv(512) print msg if msg == "quit": break soc.close()
import socket host = socket.gethostbyname('localhost') port = 50000 soc = socket.socket(socket.AF_INET, socket.SOCK_STREAM) soc.connect((host,port)) print "Wait\n" while True: msg = soc.recv(512) print msg msg = raw_input() soc.send(msg) if msg == "quit": break soc.close()
#!/usr/bin/env perl use IO::Socket; $soc = new IO::Socket::INET("localhost:50000"); die "IO::Socket : $!" unless $soc; print "Wait\n"; my $msg; while (1) { $soc->recv($msg, 512); print $msg,"\n"; $msg = <STDIN>; chomp($msg); $soc->send($msg,512); last if $msg eq "quit"; } close($soc);
Unixネットワークプログラミング欲しいなぁ
今度静岡でおまちバルがあるように、静岡はバルブーム、バルバブル、バブルボブル。で、バルイベントにはハッシュタグとtwitterでつぶやいて盛り上がろう的な今時なソーシャルな仕掛けも一緒についてくるんだけど、これがまじでつまらない。
ハッシュタグが漢字混じりのひらがなとかあり得ないでしょう。そもそも酒飲むイベントで打たせるか?と。全員がiPhoneに向かってカチャカチャやってるIT系のオフじゃないんだから。あと、飲んでる時にハッシュタグでtweetおいかけるのもめんどくさい。結局送りっぱなしになっちゃうので、だれかがまとめたのを読み返すくらいで、全然リアルタイムじゃないね。
というわけで、バルのtweetシステムに不満があったのでソーシャルでスマホ持ちの我々が使って楽しいシステムを考えてみた。
バルラーにちまちまと端末を打たせないように店の入口に「店なうだらー、ハッシュタグ、ジオコード」が入ったQRコードを貼っとく。これで、カメラで撮るだけでtweetできるようになるので酒が良い感じに入っていてもOK。パンフにつけておいてもいいかも。そっちは宣伝で、人気度調査用にしてもいいかもしれん。
で、サーバー側をリアルタイムウェブで、twitterのストリーム読みながらマップ上にマッピングさせていくと。ジオコードの頻度で明るくするとかでもいいしね。そうすればリアルタイムで楽しい。ユーザーの動向を線でつないでも面白いかも(どういう順番で店をまわってんのかとか)。主催者側にもそういうデータが集まればいろいろ役に立つでしょう。
そういうシステムをNode.jsでつくったら楽しいだろうなぁと思った。
22122011 life
データ圧縮に関して書いてある1,2章が面白かった。
図解入門 よくわかる最新データ圧縮技術の基本と仕組み―情報圧縮技術とアルゴリズムの基礎講座 (How‐nual Visual Guide Book)個人的にはブロックソートの説明がわかりやすかったので、それだけで満足だった。
20122011 家庭菜園

これはなかなか美味しかった。
20122011 C
最近はずっとUNIXネットワークプログラミングの写経をやっているんだけど、PerlとかPythonからプログラミングにに入った僕としてはCって書いてて楽しくないですね。
それからポインタの理解がイマイチで、こういったものが何じゃこりゃ?となってしまう。
bind(soc_waiting, (struct sockaddr *)&me, sizeof(me)) == -1)
というわけで、C言語ポインタ完全制覇を読んでみたらこれは良書だった。
Cのメモリの使い方がかなりイメージできるようになって嬉しい。CとかJavaなんかは中古で良書が安い値段で手に入るのでそれはそれで嬉しいが。
そもそもなんでソケットプログラミングなんてやり始めたかというと、先日の勉強会で、「リアルタイムウェブで作りたいもののイメージがわかないんだよねー」と言ったんだが、結局それってリアルタイムな通信のサンプルをあんまやったことがないから、アイデアが浮かばないんじゃないかと思ったからなんだけど、なぜかシステムコールとかそっち方面に興味がわいたという。ノンブロッキングとか上っ面の概念ははいはい分かりますよーって感じなんだけどOSレベルではどうなんっているんじゃろか?と
どこまで追いかけるべきかわからんけどね。
グロースヴァルトSANOにお歳暮を買いに行ったついでにそのまま芝川まで上がって京でお昼ごはんを。
掘っ立て小屋っぽいというか、ストーブが付いているにもかかわらず寒いですな。

天ぷらが美味い。ショウガの薄切りの天ぷらが美味しかった。海老は息子にとられた。

僕はもちろんセリざる。

寒さに耐えかねて、子供と妻は暖かい蕎麦

ここは美味いね。
そういえばまだソビッてない
18122011 家庭菜園
ほうれん草が寒さでやられてた。葉物は難しいなぁ。

結局人参しかとるものがない。

娘に少し間引かせたら、なかなか形が良かった。1月終りくらいに良い感じの人参が収穫できるはず。

帰りにいけたにさんによって根知男山をゲットしたついでに、畑を見せてもらいながら畑談義(というかほとんどレクチャーをうけている)をしてきたんだが、あんま除草に熱心になりすぎんのも良くないのかな?という自然農の方向にちょっと傾いた。
確かに、畝から外れた人参なんかは共生気味にスクスク育っているしなぁと。
とはいえ、家庭菜園で除草しないと色々とあるからなぁ、南隣のおじさんはそこらへんがおおらかでやりやすいんだけど、隣が除草しまくっていると気を使うんだよなぁ。
来年はもう少し多品種少量生産でいこうかなと思っているのと、今年の冬はきちんと耕して肥料を入れるという来期への準備をきちんとしたい。
17122011 DMPK
膜透過という事象を物理的に考えた場合、脂質二重膜にぶつかって突き抜けるというモデルだと思うんで、よくQSPR解析で使うようなPSA(TPSA)とかClogPみたいな溶解性に関わる指標とかMWTとかVolのような大きさに関わる指標は微妙に違うと思うんだよねー。そもそもグローバルな指標でいいのかと。
どっちかというと侵入の際の表面積の相性と、進入時の切断面とかその後の脂溶性面積が重要なんかね?と。溶けるけど膜透過が悪いという化合物も結構あるしね。
というわけで、論文を探しているんだけどなかなかいいのが見つからない。
というわけで、面白そうな論文があったら教えてもらえると嬉しいです。
Introduction to the Blood-Brain Barrier: Methodology, Biology and Pathology15122011 java
Part1の概論がわかりやすかった。とはいえ15章のストリーム以降の理解はあやふやだけど。
Part2のサーバプログラミングは興味がわかなかったので大して読まなかったが、Part3のGUIは面白かった。
というわけで、Part1をじっくり読む本かな。
JavaとAndroidの書籍はちょくちょく買う割にはたいして身についてないという、、、
来年はJavaとAndroidに真面目に取り組む年になりそう。
14122011 macbook
Pythonのソースをダウンロードしようとしたらxz形式のサイズが妙に小さかったので、なんじゃこれと思ったら昔見たことあったわと。
macbookでも使いたかったので
brew install xz brew install gnu-tar
で入れた。ちなみにコマンドはtarじゃなくてgtarになる。
圧縮は
gtar Jcf sample.tar.xz sample
解凍は
gtar Jxf sample.tar.xz
コマンドもわかりやすいので今度からはこっちを使おうっと。
図解入門 よくわかる最新データ圧縮技術の基本と仕組み―情報圧縮技術とアルゴリズムの基礎講座 (How‐nual Visual Guide Book)