11/24 (水)
[MyWeb] 「食べ歩いた記憶」のページを更新
更新が著しく滞っている食べ歩いた記憶のページを2009年分まで更新した。
前回の更新は2006年5月15日なので、 5年近くほっといたことになる。 初代のデジカメ(DiMAGE Xi)の調子がおかしくなって、 どう撮影しても暗くくぐもった写真しかとれなくなってから、 食事の記録を残さなくなったのが班員か。
今年の4月に新しいデジカメを買ってからは、 また飯の記録が増えているので2010年分を整理するのはメンドクセェ (T_T 。 というか、いい加減この手書きの日記をブロクシステムに移行したい。
11/21 (日)
アパートにケーブルTVが導入される
アナログ放送の停波をうけてアパートにケーブルテレビが導入されることになった。 開設曲は iTSCM。 今日はアパートのテレビ端子の交換のための室内工事で業者がやって来た。
工事は15分ほどで終わる。 工事中に端子の裏側になにかあやしい装置を仕掛けていったが、 なんだったんだろう。 後で見てみる。
togetter は MySQL で動作しているのね
togetter は MySQL で動作しているらしい。 今日、アクセスするとたまたま以下のようなエラーメッセージが表示された。
Exception:SQLSTATE[HY000] [2013] Lost connection to MySQL server at 'reading initial communication packet', system error: 110
こういうメッセージが外部に見えてしまうのは、どうにかならんものかしら?
11/17 (水)
[Linux] Linux の red-black ツリーをまるごと削除する方法が知りたい
Linux カーネル部分で red-black ツリーを使った時に、 そのデータの回収が必要になる。
struct mytype { struct rb_node rb_node; int data; };
ふつう red-black ツリーのノードはデータ自身に埋め込むので、
struct mtype
のインスタンスとして回収する必要がある。
他のコードを見ると
ツリー全体を削除する場合でも rb_erase を使って red-black ツリーのリバランスがしているようだ。
void delete_all(struct rb_root *root) { struct rb_node *node; while ((node = rb_first(root)) != NULL) { kfree(container_of(node, struct mytype, rb_node); rb_erase(node, tree); } }
でも、もうこのツリーは使わないので調整なんかしなくてもいいので、 さっさと削除してしまいたい。
以下のように書ければいいのだが、これでは動かない。南無南無。
void delete_all(struct rb_root *root) { struct rb_node *node, *node_next; for (node = rb_first(root) ; node ; node = rb_next(node)) { node_next = rb_next(node); kfree(container_of(node, struct mytype, rb_node); node = node_next; } }
P.S.
この rb_erase
を使った一括削除は O(N * log(N)) のオーダーがかかるようなので、ノードが増えた場合には実用にならないようだ。
はい。struct mytype 構造体に struct list_head を入れて「red-black tree のノード間の双方向リンク」を作っておいて、一括削除はそちらを使うという方法に逃げました。これだと計算量が O(N) のオーダーですし。
ただ最終的には black-red tree を巡回してリーフノードから削除するルーチンにしようと思っています。これも O(N) オーダーに収まりますし、余分なメモリ消費が押さえられますから。ツリーの深さ分のスタックが必要になりますが。
「スタック〜」とは再帰を使うということでしょうか?
確認してませんが、解放するだけならループでいけそうに思えます。
[2]のコメントでスタックと呼んだのは First-In First-Out の配列を想定していました。カーネルはスレッドスタックのサイズに制限があるので再帰関数呼び出しを使うのは難しいと思われます。
このスタックに red-black tree の各段の操作中のノードのポインタを保持しておくつもりでした。しかしよく考えると「rb_right と rb_left の両方が NULL なら free して親ノードに戻り、親側から自分を削除する」という処理を繰り返せばスタックも不要ですね。
11/9 (火)
Amazon MP3日本版が開始
Amazon.co.jp で DRM フリーの MP3 ファイルの販売がはじまった。 2005年の8月にiTune Music Store Japanが開始して以来の大きなオンラインミュージックストアの開設ね。
- amazon.co.jp | MP3 ダウンロード
- /.J |Amazon MP3日本版、突如スタート
- Internet Watch | 日本でも「Amazon MP3 ダウンロード」、DRMフリー楽曲が1100万曲以上
- ITmedia | Amazon MP3、日本版スタート DRMフリーで音楽配信
販売形式は普通の Amazon 商品と同じだが、 Amazon MP3 ダウンローダーというソフトも提供されている。 アルバムや複数曲をまとめてダウンロードする際は Amazon MP3 ダウンローダーが必要らしい。
楽曲の揃えはまだまだ悲しい状態のようだ。 この先、DRM フリーなのでメジャーレーベルが参入を果たすかどうかは分からないのが辛いところだ。
11/5 (金)
古代メキシコ・オルメカ文明展@古代オリエント博物館 (公式)
今日はお休み。 池袋サンシャインシティ内ので開催されている「古代メキシコ・オルメカ文明展」を見てきた。
プレ・マヤ文明の展示を見るのは、 大英博物館展のような色々ごっちゃになったのを除くと初めて。 メキシコ/マヤ・アステカの展示よりも ペルー/インカ展の開催の方が多いよね。 昨年も黄金の都シカン展が来たし。
展示内容は原則撮影禁止だが、 オルメカヘッドだけは OK (フラッシュは禁止)。 高さ176cm、幅120cm、厚み107cmというしろもの。 実物は紀元前1200年ごろに製作されたらしい。
展示内容は全体的に小展示物が中心で、 オルメカ〜アステカに見られる特徴的な壁画もほとんど実物はなく、 壁画を紙に魚拓のように写したものだけだった。 量的にも1時間あれば全部見れる内容で、物足りない。
ただヒスイ製の仮面は面白いので一見の価値あり。 アステカの仮面というと装飾やデフォルメの入ったものを想像するが、 能面のように滑らかで写実的な仮面が作られていたようだ。 これ以外にもヒスイ細工は見事だ。
ナンジャタウン (公式)
古代オリエント博物館を後にした後、 同じサンシャインシティ内にあるナムコナンジャタウンに入場。 晩飯を餃子にする。
池袋餃子スタジアム
新横浜ラーメン博物館形式の餃子の屋台が並ぶエリア。 餃子スタジアム内にもアトラクションやギミックがある
とりあえず3軒で餃子を食べる。
神田餃子屋 「しそ餃子」 |
しそで肉を巻いている |
上富良野餃子 神龍 「北海道ジンギスカン餃子」 緑色なのはジェノベーゼ。 |
食べなかったが「かに塩あんかけ餃子」というのもある。 |
博多鉄なべ餃子 「鉄なべ餃子」 |
もののけ番外地
無料のアトラクションコーナー。
東京デザート共和国
ケーキやデザートのエリア。
アイスクリームシティ
ケーキやデザートのエリア。
「GELATO NERO」というイタリアンジェラーの屋台でソフトジェラートを食べて帰る。
建物
天にそびえるサンシャイン60。
今日初めて見た地下鉄の車両
有楽町線の東池袋から乗った地下鉄の車両は貫通扉がガラス製になっている。 なんか凄いおしゃれな電車ね。
有楽町線・副都心線 10000系というのね。 2006年から走っていたのか。 知らなんだ。