Zinnia hacks tomorrow. (2013/1)

2013/01/04 (Fri)


= こんにちわ

_ 今年もよろしくお願いします。


= ノロ

_ ノロと戦っていた。自分は自身のことを賢明な人間だとは思っていないが、 分かりやすい前ふりに対してそのまんまのリアクションをするほど馬鹿な 人間ではないとも思っていたが、 カキを喰ったと書けば 誰でも一度は頭の浮かぶ結果だと思うのでやっぱり馬鹿なのかもしれない。 この御時世にウィルス保持者になってしまった事態には恥じ入るばかりだ。 なお前回当たったのは1990年代だったようだ。幸いというかZHTを始める前の ことだったらしいが、記録は若干残っている。

_ 当たったのは記録を書いた12/29ではなくその2日後の12/31に食べたときだと思う。 届いてから3日経過していたので焼いたり蒸したりして全部食べた。その中で 加熱が甘かったのがあったのかもしれない。 1/1は特に何もなく。敢えて挙げるなら夕方にジョンと走りに出ようとしたときに どうにも気分が乗らず、身体の具合が悪い自覚がなかったので変だなあと思いつつ 中止したというエピソードがあったくらいだ。 晩飯も普通に食べた。なぜかその日は夜更しで、1/2の4時くらいまで 起きてテレビを見ていたんだが、日付変わったあたりから胃のむかつきを 覚えるようになった。そのときは食べすぎかなという程度に思っていた。

_ 4時にフトンに入ってもちっとも眠気が訪れず、胃のむかつきは強まるばかりで、 さすがにこれは食べすぎとかではないだろうと身をもって知った。あとは上から 下からで、1回うとうとして30分後に目が覚めてまた上から下から、さらに水を飲んだら 上から下からで... 吐き気がおさまったので、 昼前に目が覚めてまた上から下から、というあたりでようやく吐くものが なくなったらしく吐き気はおさまった。が、その後も胸焼けは続いたし 妻がめし作って食ってるときの匂い(妻にはうつらなかったらしい)でまた 吐き気が復活したりで、「つわり」ってこんな感じなのか?とちょっと思った。

_ 1/2は結局ずっとフトンの中で過ごした。夕方までは少量の水とスポーツドリンクしか 口にしていなかった。体重計に乗ったら体脂肪率が普段より4〜6%くらい高くなっていて、 脱水しているんだろうなあと思った。 吐き気はおさまったものの、腹の底に刺すような痛みが断続的にあらわれて 辛かった。使い捨てカイロを腹に当てて空きペットボトルを抱えていると 少し楽になったのでそのまま寝た。夜には痛みがなくなりだいぶ楽になった。 痛みが減った結果、もともとあった頭痛と関節の痛みが目立つようになった。 左側頭部に刺すような痛み。あと、この頃からセキが少し出るようになった。

_ 1/3もひきつづきだいたいフトンの中で過ごしたが、前日のように横になっていれば 眠れるということはなくなり、寝つづけたせいで腰が痛かったのもあり 起きている時間も増えた。妻が録画してくれていた駅伝を見たり、溜まっていた 必殺を見たりして過ごした。頭痛は左側頭部から後頭部へと移動。 夕方にゼリー飲料をとった。2日ぶりの固形物?空腹感はまったくなかったのだが、 様子見に喰ってみた。夜に素うどんを作って食べてみたが1玉食べきることが できず半分ほど残した。満腹感以前に胸焼けがひどかった。

_ 寝ている間は同じ夢を繰返し見ていた。細切れになったシーンを繰返し繰返し やっているような。内容はほとんど覚えていないが、 1日目(1/2)はなんか「26」という数字が繰返し出てきたように思う。 2日目(1/3)は「箱根の山に降る雨は...」で始まる歌?語り?が繰返し出てきた。 箱根云々は、昼間見ていた駅伝が関係するのかしら

_ 今日は昼前に起きた。本当は出社する予定だったがまる2日ろくにめしを 食べていないし、せっかく休日に出てくる人々にうつしてしまっては 元も子もないだろうと判断して休む。吐き気はほぼなくなり、 下痢もほとんど食べてないせいかおさまった。1/2の頃みたいに飲んだ分だけ 素通りで出てくるような感じではなくなったせいか、体脂肪率も順調に 下がってきた(それでも+3%くらいはある)。

_ さすがにここまで来るとずっと寝ていることもできず、起きても苦痛寝ても苦痛という 状態になった。昨日まではなにかまとまったことをしようと思っても まったく集中できなかったので、もういいや久しぶりにjslash'emでも やるかと思ったが (年末あたりから急にjslash'emをやりたくなって、 冬休み前にそんな気持になるのは危険だなあと思って警戒していた。で、 どうせ他に何もできないのだから仕方ないかと思った)、 そもそもjslash'emをビルドすること自体が「まとまったこと」に 相当していたのでそれもできなかった。手元にWindowsのノートPCがなかったのが 幸いしたのかもしれない。 Erlangで書いてたソースを開いても手が動かないし、 そもそもタイピング自体も非常にストレスだった(思い通りに指が動かないので)。

_ 夕方に4日ぶりの風呂。さっぱりした。4日入ってない割にはヒゲの伸びが 少ない。石鹸はほとんど使ってないのに皮膚がかさかさになった。 そして日常的に感じている身体の痒みもほとんどない。 寄生している何かにしてみてもこんな泥船に乗っている場合じゃないという判断で 逃げだしたのかもしれない。ならいいんだが

_ 夜になって頭痛はほとんどなくなり、かわりに喉が痛みだした。 妻が年末からカゼをひいており、年末は まったくうつる気配がなく安心していたんだが、まさかノロ経由でうつることに なるのか?

_ 寝ている間はジョンが布団の中に入ってきて一緒に寝たり、 気付いたらいなくなったりをこれはこれで繰返していた。 つぼみとコパンはたまに様子を見に来たり、妻が外出しているときは やむなくフトンに入ってきたりしていた。 なおノロは犬にはうつらないらしい。が、犬にくっついたウィルスで 人間が感染しないとも限らないので本当はよくないと思う。が、 ジョンがこちらの体調を察してか多少はおとなしく一緒に寝てくれるのは うれしかった。

_ 昼過ぎに野菜メインの具入りうどんを食べた。今度は全部食べることができた。 もうすぐ日付が変わる頃になってようやく空腹感を覚えた。同時に チップスターが食べたくなってしょうがなくなったので、 チップスターとドクターペッパーを買ってきた。おいしかったがもたれた。


= nasne

_ 近日中に来る予定のVAIO Duo 11のつけあわせにいいかもね、と紹介したところ 妻がたいへんな興味を示したので買う予定。とはいえどんな商品なのか自身が 理解していないので調べてみた。

_ Apple TVみたいなセットトップボックスや、HDレコーダーのようなものを 思い浮かべていたが、これ自身はテレビにつなげて映像を出力するといった 機能はないのね。なので、これをHDMIとかでテレビにつなげて使うといったことは できない。うちで構築する場合、nasneに録画したものを見るにはVAIO Duo 10を 使うか、DLNA/DTCP-IPに対応したソフトを買ってくるしかないということだな。 (もちろんプレステ3(とtorne?)を買えば家のREGZAで見ることができるが...)

_ 以下はひとまずVAIO Duo 11があればそちらでできる、という話:

で、以下はメモ (要確認含む):

_ amazonのレビューでとても親切に解説してくれている人がいた。あと、 まとめWikiがあるらしい。

_ で、DLNAはともかくDTCP-IPって何だろうと思って調べてみた。 前者は家電同士を接続するためのガイドラインで、 後者は著作権保護対象のデータをコピーから防ぐための規格らしい。 Wikipediaを見てもなんで暗号かければコピーから守れるのがわからない。 どのタイミングで解くんだ?クライアントが解くのであればそれは通信路を 守っているだけで違法コピーを守っていることにはならんと思うんだがよくわからない。 TTLが3以下でRTTが7msec以下というのもIPヘッダごまかしてどうにか ならんものなのかしら。TTLはともかくRTTは実測されていたら意味がないが

