2009年04月27日

太刀魚の揚げ煮、野菜スープ

太刀魚に挑戦。中華醤油に絡めてから多めの油でじっくり揚げるように火を入れる。取り出して、油を捨て、生姜とネギを炒めたところに戻して、日本醤油、酒、砂糖を加えて煮含める。 前も骨でだいぶやられた覚えがあるんだけど、今回もやはりとても食べにくかった…。でも味はやわらかかつ旨味があっていい感じ。骨さえなんとかできればなぁ…。いっそすり身にしてしまう?

カオマンガイ

25日の補完。炊飯器でわりと手軽にできるのだな。炊飯器のお釜に米を研いで水を入れてしばらく浸しておく。しょうがとニンニクを摺りおろし入れ、鳥ガラスープも少し入れる。鳥もも肉に軽く切れ目を入れて塩胡椒を軽くし、お釜の米の上に乗せて、そのまま炊飯オン。付けタレはネギ、カピ(エビペースト)、ショウガ、ニンニク、砂糖、ナンプラー、レモン汁…は切らしててしょうがなくビネガーを混ぜてみた。炊き上がったら鶏肉を適当に切り、米、トマトやキュウリと一緒に並べる。鳥の味が米に染みていておいしい。タレがなんかボケた味になっちゃったのはビネガーのせいだと思う。シンプルにレモン汁、カピ、青唐辛子、ナンプラーあたりで組み合わせて、あとナンプラーを添えたらもっと本格的になりそう。

いさきのソテーとルッコラのペンネパスタ

23日の補完。魚のパスタが食べたいな、と思って物色。2枚おろしのいさきがあったのでこれを使って調理。いさきは塩胡椒して強力粉をまぶし、ナスと一緒ににんにくとオリーブオイルで焼く。トマトと白ワインを加えてざっと火を入れ、ルッコラとペンネの上に載せる。ピンクペッパーも飾ってみた。ちょっと骨が多いけどなかなか良い味。

鳥の唐揚げ、ポテトサラダとセロリ

22日の補完。どこだったかの唐揚げの記事を読んでたらたいへん唐揚げが食べたくなってきたので。ポテトサラダはじゃが芋の茹で加減が悪くてちょっと固かった(使ってるレンジで根野菜調理モードがないのでいまいち勝手がつかめてない)。セロリは水気があって柔らかくておいしい。

焼きそば

21日の補完。ありあわせで適当に作るかということで、自家製パンチェッタ(塩豚バラ)、ピーマン、人参、玉葱、キャベツ、椎茸、ネギ。パンチェッタの塩気がわりとマッチしておいしかった。

チンジャオロースー、トマトとキュウリのサラダ

20日の補完。同僚からタケノコを貰ったので、ぬかと一緒に2時間ほど茹でてみた。まだ少しアクが残ったかな。おいしかったけど。

2009年04月23日

Input Hotplug Guide

X.orgの新しい入力デバイスホットプラグ機構についての説明がDebian WikiのInputHotplugGuideにまとめられている。ここんところ忙しくてまだsidにしてないので使ってないけどなー。適当に超訳してみた。

はじめに

X.org X サーバは最近、入力サブシステムに重要な改良を施しました。最も重要なのは入力ホットプラグ (input-hotplugging, 以降 i-h) で、X サーバにデフォルトでないキーマップを xorg.conf に指定しなくても正しい設定で機能するというものです。 この新しいシステムは hal および dbus に基づいているので、外部ツールのようなものが必要になるのではないかと懸念される人もいらっしゃるでしょう。 X サーバはそういったプログラムを使うことなしにこれまで動作してきたので、これはもっともな疑問です。 このドキュメントの最初のパートでは、新しい入力システムの原理、どのような問題を解決するか、どのようにそれが機能するか、について説明したいと思います。 なによりも重要なメッセージは、新しい入力サブシステムは、その機能性を倍加させるというより、ホスト OS に基づいて構築されており、ハードウェアに問い合わせ、相互作用するための標準化されたインターフェイスを使うことで OS を単純化させられるということです。 このドキュメントの 2 番目のパートは、必要に応じてどのようにシステムを設定するかを説明する HOWTO です。

