2008年02月28日

肉豆腐

牛肉、玉葱、豆腐、干し椎茸、昆布という組み合わせでぐつぐつ。スープ分は醤油、酒、味醂、水、塩で。ごはんと一緒に食べるとおいしい。

2008年02月27日

ARMマシンのディスクが危険…

家で動かしっぱなしにしてあるARM評価ボードマシンは、non-free/bpo/experimental/volatileのbuilddや、debian-installerのtesting版autobuilderとして日々活動している。

が、なにやら今日はビルドに失敗した旨と、「read-only」という不穏なメッセージが…。唯一のディスクのhdaがどうもダメになりかけてるようだ。リセットをしてとりあえず書き込みは可能になったが、もうずいぶんと使っているし、いつ壊れてもまぁ不思議ではない。このまま動かしていよいよダメになっても困るので、とりあえずコアデータを別マシンにバックアップの上、シャットダウン。

ケースを開けてみるとFDDを外せば使いやすい位置でIDEディスク2台を積むことも可能そうだ。もともとはSargeベースだったけど、Etchで初期インストールし直して、今度は/以下はソフトウェアRAID 1で組んでおくのもよいと思われる。ということで、ツクモで80G(大容量ディスクはあまりいらないし、BIOSで認識しない可能性もある)のディスク玉×2を購入。週末までに届くといいんだが、あまり発送早くないんだよなぁ。ブートローダもちょっと特殊なのでインストールした後も油断ならない。

aba、tbm、joeyhといった関係者には状況をメールしておいた。さてNo news is good newsとなるかどうか。

Subject: Google Summer of Code 2008

Steve McIntyreから今年もGoogle Summer of Code(GSoC)についてのアナウンス。

Debianが参加するには3月3日〜3月12日の間に申請する必要があり、メンター組織として認められば4月1日までに学生からの申請を受け付けることになる。Debian側管理者には今年もSteveが立候補予定、助けてくれる人も大募集。

実行するプロジェクトのメンターやアイデアも募集。去年と同様にwikiで収集するので、アイデアを書き込んでほしい。去年の提案はまだwikiにあるので、発想の参考にしてほしい。でも丸写しはだめだよ!

一方、d-d@org:235973でLucasからこんな意見もある。

これまで選出された学生たちは、すでによく知られたDebianのコントリビュータだったり開発者だったりしていた。問題の1つは、彼らのうちの何人かはGSoCの時間をGSoCプロジェクトのほうじゃなくてDebianの日常作業のほうに充ててしまい、プロジェクトを失敗に導いてしまっていた。そうして次の年にはもっと少ないプロジェクトしか採択されなくなってしまった。 …(中略)…

GSoCはDebianに新しい血を取り込むとても良い機会で、Debianの日常作業のためのお金をゲットするために使うものじゃない。既存のDebian開発者を学生として認めるのはポリシーとして禁止したほうがいいと思う。Debian開発者が何かDebian内部で成果を挙げるためにGSoCを使おうというのであれば、その代わりにメンターになったほうがいい。

アラビアータ風パスタ

ニンニク、唐辛子、玉葱、ウィンナー、ナスという感じで。鷹の爪を途中で半分に割ったらけっこう辛くなった。

イカ墨パエーリャ

25日の補完。イカ墨はパッキングされてるやつで、ほかにあさりと冷凍イカを買ってきた。イカ墨はコンソメと一緒に湯に溶いておく。米は洗ってざるに上げておく。ニンニクを炒めて玉葱のみじん切りを加え炒めた後、米、あさり、いか、トマト、塩を加える。ざっと炒めてから、数度に分けてイカ墨湯を入れては煮詰める。ある程度煮つまったところでピーマンを並べて胡椒をふりかけ、ホイルをかぶせて230度のオーブンで15分ほど蒸し焼きにする。

殻つきのあさりとイカ墨の組み合わせもよかったけど、今度はあさりピラフを作るのもよいかな。

2008年02月25日

Subject: Bits from the DPL: FTP assistants, marketing team, init scripts, elections

debian-devel-announceへ現DPLのSamから。