_ 動画をLANで配信するというとVideoLANを思い出すんだが、 調べてみるとVLC media PlayerもDLNAに対応しているらしい。DTCP-IPはない。 いずれにしても 詳しい仕組は分からんがこういうのを見ると市販品以外でDTCP-IPを要求する 接続をするのは難しいんだろう。 残念だなあと思いつつ、このあたりまで考えた結果毎回出てくる結論は そもそも自分にはテレビ番組に対する興味がほとんどなかったんだ(゜∀゜) というもので、 何か見せてもらいたければ頃合を見てVAIOごと借りるとか どうにでもやりようはあるだろう。

_ ここまでの結論。 nasneに録画したデータを家のREGZAで見ることはできないけど、 VAIO Duo 11をポータブルテレビ化するデバイスとして見たときには 非常に手軽でよさそう。 妻用のNAS(RAID-1つき)に保存している写真データなんかも 同期しておけば写真をどこでも見られるようにもできるし、なかなかまとまりのよい 状態が作れるのではないかと思う。

_ 家にはDLNA環境が充実していないのであまり気にしていなかったが、 フリーのDLNAサーバというのもあって、MediaTombというのが有名らしい。 ひらしょーさんが最近いじっているのはこれか。

_ ここのところSony製品に囲い込まれている感がとてもするんだが、 以前ほど嫌悪感がない。製品としてそれなりに魅力的で、 異なるジャンルだった製品が気付けば密接に関わり合ってシステムを構築してゆく という様子は若干頼もしくすら感じる。ソニーなのに。

_ なおAppleはDLNAにはのっかっていないようで、Apple製品は DLNA/DTCP-IPへの対応はサードパーティ任せになっている模様。 Apple-TVもDLNAには対応していないらしい。 Appleに囲い込まれることは個人的にはまったく考えられないので、 Apple製品が増える前に別のソリューションに触れておくことは、 Apple以外というそれだけの理由で自分にとっては重要だ。 (だからってソニーならいいのかと言われると微妙なんだが)



= Mac

_ 借りものに文句を言うのもあれだが使うたびにイライラする。 頻繁にマウスカーソルが虹色の円板になったままだんまりになるし、 Dockにカーソルを持っていったりMission Controlを使おうとするとそれだけで 数秒待たされる。たまに後ろに隠れている「テキストエディット」を raiseすると出てくるのにこれも2〜3秒。 Fn+F10でMuteしようと思うと反応するまで10秒かかる。 アプリの中でも待たされることが多い。Firefoxのタブを一つ閉じるとなぜか 数秒虹色円板になって操作を受け付けてくれなくなる。 へたに「ことえり」の候補表示をさせてしまったり、さらに辞書をひかせて しまったりするとひどいことになる。 アクティビティモニタを見ればメモリが足りないということは分かるが、 なんで2GBもあってFirefoxとEmacs (-nw) しか動いてないのに 足りなくなっちゃうのかまったく分からない。

_ 2GBという塔載メモリが多いとは決して思えないが、VMも動かしてないし 動いているアプリも少ないのになんでこんなことになるんだろう。 メモリが少なければ遅くなるのは仕方ないとして、Fn+? のような機能は 即反応してほしいもんだが、なぜそうなっていないのかも分からない。 (画面表示だけが追いついていないのかもしれない...と思ったけど 輝度変更とかの動きを見ると、輝度の変化とOSD的表示の 遅れ具合は違うものの、やっぱり押してすぐに変化しているというわけではない)

_ Windowsが手放しで素晴しい製品だとは思わないが、少なくとも叩かれ続けてきた だけのことはあって、少しずつ良くなっているなあという好印象はある。 Windowsだって画面の描画がお留守になることはいくらでもあるけど、 そんなときでもキー入力やクリックをとりこぼしたり、期待しないところに フォーカスが移ってから遅延した入力が処理されたりといったことを感じることは まずないが、MacOSXだといとも簡単に入力自体がなかったことになっているという シーンによく出会う。

_ 性能的に満足のゆくようなスペックのマシン用意してから使えよという 話なんだろうけど、繰返し書いたように2GBで不足というのは感覚的に 理解できないし、ここまでひどい応答速度しか出せないなら 見栄えとか何かを犠牲にして速度を確保するとか、あるいは そもそも動かないようにしてほしいと思う。 Apple製品は触れば触るほど、バージョンアップを重ねれば重ねるほど そういったイライラが募ってきて、唯一の解法がその時に最新のモデルに 買い換えるしかないというケースがあまりにも多く感じる。


2013/01/05 (Sat)

_ 早目に起きた。寝具を洗濯してさっぱりしようと思う。 調子はだいぶよくなった。ほどほどに空腹感も出てきた。 喉が痛いのはあいかわらずだが...


= 日暮硯

_ 「ユダヤ人と日本人」に出てきたんだったと思う。 思ったよりすんなり読めた。脚注が適切だったし、 会話文がメインなのであまり難易度が高くないのかもしれない。 古文は読もうとするだけで油汗が出てくるほど嫌いなので意外な気持だ。

_ 「日暮硯」は、松代藩の家老だった 恩田木工の偉業を、 後世の藩士が讃えるために書いたものらしい。 苦手な古文を読めたのはうれしかったが、 誉め讃えるために事実と異なる脚色をし、その上ですばらしい仁の人だとか ありがたい政治だとか誉め讃えているので、読後の気分としては少々白けたものが 残る結果となっている。


= 真田騒動

_ 池波正太郎というと市井ものしか書いてないと思っていたので、歴史人物を 扱った小説を書いていたというのがすでに意外だった(真田太平記の存在も知らなかった)。

_ 表題の、恩田木工を扱った作品以外に4編。 いずれも松代藩の初代藩主である真田信之の存在感がでかい。 「真田騒動」もよかったがその前の「錯乱」がとてもよかった。 どうやらこの作品で直木賞を受賞したらしい。

_ 「真田騒動」は、日暮硯のエピソード(鳥籠の話とか、義絶の話とか)も 登場する。独自の解釈なのか史実により近いのかは分からないが、 日暮硯の思わず鼻白んでしまうような流れではなくて、そういうことなら あったのかもしれないねえと感じさせるようなものだった。



= DoCoMoショップのデータ移す機械

_ 妻が携帯を買い換えたのでドコモショップでデータ移しに行くというので ついていった。

_ 入口で要件を伝えると、順番待ちとは違うスペースに案内された。 タッチパネルつきのKIOSK端末が並んでいる。軽く説明を受けた後、 あとはお客様が操作いただく必要がありますといってひきあげていった。

といった感じで妻がたいへんご立腹だった。 そういえば店員がこの端末のそばにあんまり寄りつかなくて、 説明もなんかよそよそしく感じられたのも今思えば納得という感じだった。 データは結局SDカード経由で移動したらしい。


2013/01/06 (Sun)

_ 明日から始業なのでいったん会社行って状況の整理したり計画立てたりしようかと 思ったが、起きたら関節の痛みと鼻水、頭痛(目→こめかみ→耳の上→後頭部を 覆ったリングが締めつけてくるような痛み)、強いセキが出ていた。 体温は37.2度。駅までは行ったがとても仕事できる状態じゃないと判断して 引き返してきた(マスクも忘れてきてたし)

_ ノロの症状がぶりかえしてきたのではなく、これは単純に妻のカゼがうつったんだろう。 妻もあいかわらずセキはひどい。年末からだからそろそろ2週間か。

_ 鼻の通りが悪くセキが出るので眠るのも大変になった。そういう点では 動けずに寝るしかなかった頃よりは難儀になっている。

_ 今回の冬休みはひどかったな。たくさん走ってPCいじってという生活を思い浮かべて いたのに、気付いたらもう始業だ。連休が長かったので会社を休まずに 済んだというのがせめてもの救いだ。 なんとか今週中に体調を元に戻して今週末からせめてウォーキングくらいは できるようになっていたいものだ。

_ 空腹感はあいかわらずほとんどない。食欲というべきか、特定の品物(例: チップスター)に異常に執着して食べたくなるという状態。 あと便秘。それなりに食べるようになったのに出てこない。


2013/01/08 (Tue)

_ カゼがよくならない。

_ 1/6の夕方からセキがひどくなり、発熱からくる関節の痛みも強くなった。 1/7は朝方に何度も目が覚めて、熱を計ると38度前後だった。7時の段階でも 熱が下がらなかったので会社は休んだ。病院に行き薬を貰う。 抗生物質、消炎剤、咳止め、抗ヒスタミン剤、解熱剤。飲んで寝たら 身体はだいぶ楽になった。が、薬が切れるとあいかわらずセキが出るし、 セキのしすぎで腹筋が筋肉痛になってさらにつらい。