原理

X.org の長期的目標

X.org プロジェクトは XFree86 プロジェクトから連綿と続いてきたコードベースを受け継ぎました。 最大の制約は、私たちが今日亨受しているフリーソフトウェア環境が提供されていないような、多種多様に異なる UNIX 間での絶対的な移植性が過去に必要とされていたことです。 そのため、X は自身で、システムバスの走査からハードウェアの駆動まで、何でもこなさなければなりませんでした。 要するに、これは OS の上に乗っかった OS だったのです。

設立以来の X.org の最重要目標の 1 つは、この類の振舞いを止めることで X を今風なものに引き上げることでした。 今日私たちはカーネルから起こされた完全にオープンな OS を手にしており、古い UNIX は死あるいは死に瀕していることから、このビジョンにのっとって多くの段階を踏んできました。 古いモノリシックな X のコードベースは適切な形に分割され、その特別なビルドシステムもほぼ標準の autotools に移行しました。 加えて、X は古い /usr/X11R6 ディレクトリを去って、ほかの通常のソフトウェアピース同様に FHS の世界に入りました。 X サーバの特別なローダシステム (そう、自前のローダを持っていたのです!) は、標準化された ELF 形式で置き換えることで、スクラップにされました。 PCI バス操作コードは削除され、今ではサーバは、OS に PCI デバイスを照会するのに外部の libpciaccess を利用します。 linux では、これは単に標準化インターフェイスの /sys を見るだけです。

これらの開発のすべては、X を、偏執的な独立独行の部外者ではなく、ホスト OS の良き市民として振る舞うようにするという目標に沿っています。新規の移行は、Kernel Mode Setting (KMS) および GEM メモリマネージャという形でビデオドライバの大部分をカーネルに移動することで現在のシステムの公開性のメリットを活用すべく実際始められたのです。

基本入力

前述したことから推測されるとおり、古い入力ドライバ (keyboard/kbd、mouse、その他) は、実際にハードウェアを駆動するためにそれについての完全な知識を持っていなければなりませんでした。 自前でこの作業を行っていたので、必要なサポートを提供するのにホスト OS を当てにする必要はありませんでした。 しかし、ホスト OS がフリーで提供する事柄を亨受できず、ホスト OS 上で利用可能な機能を重複して実装しなければならなかったのです。

evdev ドライバはこれを変える最初のステップでした。 evdev は一般の I/O を操作するためのフレームワークです。 このフレームワークはカーネルが特定のデバイスの詳細を扱うようにし、またユーザスペースのプログラムがそれとインターフェイスを持つことができるようにします。 X サーバが evdev ドライバを使うと、すべての実ハードウェアの操作がその属するカーネルに事実上移動します。 カーネルは、マウスボタンやホイール機能のような事象についての情報を提供することもでき、最適なドライバのものと同等の柔軟性を X サーバに与えます。 これは、大きく簡易化、保守容易化された X 側でのドライバを提供するので、 明確に責任範囲が分割され、X サーバが OS の良き市民となります。 総合的に言えば、evdev を使うことは、システムの複雑さを軽減することにつながります。 これらの利点から、現在の Linux 上での X サーバのデフォルトは、evdev を使います。 そのため、evdev でキーマップを提供するという変更は、xbindkeys や xmodmap を使って作成したカスタムマッピングを使っている人にとって少々不安をかきたてたようです。 この場合に必要なのは、単に新しいキーコードに再マップすることだけです。 無論、これは私たちが予知可能な未来において再び起こるかもしれない問題の類ではありませんが、evdev に切り替えることで真の利益を得るために、10年に一度払うだけの価値はあります。

hal、dbus、console-setup

