2004年03月09日(Tue) 家のなかがなんだか寒いよ
● ちょっとだけオモコン中
sudoできなくちゃいけないコマンドは、/bin/rpm /usr/bin/mph-get /bin/rm /usr/bin/rpmbuildくらいだろうか?MAKEDEVがなぜ作れないのかわからなかったけど、rpmbuildしようとしていた。rpmじゃないところがニクイよね。
2005年03月09日(Wed) 遠方より友来たる
● わーい。
● CでDuck Typing
Duck Typingって一般的なプログラミング用語かと思ってたら、Ruby用語だったのですね。データの元の型に関係なくメッセージを送る(データに対してメソッドを呼ぶ)ことができる、という意味だろうと思います。
今、本職でやっている仕事のひとつは、装置のいろーんなステータスがいろーんなフォーマットで記録されているストリームから、欲しいステータスだけを取り出すソフトを作ることです。上のインターフェースはPythonかRubyで作るとして、ストリームとのやりとりはCのライブラリとして欲しい、という要求があります。もしかしてステータスへのポインタに対してto_sとかto_iとか呼べばいいんじゃないか?と思って実装を始めたのですが、これが大変でした。何しろどんな型のデータでも扱えなくちゃいけないので、Cではvoid*がでてきまくり。これをステータスの型に合わせてキャストして変換して、double*とかlong long*の領域にコピーするわけですけど、Bus errorとかSegmentation faultとか出まくりでございますよ。
なんとか形にはなってきたのですが、実際にどんな値であるべきかがよくわからないのでテストケースを書くのも一苦労だったりします。でも、まあ、CでもどうにかこうにかDuck Typingができるということで。(考えてみればRubyだってCで実装されてるのだからあたりまえといえばあたりまえだ。)
ところで、"walk like a duck" businessってどういうbusinessなんだろう…。
● [memo] IBM dWより興味深い記事2題
- 効果的なリスト処理でプログラミングを改善する - リンクリストの話みたい
- Linuxのデバッグ手法をマスターする - double freeの検出とかstrace、gdbの使い方とか
あとでよむ〜いつ〜。
2006年03月09日(Thu) 今日も土砂降りですよー
● [pda] POBoxに単語登録する
POBoxFEP。ぱあむあんりみてっど!(必要なことはすべて書いてある感じ)より、漢字列をコピー、読みを入力し未確定状態で/w。今回は「較正」を登録しました。
日本語文字列がPalm desktopからどう見えるかちょっとだけ興味はありますが、まだやっていない。とは言え電池が22%とのこと。今日中にやっとかないとね。
● [pda] Palm Desktopで日本語を表示する方法
試さないうちに解決方法がみつかってしまいました。すごい。ありがたい。レジストリを書き換えることによって使うフォントを変えるのだそうです。後でやってみよう。
(追記)HKEY_CURRENT_USER\Software\U.S. Robotics\Pilot Desktop\Core\FontGeneralをArialからMS UI Gothicに、…\FontSizeGeneralを11から12にしてみました。いい感じ。
● Happy Hacking Note
かっこえー!しかし欲を言えば、見た目には液晶画面がじゃまだよねぇ。
えーと…例えばキーボードの向こう側(PD-KB02だと電源スイッチのあるあたり)にプロジェクタが付いていてですね、使う時には机の上に画面が映し出されるというのは…電力も光学系の場所も無いですね。
あ、しかしこれはいいアイディアかも。電池も無線LANも搭載しておけばHHKだけ持って行ってどこででも作業ができる…だから電力と光学系の場所が。
● [pda] Blazerに日本語のテキストを送りつける
muttから、Shift JISコードのテキストファイルとEUCコードのテキストファイルをbase64でエンコードして添付したら、どちらも期待通り読めた。一方、本文にISO-2022-JPで文章を書いたり、ISO-2022-JPのテキストファイルをquoted-printableでエンコードして添付した(muttがbase64にはしてくれなかった)場合にはKIN、KOUTが直接表示されて内容は化けていた。UTF-8のテキストファイルをbase64でエンコードして添付した場合も化けていた。
つまり、Shift-JISやEUC-JPの文書なら添付ファイルとして閲覧できることがわかった。PalmTX、CJKOS 4.621、VersaMail 3.1C。
2007年03月09日(Fri) ちょっとVog?
● 古い方の自動車のオイルを交換。快調♪ でも、なんだか料金が高くなったような気がする。次回からは自分でやるかな…。待ち時間に、「入門UNIXシェルプログラミング第2版」を読み終えて、「Working effectively with legacy code」を読みはじめた。
● 86個のIPアドレスから104個のツッコミSPAMをいただいた。ワンタイムトークンで1個も受け付けずに済んだ。よしよし♪
● cpioにファイルのリストを渡すfindコマンドに-depthを付けるとうまく解凍できないアーカイブができる
「入門UNIXシェルプログラミング第2版」日本語版の322ページに、cpioにファイルのリストを渡すfindマンドには-depthオプションを付けるのが普通だ、と書いてあった。さっそくDocoMomoで試してみると、マウントできないinitrdイメージができてしまった。なぜだろう。
できたinitrdイメージをその場で解凍してみると、「cpio: sbin/cfdisk: そのようなファイルやディレクトリはありません」といったエラーメッセージが沢山表示され、解凍後のツリーにはほんの少数のファイルができた。できるファイルとできないファイルの違いはわからなかった。
findコマンドのマニュアルには、-depthコマンドは「ディレクトリ本体の前に、ディレクトリの内容を先に評価する。」とある。info findを見ると、こうやって作ったcpioファイルは--make-dirオプションを付けて解凍するようだ。カーネルがinitrdを解凍するときにはこのオプションは使わないような解凍をする、ということなんだろうな。
そうすると、逆にディレクトリを先にアーカイブして欲しくなるが、findにはディレクトリを先にする、というオプションは無いようだった。念のため、find . -print0 | sort -z | cpio -o -c -0 としてみた。
2009年03月09日(Mon) 降雪どころか地震まであったよ
● CAcert.orgのサーバ証明書を延長する
家サーバを閲覧しようと思ったら証明書が切れてると。あれ、今回はメールをもらえなかったような気がする。見逃したかSPAMにされたかしたかな?
というわけで、前回と同様、cacert.orgのwwwサイトにログインし、Server Certificates-Viewで、「View all certificates」をクリックし、左にチェックして、Renew。表示された証明書をコピーし、/etc/pki/tls/certs/server.crtとして保存しました。Apacheを再起動する(僕以外にアクセスしないけどapachectl gracefulってやってみた)と、今度は9月5日まで有効な証明書になりました。
● Dell Latitude Onで遊んでみる
先週からしつこく続く。ARMではないらしいということがわかったので魅力半減なんだけど、なんとなく。
Windows XPを起動して、C:\Program Files\Dell\Latitude ON Reader\ フォルダをいじる。このフォルダを適当にrenameしてから再起動すると、ログオンした時に復旧するかどうか訊かれる。復旧を選択すると、menu.lstなども含めて元のフォルダとまったく同じファイルが作られる。(menu.lstは編集前のものに戻る。)
このフォルダはrenameできるが消去することはできない。DocoMomoからマウントしてもファイルが消せないのが不思議。rename後に復旧した後には、Windows XPからrename先のフォルダを消去できた。
このフォルダをrename後、DocoMomoから同名のディレクトリを作成しようとしたら、Operation not permittedとなった。へええ。
(追記) Windows XPのcmd.exeからLatitude ON Readerを適当にrenameしたあとmkdir "Latitude ON Reader"したらディレクトリが作れてしまった。いろいろ不思議。起動前にfsck(じゃなくscandiskか)がかかったりしたので危ない橋はわたってるのかも :P
● ずんこが学校から持って帰ってきたらしいプリントに、「cm単位で長さを測る」という課題があった。アメリカもずいぶん文化的になったものだと思って(偏見)そのプリントを手に取ったら、下から「インチ単位で長さを測る」プリントが出てきた。こりゃ大変だわ。
2011年03月09日(Wed) 東海岸に出張
● LAX
早朝に到着してまだ暗いのだけれど人は多い。
Nexus Oneのテザリングを使って仕事をしたりNASA TVを観たり。Nexus Oneを体に近づけると3G接続だったのがEdge接続になって、動画が止まる。
● LAX-ERW B757
空いている。
97きのこ本、p. 217『育ちのよいコード』森田創さん。「野心を手なずけて立派なコードに育ったと、思わず目頭が熱くなります。」そうですよねー。コード、育ちますよね。
My Tracksで航跡を記録したりして遊んでいると、高度が下がってくる。池が凍ってるよ!
着いたらいつの間にかもう夕方。日本からハワイに東に飛ぶ時は5時間の飛行で夜が短かくなるけれど、東海岸に行くのに10時間飛ぶと昼も夜も短くなるんだね。
● プリンストン
自分としては昼か夜かわからないけれど現地時刻としては夜のごはんをホテルの近くのイタリア料理屋さんで食べた。子連れが多いのでそこそこ安いのかな、と思ったら高いことたかいこと。私立大学の近くは物価が高いのだろうか?しかし値段だけのことはあってとーってもおいしかった♪
> okuji [そう言えば、cpio版のinitrdの場合、GRUBから簡単にinsmodできるんじゃない?って話が昔あったんですけ..]
> zunda [ちょっと具体的にイメージすることができませんでした、すみません。えーと、カーネルをロードするのと同様にカーネルモジュ..]
> okuji [initrdの使い道の一つは、起動に必須なモジュールをあらかじめロードすることですが、GRUBからやってくれたらいい..]
> zunda [んー…。initrdに入っているカーネルモジュールはどれでもカーネル自体が起動してからinsmodできるような気がす..]
> okuji [うーん、言葉遣いで意志疎通がうまく行っていない気が。 GRUBがinsmodすると言ったのは「表面的にはそう見える」..]
> zunda [やっとわかりました! 失礼しました。PCが起動するたびにgrubがmkinitrd(の一部)相当のことをやってくれて..]