home 最新

いろいろ
Seize the day.

2004|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|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|07|09|10|
2009|12|

2005-11-01 [長年日記]

[blog] はてなを使ってみて

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

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

とりあえず,はてなブックマークは非常に便利だね.ソーシャルブックマーク的側面を抜きにしても,目についたものをどんどん放り込めるというのはいい.
よく考えれば,ブラウザのブックマークって,Mosaic の頃から全然進歩してなかったもんなあ…

追記 (2005-11-04): 「はてな=Windows」説に鋭いツッコミを頂きましたが, えーっと,万人に勧め得る最大公約数的 OS として Windows を引合に出したということで (その点で Windows は優れた OS だと思う),一応ほめてるつもりです.
決して,Windows のこんな点とかこんな点とかこんな点とかを思い出して書いたわけではないんです(ぉ
……はてなさんごめんなさい(激ぉ

[misc] 他人の給与明細

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

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

[comp] EPIC 2014

某氏の mixi 日記より. ウェブとメディアをめぐる 2014 年の未来予測.Googlezon にワロタ.
まあ,電子ペーパーとかのハード面はこんなトントン拍子にいかないはずなんで.
本日のリンク元 | 1 | TrackBack(0)

2005-11-02 [長年日記]

[comp] FreeBSD 新ロゴ

[2005-02-13] から半年,ついに出ましたなー. 思ったよりよさげ.Tux より好きかも.beastie も続投のようで嬉しい.

おまけ: ハロ化.

[misc] 第 2 日本テレビのサイト

これはひどい.

2005-11-03 [長年日記]

[comp] ファイアウォール内の 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.

参考:

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

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

本日のリンク元 | 1 | TrackBack(0)

2005-11-05 [長年日記]

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

某飲み会.一次会は Lawry's The Prime Rib Tokyo. メインのローストビーフだけでも 5,000 円とかそんな店.さすがにおいしかったけど.食後にウェイターがグラッパを勧めて来たが,それが 1 杯 2,000 円台とかそんなんですよ.わはは.
で,「なんかビール飲みたくね?」ってことでwwww,2 次会は庄や! 価格帯が 10 倍くらい違う.すげーハイコントラスト飲み会!

知財話で大盛り上がりだったりしたが,不思議なツッコミを頂いたので記しておく.
「nao ってさー,…いつも mew 使ってるよね」
さて,盛り上がりすぎて,気がついた時には経路探索で表示される電車の発車時刻が朝 5 時台だったりしたんだけど,気合いで終電に間に合わせた.経路探索上では終電終わってても,意外と間に合うことってあるんだな.まさかその時は,その後一睡もせずに始発で職場に行く羽目になるとは予想もしなかった (詳細は次エントリ参照).終電で帰って始発で出かけるという,別の意味でもハイコントラストな飲みだった.
本日のリンク元 | 5 | TrackBack(0)

2005-11-07 [長年日記]

[comp] 職場のサーバが

というわけで,飲み会から終電で帰宅したところに職場のサーバからメール.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-08 [長年日記]

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

いにしえのシェルスクリプトを調べていてみつけた.例えば
% echo 1+2 | bc
3
% echo 10^3 | bc
1000
なにー,知らなかった.これ使えば
$c = `echo $a+$b`
みたいなこともできるし,ワンライナー内で計算したりもできるかも.( ・∀・)つ〃∩ ヘェーヘェーヘェー

[misc] 突然の一億円

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

2005-11-09 [長年日記]

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

迷惑メール防止のため,投稿時は SMTP ポート (25 番) でなく投稿ポート (587 番) を利用しようという動きが広がっているようだ. mew-dist ML によれば,このサイトの末尾で説明しているフィールド実験を,Mew と Emacs22 を用いて行うようだ.

[misc] めじまぐろ

めじまぐろはくろまぐろ (本まぐろ) の子供だったのか.

[science] 無限集合

無限集合に関する数学の問題.よくできてるなあ. そういや数週間前,高名な先生の講演を聞く機会があって,その時黒板に先生が書き出したのが自然数と実数の濃度に関する「Cantor の対角線論法」だった.大学時代,まともに数学の講義に出てなかったもんで,知らなかった(ぉ ついでに,その時出された問題が
自然数 a,b に対し,ab=ba を満たすようなものとして,例えば 24=42 などがある.
では,同様な関係を満たす有理数にはどのような条件が必要か?
とかいうようなもので,解はあるらしいんだけど,いくら考えても解けない…解けた人がいたら教えてください.
本日のツッコミ(全3件) [ ツッコミ | permalink | trackback ]

* KND [(a, b) = ( ((N+1)/N)^N, ((N+1)/N)^{N+1} ) (N: 整数、N≠0,-1)は少..]

* nao [どうもありがとうございます.コメントに気づくのが遅れて申し訳ありません(recent_comments がなぜかうま..]

* KND [いえいえ、美しくない証明によるお目汚し、失礼しました。]

本日のリンク元 | 5 | TrackBack(0)

2005-11-10 [長年日記]

[comp] Solaris マシンの温度監視

機種によっては
/usr/platform/`uname -m`/sbin/prtdiag -v
で CPU や周辺の温度がわかる.

ある温度を超えたら通知とかするスクリプトでも書いて定期実行すれば安心.例えば に Enterprise 450 用があったので使ってみることにした.s/$cC/$c C/ したら使えた.

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

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

[comp] Google Maps で鈴鹿疾走

単純に楽しい.
(Firefox で動かない時は IME がオンになっているか疑うといいみたいだ) 何が楽しいって,実世界データとの強力なリンクだよな.鈴鹿のコースは難易度高いけど,国道に出たり人家つっ切ったりしながら南東に進むと数分で海岸に出た.これは,仮に実世界を同じ速度,同じルートで走ったら (大惨事になるので絶対に実行しないでくださいww),やはり数分で海岸に着くことを意味している.つまり実世界内の移動行為のかなり正確なシミュレーションでもあるわけだ.
衛星画像モードにしたらまた面白いかも,とか思ったり思わなかったり.
本日のリンク元 | 10 | TrackBack(0)

2005-11-11 [長年日記]

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

地球から見たのと何も変わらない.でも妙な感慨があるのはなぜだろうな.
地上から星空がみえる惑星って,あとは水星くらいか. [www.astroarts.co.jp]

太陽系を何光年も離れて,星座の形が変わって見えるような場所からの写真をみてみたい.と思ったけど,多分私が生きているうちには無理だろう.
かのボイジャーは,最後に一度だけ振り返って太陽系全体のポートレートを撮ったあと,もう目を閉じてしまったらしいし.(ボイジャーについて私に語らせると多分止まらなくなるので(ぉ,またいずれ,別エントリにて.) [antwrp.gsfc.nasa.gov]

せめてと思い,手作り衛星 CubeSat から撮影された地球の画像がメールで届く「さいめーる」に勢いで登録してみてしまった. [www.space.u-tokyo.ac.jp]

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

モナー下半身バッグ [2005-10-20] に続き第 2 弾! しかも 41,000 円.

[misc] 結城さんのクイズ

もう解答が出てた! 今週はばたばたしてたので,週末にじっくり考えようと思ったら間に合わなかったYO (つД`)・゚・ . ともあれ,まあ今回はいろんな解釈があるもんですね.問題 B は仕切り分け問題だと気づいて,仕切りの二分木を書いた時点で,あっこれグレイコードかも,とか思ってたんですが,問題 A は全くお手上げでした.素数に気づけばよかったのかー.なんか「コンタクト」思い出してしまった.

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

なんかこう,松山の人の野球に対する愛情を感じるよね.
ああそれと一部報道で“スワローズの東京音頭を改革”みたいなことがあっ たみたいだけど7回や点を取ったときのビニ傘と東京音頭を個人的にも気 に入っていますし・・・。

そんなつもりはないですよ。
あー安心した.東京音頭と青ビニ傘はゆめゆめ絶やしてはなりませぬぞ!

[misc] 飲み

某打ち上げで飲み@やき龍. 焼き鳥専門店.単価はけっこう高いけどさすがに旨い.いいものを食べたいときにはお勧め.「すきみ (首の肉)」「みちほる (卵管)」など珍しい部位もある.はー,おなかぽんぽんらーTM
本日のリンク元 | 6 | TrackBack(0)

2005-11-13 [長年日記]

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

SCSI ディスクが調子悪いとエラーメッセージが出たりするけど,このテーブルをみればエラーコード (Additional Sense Code (ASQ) と Additional Sense Code Qualifier (ASCQ)) の意味がわかる. 例えば先日遭遇したエラーに "ASC: 0x11 (), ASCQ: 0x2 , FRU: 0x0" というのがあったのだが,これは "ERROR TOO LONG TO CORRECT" を意味することになる.
scgcheck (cdrtools とかについてるらしい) の man も参考になった. 教えて下さった方に感謝.

[misc] 朝型/夜型チェック

やってみた. 29 点.「ほぼ夜型」と「明らかな夜型」の境目あたりらしい(ぉ.やばいぞ.
「夜型」の特徴として項目が挙げられていたが,
  • 低体温で基礎代謝量が低く太りやすい
  • なにー.まあ確かに低体温なわけですが… (35 度台).
  • 寝つくまで時間がかかる
  • 眠りが浅い
  • これはないな.どこでもすぐに寝れます.寝ちゃいけない場面で寝るのが得意(激ぉ.
    生活が不規則すぎて万年睡眠不足なだけかも.ああそーらはこんなにあおいのに♪
  • 朝に食欲がわきにくい
  • これはあたってますな.
  • 夜の仕事効率やシフト勤務への適応力が高く、時差ボケに強い
  • いいよ別に,最後にそんなとってつけたようなフォローしてくれなくても….

    [misc] マウントベースをゼビウスと呼ぶ

    タイラップのマウントベース [www.tyton.co.jp]
    をゼビウスと呼ぶのはうちの職場ローカルな現象なんでしょうかね??(ぉ

    [misc] 空の旅

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

    [misc] ファミマに行ったら

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

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


    2005-11-14 [長年日記]

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

    口に出して言ってみると,確かに発音がうまくなったような気がする.
    本日のツッコミ(全2件) [ ツッコミ | permalink | trackback ]

    * ななか [ななし]

    * かずや [innerの発音をおしえてください]

    本日のリンク元 | 10 | TrackBack(0)

    2005-11-15 [長年日記]

    [misc] 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-16 [長年日記]

    [misc] かたづくえ

    妙に凝った動画がなにげにワロス.

    [misc] ノッポさん 71 歳の歌手デビュー

    工エエェェ(´д`)ェェエエ工

    2005-11-17 [長年日記]

    [comp] メールスプールに溜ったメールを救い出す方法 (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-18 [長年日記]

    [comp] 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]).
    ちなみに Word や PowerPoint では,この通りちゃんと表示されるんだがなー.
    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 では問題ないようだ.

    昔,PostScript を MATLAB で編集するというネ申な人が職場にいたりしたが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 に恨みがあるようだ)
    本日のツッコミ(全2件) [ ツッコミ | permalink | trackback ]

    * nao [ツッコミテスト.]

    * nao2 [ツッコミテスト 2.]

    本日のリンク元 | 7 | 2 | 2 | 2 | 1 | TrackBack(0)

    2005-11-20 [長年日記]

    [comp][space] 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 アセンブラコードを削って削って削りまくった時,苦しかったけど楽しかったなあ(ぉ.最近こういう仕事してないのでちょっと飢え気味.

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

    突然自分の連載を打ち切られて流行モノの連載をやらされ,しかも 3 誌同時進行というおいしくない企画で,それでも頑張って 2 ヵ月先行して原稿を上げたら,編集のミスで原稿を間違って掲載され,挙げ句の果てに「連載を辞めたければ仕方がないです」とか言われ…不憫すぎる.
    追記 (2005-11-22): 協議の結果,どうにか丸く収まったみたいだ.
    本日のリンク元 | 12 | 1 | TrackBack(1)

    2005-11-21 [長年日記]

    [comp] FOMA スパムの暗号

    もうびっくり.ダヴィンチ・コードも真っ青.は言いすぎかも知れないが,ともかく,やねうらおさんの緻密な推論スゴス. ただ,超マイナーキャリア (WILLCOM) を使っている身には,妙に実感が薄い.そもそも WILLCOM 使って随分経つけど,スパムメールの類は 1 通も来たことがない.

    [misc][comp] 初代ファミコンの付属漫画

    内部の仕組みとかすごい詳しく説明されてるのな.すげ.

    2005-11-22 [長年日記]

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

    その昔,ゼビウススレに作者が降臨,しかも常駐して,EvezooEND だけど何か質問ある? 状態になったときに明かされたらしい.
     ガ〜ガ、ガルボジック、ゲ〜ル結界、ゲ〜ル結界
    ド〜ド、ドロワザン、ガンドロワ〜
     
     あなたも定時だ、私も定時だ、あなたも〜 
    
    最初のほうはイデオンネタらしいのでよくわからんが,「定時」はそのうちそうとしか聴こえなくなる…

    ちなみに flash 版ゼビウスで確認できたりする.
    この flash よくできてるな〜.チャリチャリ言うの好きだー.グワッシャ! (とか書きつつゼビウスはリアルタイムではあまりプレイした記憶がありません)

    [comp][misc] 2ch 空耳

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

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

    本日のリンク元 | 1 | TrackBack(0)

    2005-11-25 [長年日記]

    [comp] No space left on device

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

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

    今月初めくらいから,Sony BMG の CD に rootkit が仕込まれているという問題が大きな話題になっていますね. ここにきて日本でもようやく回収・交換の動きが出て来たようだ.とりあえずここに挙がっている CD は持ってなかったので安心したけど,けっこう有名どころなアーティストも多くて(((( ゜Д゜))) ガクガクブルブル. 最初にこの問題を見つけた Russinovich 氏のレポートがここにある.これがまた面白過ぎ.Windows のスーパーハカーというのはこういう人のことをいうのだな.テラスゴス. Russinovich 氏の勤務する Sysinternals では,RootkitRevealer という rootkit 検出キットを配布している. ただ,日本語キー名に含まれる null に反応してしまったり,全スキャンを行うので時間が掛かるという問題点がある.とりあえずチェックするだけなら,全スキャンを行わず,さらに rootkit の削除までをやってくれる F-Secure の BlackLight がよいようだ (ただし使用期限は今年いっぱい). 試しに両方のツールで自分の PC をチェックしてみたが,不審なものは特に見つからなかったようだ.まあそうまでしなくても,とりあえず Sony BMG の rootkit は来月以降「悪意のあるソフトウェアの削除ツール」の削除対象となるようなので安心. rootkit が既に入ってしまった環境でのセキュリティソフトウェアの動作については,以下が詳しい. さて,そうこうしているうちに,Walkman A シリーズの付属ソフトウェア Connect Player のとんでもないダメダメっぷりが話題になり,またソニーかと思う間もなく, Walkman A の販促 blog が炎上の果てに閉鎖というニュースを今日知った. まあ,前からソニーはあまり好きではなかったのでどうしても非難口調になっちゃいますけど(ぉ,それにしてもひどすぎですよ.最近のソニーの強みは良くも悪くもイメージ戦略であって,こういう戦略は個人的には好きじゃかったけど,まあさすがだなと一定の評価はしてました.それが今回の blog 騒動では,その唯一の売りであるイメージ戦略そのものが腐っちゃってることが露呈したわけですよね.なさけない.

    [misc] キョン

    「八丈島のキョン」ってこいつか.
    大きく見えるけど実際は柴犬くらいの大きさらしい.名前がなんかいい.きょん.
    本日のリンク元 | 1 | TrackBack(0)

    2005-11-26 [長年日記]

    [comp] 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): すいません,上のは間違ってました_| ̄|○.また別の事実が見つかったので新しい記事として書きます.こちら

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

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

    いろいろな人の手を借りながら (その節は大変お世話になりました>真夜中にホットライン下さった方),早朝にようやくだいたいの復旧作業が終わり,後輩君を返して一息ついたあたりで飛び込んで来たはやぶさサンプル採取成功のニュース.ウェブカメラに向かって V サインする的川教授. [smatsu.air-nifty.com]
    こちらがシステム復旧に苦戦している間,彼らも徹夜でリポ D (はやぶさのおかげで世界的に有名になってしまったらしい) を飲みながら,もっとずっと大変なミッションを限られた予算と人的資源のなかでやりとげていたのだ.妙に感動してしまったのは徹夜明けのせいかな.ともかく,素直に心から賞賛したい.また落ち着いたら記事書きます.

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

    2005-11-27 [長年日記]

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

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

    えー,大変申し訳ありません.前回のエントリは完全にピント外れでした.失礼しました _| ̄|○
    今回調べているうちに,まったく別のある仮説に行き当たりました.時間のない方は下のほうの「仮説」だけお読み下さい.
    要は「OE が悪いんじゃね?」という仮説です(ぉ

    追記 (2005-11-28): 大変申し訳ありません.OE は悪くありませんでした orz.偏見に基づいた結論を出してしまいすみませんでした(激ぉ.詳しくは [2005-11-28] を.
    実験環境
    Windows XP に Excel 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 ファイル末尾を切り取ると開けなくなる (メール添付の時と同じ症状が出る).
    • Word,PDF,BMP,その他多くのファイルフォーマットは,末尾を切り取っても開ける.
    • Mozilla/5.0 で Excel 添付でも開けるという例外的な事例が 2 件ほどあったんだけど,これらの Excel ファイルに関しては,末尾を切り取っても開くことができた.
    うーむ,Excel シビアすぎです.もう少し余裕をもったつくりになって欲しいもんです.
    仮説
    というわけで仮説です.あくまで仮説です.検証はしてません.
    • Mozilla/5.0 は添付データと boundary の間に空行を入れない.これは RFC 的には間違ってない.
    • 仮説: OE の MIME 解析ルーチンは boundary の直前の文字を chop してしまうのではないか??
    • 普通の MUA が送って来たメールなら,CRLF が chop されるだけなので影響はない.
    • Mozilla/5.0 が送ったメールの場合,OE で読むとデータ末尾が chop されて消える.
    • OE の base64 デコーダは "=" をパディングしたりせずにデータを切り上げるので,デコードされたデータは末尾 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] を.

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

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

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

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

    2005-11-28 [長年日記]

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

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

    えー,またまた,大変申し訳ありません.前回のエントリで思わず脊髄反射で「OE が悪いんじゃね?」とか書いてしまいましたが(激ぉ,OE は悪くありませんでした(ぉ.重ね重ね大変失礼しました.orz
    しかし POP で取って来た場合になぜ大丈夫なのかはこれでは説明がつかない,とされている.
    …いや,説明つくんじゃないかな.Mew が改行を LF にしてファイル保存しているからじゃない?
    Mew の保存ファイルはあくまで Mew のファイル形式であって,それが RFC822/RFC2045 準拠だとは誰も言ってないから,改行が CRLF じゃないからと言って非難できない (なんかいろいろ議論があって Mew では改行は LF に統一することになったらしい)
    あああー,そうか,そうですね.そうでした orz.Mew が LF にしちゃってるのか.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 的にデータサイズ不整合となる.
    • OE の base64 デコーダは,データサイズ不整合の場合,整合するようにデータを切り上げてデコードするので,結果としてデコードされた添付ファイルの末尾 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 で開ける.でも添付ファイルは見えなくなるみたいだ.
    本日のリンク元 | 12 | 5 | 1 | 1 | TrackBack(0)

    以下の広告はサーバによって自動的に挿入されています.


    Copyright © 2004-2006, nao. All rights reserved.