この時点で、システムにいくつかの大きな改善はなされましたが、その他のいろいろな問題はまだ残っています。 まず、真っ先に挙げられるのが、デフォルトの 'us' マップを使いたくないときキーマップを設定するのに xorg.conf がまだ絶対に必要とされていることです。 Debian は、キーマップをユーザに尋ねてそれを適切に設定するための大きなシェルスクリプトを持ち続けなければなりません。 この情報は、キーマップについての別個の設定を持つコンソールとも重複します。 2 つが同期しないとしたら、これは明らかに問題を引き起こします。

加えて、ホットプラグは十分にサポートされているとは言い難いものでした。 Linux カーネルは、すべてのデバイスイベントを単一のデバイスインターフェイスに多重化することでホットプラグを透過的に管理できます。 これは多くの人にとって十分よく動作していたので、これが機能しないというのはどうにも不愉快なことでした。 X サーバはカーネルがその裏で何をしているかについてわからなかったので、結局デバイス単位の設定を管理することはできませんでした。 そのため、デフォルトに適合しないか xorg.conf でまだ設定していないデバイスがホットプラグされると、前述のような同じ問題にまい戻らされました。

これらの問題の両方を解決するために、1 つの概念的解決がありました: それは、X サーバが、デバイスが何か、どのように固有の扱いをすべきかをホスト OS に尋ねることです。 たとえばデバイスがマウスなら、拡張ボタンはどうなっているでしょうか? デバイスがキーボードなら、キーマップには何を使うべきでしょうか? サーバが情報を取得できるなら、それ自身で設定を持つ必要はもはや不要です。 この情報を持つ単一の場所を持ち、すべてのアプリケーションが X サーバと同じやり方でそれに照会できるので、これはシステム全体の複雑性を軽減します。

Linux でこの問題を取り扱う方法が、hal を使うことです。 hal は多くの人にとっては神秘の代物ですが、その概念はとても単純です。 hal は udev 経由でのデバイスの作成/削除のためにカーネルを監視します。 イベントを検出すると、関係するイベントを dbus 経由で送出します。 X サーバは、現在検出されているすべての入力デバイスの一覧を取得するために、起動時に dbus 経由で hal に照会することができます。 hal は、固有のデバイス単位のプロパティをエンコードした一連の xml ファイル (.fdi) で構成されたデータベースから成る追加のプロパティを持っています。 そのため、特定のデバイス情報のために不明瞭な C コードを編集する代わりに、人間が読める形式で記述され、hal を各ユーザにぴったりくっつけることができます。 このもっとも重要な部分は、この情報は xorg.conf にある必要がなく、つまり誰かがインストール時に xorg.conf を書くたびに毎回再入力することが不要であるということです。 サーバはただ暗黙に hal 経由でシステムから情報を取得します。 加えて hal は、xorg.conf 形式ではできない、すべてのマウスに何かさせるといったグループ設定も可能です。 サーバは、入力ホットプラグが稼働できるよう、dbus に接続したままにして hal を監視し続けることもできます。

最後のひとかけは、console-setup です。このドキュメントの目的として、console-setup はシステムワイドなキーマップ設定の面倒を見ます。 各ユーザはコンソールを持ちますが、すべてのユーザが X を使っているとは限らず、この責任を担当すべき適切なところは console-setup です。 console-setup は現在、インストール時に xorg.conf を読んで、もし存在するならそれをシステムワイドなキーマップの設定に使います。 これは過去の設定が移行で失われないことを保証します。 console-setup はそれから hal にキーマップが何かを伝え、これによって hal は X サーバからの照会を受けたときにそれを伝えることができます。 これで、xorg.conf にキーマップを含める必要がなくなり、システム全体の単一の場所 (/etc/default/console-setup) で設定するだけとなって、X サーバがほかのアプリケーションと同様に単にそれを使うようになります。

まとめ

