最新 追記

おこたの国


2006-08-05

_ [Diary] 冷や水

梅雨明け宣言とともに湿度が下がってくれてうれしい。これでエアコンはしばらくお休みさせることができそう。今日も朝からいい天気。温湿度計見ると、50%を割ってるではないですか。てなこんなで、数年ぶりに自転車を駆り、多摩川脇を遡ってきました。

数年乗ってない自転車は、タイヤの空気が完全に抜けてました。マンション前から下り坂なんだけど怖くて仕方がない。どっかのネジがゆるんでんじゃないか、んでもって自転車が解体しちゃって大惨事になるんじゃないかと気が気でない。とにかく最徐行でスタート。乗ってると後輪に違和感の出る箇所があるのがわかる。小石の多いところを通ったりするともうテキメンにわかる。前輪にもブレが出てる。これ、整備してもらうと直るんかなぁ。それとも買いなおした方が安いんだろうか。

ともかくもウチを出て、市役所前の道を抜けて鶴川街道へ。多摩川原橋周りが整備されてから通ったことが無かったのだ。旧道と合流するあたりの矢野口交差点(今年の4月に開通されたばかりなので、新道はまだ地図に反映されてない)あたりはまだ工事中だったけど、それ以外はかなりキレイになったね。あの、車が通るとスゲエ振動が歩道に伝わってきていたオンボロな多摩川原橋が、両端の右折専用レーン含めると 5車線もある立派な橋に生まれ変わってるのが、なかなかに感動的だった。

川を渡るあたりはまぁ余裕ですな。つうか、府中のサイクリングロードの終端であるこのあたりまでは平気。ここからが問題。目指すは、玉川上水の取り入れ口であるこの辺なわけですが、数年ぶりで、しかもこの日差しの下、いきなりあそこまで行くのは無理じゃろうとは思ってた。別に身体を鍛えようなんてハラはないんで、無理するツモリもないわけで、まぁ、様子を見ながら行こうかいなと。

数年ぶりなのでいろいろ変化してるところがあるかと思いきや、殆ど変わってなかった。2つくらい? 中央道が多摩川を渡るところのちょい下流に作ってた橋は開通してた。あれはバイパスだったのか。重機が橋の上で作業してたんで、まだ完成したわけではなさそうだけど。中央線が川を渡るあたりでは、堤防上から河川敷に降りる道が階段に変化してて、泣く泣く砂利道のスロープを使うハメになったり。

しかし、久々に自転車に乗って、慣れてないと滅茶苦茶シリが痛くなるってことを思い知らされる。座ってるだけなのに、どうしてこんなに痛いかね。

結局は、八高線と交差するあたりで危険を感じて引き返すことに。この危険信号、条件付けが30代のまま更新されてねえわ。帰りは多摩川原橋まで戻ったりせず、是政橋を渡って最短でウチにたどり着こうとしたんだけど、是政橋を渡るあたりでエネルギーが枯渇。風にあおられて前に進めなくなってやんの。呼吸困難になって、マジで倒れるかと思ったわい。稲城駅前の坂は手で押して上る。変速機なんて付いてない自転車でおまわりさんが追い抜いてったのが結構頭にクる。転がり込むように部屋に入り、風呂場に直行、シャワーを浴び、水風呂に浸り、熱が下がるのを待つ。かなり頭が熱くなってるもんだ。上がってから横になる。一時間は動けなかった。なさけない。

_ [COMP] iPod nano のリセット方法

夕方は神保に向かう予定だったので、一時間の昏倒のあと活動を開始する。まずは、電車移動時の標準装備である iPod nano + ER-6i を手に取る。げ。iPod nano がハングしてる。実はこれが 2度目です。前回は使ってる途中でハングした。ボタンが効かない。停止も、電源OFF もできない。まぁこの時は、放置してバッテリーが上がったあと、再充電すると復帰してた。今回は停止状態でハングした。ホイールだけは反応する。放置すると液晶が消える。HOLD スイッチを操作するとまた液晶が点く。再生できないんでバッテリーが上がらない。ER-6i のような耳栓型イヤホンなしに電車に乗るのは恐怖だ。仕方無しに予定は変更し床屋へ。