FTPアシスタント
weasel、killer、tviehmannがFTPアシスタントに加わったよ。もっと多くの人がこのチームにすぐに加わるとよかったんだけど、それでもこれはとてもいいニュースだ。
マーケッティングチーム
ほかのFOSSプロジェクトではTシャツとかステッカーとかポスターとかでその成果を宣伝してるみたいだ。DebianでもDebian Marketing Teamを作ってそういう宣伝(ロゴ、Tシャツデザイン、壁紙などなど)をし、良いデザインにはエンドースメントを公式に出したりしたらいいんじゃないかなと思っている。あとはCDカバーとかスプラッシュスクリーンとか。このチームはDPLからの委任を受けるが、非公式開発者にも門戸を開きたい。どうやったらDebianに人々を引きつけられるかはDDでない人のほうがよく知ってるだろうしね。DDでなくてもプログラマでなくても興味があるならDPLに知らせてね。FreBSDロゴコンテストみたいに、フレンドリーなDebianマスコットを作成するコンテストにDebianから賞金を出してもよいと思ってる。
開発ニュース
先月に、pereがinitスクリプトシステム改良プロジェクトについてニュースを出してた。これは、LSBヘッダをinitスクリプトに加えるだけで済むもので、作業はゴールに少しずつ向かってる。initスクリプトを抱えてるパッケージをメンテしてたり、この作業に協力したいのであれば、プロポーサルを読んでみてね。そうしていけばLennyでお目にかかれると思う。
DPL選挙
DPL任期もあと2ヶ月。来月には選挙キャンペーンが開始するよ。Samは出馬しないと表明して、今もその心は変わってない。このFOSDEMにはたくさんのDDがきているから、良いDPLになると思われる人に実際に会って話してみたらどうかな。多分彼らは出馬なんて考えたこともなかったと思うけど。DPLになるってのは実生活にそれなりのインパクトがある。出馬すべきかどうか迷っていたり個人的に質問があるならSamに遠慮なく聞いてよ。経験を共有できると思う。

以上ここまでSamのメールより。うーむマスコット…。痛いのだけは勘弁だな。initスクリプトは順調なようで何より。DPL選挙はそろそろdancerj出馬かな。DJPLもそろそろ選挙委員会の準備しないといかんな。

まぐろ赤身づけ、大根つま、油揚と白菜の味噌汁

安く売ってた赤身をづけにする。漬け汁は醤油、味醂、わさび、白ゴマ。生姜やシソがあってもいいのかな。

ナッツクッキー

おやつ用に、中国でもらったナッツ(冷蔵庫の奥底にまだあった)を刻んで薄力粉やバター、砂糖と混ぜ、団子にしてオーブンで焼く。バーミックスミキサーだとバターの粘性や粉の固さに負けてしまってうまく混ざらないなぁ…。焼き立てではなくちょっと置いてしっとりさせたほうがおいしい。

ハンバーガー

23日の補完。ハンバーガー用のバンズはパン屋では売ってないし、売ってたとしても佐世保バーガーみたいに大きいものはないので、自作してみた。基本は普通のパンと同じで平たい円にして焼くだけだけど。しっかりこねたので、それっぽいバンズにはなった。直径は15cmくらい。

具はレタス、トマト、合挽ハンバーグ、ピクルス、玉葱、ケチャップ、マスタード。あ、ベーコンせっかく買ってきたのに入れるの忘れた…。味はボリュームがあってワイルドでけっこうおいしい。ベーコンを入れればもっとおいしかったかな。次回はもう少し小さめで作ってみよう。

2008年02月23日

チキン南蛮

「チキンステーキと鳥唐とどっちがいいかね?」とパートナーに聞いてみると、「油多めのステーキがいいな」という回答が。むぅ。と考えた末、両方のテイストのあるチキン南蛮を作ることにした。

  1. タルタルソースを卵、マヨネーズ、塩、胡椒、オリーブオイル、ピクルスを混ぜて作る。
  2. 鍋で酢、砂糖、味醂、醤油を煮詰めて甘酢ソースを作る。
  3. 鶏肉に切れ目を入れて塩胡椒し、薄力粉をよくまぶしてから溶き卵に漬ける。
  4. 鶏肉をからっとするよう揚げ、油を切ってから甘酢に絡める。
  5. サラダと共に皿に盛り、タルタルソースを添える。

和と洋の融合という感じで美味。

ジェノヴェーゼパスタ、ツナと卵のサラダ

21日の補完。バジルが安く売っていたのでパスタソースにする。

2008年02月22日

特殊文字処理、リナンバリング

あいかわらずInDesign Hacking with JavaScriptの作業にいそしんでいます。

InDesign側では強制改ページや1/4スペースなどのいろいろな特別な文字を入れることができるのですが、XMLではそのような表現ができません(一部はエンティティで可能ですが、必要なものほどそういうのが用意されていない…)。流し込みで済ませる上ではこういった見栄え操作もできるだけ元テキスト内に含めておきたいので、XMLインストラクションに埋め込まれたデータを拾って特殊文字化するライブラリ(libProcessXMLforSpecialCharacters.jsx)を書きました。