入力サブシステムの改良の目標は、標準化された OS サービスを利用して Xorg コードベースと OS の双方の複雑さを軽減すると同時に、重要な新しい機能性を提供することでした。 これらの目標の両方は達成されました。 現在では、コンソールと X で別々に設定する代わりに、システムワイドなキーマップを設定する単一の場所があります。 加えて、デバイスのホットプラグは完全にサポートされ、X サーバはそれを完全に亨受できています。 最後に、ドライバごとの C のコードや独自の xorg.conf ファイルでの多数の情報を再エンコードする代わりに、X サーバは hal のデータベースで提供されるデバイス固有のプロパティを利用できます。 X.org と X Strike Force は、これらが、過去の低い機能性や不自由さを乗り越えて進み続けるために X が必要としていた、大きな進歩を表していると信じています。 以降のセクションは、あなたがこのシステムを最良に使うのを助けるべく設計されました。

HOWTO

キーボード

アップグレード時に、hal および console-setup が xserver-xorg の依存/推奨によって持ち込まれます。

console-setup は、既存の xorg.conf からキーボードレイアウト情報を集めます。そのため、/etc/default/console-setup の以下のような行を得られるはずです。 これを手で修正してもかまいません。

$ grep -C 3 -i xkb /etc/default/console-setup
# The following variables describe your keyboard and can have the same
# values as the XkbModel, XkbLayout, XkbVariant and XkbOptions options
# in /etc/X11/xorg.conf.
XKBMODEL="pc105"
XKBLAYOUT="fr"
XKBVARIANT="latin9"
XKBOPTIONS="lv3:ralt_switch"

console-setup の用意ができると、hal はそこから情報を集めます。アップグレードされていないときには、hal の再起動 (/etc/init.d/hal restart) が必要かもしれません。 その後 lshal を実行すると、正しいキーボードレイアウトを報告するはずです。

$ lshal | grep xkb            
  input.xkb.layout = 'fr'  (string)
  input.xkb.model = 'pc105'  (string)
  input.xkb.options = 'lv3:ralt_switch'  (string)
  input.xkb.rules = 'base'  (string)

入力デバイスが検出されると、X サーバは hal から情報を取得します。 /var/log/Xorg.0.log に次のように示されます:

(II) config/hal: Adding input device Dell Dell USB Keyboard
(**) Dell Dell USB Keyboard: always reports core events
(**) Dell Dell USB Keyboard: Device: "/dev/input/event9"
(II) Dell Dell USB Keyboard: Found keys
(II) Dell Dell USB Keyboard: Configuring as keyboard
(II) XINPUT: Adding extended input device "Dell Dell USB Keyboard" (type: KEYBOARD)
(**) Option "xkb_rules" "evdev"
(**) Option "xkb_model" "pc105"
(**) Option "xkb_layout" "fr"
(**) Option "xkb_variant" "latin9"
(**) Option "xkb_options" "lv3:ralt_switch"

別のレイアウトに切り替えるために、/etc/hal/fdi/policy/ への新しい *.fdi ファイルとしていくつかの上書きルールを追加できます。たとえば、ドイツ語レイアウトを取得するには次のようにします:

<?xml version="1.0" encoding="UTF-8"?>
<deviceinfo version="0.2">
  <device>
    <match key="info.capabilities" contains="input.keys">
      <-- Enforce XkbLayout=de and XkbVariant empty -->
      <merge key="input.xkb.layout" type="string">de</merge>
      <merge key="input.xkb.variant" type="string" />
    </match>
  </device>
</deviceinfo>

異なるレイアウトの異なるキーボードを保有しているなら、そのうちの 1 つにレイアウトを変更するためだけのいくつかの "マッチ" ルールを追加する必要があるかもしれません。 fdi ファイルを追加 / 変更したあとに hal を再起動することを忘れないでください!

マウス

マウスについてはずっと簡単で、すべきことは何もなく、evdev が自動でロードされます。

タッチパッド

synaptics タッチパッドを使っているのなら、マウスとして利用できるはずです。ただし、hal はタッチパッド能力があることも報告します:

$ lshal
[...]
udi = '/org/freedesktop/Hal/devices/platform_i8042_i8042_AUX_port_logicaldev_input_0'
[...]
  info.capabilities = {'input', 'input.mouse', 'input.touchpad', 'access_control'} (string list)

よって、xserver-xorg-input-synaptics がインストールされていると、(/usr/share/hal/fdi/policy/20thirdparty/11-x11-synaptics.fdi ファイルのおかげで) hal に evdev の代わりに synaptics ドライバをロードするよう伝えられます。

HAL を無効にする

xorg.conf の ServerFlags セクションで AllowEmptyInput および AutoAddDevices を off にすると、そうなります。

デバイスを無視する

Xorg があなたの入力デバイスの何かを使おうとするのを望まない場合、かつては xorg.conf にそれについて記述しないというだけで済んでいました。今では、hal がサーバにすべてのデバイスを伝え、それらすべてがデフォルトで有効になります。これを無効にするには、次のようにします:

<match key="info.product" contains="myname">
  <remove key="input.x11_driver"/>
</match>

"myname" を何にするかを調べるには、lshal を使います。

FDI ファイルの記述

ドキュメントは http://cgit.freedesktop.org/xorg/xserver/plain/config/x11-input.fdi を参照してください。hal パッケージの /usr/share/doc/hal/examples/10-x11-input.fdi にある例も利用可能です。

参照

Peter Hutterer の blog、特に この投稿この投稿を参照してください。

これと類似のドキュメントはArch linuxのこのページを参照してください。

madduck は、どのようにデフォルトのオプション、レイアウト、バリアントを超えて XKB を拡張するかについての簡単なライトアップを保有しています。

著者

このドキュメントの寄稿には、Julien Cristau、BriceGoglin、Peter Hutterer、DavidNusinow がかかわりました。

XStrikeForce/InputHotplugGuide (最終更新日時 2009-04-20 04:20:44 更新者 KenBloom)
[翻訳: Kenshi Muto, kmuto at debian.org]

2009年04月21日

『DEBUG HACKS』



/

takesakoさんがすでにレビューを書かれているけど、私のところにも献本いただいたので(ありがとうございます!)、ひととおり読んでみた。

オライリーのHACKSシリーズは、「単発だとブログのネタかWeb記事くらいにしか商業的にできないよねぇ」というちょっとニッチな小ネタ話題をある大まかなテーマで網羅的に収集している。「基礎知識から徐々にステップアップして…」といった構成のがっちりした書籍に比べると情報が散在してわかりにくいという欠点はあるけれども、「〜をしたい」という目的ドリブンな読み方・調べ方には便利だし、著者が身軽かつ楽しく自分が好きなものを書けるという利点があると思う(ただ、本書については発行スピードが最優先だったのか、日本語の品質にちょっと首をかしげるところも散見されるが)。

本書はその名のとおりコードの「デバッグ」がテーマだ。本書の「はじめに」でも述べられているように、プログラミングの入門書はあっても、デバッグの入門書というのはこれまで存在しなかったジャンルだ(テスト手法やコードレビュー手法などは人気だが)。本書ではフリーソフトウェアにおけるデバッグツールの代表格のgdbの使用方法を詳細に説明するほか、x86/x86-64のアーキテクチャおよびアセンブリの知識、valgrind等のツールの使用方法などを紹介する。gdbについて実践的に記述された書物というのはそれだけでも貴重だ。

ページの多くを割いて説明しているのが、LinuxカーネルおよびGNU/Linuxユーザランドアプリケーションのデバッグだ。吉岡氏を始めとする著者陣はすべてMiracleLinuxの社員で構成され、特にカーネルのデバッグについては序文を寄稿されているMatz(まつもとゆきひろ)氏が言うように「歴戦のプログラマが経験から獲得したバグの見つけ方・直し方が満載」である。Oopsの解析、クラッシュダンプ、ロックやセマフォの解決、OOM Killer、プロファイリングなど、著者陣の血から得られたLinuxカーネルのデバッグハックが数多く盛り込まれており、価値が高い。「Linus gitリポジトリを追いかけたらもう直ってました!」というオチが多いのは涙を禁じ得ない(古いカーネルを保守し続けるという業)。