戻ってきてから見てもバッテリーが減った形跡はなし。仕方ないのでマニュアルを発掘することに。マニュアルには、ハングした時の操作方法が、「iPod nano をリセットする(iPod nano が応答しない場合) 」として説明してあった。

  1. HOLD を ON/OFF する。
  2. MENU と センターボタンを同時押し。
  3. 押したまま Apple ロゴが現れるのを待つ。

つうわけで、次回はきっとマニュアルを発掘できないだろうから、ここにメモしとく。

追記

当たり前っちゃあ当たり前だが、Web 上にもドキュメントはあるんだった。http://www.apple.com/jp/support/ipod/ 最初のタグがトラブルシューティングになってるのが、さすがだね。で、リセット方法はその一番最初にあるのでした。


2006-08-09 年寄りだから

_ [COMP] シェルの入出力切り替え

ふとしたことで、Windows 2003 上で動く CMD.EXE のバッチファイルの一部を見る機会があった。そこに、

command > output-file 2<&1

てな感じで書かれてたもんでビックリして、書いたヤツを呼び出し、

command > output-file 2>&1

の間違いだろ? そもそも「2<&1」ってどういう意味だよ、と尋ねると、ヘルプにそう書いてあったんで真似したんだという。ヘルプってどの? と聞くと、スタートメニューの「ヘルプとサポート」で「リダイレクト」を検索するとでてきますって、と答えが返る。