XML側ではこんな感じですね。「dtp」というパラメータ名の値にInDesign JavaScriptのSpecialCharacters enumerationで定義されている名前を全部小文字で書く。

<p>ほげほげ</p>
<?dtp pagebreak?><p>もげもげ...

あとはライブラリを次のように呼び出せば、インストラクションの直前に該当の特殊文字が挿入されます。

processXMLforSpecialCharacters(app.activeDocument, app.activeDocument.xmlItems);

もう1つ作ったのは、段落の自動連番機能の支援です。InDesignには連番機能が一応あるのですが、これはタグ構造ではなくて連続する同一段落スタイルかどうかで判断されちゃっています。このため、たとえば1番の説明の途中でコード例を挟んだりすると、2番目のものの番号が「2.」になるはずがリセットされて「1.」に戻ってしまうと。番号を単にテキスト化して編集するという手もありますがミスを招きやすそうです。ということで、スクリプトlibProcessXMLforRenumbering.jsxを作成。たとえばHTML風にol要素の中にli要素で各番号リスト項目が入っている場合、次のような感じになります。

processXMLforRenumbering(app.activeDocument.xmlItems, "ol", "li");

ロジックとしてはわりあい単純で、リストブロック要素を発見したらその中で項目となる要素を探していって、同じ項目要素が続いているならそのまま継続して番号を控えておき、別のものが挟まったら次に項目要素が来たときにその段落のnumberStartAtを変更するというものです。番号の前のほうで連番が変わったときには再度スクリプトを実行する必要があります。

2008年02月21日

ジャージャー麺

うどんに肉味噌(ごま油、豚挽肉、味噌、砂糖、塩、醤油、酒、味醂、片栗粉)、ネギにキュウリという組み合わせで。

2008年02月20日

shaperで帯域制御(簡易編)

いずれ別の場所でちゃんと書く予定だけど、Debianに入っている帯域制限ツールパッケージのshaperがすばらしいことが判明。

背景としては、そもそもDebian JPの保有するサーバの1つplat.debian.or.jpが、NOCの帯域があまり太くないところに最近アクセスがずーっと続いていて(とはいえ意図的なDoSとかでもなくて)、同じネットワーク内のほかのマシンにもつながりにくいという困った状況になっていた。んで、4〜5Mbpsくらいに帯域制限できるといいね、でも今のスイッチではそういう細かいのはできないしなぁ、iprouteを使った手法はLDPなどにもあるけどなんかわかりにくいなーとNOC系のIRCチャネルでしばし議論。

で、apt-cache search traffic shapeで出てきた「shaper - Traffic shaper init script (cbq.init) for Linux」を使ってみた。カーネルのNET_SCH*周辺の機能を使うが、Debianの標準カーネルではこれらの機能はモジュールとして用意されているので、特に再コンパイルの必要はない。

  1. shaperパッケージをインストール。
  2. /etc/shaper/に設定ファイルを作成する。名前ルールは後で調べるけど、とりあえずcbq-128.platのようにしておいた。「cbq-」が設定のプレフィクス、128がクラスID、platがクラス名。つまり、cbq-以外は適当に付けていい。
  3. たとえばeth0を使う入出力をあらゆる128Kbitにする設定。
    DEVICE=eth0,100Mbit,10Mbit  ←インターフェイスeth0、物理帯域幅100Mbit、チューニングパラメータ(~帯域/10)
    RATE=128Kbit                ← このクラスに与える帯域幅
    WEIGHT=10Kbit               ← チューニングパラメータ(~帯域/10)
    PRIO=5                      ← クラスの優先度。5が推奨
    RULE=0.0.0.0/0              ← 適用するネットワーク範囲。:の後にポートを指定することもできたり
    
  4. あとは、/etc/init.d/shaper restart で設定を反映するだけ。

これが本当におもしろいように効く。さすがに128Kbitはあまりにもなので現在は5Mbit制限にしているけど、帯域グラフで見ると本当に5Mで綺麗にシェイピングされている。ほかのマシンへのアクセスもすいすいになったし、すばらしすぎる。

中身としては、LDPにも書いてあるようなiprouteのtcコマンドを使った設定が内部的に処理されている。/etc/init.d/shaper compileとするとその内容を表示できるが、これを手で書くのはかなり難しいだろう…。

おでん

夕食はどうしようかなと思いつつ、結局おでんに。やや高いいわし団子を買ってみたんだが、これは強烈に青身魚の味でたまげた。これなら普通の紀文のでいいやという気が。