GNU/Linuxについて深く記述されているということは、逆に言えば、MacOS XやWindowsといったほかのOSのプログラマにとっては、本書をデバッグの参考書として使うにはだいぶ物足りないものに感じるだろうということだ。本書が『BINARY HACKS』に「インスパイヤ」されて生み出されたように、『DEBUG HACKS MacOS X編』『DEBUG HACKS Windows編』といった書籍が登場することを期待しよう。

GNU/Linuxにかかわっている職業プログラマおよび趣味プログラマには、持っておいて損はない1冊だ。

ビーフシチュー

18日の補完。ジム帰りで汁気のあるものが食べたいね、ということで。ごろごろとでかい肉を入れてみた。コスモのフレークだけだとちょっと甘くて一本調子なので、少々の赤ワインビネガー、コショウ、タイム、ナツメグ、オールスパイスと加えて調整。

牛肉の春ごぼう巻き、豆腐とワカメの味噌汁

17日の補完。形が悪くて写真映えもしないのになっちゃったけど、軽く茹でて牛肉で巻いたごぼうは、泥臭さがなく、食べると味が染み出てきてとても美味。これはまた作ろう。

タイとトビウオの刺身、さつまいもの煮物

16日の補完。旬ということで安く売られていた刺身を購入。トビウオの刺身は初めてかも?アジとイワシの味に似てる。骨かウロコかがついていてちょっと固いところがあった。

鶏肉とナスのバルサミコ酢パスタ

14日の補完。定番だけど、諸所の事情で鶏肉多めになってしまった…。

鶏肉と野菜の煮物

13日の補完。鳥手羽元、筍、こんにゃく、じゃがいも、人参、玉葱、ごぼうを醤油味で圧力鍋を使って煮込む。鳥がほろほろしておいしい。

蒸し鳥のタイ風ごはん

11日の補完。だいぶ間が空いてしまった。カオマンカイは鶏肉入れて炊き込むんだけど、こちらは蒸し鳥にナンプラーなどの味をつけてごはんに載せるだけ。ちょっと塩気を強くしすぎた。

2009年04月11日

第17回オープンソーステクノロジー勉強会 at GREE

「今年は人脈を増やす」が目標だったのにあまり実践できてなかったので、仕事が一段落ぎみなのをいいことに、ちょうどDebian JPのやまねさんと岩松さんが話すというGREE主催のオープンソーステクノロジー勉強会に参加してきた。GREEはDebianサーバをたくさん使ってる(中身や今後についても懇親会でいくつかお聞きしたけど、まだ秘密にしておいてね、だそうで)。

GREEの入っている黒崎ビル、六本木一丁目側からのエレベータで登ると受付側じゃなくて裏口になっているというのは罠。GREEの一井さんに「お待ちしていました!」とおっしゃられてしまったのだけど、開場時間から後方で座ってまったりしてました、アヒャヒャ。 詳細なレポートについては参加者からのご報告ページでまめな方々が記述されているのでそちらをご参照(このblossxomからTB飛ばす方法がわからない…)。立ち見含め、かなりの人数が入っていた。

やまねさんが「Debianは簡単です!」というGoogleの(だいぶ怪しい)検索統計に基づいたネタをアスキーアート込みで振り、岩松さんがDebianのNMプロセスがいかに困難であったかをこんこんと説明し、再びやまねさんに戻ってDebianの組織構成やリリースマネージメントなどを紹介。どうみてもこの感想は「パブリックイメージは簡単なんだけど、かかわると難しくておっかない」です、本当にありがとうございました。参加者にとってタイトル内容から個々に推測した期待とのギャップは大丈夫だったんだろうか…。