_ 夕方には平熱まで下がったんだが、夜になって薬が切れたまた体温が上がってきて、 今朝4時の段階では38度台に戻ってしまった。午前半休を決意し、様子をみて 午後から出社。薬が効いている間は作業にはさほど支障がないものの、 頭がぼーっとしてふらふらするので難しい作業をする気になれず、ずっとやろうと 思っていた資料整理などを進めた。

_ 定時で退社して帰宅。ふらふらになったが薬が切れても昨日ほどひどくは なっていない...のかな。家の階段が辛い。


= 6809

_ 究極の8ビットCPUと言われている6809を唐突に触ってみたくなった。 何がどのように「究極」なのか身をもって理解したい。 あとOS-9も触る機会がなかったので触ってみたい。 OS-9は以前は大学の実験で使っていたらしいのだが私の頃にはなくなっていた。 また、前職でも私が入る前に全盛だった端末で使っていたらしい。いずれも 時期を逃してしまっている。

_ リンク:

_ 6809を前提としたマシンやOS上で単体のアプリケーションやゲームを作る環境を 構築できないかなあと調べてみた。 6809 Emulationは、OS-9 Level 1の シミュレータらしい。これ自身のビルドはできたがOS-9のイメージを持っていないので 意味がないことに気付く。 6809を塔載したPCといえば日本ではFM-7などがあるが、 さすがに今更実機を入手したところで使いこなせるとも思えないし、 一度も実機を手にしたことがないのでROMやディスクイメージも持っていない。

_ ということで始める前から手詰まりになった。 X68000なら多少は触ったことがあるし、たしかROMも公開されていたように思うので Emulatorで遊ぶならこっちだろうな。でも68000のアセンブラは多少触ったことがあるけど あんまり6809に似ているという感じがしない。

_ 6809 Emulationから辿れるPDFを見ればモジュールのフォーマットとかもあるし、 まったく手づまりということでもないか。まあOS-9のシステムコールを 呼ぶだけで書けるプログラムというのはそんなに楽しそうではないという問題もあるし、 正解がない状態で動かすのは面白そうではあるもののかなり大変そう。悩ましい。

_ なおこのあたりを調べるのに久しぶりにIC Collectionを覗いた。 いつ見てもすばらしい物持ちのよさと知識の深さだ。


2013/01/12 (Sat)


= VAIO Duo 11 と nasne

_ 無事に揃ったので初期設定などをした。

_ VAIOでnasneをいじるには専用クライアント (VAIO TV with nasne) を使うらしい。 VAIO関係のupdateを管理しているクライアントから落とすらしい。 操作性はまずまず。番組表も見やすい。後追い再生がなんか妙な感じだった。 途中で再生が止まってしまったり。

_ 放映中の番組を見ることができるのでテレビがわりにもなる。まあチャンネル 切り替えはけっこう遅いし、かなり帯域を必要とするようで 映像音声が途切れることが。録画した映像であればそういうことはないのだが。

_ テレビとしては小ぶりだけど音もけっこう迫力あるし悪くないかもしれない。 キーボードは店頭でちょっと触っていたときは決して誉められたものではないと 思っていたが、音は静かだしそんなに悪くないかもしれない。 ただストロークが重くて慣れるまではけっこう打ち損じが多い感じ。

_ 別途Blu-ray R/Wドライブを購入した。これでBlu-rayの動画とかも見られるように なるし、nasneで録画した番組を焼いたりもできるだろう。 そういえばVAIOにはHDMI端子があったので、これ経由で家のREGZAに映像を 映し出すことは可能かもしれない。(ケーブルないけど)

_ Windows8は好印象。 自宅でいちばん性能のよいマシンなのでかなり快適だ。タッチ操作も便利。 光学トラックボールがついているけどあんまり出番はなさそう。


= サーバのHDD

_ 週に1度のscrubで毎回errorが出ていたんだがついに DEGRADEDになってしまった。RAID-1なので同じ型のディスク(HGST 0S02601 1TB 7200rpm SATA300) 買ってきてミラー復旧すればいいんだがもう入手困難なようだ。 同じ容量のディスクだとサイズ的に大丈夫かなという不安があるし、 1.5TBのものを買ったとしても500GBが無駄になってしまう。 もう2年以上経過しているし、 2台買ってまた1から作りなおそうかという気にもなってくる。 だいたい予言通りの展開だ。

_ 前回の評価基準と今の心境の変化をまとめてみる。

_ 前回はいろいろ悩んだ末Nexentaを選んだわけだが今回はどうしたもんかと悩む。 ZFSはあいかわらず好きだが肝心のSolarisまわりはあいかわらず混沌としているというか 元気がない印象。最近は以前ほどLinuxに対する拒否感はなくなってきては いるものの、自宅サーバにするほどには雪解けはしていない。特にファイルシステムに 対するさほど根拠のない不信感が強いのでなおさらだ。

_ 最近はすっかり根性がなくなってしまったので再現性の低い手段でシステムを 構築するよりは、すでにあるパッケージをできる限り活用してさっさと運用する という形態を好むようになってしまっており、自分でビルドするのはErlangとか libnfc、たまにEmacsをビルドしたりするかなという程度だ。 そういう観点で見るとNexentaOSは期待通りにパッケージがないということも多い。

_ ZFSをきちんとおっかけていてパッケージが充実しているというと やはりFreeBSDになるのかな。 前回評価したときは、 ZFSの復旧試験したときに固まったり、標準のインストーラでは ZFSをroot deviceにすることができなかったり、いろいろ問題があって断念した 記憶がある。

_ とりあえずディスク買わんと話にならないので、 悩んだ末に WD10EZEX-Rを2本注文した。 1TB SATA6.0Gb/s 7200rpm 64MB だって。 SeagateのBarracudaよりも数百円安いというだけの理由でこっちにした。 特にメーカや型番にこだわりがないというか、ここ20年はディスク故障だらけの 人生だったので、まんべんなくひどい目に合っている気がする。が、印象としては SeagateよりもWestern Digitalの方がよい。不思議。 1台あたり+2000円で2TBにすることもできるんだが、 現時点で500GBしか使ってないし、そのうちの450GBは1世代前のディスクイメージを 復旧目的でそのままマウントしているだけなので、もはや2TBも持つ意味がない。

_ セットアップが終われば1台無事な1TBのディスクが手に入るので、nasneに くっつけておくことになると思う。1TBx3でraidZでもしようかと一瞬思ったが 1つ上の段落で容量増やしてもしょうがないという結論が出たばかりなので やはりやめておくことにした。

_ そもそも家にサーバが本当に必要なのかよという議論もあって、 Webサーバももう上げてないし、SubversionもRedmineももう使ってないので 家にサーバがいなければいけないというわけでもない。外からEmacsが自由に いじれる環境があるというと、NASに頼らずにストレージが確保できているという 程度しか存在理由がなく、前者はノートPC持ち歩く生活に戻ればそれまでだし、 後者はまあNASを買えばいいというだけの話ではある。 このあたりは置かれた環境や心境によって毎回選択肢が変わっている:

乗り移るたびに整理をしていればいいのだが、まるごとコピーしてろくに整理しないということを何度も繰返しているので もはや必要なものがどこにあるのかすらわからない。 何を保存しているのかも覚えていないので消滅してしまってもあんまり困らないんじゃないかという気がとてもする。


= 容量の壁

_ jp独自のエントリらしいのだがこの中に 「Advanced Format Technology」というのがあって、 最近のディスクは1セクターが4096バイトになっているらしいと知る。 いろんなことが起きるもんだ。


2013/01/13 (Sun)

_ カゼがよくならないと書いたのは8日で、その翌日に一気に体調がよくなって 夜うなされることもなく朝発熱することもなく普通に出社できるようになった。 が、セキや鼻のぐずつきなどは今現在も続いており本調子ではない。普通に 物が食べられるようになったのですぐに回復するかと思ったが、 無理が利くようになったせいで安静にできず結果として治りが 遅くなっているのかもしれない。

