おまぬけ活動日誌

最近のツッコまれどころ

この日誌から Google してもらう


2002年11月25日(Mon) 曇り一時雨

Hot laptop burns scientist's penis

げげっ。空港で飛行機を待つ時には膝の上でつかったりしてるな。 気をつけなくちゃ。

今日の修理より。


2003年11月25日(Tue) シャア専用ずんこ

親が手をつなぐと三倍速く歩く。赤くないけど。


2004年11月25日(Thu) UPSに白熱電球をつなぐ休日

UPS役にたってへんやん

今朝、またメインマシンにリブートがかかっていた。そしてプチサーバーマシンも同時に。これはもうUPSが悪いに違いない、ということで、休みの日にのこのこ仕事場に出てきてUPSに白熱電球をつないで遊んでおります。60Wの電球が8秒と持たんではないかい。パソコンとモニター合わせて20分くらい持つと書いてあるのに。

これまではこんなことは無かったので、きっとバッテリーが悪くなったのだろう。使い始めて3ヶ月でダメになるのはバッテリーが悪いのか電力事情がなってないのか…。はあぁ。APCのテクニカルサポートも休日だというし、憂鬱だ。

とりあえず負荷をはずしてUPSを充電してみる。泡がぽこぽこと出る音が聞こえてくる。なんだかかわいい。が、もしかして負荷が高すぎて充電できてなかった?そんなことないよねぇ…。

そして望遠鏡も止まっていたことが判明。あらら。わがUPSはどんどん充電がすすんでいる。もしかして今まで電池に充電せずに使ってた?いつからだろう…。


2005年11月25日(Fri) もう金曜日ですか

風邪と祝日でシゴトはすすまず。つらいのー。

ウイルスバスター2006のフィッシング詐欺対策ツールバーはスパイウェアか?

セキュリティホールmemo。「URLフィルタ」や「フィッシング対策ツールバー」を有効にすると「アクセス先(って何?)」のURLとIPアドレスがHTTPのGETメソッドでトレンドマイクロのサーバーに送られるのだそうです。

暗号化はしてないみたい。(追記)高木浩光@自宅の日記によれば、「(秘密鍵で複合化するタイプの)暗号化処理をしてい」るのだそうだ。

もしトレンドマイクロを信じるとしても通信路は信じられないよね。トレンドマイクロのサーバーまでの通信路を誰かが覗き見ることができれば、その誰かはかなりの情報を得ることができそう。

今、家ではウイルスバスター2004を使っていて、そろそろ2005にしないとサポートされなくなるな、と思ったらもう2006しかダウンロードできなくなっていた。ピンチ。

(追記) ウイルスバスター2005みつけた→http://www.trendmicro.co.jp/download/product.asp?productid=44 よかった。

あいかわらずヘロヘロなわけですが

このヘロヘロさ加減は熱が高いせいじゃなくて体内の糖分不足かもしれない、という気がしてきた。もしそうならメシ食えばなおるぜい!

どちらにしろ仕事がすすまないのは実にまずいわけですが。

それにしても今回の風邪で筋肉が落ちたなあ。ジョギングなんてぜんぜんできないし。しょぼん。

たった三文の日本語を直すのにもう半日かかっている。あぁ…。はやぶさは順調に降下中。

「はやぶさリンク」:成否が分かるのは午前8時10分過ぎ

松浦晋也のL/Dより。Hayabusa Liveには、「何らかの理由により、はやぶさは上昇に転じました。」と書いてありましたが、松浦晋也のL/Dを見ると、着地していた可能性も無いことはなさそう。

さてどうなっているか。

固唾をのんで降りてくるデータを見つめる人たちを見つめる僕たち。

うまくいったみたいだよっ!

おめでとうございます!

そして英訳がRogueEngineerさんとかぶってしまいました。失礼しました。

[memo] ある点に近い直線上の点

直線0=ax+by+c上の点で、点(x0,y0)に最も近いのは、x=(b2x0-aby0-ac)/(a2+b2), y=(-abx0+a2y0-bc)/(a2+b2)。