2008年02月19日

鯖の味噌煮、白菜と豆腐の味噌汁

和食に戻る。鯖は加圧15分だと骨までは無理だな。

サモサ風パイ包み

17日の補完。前に150円で買った脂多めの羊肉のヒトカケを使って具にしてみる。じゃが芋を茹でてブロック状に切り、やはり細かく切った羊、クミン、コリアンダーシード、チリパウダー、カレー粉、塩、胡椒、オリーブオイルと混ぜる。鍋で肉に火が入る程度に軽く炒める。パイシートで包んで、溶き卵を塗り、230度のオーブンで20分ほど焼く。

パイシートは出来合いなのでちょっと重めだけど、具との絡み具合がおいしい。

牛肉のトマト煮込み、フランスパン

15日の補完。パンの出来具合いはまぁまぁというところ。トマト煮は、牛肉とニンニクを炒め、人参、玉葱も炒めて、ハーブやセロリ、ホールトマトと一緒に圧力鍋で柔らかく煮詰めたもの。パンとの相性がいい。

2008年02月15日

『フードプロセッサーでお菓子革命―あっけないほど簡単な新しいお菓子のレシピ』



/

バレンタインデーにパートナーから贈られたレシピ本。

パイ、タルト、クッキー、スコーン、パウンドケーキ、チーズケーキ、ゼリーといったものをフードプロセッサで手早く(かつモノグサに)作る方法がいろいろ載っている。Amazonのレビューにもあるように、工程がこと細かに書いてあるわけじゃないので、いくらかの素養があって補完の効く人向けかな。 タルト皿やケーキ型とかがちょっとほしくなってきた。

大まかなレシピ説明(でもフードプロセッサ自体、そんなに「細かい」ものではないしね)の埋め草には、筆者の国際線乗務員時代の経験談や、(おそらくは筆者の自宅の)ガーデンとキッチンの写真などがはめ込まれており、本の作りとしてちょっとおもしろい。

しめ鯖、豆腐とネギの味噌汁

2/14はしめ鯖の日です。嘘ですが。塩締め1時間半、酢漬け30分と浅漬な感じだけど、このくらいのも魚の鮮度がよかったのでおいしい。

2008年02月13日

ラザーニャ

パートナーの誕生日祝いに久々のラザーニャ。Happy Birthday。ニンニク・玉葱・挽肉・赤ワイン・ホールトマト・塩・ハーブで作ったミートソースがなかなか良い出来に。ホワイトソースも鍋でちょっとマジメに作ってみた。

最近スイーツ(笑)脳なのでショートケーキも作ってみたのだけど、今回も膨らまずにクッキーケーキに…。ショボン。生クリームのほうはわりあいうまくできて、ラズベリーとも合っていた。別のレシピのほうがよさそうなので次回はそれで懲りずにリベンジ予定。

Debian JP Projectのメーリングリストサーバーが停止中

tachさんに作っていただいたカーネルで再起動したところ、そのまま帰らぬ人に…。このため、現在メーリングリスト/アーカイブ、IRC、Subversionが停止しています。

Webサーバーは別のマシン(こちらはDebian吊るしカーネル)なので動作しています。 原因は現地かリモートコンソール経由じゃないとよくわからなそうです。fsckでひっかかっているかもしれませんし(ちょっと怪しいエラーは以前に出ていた)、新しいカーネルで何か問題が出ているのかもしれません。

とりあえずtachさんをコール中です。夕方にならないとだめかな。→連絡頂きました。復帰は夕方になりそう?

17時に復旧しました。tachさんありがとうございます。原因は…GRUBが古かったらしい。えー。

item()とitemByRange()の謎

InDesign Hacking with JavaScriptのほうはぼちぼちとライブラリを追加/リファクタリングを進めています。今のところはまだ安定期ではないため、関数引数もわりあい頻繁に変わってたりします。

最近は側注対応(libSidenote)やツメ見出し対応(libSidemarker。本当は英語では何ていうんですかね。手近な洋書にはそもそもそういうデザインのがないんですが)を行い、そこそこ実用になっています。

