2007-04-01から1ヶ月間の記事一覧

魔方陣

「憂鬱なプログラマのためのオブジェクト指向開発講座」に魔法陣(正しくは魔方陣らしい)プログラムが載っているので、Perlでも書いてみた(C++のプログラムを書き写しただけ)。C++だと3×3の魔法陣を解くのにそれほど時間はかからなくてサクサクと答えが出…

Catalystで使ってるモジュールのバージョン管理って

Catalystを使うために perl -MCPAN -e 'install Task::Catalyst'とかすると、大量のモジュールがインストールされるけど、実際にサービスとして運用環境にあるサーバーの場合、これらのモジュールのバージョン管理ってどうやるんだろうか、と思った。という…

Mixi::Shell

http://d.hatena.ne.jp/lestrrat/20070412#1176352515 Twitter-Shell-0.02 - Twitter From Your Shell! - metacpan.org を見てTerm::Shellというモジュールを知ったので、全面的にまねをしてMixi::Shellというのを作った。 でもまねしすぎてちょっと反省。 m…

chrootするとsyslog関連が・・

ふつうのLinuxプログラミングもやっと最後まで終わりました。 で、HTTPサーバを作るところの終わりでchrootするコードを追加するんだけど、chrootするとsyslogに書き込まれなくなるようです。 Cのソースを模倣しているPerlプログラムのほうではdieしてしまう…

HTTPサーバを作る

ふつうのLinuxプログラミングもやっと16章。HTTPサーバを作るってところまで来ました。 17章になるともうちょっと複雑になるようなので、そのまえにPerlでも同じコードを書いてみた。 なにごともやってみることが大事、ということで。 ふつうのLinuxプログラ…

MyISAMの読み取りロックについて

MyISAMのテーブルに対してSELECTするとテーブルに対して読み取りロックがかかるけど同時INSERTが可能な場合もある。具体的には可変長カラムのUPDATE、レコードの削除が発生していないテーブルに対しては同時INSERTが可能。これはSHOW TABLE STATUSした時のDa…

continuation(SmallTalkの場合?)

Smalltalkはまったくわからないけど。 継続(continuation)では、センダ(呼び出し元)が後でやらなければならない処理を、ブロッククロージャ(継続)にして、レシーバ(呼び出された側)に渡していき、メッセージを受信したレシーバは、自分のやらなければならな…

strace

久しぶりに「ふつうのLinuxプログラミング」をやってる。だいぶさぼっていたおかげでまだ6章。 straceというコマンドを知った。プログラム中で使用されるシステムコールを表示してくれるツール。 使い方はコマンドの前にstraceと書くだけ。たとえばlsだった…