GnuPlotで確認しようとして、小数点のない数が整数として扱われる(plot 2/3,2.0/3とかしてみるとわかる)のを忘れて苦労した。 RubyはともかくGnuPlotでこれはないのではないだろうか…。

はやぶさもヘロヘロらしい

松浦晋也のL/Dより、はやぶさの姿勢が安定しないみたい。スラスターの不調?がんばれ!

いや、僕がヘロヘロなのと同列に扱ってしまっては大変失礼なわけですが。でもがんばれ!

計算用紙が無くなりました。なんてことだ。

眠れなくて英訳していたらまた他の方とかぶってしまいました。投稿前に確認したのですが、まさかトラックバックになってるとは。重ねがさね失礼しました。あーはずかし。


2006年11月25日(Sat) 夜勤後がきんちょ多数の相手

お疲れさまでしたー。

[run] 家発着町内一周コース 1時間25分29秒

ゆっくりめに長く走る。1マイル9分とすると9.5マイル。

慣れない道を通ると楽しいのだけれど、信号待ちをうまくできなかったり路肩が思いの他狭くて怖い思いをする。


2008年11月25日(Tue) Windowsムービーメーカーで遊ぶ

[memo] grub legacyのstageファイルの検索順

DocoMomoで遊んでいてMomonga 4のgrubのブートローダをホストに仕込んでしまったようだ。こうなると、grub.confが使われなくなる(のでメニューが表示されずカーネルなどの場所を自分でタイプしないといけない)し、Momonga 5のext3はi-nodeが大きいのでMomonga 4のブートローダではkernelをロードできない。

よく見てみると、いろいろなOSから/bootとして使っているパーティションには中にもう一段/bootというディレクトリがあることがわかった。Linuxのインストール時の設定によって/bootが作られたり作られなかったりするのだろう。grub shellからこのパーティションをrootとしてsetupすると、grubはまず/boot/grub/stage1を探して、それが無い場合には/grub/stage1を探すようになっているみたい。手元では、/boot/grub/以下には古いgrub legacyが入ていてMomonga 5のext3パーティションは読めないようだった。Momongaのインストーラから起動してCtrl+Alt+F2で得られたshellから、このパーティションの/bootを消した(実際には/boot-nouseにmvした)ら、/grub/stage1が使われるようになって、元の通りgrubのメニューも表示されるようになったし、Momonga 5のパーティションも読めるようになった。

そういえばDocoMomoのためのディスクイメージづくりはまだ試行錯誤してます。ずいぶん前にokujiさんにアドバイスいただいたのにお恥しい限り。

(追記) 再びokujiさんにツッコミをいただいてしまいました。 ほんとうにありがとうございます。

そうですよね。grub shellの中で--prefixが使えるのを忘れてました。 もっと書くと、Momongaのインストーラを起動するまでもなく、 stage2が起動できた段階でこの方法が使える。試してみました。

まず古いgrubにしてみる。Momonga 5も起動できるgrubでstage2まで起動し、 メニューが表示されてからcでgrub shellに入り、

grub> root (hd0,1)
grub> setup --prefix=/boot-nouse/grub (hd0)
 Checking if "/boot-nouse/grub/stage1" exists... yes
 Checking if "/boot-nouse/grub/stage2" exists... yes
 Checking if "/boot-nouse/grub/e2fs_stage1_5" exists... yes
 Running "embed /boot-nouse/grub/e2fs_stage1_5 (hd0)"... 15 sectors are embedded.
succeeded
 Running "install /boot-nouse/grub/stage1 (hd0) (hd0)1+15 p (hd0,1)/boot-nouse/grub/stage2 /boot-nouse/grub/gurb.conf"... succeeded
Done.

これでCtrl+Alt+Delを押すと、期待通りメニューの無いgrubが起動しました。 Momonga 5のkernelを読もうとすると、

grub> kernel (hd2,5)/bo<ここでTabキーを押す>
Error 2: Bad file or directory type

うむ。期待通り :) では戻す。

grub> root (hd0,1)
grub> setup --prefix=/grub (hd0)
 Checking if "/grub/stage1" exists... yes
 Checking if "/grub/stage2" exists... yes
 Checking if "/grub/e2fs_stage1_5" exists... yes
 Running "embed /grub/e2fs_stage1_5 (hd0)"... 24 sectors are embedded.
