Entries from 2009-05-01 to 1 month

VLゴシックのsynthetic emboldeningを抑制して、表示に高級感を。

Free な OS の標準的な日本語フォントとして Vine Linux をはじめ様々なディストリビューションに採用されている「VL ゴシック」。字体の見やすさなどから、徐々に愛好者を増やしているようなんだけど、前々から気にくわなかったのがこれの太字。小さい文字…

印刷して電車の中で読める (かもしれない) TCP ECHO サーバのソースコード (1)

アーキテクチャに関する質問として、「○○の仕組みってどうなってるの」というようなことを聞かれても、説明下手なせいか、なかなか口で説明できないことがある。そこで「UTSL (ソース読めばいいよ)」と言いたいんだけど、かといって実際に、これを読むといい…

select のなかみ

一応 select(2) も読んであったので説明しとく。メインループは非常に短いので抜粋。ここにはビットマップの転送処理は含まれていないので注意。max_select_fd() の前後が rcu_read_lock() と rcu_read_unlock() で囲まれているのは、ドキュメント (Document…

AcotieScriptはすでにllvmに対応している

yacc と lex で簡易言語の AcotieScript っての作ってみた→ http://github.com/moriyoshi/AcotieScriptというわけでみなさんよろしく まとめperlとrubyはparserをyaccでやってトークナイザはlex使わないで自前でやってる。 PHPもyacc使ってるが何かスッゲー…

epollのなかみ

よく C10K 問題とかいって epoll(7) の話が出てきて select(2) 遅いね poll(2) 遅いねってなるんだけど、正直なところ、これらのシステムコールを実際に使ってコードを書いてみたひとはどのくらいいるのだろう。ましてや eventpoll が何やってるか知っている…

llvm-py を使ってみた。

llvm-pyはドキュメントがめちゃくちゃよく書けているのはいいんだけど、バインディングとしての完成度は…普通かな。0 から 9 までの値をそれぞれ 2 倍したものを表示するサンプルを書いてみた。実は with を初めて使った。basic block (BB) のセマンティクス…

メタクラスと__getattribute__()

演算子オーバーロードがどう動いているのかを確かめるため、いろいろ意地悪なサンプルを書いてみる。 class MyType(type): def __init__(self, name, bases, dict): type.__init__(self, name, bases, dict) self.__add__ = lambda self, rhs: 1 def __getat…

SAXのハンドラをコンビネータっぽく書いてみた

これも有用性は不明。DOMツリーをトラバースするなりDigester (古い?)使うなりしたほうがいいと思いますけどね。 <document> <list> <item>a</item> <item>b</item> <item>c</item> </list> <list> <item>a</item> <item>b</item> </list> </document> こんな XML ツリーをパースするコードです。可読性はSAXハンドラを素で書いたにしてはいい方かもしれないけど、悪い。リフレ…

LinuxのFSモジュールを書いてみる (その2)

追記: コードに深刻な勘違いがあったので修正。前回は、ひとまず次のような機能を実装したモジュールを書いた。 ディレクトリを開く ディレクトリのエントリの一覧を取得する ディレクトリのエントリの属性を取得する ファイルを開く ファイルの内容を読む …