さて、CS3ではすでに修正が行われていそうなことですが、少なくともCS2ではitem()とitemByRange()の挙動が妙に使いにくくて困ったものです。どちらもあるラベルまたはXML要素(属性)を検索してヒットしたものを返すのですが、

  • xmlAttributes.item("id")としたとき、idという属性がある場合にはその属性のXMLAttributeオブジェクトが返る。idという属性がなくてもXMLAttributeオブジェクトが返る。でもそのXMLAttributeオブジェクトが使える(プロパティを取れる)かどうかは調べることができない。アクセスして例外が起きて初めてわかるので、えらく使いにくい。
  • itemByRangeは2つの引数を取る。ある1つのものを探したいときには同じものを指定する。つまり、xmlAttributes.itemByRange("id", "id")という感じ。取れなかったときにはnullが返る。取れたときには、XMLAttributeの微妙な配列が返る。微妙というのは、たとえばこれをvar a = xmlAttributes...で取っても、aは配列ではなくてXMLAttributeオブジェクトになる。パラメータを取りたければa.name[0]とかする。テキストフレームのgeometricBoundsを取りたいというときも、textFrames.itemByRange("main", "main")[0].geometricBoundsのようにしたいんだけど駄目で、textFrames.itemByRange("main", "main").geometricBounds[0]。

まぁこういうのはInDesignのオブジェクト構成ではままあるようです。そういえば、スタイルのオーバーライドを解除するのをスクリプトからできないんですかね。placeXMLするとスタイルがオーバーライドされてしまうので、現状ではオブジェクトスタイルプロパティ経由で1つずつ適用し直すという不格好な方法をとっています。

2008年02月12日

シュークリーム

昨日はfjt家シークレットレシピに基づいてシュークリームを作ってみた。 分量はレシピの半分にして10個分。レシピはfjt夫妻神に聞きましょう(笑)。

生地はふわふわやわらか、カスタードはねっとり甘い。買ってきたあわだて器も使いやすいな。 初挑戦のわりにはいい出来かな。次回はもう少しグラニュー糖を減らすのと、糖衣用の粉砂糖を用意しよう。 絞り袋と口金がもう少し数と種類必要かなぁ。

海老フライ

えびふりゃー。今回は全卵ではなく、昼のお菓子作りで残った卵白を使った。全卵と違うふんわり加減で軽く、これはなかなかいいな。

鮭のソテーのタルタルソースがけ、ポテトサラダ

10日の補完。甘鮭を冷凍庫で放っておいたら塩鮭になってた…。タルタルソースはゆで卵、マヨネーズ、ピクルス、ピクルスの汁、塩、胡椒、ケッパーで。ディルウィードを散らしてみた。

台湾風味噌うどん

9日の補完。適当に作ったら台湾のジャージャー麺+タンツー麺に似たものに。味噌・醤油・砂糖に少しずつ水を加えながらとろりとするまで火を入れてソースを作る。豚挽肉と生姜を炒め、味噌を加えて混ぜ合わせる。茹でた細うどんにネギと豆腐を載せて、肉味噌をかける。ラー油をかけて混ぜてから食べる。

出来合いの肉味噌はしょっぱすぎるのが多いんだけど、自分で作ると加減ができてちょうどいい。YUUKIのラー油とよく合う。

2008年02月09日

牛丼

久々に牛丼を作成。干し椎茸、玉葱、牛肉、ネギ、しょうが。合わせに使ったキムチはちょっと辛味も酸味も不足だなぁ。

焼き餃子

7日の補完。日本全国で餃子ブームのようなので、餃子。

今回は少し工程を変えてみた。

  • 皮生地の寝かせは通常の倍の30分くらい。生地自体は薄力粉100g+強力粉100g+熱湯100ccと変わらない。ただ、皮の厚みには薄くなりすぎないよう注意し、封じるときにもしっかり閉じた。
  • これまで白菜はみじん切りにしてから電子レンジにかけていたんだけど、大きめの葉のまま鍋で茹でて、後からニラも加え茹で、絞ってみじん切りにした。白菜の量は増えているにもかかわらず、体積はかなり小さくなった。水分がぎゅっと固められて、食べたときにスープが出るようになった。
  • 生姜を多めに入れてみた。上品さがアップ。
  • 焼くときにゴマ油を多めにし、表面を揚げるつもりで焼いた。これで、カリっとした感じが強まる。
  • 湯はいつもより少な目にして、最後にゴマ油を少量注いだ。くっつかなくなった。

ということで、なかなかベストに近いものが完成。湯のさじ加減が難しく、上まで肉が詰まっていたものが若干火入れ不足なものがあった。こういうときには最後の段階でちょっと倒して側面を焼いてあげるといいようだ。

2008年02月07日

鶏肉とカシューナッツの炒め物