持ってきた『Release It!』3冊はやまねさん、GREE社さんに献本させていただいて、1冊は懇親会でじゃんけんプレゼントに(元HDD計測系の方が当選)。いい本なので宣伝してやってください。

懇親会ではGREEの方々、IPA出向中のよ。氏、わりと何度か会ってるような気がするけど実はまだサイン交換してなかった前田さん、久々のあやさんや山本くん(結局sysfsマウントで動いた?)のほか、CUPS翻訳でかかわりのあったRICOHの方とか、来年GREE入社予定の学生さんとか、初めてだけどもキーサインしてみたいという方とか、ライターの方とか、そのうちお仕事一緒にするかもしれないMySQLの方とか、といろいろな人たちと名刺交換してなかなか有意義な成果。おかげでピザとビールは少ししか取れなかった気もするが。学生さんにはいろいろ偉そうなことを言った気がするので、自分ももっと実践するようにしよう(笑)。そうそう、やまだあきら先生の「入門Debianパッケージ」はGREE社内のバイブルらしいです。



/


/

レバニラ、青梗菜と卵のスープ

8日の補完。鉄分補給。レバーはちょっと臭みがあったので牛乳に漬けたあと、味噌を少し絡めてみた。焼くと味噌固有の味は特になく、臭みも消えていいかんじ。スープは鳥ガラスープに炒めた青梗菜、軽くふんわり作った卵焼きを入れるだけ。

タコス

7日の補完。写真はちょっとナニになってしまったけど、マトンを刻んでスパイス・玉葱や卵と合わせて炒め、トマト、ピーマン、アボカドと一緒にオーブンで焼いて、トルティーヤで包んで食べる。うまうま。

ぶり大根

6日の補完。30分の圧ではちょっと不足だったようでいくぶん骨が固いところもあったけど、味はよし。

ロースステーキ

5日の補完。ハナマサの厚い肉は2回試して結局どちらも臭いが芳しくなかったので、普通にスーパーの薄いやつ。ウェルダンぎみになってしまったけど、味はやはりこのほうがいいなぁ。

2009年04月06日

kfreebsd-* らしい

Joergがblogで報告してるように、新アーキテクチャとしてkfreebsd-i386とkfreebsd-amd64がDebianミラーに収録され、unstableとexperimentalでのパッケージ配布も始まった。

さて、GNU/kFreeBSDはsqueezeでの公式アーキテクチャになるだろうか? JPでは誰かkFreeBSD触ってる人いたっけかな。

花見

土曜日に砧公園。

カルボナーラ、レタスとキュウリのサラダ

3日の補完。前にビーフストロガノフを作ったときの生クリームがまだ残っていてそろそろどぎゃんかせんといかん、ということでカルボナーラに。卵は2つ。肉分はあとわずかになってた自作のパンチェッタと冷凍ベーコン。チーズもかなーり前からあったパルメザンを全部おろしてみた。こってり美味。というかこれは太りそう。

水餃子

2日の補完。水餃子は茹で上がったところにネギと生姜を乗せ、熱い油と中華醤油を混ぜたのをかけてみた。単なる水餃子よりもコクがあるね。ネギは真面目にちゃんと白髪にしたほうがいいようだ。

鶏肉とナスのトマト煮

4月1日の補完。ネタに走る間もなく過ぎてしまったわけだが。ニンニクと玉葱を炒めて鶏肉を加え、ざく切りのトマト、塩、胡椒、ハーブ類を入れて煮詰める。茹でて湯を捨てたナスを加えて、タコス用のメキシカンスパイスをかけてとろみが付くまで煮る。ごはんが進む味。

豚の角煮、自家製豆腐

3月31日の補完。豚の角煮・煮卵付きは泡盛多めで茹でてみた。味がしっかりしておいしい。豆腐は無調整豆乳ににがりを入れ、カクテル用ステアでよく混ぜて、蒸籠で15分ほど。綺麗に水と分離して茶碗蒸しのようなぷるぷるした柔らかい豆腐になった。

