hogeとはワイルドカードのようなものです。日々起こった、さまざまなこと −すなわちワイルドカード− を取り上げて日記を書く、という意味で名付けたのかというとそうでもありません。適当に決めたらこんな理由が浮かんできました。
01/03/2008 ふむ [長年日記]
01/16/2008 あー [長年日記]
■ [日記] あー
二時に家でようやく落ち着いて,用事を思い出して,デスクトップに向かってブラウザのタブを開いたら,X が死亡.
症状はいつもの通り,どこからか SIGALRM を連続でうけまくって CPU 使用率 100% で張り付き.
こうなったらSIGKILL も受け付けないので,リモートから ssh で入って reboot しようと Windows を起動しようとしたら,ノートがディスクエラーで起動せず.
Linux も Windows もマジ死ねよとか思いながら iPod touch でこれ書いてる. 取り敢えず Linux マシンを落としたい…….
落ち着いたら iPod touch を ssh ready にしたいな.
ん
ちょっとぐぐってみたら,これ既知の問題みたいね. 解決法さぐるか...
01/22/2008 ふむ [長年日記]
■ [Py][日記] ストリームフィルタ
何か 2ch から 凄く古いエントリ に参照があったみたい. けど残念,そいつは私のおいなりさんなので動かない. まあ,本題は別のところにあるみたいなのであまり気にするところでもないのかも知れないけど.
今書くならたとえばこんな感じかなのかなあ. でも不完全だし何かあんまりぐっとこないな. もうちょっと cool なやり方がありそうな気がする.
# -*- coding: utf-8 -*- class Filter(file): def _filter(self, data): return data def next(self): return self._filter(file.next(self)) class StripFilter(Filter): def _filter(self, data): return data.strip() class UnicodeFilter(StripFilter): def _filter(self, data): return unicode(StripFilter._filter(self, data), 'utf-8') class ReverseFilter(UnicodeFilter): '''!生再逆ういとんな''' def _filter(self, data): return UnicodeFilter._filter(self, data)[::-1] if __name__ == '__main__': import sys f = ReverseFilter(sys.argv[0], 'r') for line in f: print line
実行結果はすごい勢いでカオスだ :)
つか
ファイルオブジェクトを引数にファイルオブジェクトのエミュレートができないといけなかったんじゃん.urlopen とか file-like 系に使えない.
しかし良い案は浮かばないなあ.
01/23/2008 ああ [長年日記]
■ [日記] stream と gc
先輩につっこまれてはっと思ったので書き残しておく. 言われてみれば当然のことなんだけど,普段からこういうことを意識してないのはまずい気がするので,戒めも兼ねて.
Java で stream を open した後はきっちり finally 内等で close することが重要だが,そのこころは,Java の gc はオブジェクトがスコープを抜けても即時に破棄するわけではないので,close されるタイミングが分からなくなって,もしもファイルをロックしたままだったりするとロックが解放されるタイミングも謎になり,はまる原因になるから.
んで気になってちょっと調べてみた. 間違ってたら指摘して頂けるとこれ幸い.
- Java (Sun JDK)
- 世代別 gc (アルゴリズムは mark-weep 方式など色々) を採用しており,gc はいつ動くか分からない.
- Python
- gc は参照カウント方式を採っており,参照がなくなれば即時でオブジェクトは破棄される.
- Perl
- gc は参照カウント方式を採っており,参照がなくなれば即時でオブジェクトは破棄される.
- Ruby
- gc は mark-sweep 方式を採っており,gc はいつ動くか分からない. が,open に関してのみ言えば,open にブロックを渡すとブロック終了時に自動的に close はされるのだとか.
- PHP 4 以降
- gc は参照カウント方式を採っており,参照がなくなればオブジェクトは破棄される (が,即時でかどうかはちょっとよく分からなかった...).
つかまあ自動で close されるとしても close はちゃんと明示的に呼んだ方が良いでしょうな. ちなみに Python2.5 なら with file(...) as fp が cool.contextlib.closing も場合に応じて利用するとハッピー.
□ しばた [うちは制御システムで諦めた > FF4 ]
□ atzm [防衛システムを無視して迎撃システム→制御システムと殺ればおk ]