中華としてはオーソドックス系な料理なんだけど、カシューナッツが高いのよね…。

  1. 鶏肉は片栗粉を振り、紹興酒と刻み生姜に漬けておく。
  2. 多めの油で生カシューナッツを色付くまで揚げる。
  3. カシューナッツを取り出し、鶏肉を揚げるように炒める。
  4. 余分な油を捨て、豆鼓、ピーマン、ネギを加えて炒める。
  5. 中華醤油、紹興酒、ラー油、オイスターソースを混ぜ入れる。
  6. カシューナッツを入れ、塩、胡椒で調味し、最後にゴマ油で照りをつける。

久しぶりに作ったけど、おいしくできた。

いわしの干物、切干し大根の煮物

5日の補完。乾物尽くしだな。切干し大根は水で戻して切り、人参、油揚と一緒に炒めてだし汁や醤油、酒などで煮たもの。いわしは干物ながらも脂が乗っているのがよくわかるくらいむっちりしていて、焼くととてもうまい。

awsxomのAmazon ECS4対応

3月末でECS3.0形式のサービスを打ち切るぞコラというメールがAmazonから来てしまったので、渋々ととりあえずは日記のところの対応を始めることに。ベースはblosxom starter kitのawsxomで、少し中身をいじったりしてた。既存のページをいじるのはダルイので、互換性優先。

-       my $url = "http://xml.amazon.co.jp/onca/xml3?t=$asoid&dev-t=$devkey&AsinSearch=$asin&type=lite&f=xml&locale=jp";        my $outfile = "$cachedir/$asin.h
tml";
+       my $url = "http://ecs.amazonaws.jp/onca/xml?Service=AWSECommerceService&AWSAccessKeyId=$devkey&Version=2007-01-07&AssociateTag=$asoid&ResponseGroup=Medium&Operation=ItemLookup&ItemId=$asin";
+       my $outfile = "$cachedir/$asin.html";

 …