_ 今年に入ってからまだ一度も走ってないのでまた2週間のブランクになってしまった。 本調子ではないこともあるので向こう1週間は歩くだけにしておこうと思う。 さすがにそろそろ運動がしたくなってくるし(安静にしなきゃいけないと書いたばかりで この調子なので救いようがないが)、ジョンが運動不足のせいかかなり性格が悪い。


= 今日の6809

_ つづき。 xasmというアセンブラをもらってきて、起動したそばから プログラムを終えるだけのプログラムを書いてos9liで動かしてみたところ 期待通りに動作した。

_ これでOS/9 Level1でのプログラムを書いて動かすことはできそうなので きちんとアセンブラを勉強していじることは可能になった。 が、デバッガなしでアセンブラというのもなかなか壮絶な話なので さてどうしたもんかという感じがする。


= The DRAGON Archive

_ Dragon 32/64というのは 海外のコンピュータで、 表題のページでいろんな情報を手に入れることができるようだ。 思い入れのないハードウェアではあるものの、実際に 作って遊べる環境としてはFM-7とかよりも現実的なのかもしれない。


2013/01/17 (Thu)


= 走った

_ ジョンと4kmほど。20日ぶりか。先週6kmほど歩いたけど、やはり歩くだけでは 物足りない。そのかわりに身体の負担はやはり少ないらしい。明日はまた筋肉痛 なのだろうか...


= 獅子

_ 先日読んだ「錯乱」とほぼ同じ題材の長編。 「錯乱」は堀平五郎視点なのに対してこちらは真田信之サイドになっている。 また、真田信之の最期まで描かれているので、「錯乱」の後の話もそれなりに出てくる。


= 闇の狩人

_ 記憶を失った武士を中心に、 表(というか武士というか)の社会と裏社会の組織が複雑に絡みあって いつ爆発するとも知れない緊張感が全編にみなぎっていて一気に読み進めてしまった。


= 池波正太郎の短編

_

などを読んだ。時代劇の短編というと 藤沢周平の印象が強いんだけど、 池波正太郎の短編はなかなか軽妙でよいと思う。

_ 「黒幕」には「獅子の眠り」という短編があって、これは↑の「獅子」とほぼ 同じ内容。執筆時期としては、「錯乱」→「獅子の眠り」→(かなり間があいて)「獅子」らしい。 よっぽど気に入った題材だったんだな。


2013/01/19 (Sat)

_ 今回は筋肉痛は出なかった。翌日ちょっと筋肉が張る感じがした程度。


= 電力危機をあおってはいけない

_ 思い描いたような将来にならないのは見逃しているパラメータ (将来人口が減る) や、 知らないうちに前提にしていること (経済は成長しつづける) があるからだ、 というのと、政治的発言にはその言葉通りの意味以外に背景となる狙いがそれぞれ あるもんだ、というようなところが印象として残った。 おそらく本として伝えたかったことはそういうことじゃなくて、 ちゃんと数字見て考えましょうということなんだと思うが。


= 匂い・虫歯本 何冊か

_ 細菌やウィルスのことを考えていて、奴等は増植をするのだから一時的に 数を減らすことよりも増植しやすい環境にしないような努力が必要なのでは ないだろうか、と思った。つまり消臭や歯磨きというのは菌をとりのぞくということに 注意が向きがちだけど、それだけでどうにかなるものとは思えなくなってきて、 いくつか本を借りた。

_ 虫歯はどうしてできるか: ちょっと古い本だけど分かりやすかった。 唾液の働きがきちんと理解できていなかった。菌が増植するには水分が必要だということと、唾液が少ない環境だと虫歯になりやすいということが どう矛盾なく並立するんだろうと思っていた。

_ 虫歯の敵は幾万ありとても: これはすごい。副題は「世界の常識、水道水フッ素化が 遅れたわけとその解決策」で、水道水フッ素化を推進する歯科医師たちが 副題のことを扱っているはずなんだが、 水道水フッ素化を正しく評価しない怠慢な医師と、導入を妨害する学者や 官僚という構図の分析があって、それに対して そういった状況が萬延する土壌となっている日本の国の形を嘆いたり呆れたり 攻撃したりしていて、分析よりも攻撃に忙しいという印象。 本人達はおそらく真面目なんだろうけども、 文章からほとばしる攻撃性と加齢臭に辟易してしまい 「解決策」として何が挙げられていたのかは読みとれなかった。 水道水のフッ素というのは昔から興味があったが、 推進しているのはこういう了簡の人達ばかりなのかな。

_ 気になる「臭い」がみるみる消える100のコツ: 消臭効果があるものを 並べているんだがなぜそれが効果があるのかという説明は不足気味でちょっと不満。

_ 加齢臭読本 いくつになっても、におわない人の習慣: 石鹸を使いましょう、 という本、に見えた。ティッシュを舐めてそれを嗅ぐと自分の口臭が分かるというのは なるほどなと思った。怖くてやってないけど。

_ 40代からの気になる口臭・体臭・加齢臭: わかりやすかった。 なんでそうなっているのかという話がきちんとされていて好印象。 普段と違う匂いは病気のシグナルか。


= リーダブルコード

_ すごくよかった。コード書くようになって30年超えたが、 ここ10年くらい少しは余裕が出てきたのか注意力が上がって意識するようになった ことが体系的に出ていて、自分が失敗や経験(同じことか?)から学んだことを もっと若い人がこういう本から学ぶことができるのであれば素晴しいことだと思った。 自分が若い頃にこれを読んだら...その重要さが理解できないような気もするが、 これは読者の資質の問題だろうから仕方がない。

_ なんでそういうことを問題にしているのか?ということを丁寧に扱っているので とても好印象。それだけに、「なんで」の部分にひっかかりを覚える個所が いくつかあってもやもやしている。

_ ひとつは以下のようなコード:

悪い例)
assert((!(bucket = FindBucket(key))) || !bucket->IsOccupied())

良い例)
bucket = FindBucket(key);
if (bucket != NULL) assert(!bucket->IsOccupied());
凝った複雑な条件を使わないという例なんだろうけど、そもそも assertの中で副作用のあるロジックを書いていて、 それをassertの外に出したら動きが変わってしまうので適切な例とは 思えなかった。bucketをこのコードの後で利用するようなことをしていて、 デバッグビルドでは問題ないんだけどリリースビルドではうまく動かない、 なんていう類の失敗を過去にしたことがあるのでなおさらそう思った。

_ もうひとつは、変数名にretvalといった何も説明していない名前をつけるのは やめようというもので、例として以下のコードが挙げられている:

var euclidean_norm = function (v) {
    var retval = 0.0;
    for (var i = 0; i  v.length; i += 1)
        retval += v[i] * v[i];
    return Math.sqrt(retval);
};
で、sum_squares といった名前を提案していた。 このコードでretvalがふさわしくなくて、sum_squaresの方が望ましいというのは まったく同感だが、 私がretvalがふさわしくないと思った理由は、 retval(戻り値)といいつつコードのどの段階でもretvalという変数が戻り値を 示しておらず、変数の意味を正確に表していないと思ったからだ。

_ 関数名が適切につけられていれば、「戻り値」が何を意味するものなのかは明白だし、 戻り値を格納するためにretvalといった変数名を使うことが悪いことだとは思えない。

  1. コードのどの段階でも常に「戻り値」を示している
  2. コードのどの段階でも常に「戻り値」を示しているわけではないが、 コード中で「戻り値」を構築するための変数として利用していて、 関数を抜けるときには「戻り値」となっている。 (どのコードパスでも return retval; になっている)
  3. コードのどの段階でも「戻り値」を示していない (今回の例)
といった段階があったとして、個人的には上2つは受け入れることができる。 最後のはひとつ前の段落に書いた通り、そもそも変数名として適切ではないという認識。

_ そのほか。do-whileはよくないという主張はよくわからなかった。 最低1回は実行したいというフローを無理にwhileに書き直すほどのことなのかなあ? 関数内にreturnが1コだけじゃなきゃいけないというこだわりは意味がないというのは 同感で、 兼ねてから「戻り値を伴って大域脱出ができる」という強力な道具をあえて 封印する意味がよくわからなかった。



= 6809