succeeded
 Running "install /grub/stage1 (hd0) (hd0)1+24 p (hd0,1)/grub/stage2 /grub/gurb.conf"... succeeded
Done.

stage1.5が少し大きくなったのかな。Ctrl+Alt+Delで、Momonga 5も 起動できるGRUBに戻りました。

こういう動作ってドキュメントか、あるいはコード読めばすぐわかるはずなのにね。 うまくいっているときには看過しちゃうものですね。お恥しい。 まあ似たような人は多いと思うので、 DocoMomoが一段落したら、 このあたりの知識を何かまとまった文書にまとめたいものです。

[n810] Motorolaケータイ用のmicro>>mini-B変換ケーブルを試す

変換ケーブルN810にHHKをつなぐ計画の続き。前回の追記にも書いたようにTTYSSTDでMotorolaケータイ用の変換ケーブルが使える、という情報をいただいて先日買ってきました。Wal☆MartにもOffice MaxにもVerizonの携帯屋さん*1にもありませんでしたが、T-Mobileの携帯屋さんで発見。おねえさんがバックオフィスに中古品が無いか確認しにまで行ってくれましたよ、ありがとう。

モノは「Charging Adapter/Compatible with Motorola RAZR V8」で、箱の裏には「Allows you to charge your Micro-USB compatible device with a Mini-USB (EMU) charger」とあります。T-Mobileの商品番号はSUPM93367、変換ケーブルのMini USB側に刻印された番号はSKN6252A。Micro USB側にはホログラムのステッカーが貼ってあってAHADB097と書いてあります。えーと…充電だけ?不安なのでまずはデータ通信ができることだけ確かめます。この変換ケーブルをN810に挿し、Mini-USBコネクタを、この前買ったUSBハブの変換ケーブルを通してノートPCにつなぎました。

すると期待通りN810のSDカードがPCから外部記憶装置としてマウントされました。よかった。データのやりとりもできる。

次はPD-KB400Wに挿せるMini USBコネクタを入手する必要があるんだけれど、はたして上記のUSBハブの変換ケーブルを使っちゃっていいものかどうか…。ちょっと考えよう。

*1 店員さんはmicro USBコネクタを知らないらしく「こいつ何言ってんの?」と軽くあしらわれ、普通のUSBに挿すデータ通信用の端末を薦められちゃいました。もーいかねー。

[run] CSO+76+行き止まり+CSO+坂の登り途中まで 1時間04分07秒

GT-2090、少しだけ皮膚リミット。

非常にご無沙汰の筋力リミットでした。乳酸ばんざい!走る20分ほど前から水をがぶ飲みしたのも奏功したか最後まで汗が出続けてくれました。今日は有意義な会議があったのも良かったかしらん。明日から距離を増やそう。

途中、三輪乳母車をすごい速度で押しながらジョギングしてるお母さん(またはベビーシッターのおねえさん)を追い越しました。ぜったい僕より体力を使ってるよ。すごいなあ。

しかし本番は目前なのでありました。

[n810] USBの規格

ケーブルづくりに必要な情報。 USB.org - Documentsから 規格書「Universal Serial Bus Revision 2.0 specification」(zipファイル) がダウンロードできる。ありがたい。

usb_20.pdfの113ページ Figure 6-1によれば、 「A」プラグ(ケーブルの先)は必ずホストの方向を向いていて、 「B」プラグは必ず周辺デバイスの方向を向いている。 これはいつまでたっても覚えられない。

Micro USBについては、Micro-USB_final/Micro-USB_1_01.pdfに記載されている。 の10ページ Table 4-2によれば、Micro-Aのプラグのピン配置と配線の色は下記の通り。

Contact NumberSignal NameTypical Wiring Assignment
1VBUSRed
2D-White
3D+Green
4ID<Ra_PLUG_ID
5GNDBlack
ShellShieldDrain Wire

