2009-06-01から1ヶ月間の記事一覧

Small is Beautiful

I have made this letter longer than usual because I lack the time to make it shorter. ―Blaise PascalIf I am to speak ten minutes, I need a week for preparation; if fifteen minutes, three days; if half an hour, two days; if an hour, I am re…

Xen domUカーネルのダイエット

懲りずに「KVMに特化したミニマリスト・カーネル」のXen版。今時のディストリビューションはdom0未対応なので、CentOS 5.3 (kernel 2.6.18-128.1.6.el5)を使った。Xenのバージョンは3.0.23.1.2-128.1.14.el5と古い。ゲストOSはDebian 5.0.1 (kernel 2.6.26-2…

よみがえるUNIX 1st ed.

今年はUNIX生誕40年ということで、あちこちのニュースサイトで特集が組まれたりしているし、この日記でも取り上げようかなと思っていたところ、面白いニュースが飛び込んできた。 USENIX2009で、Warren ToomeyがUNIX 1st ed.をシミュレータ上で動かしたと発…

KVMに特化したミニマリスト・カーネル

Native Infernoをビルドしてみて、そういえば昔はLinuxも1FDディストリビューションとかあって、フロッピーディスクに収まるぐらい小さくできたんだよなぁと昔を懐かしんでいた(嘘)。Ubuntu 8.10のカーネルはvmlinuzで2.3MB強で、さらにモジュールの方が容…

Native Inferno

Hosted Infernoと呼ぶのが正しいのかわからないけど、InfernoはホストOS上で動かすのが一般的だと思う。でも、ベアマシン上でも当然Native Infernoが動作する。id:m-shibaさんのエントリで触れられていたので、試してみることにした。環境はQEMUじゃなくてVi…

分散コンピューティングの8つの嘘

90年代前半、GhostScriptの作者として有名で、当時SunのフェローでもあったPeter Deutschは、「Eight Fallacies of Distributed Computing」という社内向けメモを書いた*1。どれも言われてみれば当たり前だし、頭ではわかっているんだけど、いざ開発が始まる…

はてなダイアリーのRSSにおけるIf-Modified-SinceとLast-Modified

昨日の続き。feedparserでLast-Modifiedタグを調べるには、 a = feedparser.parse(url) a.modified (2009, 3, 3, 5, 40, 37, 1, 62, 0) でよいんだけど、はてなダイアリーのRSSはAttributeErrorになってしまう。ググってたら、昔は付いていたけど消えたとい…

Plan9/Inferno Twitter bot

最近、ずいぶん周回遅れでTwitterを使い始めた。ちょっと雰囲気がわかってきたので、Plan9とInferno関連のblog更新をポストするボットをPythonで書いてみた。興味のある人はp9botをfollowしてやってください。今のところ、自分の日記以外に更新をチェックし…

ブラウザがOSになる日

以前から「ブラウザがOSになる」みたいなことが言われてきたけど、最近のHTML5の動き、例えばローカルストレージAPIやCanvas、O3Dなどのグラフィック機能の導入などを見ると、ますますそれが現実的になってきたのかなと思い始めてきた。アプリがクラウド上で…

APIの設計について

Twitter経由で知った、「API Design Matters」というACMQの記事を流し読んでいた。書かれたのは2007年なのでちょっと古いが、この手の話題は時代を越えて残りそうだし、今読んでも損はないかな。システムコールやライブラリ関数など、よく使われるAPIほど良…

システムコールの追加

概要 Plan9にシステムコールを追加してみる。この手の演習ではgetpidを作ることになっているので、それに倣う。ちなみにPlan9のgetpid(2)は/dev/pidを読んで表示するというライブラリ関数である。ということで、kgetpidを実装してみよう。関係するファイルは…