_ XM7 ROM SETを使うことで、実機からROMを吸わなくても XM7で遊ぶことができると知った。 ゲームとかだとROM BASIC自体やROM BASICが使うBIOSの大部分は使わないだろうから それでいいんだろう。が、FM-7をまったく使ったことがない人間としては ROM BASICやモニタは欲しい気がしないでもないし、FM-7の資料を今になって 手に入れようとすると、不可能ではないもののけっこうお金がかかるようで、 単に6809を触りたい!という気持だけではさすがにそこまではできないかなあと 思うようになった。


= 6502

_ なんかRISCっぽいんでしょと勝手に思っていたのであまり真面目に 調べてなかったんだが、↑を見ると6809と共通の祖先 (6800) を持つMPUなんだな。 けっこうコンパクトで面白そう。ファミコンやPCエンジンも6502ベースだし、 SPC700とかSPUも6502ベースらしい。 ただ実機やエミュレータで遊ぶのはやはり厳しいかなあという点では 6809とあまり変わらない。


= ARM

_ アセンブラいじりのことを考えだした当初からARMのことも頭にあったのだが、 ARMってRISCなんでしょ、RISCって人間が書くためのものではないんでしょ、と 早合点してまともに調べていなかった。が、よくよく見てみると けっこう書きやすそうに見える。ほとんどの命令が「条件実行」できたりするのも 面白そう。なお除算がないらしい。これは今に至ってもそうらしいので 徹底しているな。除算がないCPUなんてZ80以来かもしれない。Z80にしたって 当時は達者にアセンブラをいじることはできなかったので、 まともに触るようになったのは8086以降だ。(追記: Cortex-A15には除算命令がついたらしい)

_ できることの数はRISCという名前の通りかなり少ない。ただ条件命令などの 組み合わせの分だけ命令があるので、命令数そのものはけっこう多い。 アドレッシングモードが思ったより豊富。というよりはややこしく感じるくらい。 NEONというSIMD命令も持っているので、兼ねてからいじってみたかったSIMDも 触ることができる。ARM環境は最近はあちこちにあるし、 身のまわりを見てみても、Android端末はだいたいARMだし、 GLanTankもXScaleなのでARMベースだ。そもそもAndroidのエミュレータ (AVD) と NDKの組み合わせがあるので実機がなくても構築できるし、いざ 実機で何かしようと思ったときにも役立つだろう。6809は組込みキットのようなものも 見当たらず、学んでも生かすチャンスはほぼなさそうというのと、 そもそも6809は他の人の書いたコードを探すのが大変というのも学習を躊躇する 理由として挙げられる。ARMならいくらでもコードが見つかるだろうし、 gccにコード吐かせて勉強ということもできるのがでかい(6809もgccあるみたいだけど)。

_ AndroidとARMというと、日経ソフトウェアの2011年9月号にそういう記事があったらしい。 たまたま会社にあったので読んでみた。 インラインアセンブラだけでやっているので、アセンブラでなんでもかんでもというわけではないが大いに参考になった。 ただここの記事にあるように、単にネイティブコードで高速化したいという ことであればCで十分なケースがほとんどだろうな。 NEONのようなところまで使うんであれば別だけど。

_ Assembly Programming on ARM Linux といった素晴しい解説もあるし、 ARMのサイトにもドキュメントが豊富。 RealView(R) Compilation Tools アセンブラガイドとか見ると アセンブラの解説としてもけっこう分かりやすそう。といったように わりと新鮮な情報を手に入れやすいのもよい。 いざAndroidベースでアセンブラ!という取り組みをしようとするとデバッグ環境は どうなのという心配が出てくる。特にAndroidのアプリが作りたいわけではないので ADTでアセンブラ書いてデバッグというのはちょっと大袈裟な気もするし、 フレームバッファをじかにいじらせてくれる程度の自由度があれば十分だ。 そうなるとAndroidがちょっと邪魔に思えてくる。 ので、単にQEMUでARMのVM作ってLinuxなりNetBSDなりを入れてネイティブで 開発したほうがよっぽどいいのかもしれない。

_ ということで、ひとまずARMいじりを当面のテーマにしてゆきたいという方向に 進みつつある。

_ なおARMというのは6502から進化したものだと理解していたが、特にそういうわけでも ないんだな。6502を意識していたのは確かだろうが、子孫というわけでは ないらしい。


= RISC

_ あんまり真面目に見たことがないのでWikipediaを眺めつつARMの命令表などを読んでみた。

_ 演算はレジスタ間のみ: たしかにそうだった。いったんレジスタにロードしないと 演算できないらしい。

_ スタック命令がない: 確かに。ただポインタをいじりつつロード/ストアする 命令があるので実質困らないようだ。ARMはかなり柔軟にレジスタ⇔メモリの退避が できるのでx86よりむしろ楽なようにも思えた。 プログラムカウンタにあたるレジスタにpopすることでretを実現しているのも面白い。 ただフラグレジスタのようなものを メモリと直接やりとりする命令はないように見えるので、PUSHF/POPFみたいなことを するときはいったんレジスタを経由しなければいけないみたい。 ARMではそういうことはしないのかなあ?割込みルーチンでフラグ保持しなきゃ いけないとかは普通に発生するように思うんだが...

_ レジスタの本数が多い: ARMは16本あるらしい。一部レジスタは用途が明確に 決まっているが、あとはだいたい平等で、こういうのをレジスタの直交性が 高いというらしい。

_ RISCのアセンブラを人間が書くのは辛いというのは、命令が貧弱だという 理由ではなくて、きちんとパイプラインを意識して書かないと性能が出ないとか そっちの理由なのか。なるほどなるほど。 そういうのは命令表だけ見てても分からんだろうけども、 適切な資料はあったりするんだろうか。まあそういうことが問題になる程度に 使いこなせてから悩んでも遅くない気もするが...


= アセンブラ

_ なんで最近アセンブラアセンブラと騒いでいるのかを書く。といっても自分でも 明確な理解をしているわけではない。

_ 前回のお勉強会で、 5時間ほとんど成果らしい成果もなく過ぎてしまったことが なぜかいつもより強く精神的なダメージになった。 30年もPCいじっていて、自分から望んで時間をとってPCを開いているのに やりたいことがろくに浮かんでこないってどういうことなんだと思った。 好きで取り組んでいるはずのことなのに苦痛を覚えるというのはかなりダメージの でかい経験なのは確かなんだけど、別にこんな状況は初めてというわけでもない。 仕事でもストレスの多い日々で(今は多くは語れないが、自信満々な無能に権限を 与えるというのは本当に始末に終えないことなんだなという気持を新たにしている)、 折から体調が悪化していたなど、いろいろ悪い条件が重なったんだろうが、 とにかく今回は妙にこたえた。

_ 自分にとってのコンピュータいじりの原点は何なんだろう、と考えたときに 浪人時代に世間を呪いながらx86アセンブラいじっていた日々のことを思い出した。 不自由な環境で工夫しながら一歩ずつコードを育ててゆくという日々は その後の自信に繋がったし、少しずつ視野が広がってゆく経験は新鮮だった。 やりたいこと/しなきゃいけないことはたくさんあるのに何もできないという 状況を打破するために、いったんそれらから離れて 限られた、でもコンパクトで全貌を把握しやすい環境と格闘するのも 悪くないのではないか、というより、それこそが必要なのではないか、などと 思った。行き詰まったときに荒行に突破口を求めるようなもんなのだろうか。 やっぱりよくわからない。どう考えても現状の仕事に絡みそうにないことを したくなったという気持はあるようだ。


2013/01/20 (Sun)

_ 最近はあんまり見掛けないがMIPSのことも調べていた。 うちにある機器だとプレステ2くらいか。最近のゲーム機はPowerPCベースみたいだけど そちらはあんまり感心が強くないな...


= MIPS

_ 遅延スロットのことを考えながらアセンブラを書くのはさすがにしんどそうだな。 アドレッシングモードもRISCという先入観を裏切らない程度にシンプルだ。 命令一覧を見るとフラグとかそれに基づいた分岐命令が見当たらない。 演算結果でフラグが変化するのではなく、論理命令で自分の決めたレジスタに 比較結果なんかを入れておいて、それでブランチさせるらしい。うーんすごいな。 それをサポートするための疑似命令なんかもあるようで、暗黙のうちに $at レジスタが破壊されるらしい。あと、突然出てくるHIとLOというレジスタに驚いた。