既存ハンドルにリダイレクトを指定するには、アンパサンド (&) 文字を使用し、その後にリダイレクトするハンドルの数値を続けます(&handle# のように指定します)。たとえば、次のコマンドはハンドル 2 (STDERR) をハンドル 1 (STDOUT) にリダイレクトします。

1<&2

[Windows XP ヘルプの「コマンド リダイレクト演算子を使用する」より引用]

ほんとだ。書いてある。でも、上の文章を何度読んでも意味がわからない。

そいつがやりたいことはもちろん、stdout, stderr 共に output-file に書き出すことであり、実際、「2<&1」でできてるという。CMD.EXE の構文は変態か?

もしやと思って、man sh する。げ、あるよ。bourne shell でも同じだよ。しかも 7th edition のマニュアルに載ってるくらい古くからあるよ。でもって、「<」の説明の方が主じゃねぇか。

<&digit
       The standard input is duplicated from file descriptor digit; see
       dup(2).  Similarly for the standard output using >.

<&-    The standard input is closed.  Similarly for the standard output
       using >.

If one of the above is preceded by a digit  then  the  file  descriptor
created is that specified by the digit (instead of the default 0 or 1).
For example,

     ... 2>&1

creates file descriptor 2 to be a duplicate of file descriptor 1.

ウチに帰って、4871483517を見てもやっぱり載っている。 なんてこったい、俺が知らなかっただけか。

しかして、「2<&1」はどういう意味になるんだ? 考え中、考え中、考え中…

結論、「2>&1」と同じだ。

「<」「>」の後ろに付くのがファイル名なら、両者の違いは意味がある。指定されたファイルを新規にオープンするわけだから、O_RDONLY で open(2) するか、creat(2) するかは大きく違う。が、「<」「>」の後ろに付くのが「&digit」なら何も変わらない。dup される file descriptor は既にオープンされているのだから、変わりようがない。 n1>&n2 も n1<&n2 も、同じ dup2(n2, n1) にしかならない。

いやあ知らんかった。「n1<&n2」なる構文が存在することも、「n1>&n2」と意味が同じってことも。そんでもって、こんな基礎的なことを今まで知らんかったということにビックリしてる。あたしゃあ、20年もの間、何を見てきてたんでしょうね。

あ、そだ。CMD.EXE が同じことをしてるかどうかは知りません。ヘルプのあの謎な文章の例は、「1<&2」ではなく「2<&1」ないし「2>&1」でないといけないんじゃないかなぁとは思うけど。

ちなみに、Plan9 の rc では「n1>&n2」を「>[n1=n2]」と書くらしい。慣れの問題だとは思うがわかりにくい。「n1>&n2」だと、n1 に書いたデータが n2 に流れ込む感じが「>」に出ててわかりやすいのに、「=」だと流れの方向がピンと来ないじゃないか。いや、「n1>&n2」が「n1<&n2」と同じと知った今でもこう思うのは変なんだけど、20年もの思い込みはそうそう崩れるものじゃないんだな。


2006-08-12

_ [COMP] dup(2) の隠し機能

水曜の続き です。bourne shell での「n1>&n2」の実装がどうなってるのか気になって、http://www.tuhs.org/ から持ってきてた 4.2BSD のソースをごそごそ調べてみた。dup2(2) がない時代に「n1>&n2」を実装しようとすると、close(n1) したあと、n1 が返るまで dup(n2) を繰り返し、そのあと無駄にしたのを close(2) しとくなんてのしか思いつかなかったので、どう実装しているのか興味があったのだ。 S. R. Bourne の変態チックなソースにゲンナリし、目的のコードには辿り着けなかったけど新たな発見が!! main.c に Ldup なるものがあるんだけど、こいつが dup2(2) をエミュレートしてるわけだ。

Ldup(fa, fb)
        REG INT         fa, fb;
{
        dup(fa|DUPFLG, fb);
        close(fa);
        ioctl(fb, FIOCLEX, 0);
}

ね。dup(2) に引数が 2つあるんですよ。これ、スゴイと思いません?

ちなみに、DUPFLG は src/bin/sh/dup.h で 0100 に #define されてる。これはきっと、dup2(2) が作られる以前から dup(2) にはその機能が実装されてたってことですね。第一引数の第6ビットを立てることで、第二引数があることを示してたわけだ。それが Bourne shell で使われてるって事は、かなり初期の頃から実装されてたことになる。

この、dup(2) の隠し機能はいつから実装されたんだろう。同じ 4.2BSD の src/sys/kern/kern_descrip.c の dup() を見ると、

       if (uap->i &~ 077) { uap->i &= 077; dup2(); return; }   /* XXX */

って書いてある。まぁ、この頃には dup2(2) は存在してるから、こういうコーディングになるやね。コメントが意味深でいい。潔癖症には耐えられんだろうな、こういうの。7th Edition には dup2(2) がもうあるので、隠し機能の実装はもっと前? 4756118445 を見ると、それらしき部分はない。7th Edition のソースって公開されてないんだっけ?

ioctl 使った、close-on-exec の操作ってのも初めて見たかもしれない。fcntl(2) でやるものだというのは、4.2BSD 以降の知識しかない若輩者の思い込みか。

「いつから」は、たぶん、7th Edition 前になるんだろう。USG 系列かな。USG のソースは公開されないだろうし見るわけにもいかないので、遡れるのはここまでか。

逆はどうか。4.4BSD-Lite2 ベースの kern_descrip.c の dup() を見ても、dup2 を呼び出すような部分は存在しないので、もうそんな機能は存在しない。

main()
{
    char msg[] = "test message\n";

    if (dup(1|0100, 2) == -1) {
        perror("dup");
        return 1;
    }
    write(2, msg, sizeof(msg) - 1);
    return 0;
}

てなのを実行すると、「dup: Bad file descriptor」といわれてしまう。そもそも、#include <unistd.h> してるとコンパイルすらできないしね。でもって、「いつまで」は CSRG の出してる 4枚組CD を精査すればわかるんだろうけど、興味がわかない。

つうことで、bourne shell って、思いっきり手を入れないと build できないってことだけはわかった。かつては、ash より軽い shell が欲しくて、bourne shell を build できかなぁなんて思ってたもんだけど、ここまで PC の能力が上がってしまうと、どうでもいい問題になってしまったな。

そうそう。「dup2(2) がない時代の n1>&n2 の実装」については、csh に、「n1 が返るまで dup(n2) を繰り返し、そのあと無駄にしたのを close(2) しとく」コードが 4.2BSD のものにありました。7th Edition 互換を示す V7 が #define されてないと使われるようになっている。dup(n2) を無闇に繰り返したりせず、再帰でキレイに書いてあった。

renum(i, j)
        register int i, j;
{
        register int k = dup(i);

        if (k < 0)
                return (-1);
        if (j == -1 && k > 2)
                return (k);
        if (k != j) {
                j = renum(k, j);
                close(k);
                return (j);
        }
        return (k);
}

こっちも「過去に生きる年寄りのための tips」としては大きい収穫だな。

本日のツッコミ(全1件) [ツッコミを入れる]

_ Anthonywerse [As you will inevitably learn on your path to losing weight..]


2006-08-15

_ [MANGA] 買い物リストの元ネタ変更

本屋の店先で見たまんがを自分が既に買ってるかどうか、記憶だけで判断できるのは 20代までであろう。まんがってのはやたらめったら発行され、とんでもない数があっという間に廃刊になっていく。廃刊になるとよほどのことがないと再刊されたりしない。迷ってると買い逃してしまい二度と入手できなくなる。そんなタイトルが年々増えてくるもんだから、「迷ったらとりあえず買っておく」なんてことを 30過ぎたあたりから始めてしまった。で、部屋にはダブりまんがが山積みになっていくわけだ。いや、ダブりとわかってるってのはまだマシだ。気付いてないだけで実は、なんてことになってるはずだ、絶対に。

これではいかんだろう。電算屋としては機械的に解決できるはずだと考える。

殆どのまんがには ISBN が付いている。自分ちにあるまんが全部の ISBN を読み取って DB にいれておき、簡単な CGI で参照できるように組み、 出先の本屋から疑惑のまんがの ISBN をケータイで入力して、持ってる持ってないをチェックすれば完璧ではないか。

考えるのはタダである。だいたい、「自分ちにあるまんが全部の ISBN を読み取」るなんてのからして手動では不可能だ。なら、バーコードリーダーを買い込むのか? なんか仕事してるみたいだぞ。あれこれ調べ始める。いまどきのケータイならバーコードが読み取れるらしい。しかし、あれって QR コード以外が読めるんかいのぉ? で、読み取って、そこから書名やらはどうやって手に入れるんじゃい。まぁ、そこは amazon だよりかねぇ。ISBN さえあればそこは問題ないだろう。やっぱ、バーコードリーダーか。

とかなんとか、あれこれ考えても、週末1回分で片づかなければ進展しない。物理的なデバイスを必要とした時点で、この計画は遠くなった。

それでも、新規に購入する分くらいは DB 化してもよかろうってことで、ウェブ上で公開されてる新刊情報から購入リストを作り、買ってきたものの ISBN は手動で入力して DB 化する仕組みを作った。が、あっという間に ISBN の手動入力をサボるようになってしまった。当然じゃん。それこそバーコードリーダーでもあれば別なんだろうけど…

問題は、物理デバイスの導入をケチってることであるんだが、逃げ道がないのもいけなかった。ウェブ上で公開されてる新刊情報に ISBN が載ってないのだ。あれこれ探して、ここ数年はまんが王倶楽部を使ってきた。ここの CSV データはいいかげんだけど、予約・販売に使ってる HTML データの方はさすがにキチンとメンテをしている。が、ISBN が無いんだよね。ISBN さえあれば、購入リスト上で「買ったぞ」フラグを立てるだけで、「自分ちにあるまんが」DB ができあがってくのだ。新刊分だけしか網羅できないとはいえ、 新刊リストを作りだしたのって、4年も前なので、元データに ISBN が入っていれば、逃げの運用でもそれなりの蓄積になってたはずなのだ。

ということで、ちょっと昔の話の続きです。

見つけたのだ。ISBN 付きのデータを。本やタウン近刊情報である。しかも、シリーズ名や判型まである! これは大きい。古いデータが残ってないのが残念だが、今月分と来月分があれば実運用に耐えられる。ここを探さなかったはずはないので、以前はこういう情報は出してなかったんだと思われる。あとは精度がどれくらいあるかだ。まんが関連は結構ギリギリになって発売が来月に延びたりするものだけど、今月分の更新日も7月頭のままになってるので、変更分は反映されないのかも。変更に関しては、まんが王倶楽部は強いんだけどな。1次データは本やタウンのものを使って、まんが王倶楽部の方は変更情報のみを使うようにするか? データの比較をしながら様子を見てみよう。

つうことで、本やタウン情報で来月の発売データを試しに作ってみました。 http://www.noroi.jp/d/20060815.2006-09.xml。 それなりにデカいので、 Firefox で読むとしばらく返ってこなくなるので注意が必要です。 さて、こうなったら腹を括って、バーコードリーダー導入を再検討するかなぁ。

本日のツッコミ(全2件) [ツッコミを入れる]

_ ed [買おう買おう。これなんかどないだ? http://www.cfcompany.co.jp/product/socke..]

_  [お、よさげ。 てか、それより ed さんは、「それでも町は廻っている」と「恋愛ディストーション」が先ですってば。]


2006-08-17

_ [MANGA] ミス&ミセス/阿部川キネコ/アクションコミックス/A5/双葉社

4575940224 カバーの折り返しに、「色んなタイプの4コマ漫画を器用貧乏に」などと書いてあって、妙に納得。阿部川キネコというと、「4847034244」の印象が強いんだけど、確かに似た傾向の物は避けて作ってるなと。まぁわたしは「481245929X」が好きなわけですが。

ミコ(未婚)とキコ(既婚)という「まんまやんけ」なネーミングの二人の世界が実にあっさりと描かれていて好感触。って、たぶん、ワザと4480872248テイストな画風を狙ってるんだろうな。ミコが意図的に見せるダークサイドがアクセントになっていて、いい感じの奥行きが出てる。なんつうか、ほんとにバランスがいい。計算高いところが透けて見えるところが無いわけではないけど、そこはホレ、阿部川キネコだし。うまく乗せられちゃってんなぁ、と自覚できつつも、読んでて楽しいのだ。

最近、この手の、中高時代の女友達どうしがそれぞれの道を行きつつも近い関係を保ち続けている、ってのがベースになってる話が好みになってるようだ。そういや「4575939994」もそうか。それでいくと、ここで引くのはちょっと違うかもしれんが、「4022501995」は、そういう傾向で入りやすい世界だったんだなぁと思う。てか、そういう作品が増えてきてるのかもしれん。以前なら、女の古い友人どうしだと、確執面を描く方が多かったんじゃないかな。最近だと、私の好きな淡々とした生活を描いてくれる方が多い。うれしい傾向だ。単純比較なら絶対後者の方が難しいはず。何も事件が起きないところを魅力的に表現しなきゃいけないんだから。

ネタ的にも、この作品、なんら新しいところはない。切り口もありふれている。みんなどこかで読んだことあるような話ばかりなんだけど、読んでて楽しい。いやいや実にたいしたもんだ。つうことでお勧めです。


2006-08-27

_ [MANGA] Dark Seed-ダーク・シード-/紺野キタ/バーズコミックスガールズコレクション/B6/幻冬舎コミックス

4344807863 ようやく単行本が出た。Webコミックはイマイチ仕掛けが信じられんのでアクセスする気になれず、ここ最近では一番待ち望んでた単行本化ではなかろうか。やっぱ紙で読みたいしね。まんがは寝転がって読むもんだ。

さて、期待はもちろん裏切られず。待ってた甲斐がありました。魔法使いの弟子じゃなくて曾孫。余剰の力を石として結晶させ、それを握りしめて生まれてくる魔法使い。契約者にその石をにぎられてて、いっちょ前になるまでは力をまともに使えないってのが、実にうまく思春期な主人公たちの世界を転がしてる。

専門用語(?)がテンコ盛りだし、登場人物がどやどやと一気に出てくるんで、世界に入り難いって向きはあるんだけど、一旦入り込んじまったらまるで気にならん。もう! あの! 「きゃー」「うっとり」「きゃわきゃわきゃわ」な感じがたまらんのですよ、はい。そんでもって、「にゃぱあ!」で「はむーん」「ふにゃにゃーん」なセレストが最高です。いやいや、もちろんそれだけじゃない、それだけじゃないんだけど、やっぱり「重要な要素」ではあるのんですな。

物語としては、この巻はまだまだ、種をばら撒いただけの段階だけど、先がとっても楽しみ。やっぱウェブの方も調べてみるかなぁ。

ただ、減点要素はある。人物の描き分けがいまいちなので、これほど沢山の登場人物が出てくると混乱します。「4030144608」なんかは、読みながらキャラ表作ったもんね。意外に楽しかったりした。今回そこまでする気はないけど、リジーとモードの区別が未だにうまくでけん。名前も間違いやすいよな。『天使』の方の名前はクリスだっけ、クレアだっけ? みたいな。

もひとつ大きなマイナス点がある。制服がねぇ、「ずぼん」なのがねぇ。やっぱ、まほーつかいなコートの足元は黒ストがいいのになぁ、と「4344804821」を読み返しながら思うのでした。

_ [MANGA] COMITIA77

ちと用事があって、1時間ほど遅れて会場に着くと、ジャポニカ自由帖は売り切れてしまっていたのでした。結構ショックでかい。一巡したのち、「さっき見た売り切れ札は見間違いだったんでは」と意味不明な期待を抱いてもっぺんスペースへ行っても、やっぱり売り切れてて(あたりまえじゃ)、用事は後回しにすればよかったと激しく後悔。そもそも、COMITIAへ足を運ぶ最大要因となったサイトが今回は参加しておらず、かなりテンションが低かったってこともあり、午後からも用事があったこともあり、リーガの放送が未だに決まらないこともあり(違)、そそくさと会場を後にしたのでした。

滞在時間に比例して戦利品も少ないわけですが、その中でも、青木俊直の新刊「ひまわり」がキました。そらもう、ググっと。


2006-08-28

_ [MANGA] レモネードBOOKS/山名沢湖/まんがライフMOMO10月1日増刊号(通巻504号)/竹書房

どんな顔して MOMO をレジに持ってってんだ? という質問はとりあえず却下です。

でも気になるぜ!! 通販カタログに載ってる本棚の中の本!!(非売品) 不鮮明だけど目をこらしちゃう…

いやもう、思い当たるフシがありすぎて、腹がツリそうになるほど受けました。いやまぁそれだけなんですが、冷静に考えるに、4コマ雑誌を片手に声も立てられず腹を押さえて呼吸困難に陥っている中年男の図というのは、「哀れ」を通り越してもう… やれやれ。

しかし、本棚 6つでなんとかなるってのはうらやましい。うちはどうしようかなぁ。


2002|10|
2003|10|12|
2004|01|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|05|07|08|09|10|11|12|
2009|02|06|08|09|
2010|02|08|
2011|08|
2012|07|
2013|01|06|09|10|
2019|07|10|
2020|07|