Micro-Aの場合は4ピンはGNDにつなぐ。 Micro-Bの場合はフロートにするか100KΩ以上の抵抗を介してGNDにつなぐ。 On-The-Goデバイスは4ピンとGNDの間の抵抗が10Ω以下ならMicro-Aがつながれていると、 それより大きいならMicro-Bがつながれていると判断する。

11ページ Table 4-3より、Micro-Aプラグの中のプラスティックの色は白、 Micro-Bプラグの中の色は黒じゃないといけない… 今はMicro-BプラグをMicro-Aプラグに改造するから、これは違反するしかないね :)

Mini USBについては、ecn1-usb20-miniB-revd.pdfかな。 今は、えーと、Mini-Bが必要で、まっかっかな16ページ Table 6-2によれば ピン配置と配線の色は下記の通り。

Contact NumberSignal NameTypical Wiring Assignment
1VBUSRed
2D-White
3D+Green
4IDnot connected
5GNDBlack
ShellShieldDrain Wire

って、Micro-Bと同じなんですね。

そうそう、ついでに、Mini-Bの材料にするMini syncのケーブルの配線の確認のために Standard-Aのピン配置と配線の色も確認しておこう。usb_20.pdfの 122ページ Table 6-1より、

Contact NumberSignal NameTypical Wiring Assignment
1VBUSRed
2D-White
3D+Green
4GNDBlack
ShellShieldDrain Wire

これはMini/microから4ピンを除いたもののようでした。 さーて。いつ手を動かせるかな♪

[DocoMomo] GRUB 2のgrub-setupの-dオプションの動作

okujiさんに知らせていただいたgrub-setupコマンドは、-dオプションでインストールする元になるgrubのイメージファイル(GRUB legacyでstage1やstage2などに相当するものだろう)の入っているホストOSでのパスと同時にインストール先のデバイスを指定しているように見えます。 さもなければoffset=16384としてパーティションの内部のみをループバックマウントしてるハードディスクのイメージファイルのMBR部分にアクセスできない。

今日はソースコードから追ってみることにしました。GRUB 2のレポジトリのリビジョンは1928です。

grub-setupコマンドのソースコードはutil/i386/pc/grub-setup.cにありそうでした。-dオプションの処理からあたりを付けて追って行くと、

  • util/i386/pc/grub-setup.c:695
  • util/getroot.c:380 stat(2)でディレクトリがあるデバイスのID(st_dev)を取得
  • util/getroot.c:185からのfind_root_device()で/dev以下に同じデバイスID(st_rdev)のファイルを見つける

という順で、デバイスファイル名を追っているようでした。

手元では、

$ stat --printf=%D\\n mnt/boot
700
$ stat --printf='%t,%T\n' /dev/loop0
7,0

んー…struct statのst_rdevに対応するstat(1)の書式指定子がわからない。

というわけでstat(2)を利用するちっちゃなプログラムを書いてみたところ、 確かにmnt/bootのst_devと/dev/loop0のst_rdevが等しい(0x700)ことが確かめられたとさ。

さて。

MBRの部分を読めるのかな。

$ hexdump -C -n 512 tmp/qemu-hd0.img
00000000  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*
000001b0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 80 00  |................|
000001c0  02 00 06 1f bf 07 01 00  00 00 ff fe 0f 00 00 00  |................|
000001d0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*
000001f0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 55 aa  |..............U.|
00000200
# hexdump -C -s -1032192 -n 512 /dev/loop0
hexdump: bad skip value.

そうだよねえ。負のスキップはできないよねえ。

もう一度grub-setupに戻ってMBRの読み方を教えてもらおう。 util/i386/pc/grub-setup.c:248あたりの、 grub_device_open()とかが怪しそうです。 引数になってるのはコマンドライン引数で指定されたデバイス名かな。 grub_device_open()はkern/device.cで定義されていて、grub_disk_open()を呼んでいます。 この関数はkern/disk.cで定義されていて、grub_disk_dev_listに定義されている関数を呼んでいる。 grub_disk_dev_listへの定義はgrub_disk_dev_register()が、えーと、どこから呼ばれるんだろう。 loopbackマウントしてたらうまいことdisk/loopback.cが使われるのかな? うーん。ちょっと違いそう。