_ うーんさすがにここまでマッシブだと辛いな。Wikipediaの記述によれば 教材としても利用されているらしいのでまったく無理というわけでもないんだろうけども.... MIPSの中心人物であるジョン・L・ヘネシーというのはいわゆる「パタヘネ」の人か。 教材というのはこのあたりの話とつながってくるのかな。 パタヘネは特に興味がなかったんだけど、MIPSアーキテクチャの教科書として読むなら 若干興味が出てくるかもしれない。まあ、上記の通り 今のところMIPSを触る予定はないけど



= 走った

_ ジョンと7kmほど走った。まだ日が出ていたので快適。でも 7km連続で走るのはちょっとしんどかった。やはり20日のブランクはでかいな。 ジョンはそろそろ換毛期に入るのでブラッシングが必要になってきた。


= HDD

_ 来ているがサーバの再構築が進んでいない。帰ってくるのが遅くなったり 酒飲んでいたりでふんぎりがつかないのが原因だ。いかんぞそんなことでは。 (自分で自分に対して叱咤するところを他人に読ませてどうするんだという 気もする)

_ そういえばHDDが到着するまでにけっこうな苦労があった。 初回は受け取れず、不在連絡票をもとに再配達の依頼をかけたらその日に来なくて、 翌日はサーバ再構築のために午前半休とっていたので夕方に再配達を依頼しておいたら やっぱり来なくて、Web見たら朝届けに来たが不在だったので持ち帰ったとなっていて、 なんのこっちゃと思いながら再度再配達の依頼をしてようやく届いた。したがって ということもないがまだ届いただけで中身を評価することすらできていない。


2013/01/22 (Tue)


= キャスティング・ボート

_ つい先日まで「キャスティング・ボード」だと思っていた。恥ずかしい。 voteなのね。


2013/01/23 (Wed)


= ARM Ubuntu on QEMU

_ KMC Staff Blog:QEMUでARM Ubuntuを動作させるを、ほぼそのまま真似てセットアップしてみた。 vexpress.img ができあがるまでにちょっとした苦労があった。 要するに途中で失敗するんだが理由がいまいちよくわからないまま リトライしているうちにうまく作成できた。

_ できあがったイメージはQEMU ON WINDOWSでは特に問題なく動作した。 desktopのイメージで起動させたところ豪快に遅かった。特にdesktopである 必要もなかったので作成したイメージにbinutilsやmakeやemacsなどを入れて SSHでログインするようにしてみたところ、素晴しく速いというわけではないものの まず快適といって差し支えない程度の性能で動いてくれたので、 ARMのセルフホスティング環境ができたことを喜んだ。

_ 今のところ持ち運べるPCはMacBookしかないので(それもあと数週間の話だけど)、 MacOSXで動くかな、と思って試してみた。結果としてはQEMU 1.2.0では動かなかった (NICのprobeのところでハングアップしてしまう。-nic noneにするとinitrdを 読む前後?でハングアップしてしまう)。1.3.0にしたところ問題なく 動くようになった。ARMのドキュメント開きつつ開発するにはメモリが若干厳しいが、 ともあれ持ち運びできるARM環境ができたことは単純にうれしい。

_ QEMUはhomebrewから入れた。いくつかの依存パッケージのソースが503で落とせなくて 泣いた。/usr/local/Library/Formula にパッケージ名に対応したrubyのファイルがあったので、そこのurlを変更するか、 /Library/Cache/Homebrew にダウンロード済のファイルが配置されて、 そこにファイルがあればダウンロードが省略されるようなので、どちらかの方法で 回避できるらしい。ということをいじりながら知る。QEMU 1.2.0でハングアップを 回避するためにブートオプションなどをいろいろいじってみたりしたのだが あいかわらず見通しの悪さに辟易した。 Kernerl Parametersしかないのか? UbuntuTips/Others/BootOptions - Ubuntu Japanese Wikiを見ても、結局Kernel Parameters見てねという話になってしまう。といった苦労はあったものの、 ひとまずうまく動くようになってよかった。 これでARMのアセンブラいじりをする環境を構築することができたので、 時間をみつけてどんどんいじってゆきたい。なお今回の手順で構築できたのは Ubuntu 11.05らしい。12.04にしたい気がしないでもないが、 したところで大勢に特に影響がないので、機会を見てという感じかな...

_ QEMUは初めて使った。いきなりARMだとしんどそうなので x86でFreeDOSのセットアップして予習した。よくできてるな。 x86のエミュレーションだとVMware PlayerやVirtual Boxなどがあるので 進んでQEMUを使おうという気にはならないが、ARMやMIPSなどのエミュレーションも できるエミュレータはなかなかないので貴重だ。


= アセンブラについて

_ 以前も軽く触れているようだが再度書く。 アセンブラを身につけようと思って本を読んだのはZ80が最初だけど、 その当時 (小学生時分) はまったく身につかなかった。x86アセンブラに 取り組んだのは先日も書いた通り浪人時代。 「PC-9800シリーズ はじめてのマシン語」という本が最初だったと思う。 著者の日高徹さんはPopcomでZ80関係の記事を書いていた印象が強かった。確か 「ガンダーラ」とかのプログラムも書いていたように思う。

_ 「PC-9800シリーズ はじめてのマシン語」は、N88-BASIC(86)のモニタを 使ってアセンブラを修得しましょうという内容で、 御世辞にも充実した開発環境とは言えないけど、 素直についていって、 それなりにx86アセンブラのことが理解できるようになったらしい。 当時はすでにMS-DOSを使うようになっていたので、DISK Basicを使うのは この本の中身を追うときくらいだった。 どんな内容なのかは一切覚えてないが、 今思うとモニタだけで プログラムを書けるようになるまで誘導するというのは凄いことではないだろうか。

_ 次に利用した本が「はじめて読むMASM」だった。この本からは MS-DOS環境に移行。MASMは持ってなかったのでTASMで。 前段落の本でアセンブラはだいたい理解していたので、この本の前に 取り組むべき本である「はじめて読む8086」はスキップした。 「はじめて読むMASM」のおかげで、MS-DOSベースのアプリケーションを 書けるようになった。

_ アセンブラ一本でアプリを書くことにのめりこんだときに、 ちょうど「MASMパワープログラミング」という本が出て、かなり 影響された。今思えばそんなに凄い本ではなかったのかもしれないが、 当時の自分にとってはタイムリーに必要な内容が含まれていて、ほとんどバイブルのような存在だった。 バイブルといえば、 「PC-9801プログラマーズBible」は結局買わなかった。 「PC-9801スーパーテクニック」がコンパクトで気に入っていた。 また、こうのたけしさんを尊敬していたので 「UNDOCUMENTED 9801 9821」は指折り数えて発売を待っていたが、 当時の自分には高度すぎてろくに使いこなせなかった。

_ PC-486Pを買ってようやく32ビットCPUをいじることができるようになったので、 「はじめて読む486」を参考に、TDPMIの力を借りてVM86の世界で遊んだ。 djgppとかも触ったけど、その後すぐにFreeBSD(98)を触るようになって、 アセンブラに注いでいた熱意はOSだとかPerlだとかに発散された。

_ 今見てみるとここで挙げた本は中古でかなり安い値段で出ていたりするので、 再度手元に持っておきたい気がかなりする。買ったところで懐かしさを 蘇えらせるだけのものでしかないが....


2013/01/24 (Thu)


= アセンブラ

_ x86だとNASMやYASMがあるが、ARMの場合はgasしかないようだ。 どうもgas(なのかAT&T形式の記法なのか)とは相性が よい感じがしないのだが他にないのであれば仕方ない。

_ 昨日書いた通りx86アセンブラを勉強していた頃は、 MASMは持ってなかったのでTASMだった。書籍がMASMのものだったので MASMモードで書いていた。が、途中からidealに鞍替えした。そういえば 触ったことはないがoptasmというのもあったな。条件分岐命令をいじって 最適化するという話しか聞いたことがない。その部分を指して metysさんが ドキュメントに「こんなもんゲームで使えない(大意)」と書いていたのを読んだ 覚えがある。そういう影響もあったし書いた通りにアセンブルしないというのは なんか野蛮な感じがしたのは確かだが、RISCのアセンブラだと 普通にそういうことがあるようだな。


= ARMアセンブラ

_ やりたいことはこんな感じになるかな:

_ もしその上で飽きたりない感じだったらARMベースのPCを買うというのも 視野に入れたいところだ。スマートブックというらしい。まあAndroidを使うための ハードなのでUbuntuが入ればいいなあというところだが、特に勢力として 元気そうには見えないのでどうなのかとは思う。 dynabook AZは 公式にUbuntuが利用可能らしい。ただしここでいう「公式」は dynabookのほうじゃなくてUbuntuのほう。いいなと思ったが、AZに乗ってるTegra 250というのは↑で書いたNEONが使えないTegraらしい。となるとちょっと目的通りとはいかないな。

_ QEMUで動いているARM Ubuntuで/proc/cpuinfo見てみたら...

Processor       : ARMv7 Processor rev 0 (v7l)
processor       : 0
BogoMIPS        : 445.64

Features        : swp half thumb fastmult vfp edsp vfpv3 
CPU implementer : 0x41
CPU architecture: 7
CPU variant     : 0x0
CPU part        : 0xc09
CPU revision    : 0

Hardware        : ARM-Versatile Express
Revision        : 0000
Serial          : 0000000000000000
ということで、どうやらNEONはサポートしてないらしい Jazele (Javaのバイトコードを実行できるらしい) や thumbee はともかく NEONは使いたかったな。ということでNEONからはAndroidでの評価になりそう。 借りもののArmadillo-500FXを使うのが正しいのかもしれないが...

_ ただ、「QEMU arm neon」で検索してみると/proc/cpuinfo で「neon」の 表示があるものも見つかるので、ブランチで開発とかそんな感じなのかもしれない。


2013/01/26 (Sat)


= dpkt

_ pcapの解析は、以前.NETからlibpcapを呼べるようなwrapperを作ってやったことがあったけどやっぱり煩雑なのでPythonあたりでできるかなと思って探したら表題のものを見つけた。 まず必要なものは揃っているようなのでこれを使ってみる予定。


= PcapNg

_ 最近のWiresharkはpcapじゃなくてpcapngというのがデフォルトらしい。 dpktだとこれは読めないようだ。Wiresharkの中にpcapに変換できるツールが 入っているようなのでこれを使うことになりそう。

_ 表題のページによるとpcap形式の抱えている問題を克服するために作成された フォーマットだということは分かるんだが、pcapの何を問題としていて、 それをどう克服したのかが書かれていないので結局何が違うのかよくわからない。


= gasのマクロ

_ アセンブラ本体より先にマクロの能力を評価するあたりがひねくれている。

_ どのくらいマクロにやらせるのかというのは好みが別れるところではあると思う。 なるべくマクロなんて使わずに擬似命令レベルで済ませておけば誰が読んでも 安心だし、マクロを駆使しているとそちらに気をとられるという弊害はあると思う。 ライブラリとか他のコードに組込む前提のコードならなるべくマクロを使わないという 選択肢が正しいと思うけど、アセンブラオンリーでアプリケーションを書こうと 思うと多少は楽をしたいという気がしてくる。

_ DOS時代は、axに引数で指定されたコードを入れてint 21hするMSDOSという マクロを作ったりしていた。 ファンクションリクエストごとにマクロを作ったり、コードを定数にしたりという ことはしなかった。なんとなく覚えていたので直接入れてもそれまでだったし。 とはいえ、文字列を引数に受けてそれを表示させるputs的なマクロを作ったり printf的なマクロを作ったりはしていた。

_ さらに、if-endifとかwhile-loop的なマクロも作っていた。MASMはマクロの中で 変数を作り出すことができたので、それでスタックを作ってラベルを覚えさせて... ということをしていた(MASMの6ではマクロに頼らなくても制御命令は普通に 使えるらしい)。 で、いろいろ試した限りではgasのマクロではこれができなさそうだ。 定数を定義してそれを使うというのは可能なんだけど、as -alm でマクロを展開して眺めてみると、この段階では定数が展開されていない。 そもそも定数というものがあるのかどうかも不明。asのマニュアルだと symbolしかない。しかし a = 100 などとして #a とすれば #100 (即値) として 使えるので、どこかのタイミングで展開はされていると思うんだけど、 プリプロセスやマクロよりも後のタイミングになるらしい。よくわからん。

_ ARMの場合if-endif的なものを使っていたら 条件命令のメリットがまったく生かせないので意味がない気がするが、 loopとかそういう制御構造はある程度見やすい状態で持っておきたい気がする。


= FASMARM

_ flat assembler (FASM) をARMアーキテクチャのクロスアセンブラにすることができるものらしい。 昨日ないと書いたばかりだがgas以外の選択肢がここに。 ただFASMのソースはFASM自身でアセンブルできるものなので、 つまりx86ベースだ。FASMARMもx86。なのでARM Ubuntuの中で使うのは ちょっと間抜けな気がする。ひとまずx86で評価してみるかなあ...


2013/01/27 (Sun)

_ 年始につまづいて1.5日休んだ以外は会社に来ている。仕事が進むのはいいが 仕事以外のことがほとんどできていないのは問題だ。サーバの入れ替えもまったく 進んでいない。


= @nifty:デイリーポータルZ:肉をあぶらで閉じ込めると凄いぞ!

_ リエットというらしい。あの名作 @nifty:デイリーポータルZ:そうだ、肉を脂で煮ればいいんだと製法はかなり似ているが、 ペースト状にしてなおかつ油と一緒に固めて、さらにそれごと食べるという よくわかんないけどうまそうな料理だ。 面白そう...だけど、まず食べてみたいな。そういえばレバーペーストというのも 食べたことがないのでいっぺん食べてみたい。カルディとかに売ってるのかな。 ミード (蜂蜜酒) とかも売ってるらしいので今度見てみよう


= Nexus7/Installation - Ubuntu Wiki