-       $detail{"Asin"} = $1 if ($buf =~ /<Asin>([^<]*)<\/Asin>/);
-       $detail{"ProductName"} = $1 if ($buf =~ /<ProductName>([^<]*)<\/ProductName>/);
-       $detail{"Catalog"} = $1 if ($buf =~ /<Catalog>([^<]*)<\/Catalog>/);
-       $detail{"ReleaseDate"} = $1 if ($buf =~ /<ReleaseDate>([^<]*)<\/ReleaseDate>/);
-       $detail{"Manufacturer"} = $1 if ($buf =~ /<Manufacturer>([^<]*)<\/Manufacturer>/);
-       $detail{"ImageUrlSmall"} = $1 if ($buf =~ /<ImageUrlSmall>([^<]*)<\/ImageUrlSmall>/);
-       $detail{"ImageUrlMedium"} = $1 if ($buf =~ /<ImageUrlMedium>([^<]*)<\/ImageUrlMedium>/);
-       $detail{"ImageUrlLarge"} = $1 if ($buf =~ /<ImageUrlLarge>([^<]*)<\/ImageUrlLarge>/);
-       $detail{"Availability"} = $1 if ($buf =~ /<Availability>([^<]*)<\/Availability>/);
-       $detail{"ListPrice"} = $1 if ($buf =~ /<ListPrice>([^<]*)<\/ListPrice>/);
-       $detail{"OurPrice"} = $1 if ($buf =~ /<OurPrice>([^<]*)<\/OurPrice>/);
-       $detail{"UsedPrice"} = $1 if ($buf =~ /<UsedPrice>([^<]*)<\/UsedPrice>/);
+       $detail{"Asin"} = $1 if ($buf =~ /<ASIN>([^<]*)<\/ASIN>/);
+       $detail{"ProductName"} = $1 if ($buf =~ /<Title>([^<]*)<\/Title>/);
+       $detail{"Catalog"} = $1 if ($buf =~ /<ProductGroup>([^<]*)<\/ProductGroup>/);
+       $detail{"ReleaseDate"} = $1 if ($buf =~ /<PublicationDate>([^<]*)<\/PublicationDate>/);
+       $detail{"Manufacturer"} = $1 if ($buf =~ /<Publisher>([^<]*)<\/Publisher>/);
+       $detail{"ImageUrlSmall"} = $1 if ($buf =~ /<SmallImage><URL>([^<]*)<\/URL>/);
+       $detail{"ImageUrlMedium"} = $1 if ($buf =~ /<MediumImage><URL>([^<]*)<\/URL>/);
+       $detail{"ImageUrlLarge"} = $1 if ($buf =~ /<LargeImage><URL>([^<]*)<\/URL>/);
+       $detail{"Availability"} = $1 if ($buf =~ /<Availability>([^<]*)<\/Availability>/); # FIXME
+       $detail{"ListPrice"} = $1 if ($buf =~ /<ListPrice>.*?<FormattedPrice>([^<]*)<\/FormattedPrice>/);
+       $detail{"ListPrice"} = $1 if ($detail{"ListPrice"} eq "" && $buf =~ /<LowestNewPrice>.*?<FormattedPrice>([^<]*)<\/FormattedPrice>/);
+       $detail{"OurPrice"} = $1 if ($buf =~ /<OurPrice>.*?<FormattedPrice>([^<]
+       $detail{"ImageUrlLarge"} = $1 if ($buf =~ /<LargeImage><URL>([^<]*)<\/URL>/);
+       $detail{"Availability"} = $1 if ($buf =~ /<Availability>([^<]*)<\/Availability>/); # FIXME
+       $detail{"ListPrice"} = $1 if ($buf =~ /<ListPrice>.*?<FormattedPrice>([^<]*)<\/FormattedPrice>/);
+       $detail{"ListPrice"} = $1 if ($detail{"ListPrice"} eq "" && $buf =~ /<LowestNewPrice>.*?<FormattedPrice>([^<]*)<\/FormattedPrice>/);
+       $detail{"OurPrice"} = $1 if ($buf =~ /<OurPrice>.*?<FormattedPrice>([^<]*)<\/FormattedPrice>/);
+       $detail{"UsedPrice"} = $1 if ($buf =~ /<UsedPrice>.*?<FormattedPrice>([^<]*)<\/FormattedPrice>/);

        # 著者部分の解析
-       $detail{"Author"} = parseAuthor($buf, "Authors", "Author");
+       #$detail{"Author"} = parseAuthor($buf, "Authors", "Author");
+       $detail{"Author"} = $1 if ($buf =~ /<Author>([^<]*)<\/Author>/);
+       my (@creator);
+       push(@creator, $1) while ($buf =~ /<Creator [^>]*>([^<]*)<\/Creator>/g);
+       $detail{"Author"} = join(", ", @creator) if (@creator > 0);

もともとがXML解析じゃなくて単なる正規表現一致をかけているコードなので、いろいろ無理矢理なところはある。

『逆引きUNIXコマンドポケットリファレンス』



/

OSSTechの武田さんと弊社社員陣による共著、私は監修という立場での参加。 もともとは社員のみで行うという前提でのかなり前の企画だったのだけど、紆余屈折の末にさまざまな方々にご協力いただく形となった(あれ、同僚には名前入れておきなよと言ったのに、どこにも掲載されていないな)。

「逆引き」の名のとおり、「ファイルを検索する」「バックアップからデータを復元する」といった目的や機能の見出しから、それに対応するコマンドが提示されるというスタイルになっている。対応OSとしてはFedora、Debian、FreeBSD、Solarisと多岐にわたり、530ページの中には多数のコマンドと差異についての注意が盛り込まれている。

特に他機種環境下では役に立つであろう1冊。

2008年02月05日

ナスとパンチェッタのトマトソースパスタ

バリ唐辛子、1個入れただけなのにあいかわらず辛いな。トマトは缶トマトと生トマトの両方を入れて、味や食感に変化をつけてみた。

回鍋肉

3日の補完。節分をすっかり忘れて中華にしてた。豆鼓豆を入れるとなかなかうまいな。 食材は牛肉(に片栗粉と紹興酒を振ったもの)、豆鼓、ニンニク、キャベツ、人参、ピーマン、ネギ、味噌、ラー油、紹興酒、オイスターソース、ゴマ油。

ビーフシチュー、自家製パン

2月2日の補完。ビーフシチューはちょっと水分が足りなくてしょっぱめになったかな。パンは今回はフランスの残り少々・リスドォル・全粒粉の組み合わせ。わりあいうまく出来たと思ったんだけど、パートナーによると靴墨っぽい香りがちょっとあるとか。んー、全粒粉でそんな匂いになるんかな。自身は特に気付かず。

ぶり焼き

2月1日の補完。この写真だけだとわびしそうだ(笑)。実際には鍋の残りに野菜を加えたものが別にあり。照りをつけるの忘れたけど、そのままのほうが味としては好きかなぁ。

Subject: armel port moving to debian archive

armelが公式アーカイブ入りした模様。これからじわじわとアーカイブサイズが増加しそうだ。アーキテクチャを絞る設定でミラーしている人は注意。

2008年02月03日

Subject: release update: release team, blockers, architectures, schedule, goals

ひさびさにlennyのRelease updateメールがHEから。

新しいリリースアシスタントにmadcoder、pkern、neilmが加わった。

今のところでかいリリースブロッカーはない。ちなみにリリースブロッカーとリリースゴールは異なり、リリースゴールは達成できないとしてもリリース遅延はさせない。

リリース対象アーキテクチャを再調整する。alpha、hppaの情報が不足している。armelについては検討中(FTPサーバへの収録は現在作業中)。

現時点のリリーススケジュールは次のとおり。

3月前半
初期ソフトフリーズ。メジャーバージョン更新について注意を払ってもらう。stableに入れるべきだと思うものについてのみ、unstableにアップロードすること。さもなければexperimentalを使うように。
リリースゴールリストのフリーズ。リリースでの実装目標を確定。lennyには達成が難しいと思われるものは除去する。
第2回BSPマラソンを開始。DDは参加すべきである。
4月前半
essentialなツールチェインをフリーズ。
6月半ば
非essentialなツールチェイン(debhelper、cdbsなど)およびすべてのライブラリをフリーズ。
7月半ば
フルフリーズ。直前になってあわててアップロードしないように!
9月
Lennyリリース!

現在RCバグは460。この大量のバグを減らすためにBSPマラソンを開催し、0-day NMUポリシーも適用してバグを潰しまくる。

  • 3/7-3/9: BSP on weekend。qa-ftbfs潰し。アップグレードテスト。
  • 4/4-4/6: BSP on weekend。d-iおよびインストール処理。ドキュメント。アップグレードテスト。
  • 5/1-5/4: BSP on weekend。デスクトップ関連。その他RCバグ。

RCバギーなパッケージで被依存関係に縛られないものはtestingから落としていく。RCバグがあって4週間以上放置され、解決に向けた進捗も見られないものは削除。当面は被依存関係のないものを削除するが、リリース真近になっても解決されない場合には被依存関係のもの含めて削除することがある。devscriptsパッケージのrc-alertコマンドでチェックすること。

現時点のリリースゴールは次のとおり。

  • debmakeを除去。
  • debian/changelogおよびdebian/controlにUTF-8を利用。
  • /bin/shをdashに。

testingにまだパッケージが入らない場合には、grep-excusesコマンドを使ってみるとよい。

Subject: DebConf8: registration and call for papers

8月10日〜16日にアルゼンチンのマルデルプラタで開催されるDebconf8の参加受付および論文募集が開始したとのアナウンスが出されていた。

去年の参加者はユーザーページから、そうでない人はこちらでアカウントを事前に作成する必要がある。ログイン後は少なくともGeneral、Contact、Travelの欄を埋める必要がある。GeneralのDebConfとDebCampに注意すること。"I want to attend this conference"のチェックを付けないと無効になる。

旅行計画は早めに行うことをお勧め。こちらに旅情報を掲載している。旅費のスポンサーシップは4月か5月くらいに決定したい。スポンサーシップを受けたい人は、3月31日までに申し込み、登録時にできる限りの情報を埋めること。

DebCampは8月3日〜9日の期間に行う。参加希望者はキャンプでの作業予定を記述すること。

3月31日までの登録者には食事と宿を提供予定。および、ProfessionalとCorporateのコースを用意する。Professionalは1個人/法人あたりUS$250のコスト負担でDebconfを金銭面で支援してもらう。お礼としては3〜4ベッド部屋の代わりにダブルルームを提供する。Corporateは企業向けにUS$1,000でカンファレンスのWebサイトでの掲載、ダブルルームまたはシングルルームの提供を行う。なお、3月31日以降の参加者については、Professional料金を支払っていただく。

論文、プレゼン、議論セッション、チュートリアルの申し込みは3月31日まで。プロシーディングはオプショナルだが、早い英語についていけない人のためにも用意してくれたほうがいい。DebConfでの講演の模様は(出来れば)ライブ中継され、資料と共にビデオファイルがサイトに置かれる。論文応募をするには、DebConfに登録後、「New event/paper」ボタンをクリック。

期間のスケジュールは下記のとおり。

Schedule:
Saturday	 2nd Setup
Sunday		 3rd First day of DebCamp
Saturday	 9th Last day of DebCamp (and arrival day for DebConf)
Sunday		10th First day of DebConf talks
Wednesday	13th Day trip
Wednesday	13th Conference dinner
Saturday	16th Last day of DebConf talks
Sunday		17th Cleanup, leave
Monday		18th DebianDay (in Buenos Aires)

2008年02月01日

水炊き鍋

なんとなく鍋な気分だったのと、前に買っておいた春菊をそろそろ食べとかないとということで。へべすぽん酢うまい。