時間切れをだいぶ過ぎてしまったので今宵はここまで。次はgrub-setupを動かしながら考えてみることにしましょうか。

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

> okuji [GRUB Legacyの場合、setupに--prefixを指定すれば、好きな所を使えます。GRUB 2の場合、gr..]

> zunda [ありがとうございます。GRUB legacyについては試してみて、上記の通り追記しました。GRUB 2については近々..]


2009年11月25日(Wed) 久しぶりにちゃんと起きたかもしれん

[memo] カレンダーアプリいろいろ

Palm TXのクラッシュからまだ立ち直れないでいる。

sunbirdとGoogle calendarの同期は、不満がありつつも生活できるようになりつつあると思う。複数のタイムゾーンを使うのはあきらめた。sunbirdで入力したイベントはどのタイムゾーンにあってもGoogle calendarに同期される前にGoogle calendarのタイムゾーンに変換してくれるようなので我慢する。sunbirdで入力したイベントのcategoryも同期する時に消えてしまうようだが気にしないことにした。(追記) そうそう。WindowsではRTCをUTCにしておくといつのまにか現在時刻がタイムゾーンはローカルのままUTCと同じものになってしまうことがある。カレンダーアプリを使ってると現在の日付が間違えてるのは深刻だなあ。

Android端末については、12月くらいに発売されるHTC Dragonが良さそうにも見えるし、Google印の端末が1月に発売されるというウワサもある。PCがなくても自分の予定が知りたい*1 ことがあるので、しばらくはN810でちゃんとGoogle calendarを使えるようにすることを考えた。

mcalendarはユーザー名とパスワードを入力しておくことでGoogle calendarと同期してくれるが日別の表示で前日の予定が表示されてしまったり、全日の予定が午後2時に表示されてしまったりして残念。

GPE calendar単体ではGoogle calendarのXMLのURLにアクセスしようとして403 Forbiddenをもらうようだ。Maemo extrasにあるErminigというアプリケーションがGoogle calendarとGPE calendarの双方向の同期をしてくれるようなのでインストールしてみた。GPE CalendarのCalendarsからMy CalendarのTypeをLocalにした。ErminigはUser Guideを見ながらGoogle parametersを設定、AddからこのGoogle calendarとMy Calendarを関連づけ、Update allを押してしばらく放置した。Success update!が表示されたところでGPE Calendarを起動。日本語のイべントも期待通り表示された。同期のために別のアプリケーションを起動しなくちゃいけないのがちょっと面倒だけれど、ありがたい。

*1 自分の頭に覚えておくのはあきらめた

[run] CSO+行き止まり+周回コース+CSO延長 LSD

今日はかゆみが軽かった。やっと体が自分のところに戻りつつある感じ。ありがたい。

走行時間1時間28分10秒、脈拍平均125BPM、距離12.77km、ペース6分54秒/km。


2013年11月25日(Mon) どんより曇り

[n5] Nexus 5ポメラ化計画 電池がもたないかも編

ふと思い立って、N810にHappy Hacking Keyboardをつなぐのに作った、USB Mini A-USB Micro BケーブルをつかってNexus 5にHHKB Professional 2 (PD-KB400W)をつないでみたところ、あっさり認識されてキーボートレイアウトを選択する画面が表示されました。

TwiccaやDropBoxのテキストエディタでは、ATOKやGoogle日本語入力で普通に日本語が入力できるではないですか。これは便利かもしれない。残念ながらVim Touchではタイプしたアルファベットが直接入力されてしまいましたが。

キーボードの向こうに縦置き キーボードのこちらに横置き

端末を置いておくスタンドが必要かな、と思ったけれど、写真右のようにキーボードの手前に置いて使うのもちょっといい感じ。タップが必要になった時は親指が届きます。

電池を使う

電池の消耗がなかなか激しい感じなので、このまま一日じゅうメモをとるのは難しいかもしれません。Qi充電器を買うか電源付きUSBハブにするか…夢は広がりますね。


作り手とその取り巻きだけが楽しんでる間は本物じゃない。その中身が理解できない人々の生活を変えてこそ本物だ


zunda <zunda at freeshell.org>