_ Nexus 7でUbuntuが動くらしい。これはいいなあ(´∀`)と思ったが、まあ 今の環境でできることをやり尽くしてからだな。UbuntuはARMアーキテクチャにも 力を入れているようなので、将来的には選択肢が増えているかもしれないし、 Ubuntuのタブレットとかノートが出てくるかもしれないしな


= VAIO duo 11とお絵書きソフト

_ こいつ……描けるぞ!:「VAIO Duo 11」を“お絵かきマシン”として使ってみる (1/3) - ITmedia PC USERを起点に ざっと調べた感じでは下記のソフトが筆圧まで使えるらしい:

EvernoteがOKというのは意外だな。私は使ってないけど、人によってはよい 選択肢かもしれない。

_ Adobe製品は無理らしい。SAI、Pixia、Gimpとかもだめらしい(ペン操作はもちろん OKだが筆圧とか消しゴムとかは無理らしい)。 どうやら使ってるAPIが違うらしい。APIの話はエントリを改めて書く。

_ こうして見てみると、まずはWindows Journalというのや、フリーのものを いくつか試してみてもらって、合わないようならセルシスの製品を買うといった 感じかな。セルシスはキャンペーン中らしい。 どうやらCOMIC STUDIOとILLUST STUDIOを統合したものがCLIP STUDIO PAINTになるらしい。 ということはこのキャンペーンは乗り換えキャンペーンなのだな。 CLIP STUDIO PAINTはPro版が本つきで8000円くらいか。

_ VAIO DUO11 - SkyDriveにあるTouchSwitchというのは、ペン使用中にタッチ操作を禁止したりできるらしい。 うっかり画面触っちゃったときに誤動作を防ぐことができるんだろう。


= TabletPC APIとWinTab

_ どちらもペンの筆圧とかいろんな機能を使うためのAPIらしいのだが、 VAIO duo 11はTabletPC APIにしか対応していなくて、WinTabしか使えないソフトは そういった機能が使えないらしい。 WinTabはWacomのタブレットで使えるやつで、TabletPC APIはMicrosoftが策定しているやつらしい。 WinTabの方が古株で、大部分のお絵書きソフトなどはこちらをサポートしている。

_ あんまりきちんと調べていないが、WinTabは、SDKを公開していたメーカーが 特許を理由にひっこめたり、あんまりオープンな感じではないらしい。 また、TabletPC APIを指して、絵描きには余計な機能が多くて邪魔という表現を 見掛けた。なんのことかな、と思ったが、そもそもWinTabとTabletPC APIは カバーしている問題の領域が違うんだな。 WinTabはタブレット(デジタイザ)のペン操作をサポートするためのAPIなのに対して、 TabletPC APIはペン操作以外にも、音声認識やタッチパネル操作などをサポートする APIも含んでいる。音声認識はともかく、タッチパネル操作とペン操作が同時に 動くと絵を描いているときは邪魔という話なのだろうと思う。単にタッチパネル操作を 無効にしてしまうと本来の操作ができなくなってしまうし、 先程挙げたTouchSwitchもそういう目的で手軽に切り替えることを意図したものなんだろう。

_ なお、これもあんまりきちんと調べていないが、WacomがTablet PC API→WinTabの ドライバを作っているみたい。これを使うと、WinTabしか使えないソフトと、 Tablet PC APIしか使えないデバイス間でうまいこと使えるという話なんだろう。

_ それにしても「TabletPC API」という名前はどうにかならなかったのかと思う。 「tabletpc」で検索してもタブレットPCの話しか出てこないし、 「tabletpc api」で検索するとAPIの説明ばかりで、TabletPC APIの導入的な 説明になかなかありつけない。と思った。が、どうやら 「Microsoft Tablet PC」で検索するといいらしい。


2013/01/28 (Mon)


= ARM アセンブラー リファレンス

_ ARMのアセンブラを探している最中に見つけたもの。 いまいち実体が分からない。 と思ったら会社のマシンに入っていた。CE向けの開発環境を整えていたからかな。

Microsoft (R) ARM Macro Assembler Version 15.00.20720
Copyright (C) Microsoft Corporation.  All rights reserved.
というロゴなので、ARM版MASMと考えていいのだろうか。 なお、ARMのサイトにもarmasmという単語が出てくるが、これとは別物らしい (表題のリンク内にも書かれている)

_ cl.exeもあったので/FAでアセンブラソースを出してみたところ、たしかに MASM...のように見えないこともない。 ではマクロを書いてみるかと思ったがマクロの文法なんて綺麗に忘れている。

_ ...なんかうまくいかないな。そもそもマクロの定義がうまくできない。 ml.exe (x86版のMASM) では問題ないのだが。 なにか文法を間違っているようなのだがドキュメントが極度に不足しているので 何をどうすればいいのかがよくわからない。

_ armasmはCEとかWindows Phoneとか向けのアセンブラなのだろうから 当然出力されるのはCOFFということになって、仮に達者に使えるようになったとしても 運用はいろいろ面倒そうだな。


_ することいっぱい。


= ジョン

_ 昨日、妻がドッグトレーニングというのを受けてきた。団体でトレーナーさんを 招待して講習をするというものだったらしい。ジョンのことをいろいろ聞いてみたらしい。

_ ジョンは普段はまあまあいい子なんだけど、部屋から人が出て行こうとすると ぐるぐる廻りながら吠えたり、しつこく顔を舐めたり髪の毛を噛み切ろうとしたり、 自分から寄ってきたのに触ると唸ったり、人間が見ていれば問題ないのに 目を放すとカーテンや布団、場合によっては人や犬に対しておしっこを かけようとしたり、いろいろと分別のない行動を起こすことがある。 来たばかりの頃に比べると、だいぶ落ち着いたようにも見えるし、 本気で噛みつくようなことは減ったが、それでもゼロにはなっていない。

_ いたずらとも思える行動を執拗にするのはちょっとよくわからないが、 怒ったり噛みついたりするのは恐怖の裏返しなんだろうなあとは思う。 で、トレーナーさんに聞いてみたところ、常時緊張していて気が休まる 暇がなく、幼少時に身につけるべき秩序をまったく持っていない状態で 不適切なトレーニングをしたせいで病的ともいえる性格を獲得してしまったようだとのこと。 病的というのは表現がどぎついけど、確かにそんな気がする。 いい子なのに、なぜかとんでもなく悪いことをしてしまい、なんでこんなことに なっているのか自分でもよくわからないという感じを受ける。

_ 不適切なトレーニングというのはその実体がよくわからないが、ジョンは オスワリ、オテ、オカワリ、フセがほぼ完璧にできる。どんなに怒っていても 断乎とした口調で命じれば唸りつつもきちんとオテなどをする。 (オテまでしかしないことも多いけど、最初から無視するというシーンには 出会っていない)。おとなしいとき撫でてもなんともないのに、 普段はけっこう唸ったりする。唸っているうちにテンションが上がってきて、 最終的には吠えて踊りかかったりすることも多数。その性格と、 オテ・オカワリなどを完璧にこなす様子がどうにもアンバランスだ。

_ 残念ながらジョンは短期間にどうにかすることができるような状態ではないようだ。 講習としては、ちょっとやんちゃな子が 要点を抑えると見違えるように言うことを聞くようになるとか、 そういうシナリオが思い浮かぶけど、 ジョンはとてもそのような段階ではないらしい。 本人にとって嬉しくもなんともないオテ・オカワリなんかを仕込まれて、 何の落度もないのに恐怖や緊張ばかりを強いられて、 そして気付けば保健所で殺される寸前のところまで行ったわけで、 純粋にしつけかたがどうしようもなく駄目だったということなんだろう。

_ うちに居続けることが長い目でみてジョンのためになるのかが不明。 早くもらい手が出てくれるとそういう心配も不要なんだけど、 やはり扱いが難しい犬であるのは確かで、なんとなく悪循環な気がする。


2013/01/30 (Wed)

_ いやあすることがいっぱいだ。


= ジョン 続き

_ いたずらを執拗に繰返すという件については、「怒られている」ということを 理解できていないのかなあと想像している。こちらが怒っても牙を剥いて 吠えかかってることがあるので、悪いことをした→怒られている→次からはやめよう、 ではなく、単に怖いことをされているというだけなのかなと。 そうであれば、怒ることはジョンにとってはしつけにならないということになる。

_ 前回の文章は、妻から話を聞いた次の日に電車の中で書いた。 もやもやしたというか、整理しないといかんなと思ったので。 もちろんトレーニングから帰ってきたらジョンがとてもしおらしくなっていました! といったことまでは期待しておらず、 現実的には1日で何かが変わるとは思っていなかったけども、 ドッグトレーニングというのを受けると聞いたときに、やはりジョンとの関係が 少しでも改善されるような(主にジョンのストレスが軽減される方向で) 傾向や糸口が見えるといいなという期待があって、それが前提の段階で頓挫した (その段階にないという結果だった)というのがショックだった。 といっても、トレーナーさんの対応に(妻からの又聞きだけど)不満を覚えたというわけではなく、 「まあそんなところなんだろうな」と、思い当たるところがあって、 一方で「やっぱりそれほどのものなのかー」という衝撃はそれはそれであって、という複雑なショック具合だった。

_ ジョンは可哀想だ。根はいい子だと思っているし、それなりに愛情を注いでいる 私や妻にしたって、あんまり聞きわけがないと憎たらしく思う瞬間があるし、 踊りかかって噛みついてきたりするとこの先どうしたもんかと悩む。 前段のように病的な性格だと言われれば、そんなわけないだろと強く否定するよりも先に、 やっぱりそうなのかと納得してしまう。前回も書いたように ジョンの中で形づくられた性格や行動はジョンが望んで身につけたものではなく、 ただ元の飼い主のしつけかたがとんでもなくひどかったというだけの話で、 しかも放置されていたわけではなく、 何やらいろいろしつけたかったんだろうなあという形跡は感じられるし、 その上で投げ出されたということもありありと分かるので、余計やりきれない。

_ ただ今回の一連の話の中で、 ジョンとのつきあいかたについてまったく収穫・アドバイスがなかった というわけではなく、ジョンが興奮したときにつきあわずに無視するというのが 有効らしいということを教わったので、これは実践してみないとなと思う。 ジョンがただ恐怖感から自身の興奮を増幅させているだけであれば (冒頭に書いた通り実際そんな気がとてもするのだけど)、相手にしないで 放っておくというのは有効な気がする。

_ あとジョギングの距離は長すぎらしい(゜∀゜)特に走ること自体は 苦にしていないようだが、やはり怖いという気持はあるらしく、ここ数ヶ月は 一緒に走ろうと誘ってもケージから出てこないことが多い。昼間だと そこまで嫌がらないので、やはり暗闇が怖いのかな。いずれにしても 距離は長すぎるらしいので減らす工夫をしよう。




Zinnia (zinnia@risky-safety.org)
Back