いろいろ@はてな このページをアンテナに追加 RSSフィード

2005-11-28

[] OE の MIME メールデコードの謎の続き

前回のエントリ [2005-11-27] の続きです.


えー,またまた,大変申し訳ありません.前回のエントリで思わず脊髄反射で「OE が悪いんじゃね?」とか書いてしまいましたが(激ぉ,OE は悪くありませんでした(ぉ.重ね重ね大変失礼しました.orz

しかし POP で取って来た場合になぜ大丈夫なのかはこれでは説明がつかない,とされている.

…いや,説明つくんじゃないかな.Mew が改行を LF にしてファイル保存しているからじゃない?

Mew の保存ファイルはあくまで Mewファイル形式であって,それが RFC822/RFC2045 準拠だとは誰も言ってないから,改行が CRLF じゃないからと言って非難できない (なんかいろいろ議論があって Mew では改行は LF に統一することになったらしい)

あああー,そうか,そうですね.そうでした orzMewLF にしちゃってるのか.UNIX だもんな.完全にぼけてました.OE もまさか LFメールを読まされるとは思ってなかったわけだから,非難はできませんね.OE よ,悪かった.許してくれ.

sleep 3


とでも書いときましょか.うわあ,だせえ.

ちなみに SoW 連係用スクリプト oe.pl では,このダサダサな手法を使ってました.しかも当初 [041207] はまさに 3 秒にしてましたが,どうも不安定なので,経験上 7 秒くらいにしています [051008].

ついでに oe.pl 自体にも,CR 付加機能を実装しときました (こちら).これで SoW 経由の場合も正しく Excel ファイルが開けるはずです.


つーわけで多分これが本当のまとめ.…うへえ,さすがにもうこれで打ち止めでいいよな.

  • 送付時,Mozilla/5.0 は添付データと boundary の間に空行を入れない.つまり添付データと boundary の間には CRLF があるのみ.
  • 受信時,Mew は各行に対し CRLF→LF にしてメールを保存する (つまりファイル保存形式自体は RFC 準拠ではない).
  • これを OE に渡すと,MIME 解析ルーチンが boundary 直前の 2 バイトを CRLF だと思い込んで添付データを切り出す.この結果,添付データの最後の 1 バイトが切り落とされ,base64 的にデータサイズ不整合となる.
  • OEbase64 デコーダは,データサイズ不整合の場合,整合するようにデータを切り上げてデコードするので,結果としてデコードされた添付ファイルの末尾 3 バイトが消える.
  • Excel の場合,末尾 3 バイトが消えると開けなくなることが多い.

  • 解決策としては,Mew が取り除いた CR を補ってから OE に渡すのがよい.

おまけ: eml ファイルの定義は謎ですが,mht ファイルと互換らしいです.

mht ファイルRFC 2557 で定義されている MHTML (MIME HTML) のことです.MIME 準拠らしいです.

- The MIME standard [MIME2] requires that e-mailed documents of

"Content-Type: Text/ MUST be in canonical form before a Content-

Transfer-Encoding is applied, i.e. that line breaks are encoded as

CRLFs, not as bare CRs or bare LFs or something else. This is in

contrast to [HTTP] where section 3.6.1 allows other

representations of line breaks.

eml ファイル拡張子を mht にすると IE で開ける.でも添付ファイルは見えなくなるみたいだ.

2005-11-27

[] OE の MIME メールデコードの謎

前回のエントリ [2005-11-26] の続きです.今日も忙しいので現実逃避モード(激ぉ.


えー,大変申し訳ありません.前回のエントリは完全にピント外れでした.失礼しました _| ̄|○

今回調べているうちに,まったく別のある仮説に行き当たりました.時間のない方は下のほうの「仮説」だけお読み下さい.

要は「OE が悪いんじゃね?」という仮説です(ぉ


追記 (2005-11-28): 大変申し訳ありません.OE は悪くありませんでした orz.偏見に基づいた結論を出してしまいすみませんでした(激ぉ.詳しくは [2005-11-28] を.

実験環境

Windows XPExcel 2000,あるいは Excel 2003 です.Outlook Express は 6.0.

出て来るエラーは

'hoge.xls' にアクセスできません.ファイルは読み取り専用であるか,または読み取り専用の場所にアクセスしようとしています.または,サーバー上に保存されているドキュメントから応答がありません.

で,キャンセルを押すと Excel 2000 は何も出ない.Excel 2003 は

'hoge.xls' にエラーが検出されましたが,Microsoft Excel は次の修復を行うことによってファイルを開くことができました.修復を保持するにはこのファイルを保存してください.


ファイルへのダメージが深刻であり修復は不可能です.Microsoft Excel は数式と値の修復を試みましたが,消失または破損したデータが含まれる可能性があります.

となって,書式情報等の一切失われたデータが表示されます (それでも書いてあることの大半は理解できるもんです).

boundary の文字列とは関係ない

確かに boundary を書き換えると Excel で開けるようになって,これは複数のメールで確認してたんですが,実はうっかりファイル末尾の boundary を書き換えるのを忘れていたんですね (疲れていたということにさせて下さい…).ファイル末尾の boundary は行末に余計に "--" がつくので,マッチさせ忘れてたのでした.

というわけで,

Header (modified boundary is defined here)
--modified boundary
Body Text
--modified boundary
base64-encoded Excel File (readable from OE)
--original boundary (not regarded as a valid boundary)

みたいな状態になってたわけです.ここで末尾の boundary まで書き換えてしまうと Excel ファイルが開かなくなるので,boundary の文字列云々の影響ではないことがわかります.

Excel ファイル末尾の boundary「付近」があやしい

調べているうちに,複数の添付ファイルがある場合,Excel ファイルの終端にある boundary を直さずにおくとやはり開けるようになることが判明.ただしこの場合は,その次に添付されているファイルは見えなくなります.

Header (modified boundary is defined here)
--modified boundary
Body Text
--modified boundary
 
...
 
--modified boundary
base64-encoded Excel File (readable from OE)
--original boundary (not regarded as a valid boundary)
Another Attachment (invisible from OE)
--modified boundary
 
...
 
--modified boundary

うーむ.boundary があるべき部分に関係ない余計な文字列が来ちゃってることになるのに,なんで Excel は添付ファイルを開けるんだ??

余計な文字列を加えてみると

余計な文字列が必要なんだろうか? と思って,boundary には手を加えず,boundary とデータの間に文字列を加えてみたら…

HwAAAAAQAAAAAAAA
hoge
--------------080406090906080908050602

開きました.な,なんだってー ΩΩ Ω


改行だけでも OK.

HwAAAAAQAAAAAAAA
 
--------------080406090906080908050602

あるいはもう base64 コードの末尾に何か足しただけでも,開くことができてしまった.なんかこう節操がないというか…

HwAAAAAQAAAAAAAA*
--------------080406090906080908050602

空行が必要なのか?

ここでふと,他の MUA (例えば Mew) が送った MIME メールをみてみると,base64 データ末尾と boundary の間に空行がある.試しにこの空行を削除してみると…


Excel ファイル,開けなくなりました.


ちなみに Mozilla/5.0 以外の MUA はたいてい空行を入れるようです.さらに mewdecode や uudeviwe を使って調べているうちに…うーむ,なんとなくわかってきたかもしれない.つまり,えーと,こんな感じです.

いろんな boundary (正規表現) に対して正しく base64 デコードできるかを調べたもの.OK は Excel ファイルが開けたこと,NG は開けなかったことを表す.また \n は CRLF を表す.

(A) \n\n-- (普通の MUA) (B) \n-- (Mozilla/5.0) (C) .*\n-- (invalid) (D) \n.?\n-- (invalid)
OE OK NG OK OK
mewdecode OK OK OK /w warning OK /w warning
uudeview OK OK NG OK


空行がないとダメなのは OE だけですね.

空行がないのは間違ってない

さらに RFC 2046 にこんな文面がありました.

The boundary delimiter MUST occur at the beginning of a line, i.e.,

following a CRLF, and the initial CRLF is considered to be attached

to the boundary delimiter line rather than part of the preceding

part.

NOTE: The CRLF preceding the boundary delimiter line is conceptually

attached to the boundary so that it is possible to have a part that

does not end with a CRLF (line break). Body parts that must be

considered to end with line breaks, therefore, must have two CRLFs

preceding the boundary delimiter line, the first of which is part of

the preceding body part, and the second of which is part of the

encapsulation boundary.

つまり,boundary delimiter は "\n--" であって,添付データ末尾に CRLF がなければ当然空行はつかない.その意味では Mozilla/5.0 は RFC 2046 には違反していない.ということになります.


ということは…もしかして OE は「改行がある」と思い込んで処理してしまってる?? 例えば,そうだな,boundary の前の文字を改行と思って取り除いちゃってるとか??

もしかして chop されてますか?

1 文字取り除くと何が起こるか? base64 デコーダは 4 文字を 1 セットとして 3 バイトのデータに直すから,エンコードデータの末尾が 1 文字欠けるだけで,元データの 3 バイトに影響が出る.OE はこれをどう処理してるのか?

というわけで確かめてみます.Mew から保存した Excel 添付ファイルOE から保存したものとを hexdump にかけて,末尾をみてみよう.

% hexdump -C frommew.XLS | tail -2
000053f0  00 00 00 00 1f 00 00 00  00 10 00 00 00 00 00 00  |................|
00005400
% hexdump -C fromoe.XLS | tail -2
000053f0  00 00 00 00 1f 00 00 00  00 10 00 00 00           |.............|
000053fd

はい,3 バイト消えてますね.


ちなみに uudeview や mewdecode で取り出したファイルの場合,3 バイトは消えてません (0 詰めされてます).えらいえらい.Perl の MIME:Base64 なんかもデコード時にちゃんと "=" をパディングしてくれるので,データが増えることはあっても消えることはない.OE もこの方式を取ればいいんじゃないかなあ.と思うのだけど.

The decoded result will anyway be as if the padding was there.


というわけでそろそろあたりがついてきたぞ.

chop されてもファイルは開けるのか?

じゃあ Word はどうして大丈夫なんでしょうか.末尾が chop されても生きてるんでしょうかね?

そこで,base64-encode されたファイルから無理矢理 1 文字切り取ってみる実験

うーむ,Excel シビアすぎです.もう少し余裕をもったつくりになって欲しいもんです.

仮説

というわけで仮説です.あくまで仮説です.検証はしてません.

  • Mozilla/5.0 は添付データと boundary の間に空行を入れない.これは RFC 的には間違ってない.
  • 仮説: OE の MIME 解析ルーチンは boundary の直前の文字を chop してしまうのではないか??
  • 普通の MUA が送って来たメールなら,CRLF が chop されるだけなので影響はない.
  • Mozilla/5.0 が送ったメールの場合,OE で読むとデータ末尾が chop されて消える.
  • OEbase64 デコーダは "=" をパディングしたりせずにデータを切り上げるので,デコードされたデータは末尾 3 バイトが消えたことになる.
  • Excel 以外の多くのフォーマットでは,末尾 3 バイトが置き換わったところで開けなくなることはめったにない.
  • Excel の場合,末尾 3 バイトが消えると開けなくなることが多い.そういうファイルが添付されていた場合,OE が chop してしまって開けなくなる.
  • 余計な文字列を加えたら開けるようになる.これは加わった文字列が chop されただけでデータが無事だったから.

わはは,苦労したわりに何の解決にもならないですね.

補足事項

ひとつ残ったのが,

試しに,同じメールOutlook Express で直接 pop で受信してみると,何の問題もなく開ける.

という問題.この検証のためだけに OE をセットアップする気はしなかったので,真相は不明.POP の時点で 0 がパディングされたりするんだろーか.

ちなみに「F-Secure アンチウィルス Linux ゲートウェイ」の ChangeLog

- SMTP/POPサービスで、base64エンコードの1行が4の倍数でない場合や行中に

スペースを含む場合に、Outlook等と同じ方法で展開できるように変更。

これにより、一部のMydoomを検出できない問題に対応。

とありました.これが具体的に何を指していて,Outlook にどう実装されてるのか,OE にもあるのかは不明ですが,もし POP 部分に組み込まれたものなら,上の問題の説明がつくのかも知れない.

追記 (2005-11-28): 上にも書きましたが,POP で正常に受信できる問題は説明つきました.詳しくは [2005-11-28] を.

[][] つながったはやぶさミッションと The Yakumo Project

以前のエントリで紹介した [2005-11-20] The Yakumo Project とはやぶさミッションだけど,なんと既にこの二つのプロジェクトリンクしていたのだ.松浦さんの blog をすごいスピードで逐一翻訳されていた Rogue Engineer 氏,実は The Yakumo Project を提唱した福盛さんその人だったのだ.気づかなかったよ〜.


気づいたのは 26 日.前回の記事を書いた時は,二つの動きのその同時発生性が印象深かったのだけど,まさかつながっていたとは….最良の形で両者を結びつけ,The Yakumo Project の feasibility と usefulness を確実に実証した福盛さんの先見の明と行動力には,心から敬意を表したい.そういえば tDiary まわりでよくみかける zunda さんもおられた.びっくり.


私も触発されてごにょごにょと何かやってみたりしましたが,恥ずかしい結果に終わってしまったのでとりあえず内緒(ぉ.この問題については書きたいこともたくさんあるけど,取り急ぎエントリー.ともかくはやぶさ成功おめ.

2005-11-26

[] eml 形式のメールと boundary の謎

Outlook Express で eml 形式のメールを開くという話題がある.これ,普段 Mew を使っている人にはなかなか便利なんですよ.

ちなみに上記の私のサイトで紹介している,SoW を使って Mew から直接 OEファイルを渡すというアイディアは,確か swk 先生の発案だったような気がします.


で,その swk さんからこんな報告があった.

で,しばらく何の問題もなく使えていたのだが,ごく稀に添付ファイルが壊れてまともに開けないケースがあることに最近気づいた.

壊れるケースに共通しているのは,

  • そのメールMozilla/5.0 で作成されたもので,

  • 添付ファイルExcel の場合

    という点.

  • 確かに,たまに開けない時があるなーとは思ってたけど,Excel が勝手に修復したやつは別に読めるので (その修復が正しいかどうかは未確認),放置してました(ぉ.こちらの手元でも,確かに上記の条件下の複数のメールで同様の現象が再現.


    うーん,なんですかね,ということで,Mozilla/5.0 が作ったメールと他の MUA が作ったメールをよーく眺める.あれ?


    Mozilla/5.0 なメール:

    Content-Type: multipart/mixed;
     boundary="------------080406090906080908050602"
    

    その他の MUAメール (例: Mew):

    Content-Type: Multipart/Mixed;
     boundary="--Next_Part(Sat_Nov_26_20:30:46_2005_573)--"
    

    へー Mozilla は数字列が boundary なんだ.これって別になんでもいいんだよね? 実際に boundary として使う時は先頭に "--" つければいいんだっけ?

    試しに Mozilla/5.0 なメールの boundary を mew 形式にしてみたらどうなるかな?? まーどうせかんけーないだろーけどねー,と軽い気持で編集.で,OE に渡してみる.すると,


    開いた.


    ( ゚д゚)


    (つд⊂)ゴシゴシ


    (;゚д゚)


    (つд⊂)ゴシゴシ


      _, ._

    (;゚ Д゚)


    というわけで面白いことになってきたので報告だけしておきます.今日は疲れたのでとりあえずこのへんで.今ふらふらなんだよね,昨日から不眠不休だから.


    追記 (2005-11-27): すいません,上のは間違ってました_| ̄|○.また別の事実が見つかったので新しい記事として書きます.こちら

    [][] 徹夜明けにはやぶさニュースを知る

    昨晩は職場サーバでトラブルがあり,また泊まりがけで徹夜.今回は後輩をも巻き込んでしまった.作業を任せていて,十分に検討が足りないまま GO を出してしまった自分のミスです.あうう.ごめんなさい…


    いろいろな人の手を借りながら (その節は大変お世話になりました>真夜中にホットライン下さった方),早朝にようやくだいたいの復旧作業が終わり,後輩君を返して一息ついたあたりで飛び込んで来たはやぶさサンプル採取成功のニュースウェブカメラに向かって V サインする的川教授

    [smatsu.air-nifty.com]

    こちらがシステム復旧に苦戦している間,彼らも徹夜でリポ D (はやぶさのおかげで世界的に有名になってしまったらしい) を飲みながら,もっとずっと大変なミッションを限られた予算と人的資源のなかでやりとげていたのだ.妙に感動してしまったのは徹夜明けのせいかな.ともかく,素直に心から賞賛したい.また落ち着いたら記事書きます.


    なお,クルーが GO を決断し,送信卓担当がはやぶさコマンドを送ったのは 06:23.他人に運用を任せつつそれに GO を出すという決断の難しさをあらためて思いつつ,今日はずっと失敗の事後処理.

    2005-11-25

    [] No space left on device

    /tmp に突然書き込めなくなった.

    No space left on device.
    

    とか言ってる.df で見ても容量はまだまだあるはずなんだが….ということで df -i したら 100% になってた.某ソフトウェアのアップグレードスクリプトが,旧バージョン時代の大量のログを /tmp に置きやがったのが原因.tar で固めといた.

    [] rootkit 問題と Sony クオリティ

    今月初めくらいから,Sony BMGCDrootkit が仕込まれているという問題が大きな話題になっていますね.

    ここにきて日本でもようやく回収・交換の動きが出て来たようだ.とりあえずここに挙がっている CD は持ってなかったので安心したけど,けっこう有名どころなアーティストも多くて(((( ゜Д゜))) ガクガクブルブル.

    最初にこの問題を見つけた Russinovich 氏のレポートがここにある.これがまた面白過ぎ.Windows のスーパーハカーというのはこういう人のことをいうのだな.テラスゴス.

    Russinovich 氏の勤務する Sysinternals では,RootkitRevealer という rootkit 検出キットを配布している.

    ただ,日本語キー名に含まれる null に反応してしまったり,全スキャンを行うので時間が掛かるという問題点がある.とりあえずチェックするだけなら,全スキャンを行わず,さらに rootkit の削除までをやってくれる F-Secure の BlackLight がよいようだ (ただし使用期限は今年いっぱい).

    試しに両方のツールで自分の PC をチェックしてみたが,不審なものは特に見つからなかったようだ.まあそうまでしなくても,とりあえず Sony BMGrootkit は来月以降「悪意のあるソフトウェアの削除ツール」の削除対象となるようなので安心.

    rootkit が既に入ってしまった環境でのセキュリティソフトウェアの動作については,以下が詳しい.

    さて,そうこうしているうちに,Walkman A シリーズの付属ソフトウェア Connect Player のとんでもないダメダメっぷりが話題になり,またソニーかと思う間もなく,

    Walkman A の販促 blog炎上の果てに閉鎖というニュースを今日知った.

    まあ,前からソニーはあまり好きではなかったのでどうしても非難口調になっちゃいますけど(ぉ,それにしてもひどすぎですよ.最近のソニーの強みは良くも悪くもイメージ戦略であって,こういう戦略は個人的には好きじゃかったけど,まあさすがだなと一定の評価はしてました.それが今回の blog 騒動では,その唯一の売りであるイメージ戦略そのものが腐っちゃってることが露呈したわけですよね.なさけない.

    [] キョン

    八丈島のキョン」ってこいつか.

    大きく見えるけど実際は柴犬くらいの大きさらしい.名前がなんかいい.きょん.

    2005-11-22

    [][] ゼビウス BGM の歌詞

    その昔,ゼビウススレに作者が降臨,しかも常駐して,EvezooEND だけど何か質問ある? 状態になったときに明かされたらしい.

     ガ〜ガ、ガルボジック、ゲ〜ル結界、ゲ〜ル結界
    ド〜ド、ドロワザン、ガンドロワ〜
     
     あなたも定時だ、私も定時だ、あなたも〜 
    

    最初のほうはイデオンネタらしいのでよくわからんが,「定時」はそのうちそうとしか聴こえなくなる…


    ちなみに flashゼビウスで確認できたりする.

    この flash よくできてるな〜.チャリチャリ言うの好きだー.グワッシャ!

    (とか書きつつゼビウスリアルタイムではあまりプレイした記憶がありません)

    [][] 2ch 空耳

    Windows XP シャットダウン時のサウンド ("Windows XP Shutdown.wav") が「キタコレ」と聴こえた _| ̄|○ il|!

    ゼビウス BGM 聴きすぎて耳が侵されたか(激ぉ

    2005-11-21

    [] FOMA スパム暗号

    もうびっくり.ダヴィンチ・コードも真っ青.は言いすぎかも知れないが,ともかく,やねうらおさんの緻密な推論スゴス.

    ただ,超マイナーキャリア (WILLCOM) を使っている身には,妙に実感が薄い.そもそも WILLCOM 使って随分経つけど,スパムメールの類は 1 通も来たことがない.

    2005-11-20

    [][] The Yakumo Project とはやぶさミッション: 英語圏の人達の期待に応える

    The Yakumo Project らしい.ひっそりと応援します.名前もいいよね.

    日本語圏内で流通している良いドキュメントやプログラム英語翻訳して、もっと広く世界に伝えられるようにする専門のプロジェクトが必要なのではないか?という提案。

    先日 /.-j で No More "Sorry Japanese Only" Documents というトピックが立った時にも思ったのだが,日本発の優れたソフトウェアには英語のドキュメントが少なすぎる,と思う.まじで.


    自分はプログラミング英語もまるでダメダメなんで (好きだけど),手伝うとかそんな大それたことはとてもできませんが,ともかく心の中で応援はします.

    といってもまだコンセプトだけで,何も動きはないのかな…?

    [追記 (2005-11-27): もう動いておられました.しかもびっくりするようなところで.詳しくはこちら.[2005-11-27]]


    同じようなことは,今回のはやぶさミッションの JAXA 質疑応答 (松浦さんの記事) を 5thstar さんが英語翻訳されてたのを読んだ時にも感じた (はやぶさミッションについては,一通り終わったらまた落ち着いて書きたいと思う).

    ソフトウェアでも宇宙開発でも,英語圏の人達はかなり必死に日本情報を追おうとしてるのだ.

    追記 (2005-11-22): 何しろ,JAXA中の人の机上のリポ D 空き瓶が増えていくなんてことまでチェックしてるのだ,彼らは.

    彼らにとっては Google 日英翻訳が唯一の頼りな場合が多いようだけど,実はこの日英翻訳はけっこうひどかったりするらしい.

    しかし「はやぶさ」のことを「It is quick the ぶ」って翻訳するのはどうにかしてほしい>Google Translation (^o^)

    自分の英訳だって Google の日英翻訳よりはましなんじゃないかなと思うので,いつか何らかの分野で彼らのもどかしい思いに応えられる時がくるかも知れない.


    ついでに話が戻ってまた飛ぶけど,k.inaba さんの Yakumo Project の記事の下に「コードを短くするのって楽しいですよね?」とあったのに思わず反応.この界隈の人達のレベルの高さは自分と比較にもならないが,この命題も概ね同意.

    昔,PIC アセンブラコードを削って削って削りまくった時,苦しかったけど楽しかったなあ(ぉ.最近こういう仕事してないのでちょっと飢え気味.

    [] 2 月号原稿が間違って 1 月号に

    突然自分の連載を打ち切られて流行モノの連載をやらされ,しかも 3 誌同時進行というおいしくない企画で,それでも頑張って 2 ヵ月先行して原稿を上げたら,編集のミスで原稿を間違って掲載され,挙げ句の果てに「連載を辞めたければ仕方がないです」とか言われ…不憫すぎる.

    追記 (2005-11-22): 協議の結果,どうにか丸く収まったみたいだ.

    2005-11-18

    [] Helvetica と Arial のマイナスとハイフン

    MATLAB の吐いた EPS ファイルIllustrator で開くと,マイナスがハイフンになっちゃってる,という話を以前したが (というかそれ以前にマイナス記号が消える.なんとかしてくれ) [2005-01-19],なんか突然我慢できなくなって調べてみた.

    長いので,忙しい方は最後のまとめをご覧下さい.

    マイナス記号は別に用意されていた

    MATLAB 固有の問題というより,PostScript フォント (Helvetica,Courier) の問題らしい.PostScript フォントにはハイフン (0x2d,HYPHEN-MINUS) の他にちゃんとマイナス記号 (0xb1) があるらしい (後述するが,厳密にはこれはマイナスではなくエンダッシュらしい).

    例えば gnuplot なんかでは,やはりマイナスがハイフンとして出力されてしまう問題があり,gnuplotソースを書き換えるだとか,PostScript 中のハイフンを半角ア (0xb1) で置き換えるだとかいう方法があるようだ.

    なぜか±が出て来る

    というわけで,Illustrator で半角アを入力すればとりあえず OK じゃね? とか思ったが,甘かった.なぜか「±」が出て来る.Windows文字コード表を見ると,確かに 0xb1 は±になってる.しかもそれ以外にマイナスっぽい記号は皆無.おかしいなー.

    ちなみに Helvetica 自体は [2005-02-23] に従ってインストール済だったが,文字コード表に載せるにはさらに $WINDOWS\Fonts にコピーする必要があった.

    Helvetica 相当品 Arial を使ってみる

    まあ,ともかく,調べていると「Windows では Arial が Helvetica 相当品です」らしい.なにー,そうだったのか.

    確かに,英数字はほぼ同じ形のようだ.

    arialhelvetica

    重ねてみると記号などは微妙に違うのがわかる.

    diff

    ともかく,Arial では Helvetica が使えなかった Unicode が使えるようなので,マイナスも出せるかも知れない.

    というわけで,Arial のコード表を調べると,Unicode で 0x2212 に MINUS SIGN という名の記号がある.おお,あった! とか思ったが,なぜか Illustrator で使おうとすると「???」とかに化けてしまう.どうも Illustrator 10 では Unicode が扱えないようだ.がーんん (Illustrator CS 以降は対応してるらしい.が,いまいち踏み切れない [2005-07-14]).

    ちなみに WordPowerPoint では,この通りちゃんと表示されるんだがなー.

    word

    0261 でマイナス出た!

    …と半ば諦めかけつつ,試しに gnuplot が吐いた PostScript から,ハイフン記号をエディタで直接半角アに書き換えて Illustrator で読んでみた.すると…

    マイナス出た!!

    minus

    出ました.マイナス記号.なんだ,Helveticaフォントセットにちゃんとあるんじゃん.


    じゃあ,これは PostScript コードとしてはどうなってるんだ? ってことで,以下のような EPS ファイルIllustrator で作り,中身を見てみた.

    300

    PostScript ファイル内では

    /Helvetica findfont /Encoding get
    dup 45 /hyphen put
    dup 48 /zero put
    dup 51 /three put
    dup 127 /plusminus put
    dup 177 /endash put
    pop
    %ADOEndSubsetFont
    /Helvetica*1 
    [
    45{/.notdef}repeat /hyphen 2{/.notdef}repeat /zero 2{/.notdef}repeat /three 75{/.notdef}repeat /plusminus 
    49{/.notdef}repeat /endash 78{/.notdef}repeat
    ] /Helvetica nfnt
    /Helvetica*1 findfont [14 0 0 -14 0 0 ]mfnt sfnt
    0.5 271.424 mov
    (\261) sh
    8.284 271.424 mov
    (300) sh
    0.5 288.924 mov
    (-300) sh
    0 305.924 mov
    (^?) sh
    8.17599 305.924 mov
    (300) sh
    

    となっているようだ.けっこう複雑で,どこか 1 行書き換えたら済むようなもんではない.マイナスじゃなくてエンダッシュだったこともここで気がつく.

    ちなみに 177 = 0261 = 0xb1 である.あれ? やっぱりマイナス (エンダッシュ) のコードは 0xb1 で合ってたんじゃん.±はというと,コード 127 になっている.じゃあ Windows が間違ってたのか??

    コード 0261 の指す文字はエンコーディング依存する

    しかし,今度は MATLAB が吐く EPS のマイナスを \261 にしたり「ア」にしたりすると,やっぱり±になるんである.だんだん混乱してくる.


    さらに調べてようやくわかった.

    This would be an "endash" (i.e. a dash - with the width of a letter n) in the "Adobe Standard" encoding, but is a "plusminus" in the "ISO Latin 1" encoding.

    なにゅー.紛らわしすぎる.MATLAB の吐く EPS をよくみると,

    /Helvetica /ISOLatin1Encoding 168 FMSR
    

    という行があった.ああーこれか.というわけで,思い切って

    /Helvetica /StandardEncoding 168 FMSR
    

    にしてみたところ,めでたくマイナス記号が出るようになった.なんかどっかに悪い影響が出そうな修正法だけど,とりあえず自分の簡単な EPS では問題ないようだ.


    昔,PostScriptMATLAB編集するというネ申な人が職場にいたりしたがww,そこまで MATLAB に詳しくないので,

    perl -p -i.bak -e 's/ISOLatin1/Standard/; s/^\(-/(\261/; ' *.eps
    

    とかすればいいんじゃないかと.


    ちなみに "ISO Latin 1" encoding の "endash" (アスキーコード 0227) も試してみたが,ただのハイフンと見分けがつかなかったので却下.

    まとめ

    • Helvetica でマイナス記号を使おうとすると,ハイフン (0x2d,HYPHEN-MINUS) になってしまう.
    • マイナス記号 (に近いもの) を使いたければ,エンダッシュ (0xb1,ENDASH) を使えばよい.
    • ただし Helveticaエンコーディングには StandardEncoding と ISOLatin1Encoding があり,前者では 0xb1 はエンダッシュだが,後者では 0xb1 はプラスマイナス (±) をあらわしている.しかも後者にはエンダッシュが存在しない.
    • MATLAB の吐く EPS は ISOLatin1Encoding なので,s/ISOLatin1/Standard/ したうえで,マイナス記号を \261 で置き換えるとよい (多分 s/\(-/(\261/ とかすればよいのかも).

    つーかーれーたー.一日潰れたじゃねーか.


    なお,PostScript のコードによっては,以上の操作でファイルが壊れる可能性があります.責任は負いませんので,必ずバックアップを取るなり,アンドゥできる状態で編集するなりしてください.

    おまけ

    Helvetica vs. Arial (格ゲーの一種らしい.よほど Arial に恨みがあるようだ)

    2005-11-17

    [] メールスプールに溜ったメールを救い出す方法 (OE ユーザ向け)

    Windowsメールソフトウェアが調子悪くなって,なぜかメールを受信できなくなっちゃうことがある.今回職場で起こったのもそんなケース.不具合の原因は不明で,メールサーバ側に問題がある可能性もなくはないのだが,他のユーザはみな正常に使えていることと,クライアントマシンにバッドセクタがあったり何かと調子悪いことから,クライアントのせいが濃厚 (だーかーらー早く HDD 換えろと何度(ry


    とりあえず管理者な人が,メールサーバスプールに溜ったメールを退避したとする.今から書くのはこの退避したメールWindows でどうやって読むかという問題.不具合の解決とかはとりあえず無視ね(ぉ


    退避したメールは mbox 形式の一塊のファイルになっている.これを Windows マシンで開く.Meadow かなんかがあれば文字も化けないし最高だが,とりあえずワードパッドで開くようにいう.メモ帳は改行が正しく認識されないので使わない.


    たくさんのメール (文字化けしている) が concatenate されていることを説明する.さらに,メールメールの切れ目が「空行 + From 行」となっていることを説明する.ヘッダの中に埋もれた From 行とかは,空行を伴ってないので無視.で,このデリミタごとにメールを切り出して別々のファイルとして保存させる.


    最後に,切り出したファイル拡張子を eml にする.これで,ファイルダブルクリックすれば Outlook Express が立ち上がってメールの中身が読める.添付ファイルも普通に開ける.うまく読めない場合は切り出し時に何やら失敗している可能性が高い.

    なお,拡張子を eml にするという技は,MH 形式で保存されたメールWindows で読む時にも便利.


    とまあ今回は手動でやってもらったんだけど(ぉ,それはメールがたったの数個だったからで,これが 10 個 20 個とかになったら,スクリプトでも書いたほうが親切というものだろう.

    というわけで,書いてみた.早く書けばよかった.

    #!/usr/local/bin/perl
    # $Id: mbox2eml,v 1.1 2005/11/17 20:53:21 nao Exp $
     
    $cnt = 0;
    $flag = 1;
     
    while( <> ){
        if ( $flag && /^From\ .*/ ){
    	close IN if fileno(IN);
    	$cnt++;
    	open(IN, ">$cnt.eml");
    	next;
        }
        print IN;
        $flag = /^$/;
    }
     
    close IN;
    

    追記 (2007-04-06): 生成された eml ファイルに対してさらに mailutime コマンドをかけるとソートのときさらに便利 (タイムスタンプメールの受信日時になる).


    追記 (2007-08-29): bug fixed.

    2005-11-15

    [] Web 1.0 時代の TOEIC 500 点超え英語勉強法 5 ヶ条

    あちこちで話題になってますね.miyagawa さんの「Web 2.0 時代の TOEIC 900点超え英語勉強法 9ヶ条」.いやもう 900 点なんて言っておいてそれすら謙遜で本当は 970 点だっていうだけで ( ゚д゚)ポカーン な訳ですが….本当にすごいです,

    miyagawa さんに比べて自分の TOEIC (といっても受けたのは 5 年も前) を見ると情けなくなってくる….総合点も低いのに,Listening が Reading に比べて 100 点近く低い.その傾向は 5 年経った今でもあまり変わってないと思う.


    でもまあ,仕事英語を使う機会はあるし,自分なりに努力している部分はある.というわけで,miyagawa さんにインスパイヤされて「Web 1.0 時代の TOEIC 500 点超え英語勉強法 5 ヶ条」でも書くか (使えねー!!).

    0.洋学を聴く.
    これはまあ miyagawa さんも挙げていますが,王道ですかね.

    1.洋画DVD を「英語字幕で」見る.
    私はもともと映画映画館TV でしか見ない人だったんだけど,DVD というものが出来てからは買って家で見るようになった.その一番の理由は「英語字幕があるから」.洋画を字幕なしで鑑賞できるようになる前の段階として,まず英語字幕です.

    一番最初は普通に日本語字幕で見て筋を追っておく (この段階で英語字幕 OK という人は本稿の対象外.吹替え版は耳が慣れないので避ける).2 回目以降,英語字幕に切替える.最初は聞こえた音と字幕の文字列が脳内で一致しないのだけど,何度も見ているうちに一致してくる.文字列を経由した理解は理想形ではないけど,最初の段階では必要だと思う.そのうち字幕を外してみるのもよいかも.台詞を覚えちゃってるだけだろって言われそうだし,実際それはあると思うけど,耳を慣らすのにはいいんじゃね?

    まあ,0.の洋楽で歌詞カード眺めても同じことですな.

    2.ミーティング英語でする.
    自分の場合,職場外国籍の人間が多かった時期があり,必然的にミーティング公用語英語になった時期があった.これはかなり効いた.雑談だとどうしても安全圏な話題に陥ってしまうけど,仕事であれば自分の主張を英語で伝えないといけない.ちなみに外国籍の人達の日本語が上達するにつれて,いつの間にか日本語ミーティングになってしまった…orz

    3.メール英語で書く.
    うちの職場では,メールを全体に投げるときは英語日本語を併記するのが慣例になってたりする.外国籍のメンバへの配慮からだけど,英語勉強という観点からしても,けっこういい制度だと思っている.

    4.計算機関連のドキュメントを英語で読む.
    alias man jman とかしないことwww.man は基本的に英語で読んで,わからなかったら jman をひく.ソースコードを読むだけでもなにげに英語勉強になる (特にコメント部分.それに多くのプログラミング言語は基本的に発想が英語なのだ).自作のプログラムのドキュメントは,既存のドキュメントを参考にして書き換えていく.

    自分のストックしている「うまい言い回し」はたいていこの手のドキュメントから覚えたものだ.学術論文以外でわりと論理的な文章に接したいと思ったら計算機関連ドキュメントがお勧め.まあ,けっこうスラングもあったりするけど.


    こんなところかな.まあこれくらいやってれば 500 点は行くんじゃないかと思いますが,600 点は行かないかも(激ぉ.

    miyagawa さんみたいに,英語blogニュースを購読したり,自分で英語blog を書いたり,ということもやってみたいけど,時間がないんだよな.でも「時間がない」は多分言い訳以外の何者でもないんだろう.


    ともかくですね,久しぶりに TOEIC 受けてみようかなと思いますた.えーと,次回は 1/15 ですか.なにげに 2 ヵ月しかないわけですが.まあ,もしこの意欲が消えなければ(ぉ,近々申し込もうと思います.

    2005-11-14

    [] 英語の発音をカタカナで表す

    口に出して言ってみると,確かに発音がうまくなったような気がする.

    2005-11-13

    [] SCSI ディスクのエラーコード

    SCSI ディスクが調子悪いとエラーメッセージが出たりするけど,このテーブルをみればエラーコード (Additional Sense Code (ASQ) と Additional Sense Code Qualifier (ASCQ)) の意味がわかる.

    例えば先日遭遇したエラーに "ASC: 0x11 (<vendor unique code 0x11>), ASCQ: 0x2

    , FRU: 0x0" というのがあったのだが,これは "ERROR TOO LONG TO CORRECT" を意味することになる.

    scgcheck (cdrtools とかについてるらしい) の man も参考になった.

    教えて下さった方に感謝

    [] 朝型/夜型チェック

    やってみた.

    29 点.「ほぼ夜型」と「明らかな夜型」の境目あたりらしい(ぉ.やばいぞ.

    「夜型」の特徴として項目が挙げられていたが,

  • 低体温で基礎代謝量が低く太りやすい

  • なにー.まあ確かに低体温なわけですが… (35 度台).

  • 寝つくまで時間がかかる

  • 眠りが浅い

  • これはないな.どこでもすぐに寝れます.寝ちゃいけない場面で寝るのが得意(激ぉ.

    生活が不規則すぎて万年睡眠不足なだけかも.ああそーらはこんなにあおいのに♪

  • 朝に食欲がわきにくい

  • これはあたってますな.

  • 夜の仕事効率やシフト勤務への適応力が高く、時差ボケに強い

  • いいよ別に,最後にそんなとってつけたようなフォローしてくれなくても….

    [] 空の旅

    マウスで操作できます.楽しいなー(゚∀゚)

    [] ファミマに行ったら

    夜中にファミマに行ったら,土曜にはあった「極旨塩豚まん」が売り切れてた.土曜に 100 円で売ってたフライドチキンも 126 円に戻ってた.なんだろうこの敗北感は(激ぉ.

    そういえば先週のモーニング秋月りすが「コンビニ肉まんはぬるすぎる」というような話を書いてましたが,まったく同感です.

    2005-11-11

    [] 火星からみたオリオン座

    地球から見たのと何も変わらない.でも妙な感慨があるのはなぜだろうな.

    地上から星空がみえる惑星って,あとは水星くらいか.

    [www.astroarts.co.jp]


    太陽系を何光年も離れて,星座の形が変わって見えるような場所からの写真をみてみたい.と思ったけど,多分私が生きているうちには無理だろう.

    かのボイジャーは,最後に一度だけ振り返って太陽系全体のポートレートを撮ったあと,もう目を閉じてしまったらしいし.(ボイジャーについて私に語らせると多分止まらなくなるので(ぉ,またいずれ,別エントリにて.)

    [antwrp.gsfc.nasa.gov]


    せめてと思い,手作り衛星 CubeSat から撮影された地球画像メールで届く「さいめーる」に勢いで登録してみてしまった.

    [www.space.u-tokyo.ac.jp]

    [] ちょっと通りますよ発売中

    モナー下半身バッグ [2005-10-20] に続き第 2 弾!

    しかも 41,000 円.

    [] 結城さんのクイズ

    もう解答が出てた! 今週はばたばたしてたので,週末にじっくり考えようと思ったら間に合わなかったYO (つД`)・゚・ .

    ともあれ,まあ今回はいろんな解釈があるもんですね.問題 B は仕切り分け問題だと気づいて,仕切りの二分木を書いた時点で,あっこれグレイコードかも,とか思ってたんですが,問題 A は全くお手上げでした.素数に気づけばよかったのかー.なんか「コンタクト」思い出してしまった.

    [] 野球 (の・ボール) 駅

    なんかこう,松山の人の野球に対する愛情を感じるよね.

    ああそれと一部報道で“スワローズ東京音頭を改革”みたいなことがあっ

    たみたいだけど7回や点を取ったときのビニ傘と東京音頭を個人的にも気

    に入っていますし・・・。



    そんなつもりはないですよ。

    あー安心した.東京音頭と青ビニ傘はゆめゆめ絶やしてはなりませぬぞ!

    [] 飲み

    某打ち上げで飲み@やき龍.

    焼き鳥専門店.単価はけっこう高いけどさすがに旨い.いいものを食べたいときにはお勧め.「すきみ (首の肉)」「みちほる (卵管)」など珍しい部位もある.はー,おなかぽんぽんらーTM

    2005-11-10

    [] Solaris マシンの温度監視

    機種によっては

    /usr/platform/`uname -m`/sbin/prtdiag -v
    

    CPU や周辺の温度がわかる.


    ある温度を超えたら通知とかするスクリプトでも書いて定期実行すれば安心.例えば

    Enterprise 450 用があったので使ってみることにした.s/$cC/$c C/ したら使えた.

    [] 上司の目を盗んで mixi するスクリプト

    よりによって MSDN かよwwww 偽装っぷりにワロスwwwwwww

    [] Google Maps鈴鹿疾走

    単純に楽しい.

    (Firefox で動かない時は IME がオンになっているか疑うといいみたいだ)

    何が楽しいって,実世界データとの強力なリンクだよな.鈴鹿のコースは難易度高いけど,国道に出たり人家つっ切ったりしながら南東に進むと数分で海岸に出た.これは,仮に実世界を同じ速度,同じルートで走ったら (大惨事になるので絶対に実行しないでくださいww),やはり数分で海岸に着くことを意味している.つまり実世界内の移動行為のかなり正確なシミュレーションでもあるわけだ.

    衛星画像モードにしたらまた面白いかも,とか思ったり思わなかったり.

    2005-11-09

    [] SMTP ポートから投稿ポート

    迷惑メール防止のため,投稿時は SMTP ポート (25 番) でなく投稿ポート (587 番) を利用しようという動きが広がっているようだ.

    mew-dist ML によれば,このサイトの末尾で説明しているフィールド実験を,Mew と Emacs22 を用いて行うようだ.

    [] 無限集合

    無限集合に関する数学の問題.よくできてるなあ.

    そういや数週間前,高名な先生の講演を聞く機会があって,その時黒板に先生が書き出したのが自然数と実数の濃度に関する「Cantor の対角線論法」だった.大学時代,まともに数学講義に出てなかったもんで,知らなかった(ぉ

    ついでに,その時出された問題が

    自然数 a,b に対し,ab=ba を満たすようなものとして,例えば 24=42 などがある.

    では,同様な関係を満たす有理数にはどのような条件が必要か?

    とかいうようなもので,解はあるらしいんだけど,いくら考えても解けない…解けた人がいたら教えてください.

    2005-11-08

    [] シェルスクリプト内で演算

    いにしえのシェルスクリプトを調べていてみつけた.例えば

    % echo 1+2 | bc
    3
    % echo 10^3 | bc
    1000
    

    なにー,知らなかった.これ使えば

    $c = `echo $a+$b`
    

    みたいなこともできるし,ワンライナー内で計算したりもできるかも.( ・∀・)つ〃∩ ヘェーヘェーヘェー

    [] 突然の一億円

    一般にこういうお金では、消耗品は買えない、複数の関連の無い備品ではなくひとつのものを買うこと、などの制限がつき、現場の研究者にとってはありがたい話であるものの使い勝手はよくないお金といえる(「動物のお医者さん」のお話でもそのようになっていたので私は作者の取材にたいへん感心した)。

    自分も「動物のお医者さん」のこの部分はたいへん感心した.

    2005-11-07

    [] 職場サーバ

    というわけで,飲み会から終電で帰宅したところに職場サーバからメール.cron が実行できなかったという内容なのだが,何やらとんでもないことが起こってるようだ.一気に酔いが醒める.自宅から調べるうちに事態の深刻さがわかってくる.基幹サーバ類が軒並機能できてないのだ.NFS mount している /home やら /usr/local やらが見えない.メールは使えないしログインもままならない.


    結局,始発で職場に行って再起動かけたりしても収まらず,そのうち sync できなくなったり fsck でエラーが頻発したり panic[cpu0] になったりして,泥沼状態.サーバ 3 台が相互に調子悪くなってるのでわけがわからん.ネットワーク障害かとも思ったが,パケット監視しても変な兆候はないし,ping は通る.これで油断してしまった.さらにサーバラックがなぜか移動してて,配線やスイッチを目視確認できなかったことが解決の遅れにつながった.


    ていうか自分の脳内自体に fsck かけたほうがいいんじゃね? みたいな状態で,テンパった挙げ句,某所に支離滅裂なメールを送って「まあもちつけ」みたいなアドバイスをもらい (その節は失礼しました>大先生),多少落ち着いて事態を整理したりしたんだけど,このまま起き続けてるのはかえって危険な気がしたので,2 時間ほど仮眠.連続稼働時間 46 時間は個人記録です.たぶん.


    月曜になって人が来たので手伝ってもらい,試行錯誤するうちにふとイーサネットスイッチを取り換えてみたら…解決した.orz.これだったのか…中途半端にネットワークがつながってるもんだから (TCP はだいたい通った),まさかネットワーク機器が落ちてるとは思わなかったんだよ….半日くらい死んだようになってますた.その後,事後処理に追われ,現在に至る.


    ていうか,「ed をつかってみる」[2005-10-25] がこんなに早く役に立つ日がくるとは…あまり来てほしくなかった.

    教訓:

    • ping が通ったからといって安心するな.ネットワークはまず疑ってかかれ.
    • 要素を (ハード的/ソフト的に) 切り離していって原因を locate する.
    • サービス再開よりユーザデータの保護を優先する.システムデータよりユーザデータを優先する.

    2005-11-05

    [] ハイコントラスト飲み会

    飲み会.一次会は Lawry's The Prime Rib Tokyo.

    メインのローストビーフだけでも 5,000 円とかそんな店.さすがにおいしかったけど.食後にウェイターがグラッパを勧めて来たが,それが 1 杯 2,000 円台とかそんなんですよ.わはは.

    で,「なんかビール飲みたくね?」ってことでwwww,2 次会は庄や!

    価格帯が 10 倍くらい違う.すげーハイコントラスト飲み会!


    知財話で大盛り上がりだったりしたが,不思議ツッコミを頂いたので記しておく.

    nao ってさー,…いつも mew 使ってるよね」

    さて,盛り上がりすぎて,気がついた時には経路探索で表示される電車の発車時刻が朝 5 時台だったりしたんだけど,気合いで終電に間に合わせた.経路探索上では終電終わってても,意外と間に合うことってあるんだな.まさかその時は,その後一睡もせずに始発で職場に行く羽目になるとは予想もしなかった (詳細は次エントリ参照).終電で帰って始発で出かけるという,別の意味でもハイコントラストな飲みだった.

    2005-11-03

    [] ファイアウォール内の MATLAB

    Linux ファイアウォール内の MATLAB をフローティングライセンスで使う場合のめも.


    MATLABライセンスマネージャ FLEXlm が使うポートは 27000 なので,このポートを開ければよい.

    また,MATLAB ベンダーデーモン MLM が使うポートデフォルトで 27000〜27009 のどれからしい.これを例えば 27005 に固定するには,license.dat

    DAEMON MLM /usr/local/matlabr12/etc/lm_matlab port=27005
    

    などとしたうえで,ライセンスマネージャを起動すればよい.


    ファイアウォール側では,/etc/sysconfig/ipchains に

    -A input -s 0/0 -d 0/0 27000 -p tcp -y -j ACCEPT
    -A input -s 0/0 -d 0/0 27005 -p tcp -y -j ACCEPT
    

    と書く (/sbin/ipchains で設定して,/sbin/ipchains-save でセーブするのが正当派なんだろうけど,前任管理者が /etc/sysconfig/ipchains にいろいろコメントを残していたので,消さないために直接編集した).で,

    /etc/init.d/ipchains restart
    

    すればおk.


    参考:

    [] はてなトラックバック

    げ,はてなって自動でトラックバック送るようになってたのか.うーわー.あわててオフにしますた

    2005-11-02

    [] FreeBSDロゴ

    [2005-02-13] から半年,ついに出ましたなー.

    思ったよりよさげ.Tux より好きかも.beastie も続投のようで嬉しい.


    おまけ: ハロ化.

    2005-11-01

    [] はてなを使ってみて

    はてなの一連のサービスをとりあえず何日か使ってみて感じたことは,すごく良く出来てるってこと.「快適さ」という点では群を抜いている.ユーザインタフェースとしては実に秀逸で,ほとんど何のストレスも感じずに使い始められるし,他社のサービスにはない魅力的なオプションもたくさん揃っている.万人にお勧めできると思う.


    一方で,あまりに全てが与えられていると,自分で hack する楽しみがない.カスタマイズには限度があるし,内部構造が不明な部分があるので,新しい機能が欲しくても,はてなからリリースされるのを待つしかないこともある (それでも他社のホスティングサービスよりはよほどオープンだけど).

    OS にたとえれば,はてなWindowstDiaryLinux,といったところだろうか (Movable TypeMac で,chalowFreeBSD あたりか?).


    とりあえず,はてなブックマークは非常に便利だね.ソーシャルブックマーク的側面を抜きにしても,目についたものをどんどん放り込めるというのはいい.

    よく考えれば,ブラウザブックマークって,Mosaic の頃から全然進歩してなかったもんなあ…


    追記 (2005-11-04): 「はてなWindows」説に鋭いツッコミを頂きましたが,

    えーっと,万人に勧め得る最大公約数OS として Windows を引合に出したということで (その点で Windows は優れた OS だと思う),一応ほめてるつもりです.

    決して,Windowsこんな点とかこんな点とかこんな点とかを思い出して書いたわけではないんです(ぉ

    ……はてなさんごめんなさい(激ぉ

    [] 他人の給与明細

    まあ,上見ればキリがないし,下見てもキリがないってことだな.文句言わず働きます.


    追記 (2005-11-04): 28 歳の平均年収は 412 万 6700 円らしい.

    [] EPIC 2014

    某氏の mixi 日記より.

    ウェブメディアをめぐる 2014 年の未来予測.Googlezon にワロタ.

    まあ,電子ペーパーとかのハード面はこんなトントン拍子にいかないはずなんで.