アンチョビとキャベツのパスタ、コロッケとトマト

3月30日の補完。春らしくキャベツ…と思ったんだけど、寒〆めされたキャベツで水気が少なめだった。

2009年04月03日

Debian GNU/Linux device driver check & report version 2.0

「lspci -n」の結果を貼り付けるだけでLinuxドライバの対応状況がわかるWebサービス、「Debian HCL - Debian GNU/Linux device driver check page」について、一昨日から懸案の改良に着手しました。

これまでのものは結果の表示後に結果投稿した先はwilikiに送っていたのですが、マシン名をずらずらと並べているだけで探すにはわかりにくく、調査ページと別々になっているためにいまいち有用性の低いものとなってしまっていました。

今回のバージョンでは下記のような改良を施しました。皆様の情報をお寄せください。

  • ドライバ調査と報告データのページを統合。相互の行き来がずっと楽になりました。
  • ベンダごとのツリーで、ユーザから報告されたデータを表示。より見易い形で情報にアクセスできるようになりました。URLはベンダ/モデル という構成にしており、今後検索エンジン経由に探査されることで検索をそちらに任せられるようになることを期待しています。
  • 国際化作業の簡易化。メッセージの国際化にgettextを使用するようにしたため、扱いやすいpo形式で翻訳作業が可能です。現在、英語、日本語、ポーランド語、イタリア語、フランス語、スペイン語(アルゼンチン、メキシコ)、ドイツ語、ポルトガル語に対応しており、ブラウザの言語設定に基づいて表示されます。手動選択も可能です。

ここ最近読んだ書籍から学んだいろいろなことを実装に反映してみました。



/

この書籍でプレースホルダ+トランザクションの有用性を再認識した気がします。ちなみに編集組版を担当してたりします。



/

監訳なので手前味噌っぽいですが、これは本当に本当に良い本です。問題のまったく出ないエンタープライズサービスというものを作るというのは不可能だけれども、もし問題が出たときにどうすればそれを最小化できるかということに重点が置かれています。主にJava言語でのお話が多いですが、考え方自体は言語・サービスによらず通用すると思います。何より文章がとても美しい本です(レビューアも豪華です)。本書のプラクティスからは、サーバの負荷を上げないためのキャッシュ活用。各ページのコンテンツはDBのデータから静的に作るようにして、軽量なeRubyページで取りまとめと翻訳を実行させています。投稿されたデータもすぐにデータベースに反映せず、キューに入れてバッチ処理します(なぜかDBIのトランザクションが変になることがあるのですが…)。キューの処理はcronで半自動です。



/

本アプリケーションはRestfulではないのですが、WebアプリケーションにおけるサービスベースのURL構成概念を参考にしました。ベンダとモデルからなるURLは、Apacheのmod_rewriteを使ってeRubyのパラメータとして渡しています。書籍のほうはおもしろいところもあるんですが、わりと退屈なところも多いです(誤字もちらほら)。4ページくらい読んでは寝る、の繰り返しです…。

今後の改良予定は下記のとおり。ぼちぼちとやっていくつもりです。ご意見などあればお寄せください。

  • キューの半自動処理をもっとインテリジェントおよび簡易に
  • ロゴを今の適当にgimpで作ったのからもうちょっとちゃんとしたものに
  • AJAX使ってなにかできないか。登録まわりのクライアント側チェックコードも必要
  • ブラウザ言語設定以外での言語選択方法の提供。クエリパラメータは面倒なので、Cookieが今のところ有望→DONE
  • ボトルネックとなっているキャッシュ生成の時間短縮→ほぼDONE
  • 国際化強化(英語blogやdebian-1i8nなどで宣伝予定。その前にdebian-l10n-englishで直してもらったほうがよさそう)→進行中。呼びかけでけっこう増えた