某日記

(後期)

平成15年7月22日(火曜日)

週末

いろいろと。なぜか AT Lady! (1)(2) ゲット。

やる気 0 運動。

バグフィックス。ダイアログプロシージャの最後に (void)atoi(""); を 入れるとバグが直る不思議。

801 系客車寝台

SA1 。 当方素人なのでお手柔らかに頼んます(;_;)

というか、貯金ヤバいので 次回はせめて 10 万 or under でおながいします>ごたーん

平成15年7月23日(水曜日)

ゴロ

裁判というのは結論が出るまでが長いので、過程も重要になってくるのです。

SCO のやりかたはあまりうまくないかなぁ、とは思うのだけど、 勝つのが目的じゃなくて混乱させるのが目的ならばそれはそれで アリかなとは思う。

一方で、裁判に時間がかかることを利用したのが こちら 。 これ、異議申し立てすれば阪神球団にも分がある可能性があるのだが、 それをやってるあいだに旬は過ぎてゆく。

夕方

また一人、また一人と人が抜けてゆく……。 ふと気づくと、私より右の方に人が 1 人しか居ない状態に。

平成15年7月24日(木曜日)

しーぽん

そうか、あの謎の飛行物体は盗蟲だったのか。 やられた時のつぶれ具合とか。

今週のチャンピオン

フェイスガード(1)。同時多発アクメツ。

名無しさん@お腹いっぱい。津田島さん萌え。

ラーメン(2)。春。

萌え遊戯王(ぱんつはいてない)。1 ページ目から飛ばしてますな :D

愛梨さま。ジェラート。

×。垂れてる垂れてる。

平成15年7月25日(金曜日)

話題のアレ

また遅れましたな。くらげ。

アレと似ているものを良く知っているぞ。その名もモルフィーワン

比較するとこんなに似ている:
モルフィーくらげ
何が問題か品物が出ない品物が出ない
忙しいのかニョガンを玩ぶ暇はあるコミケに出る暇はある
なんで商品が出ないのかプロト DOS 版は動いたのに、
本番試作で動かない。
そのプロトが残ってない。
まともに作る気がない。能力がない。
体験版は動いたのに、
製品版が動かない(予想)。
そのソースが残ってない(予想)。
まともに作る気がない(予想)。能力がない(予想)。
なんで食って行けるのかお布施お布施
末路もちろん倒産生き残るようだったら腐ってる

「予想」の部分に関しては、あくまでも私の予想であり、 事実と異なるかもしれません :D

GPL 研究会

これ だけど、かなり内容怪しいよ。

一ヶ所だけ。pp.115 の丸 4 :

プラグインはクライアント・プログラムと独立したプロセスとして 生成される。つまり、クライアント・プログラムとプラグインは異なる プログラムと考えることができるため、お互いはライセンス的には 無関係と一般的に言われている。GNU FAQ でもクライアント・プログラムが GPL によりライセンスされている場合でもプラグインは GPL とする 必要がないことが明記されている。
ツッコミどころとして、 「プラグインはクライアント・プログラムと独立したプロセスとして生成される」 とは限らないので、これは誤解を招くよな。ちなみに、件の FAQ では、 この件に関しては次のように 述べているな:

とはいえ、マユにツバした上で読む分にはそれなりに面白いとは思う。

平成15年7月27日(日曜日)

euc

ja_JP.eucJP と ja_JP.EUC-JP 。 Linux では codeset name としては MIME preferred name を使う、 みたいな雰囲気が glibc 2.2 くらいのころに形成されていたような気がするので、 それが根拠なのでしょうね。逆に、OpenI18N の standard charset については、 あれは文脈から見て lexical example なので、 eucJP ではなく EUC-JP の方を使うよう特に薦めているという 話ではないでしょう。

逆に、eucJP という名前は実は MIME が出るよりも前に locale の codeset 名として OpenGroup が決めた名前だったりするらしく、 したがってこのような codeset に関しては、 わざわざ MIME preferred name の方を選んで locale 名に使うと 名前が dup するので好ましくないし、そもそも別の名前空間なのだから、 そこで MIME preferred name を使わなければならない根拠もない、 という主張を soda さんあたりがしていたりしますね。

まあ個人的には、nl_langinfo(CODESET) の戻り値が iconv_open に 渡せることだけちゃんと仕様で保証しておいて欲しいけど (まあ今の実装はほとんどこれを満たしてると思う)、 それ以上はどうでもいいよなぁ、とか思ってます。

gcc3

このところの commit 見てると、どうやって build system に統合するのか、 今ひとつ方針が不明瞭なんですけど……。

gnu/usr.bin/Makefile を見ると、USE_TOOLS_TOOLCHAIN=no だと gcc3 が有効になるように書いてあるので、 結局 dist/toolchain 配下は捨てるってことなのかな、これ。 でも、その割には dist/binutils が復活してないし、 bsd.own.mk の USE_TOOLS_TOOLCHAIN の指定が意味不明だし、 正直何を考えてるのか謎。

まあ、いずれにしろ、dist/toolchain/gcc に直接 import しちゃうと、 CVS が勝手に head に merge してくれるせいで一時的にしろ build system が壊れちゃうし、oki さんによれば gcc3 は m68k で問題があるという事情もあるようで、 しょうがなく dist/toolchain/gcc ではないところに import したんだろうけど、 でも、dist/gcc じゃなくて dist/toolchain/gcc3 のほうがまだマシじゃないか? それとも、すべての問題がクリアになるまでのつなぎとしてとりあえず 別の場所に置くという意図で (そしてクリアになったら toolchain/gcc に移すということね)、 過去のディレクトリを再利用したってことなのかな。

collation

iconv は終わったんで、次は collation かね。

これは iconv とよく似ていて、 内部的にはエンコーディングモジュールで文字を取ってきて、 それを照合順序のインデックスにマップするだけ。問題はですね、 たとえばドイツ語の照合順序では、s の次に ss およびエスツェットが 同列にきて、次に t が来るんですな。 つまり、n 文字食って 1 インデックスを返すようなコンバータが必要で、 しかも上の例だと s 以外の文字が s のあとに続いたときには バックトラックしないといけない。

どう実装するのがいいのかな、これ。Trie 木あたりで持つのがいいのかなぁ。

というか、localedef の collation って難しくてよくわかんないんですけど。

平成15年7月28日(月曜日)

gcc3

tech-toolchain というメーリングリストの存在を思い出した。

mrg によれば、現在の状態は次のとおり:


でも、binutils ないから 多分 make build 動かないんじゃないかという気もする。

eucJP

まったくもってそのとおりで 、 純粋に ujis とかと同じような扱いでいいのではないかと思います。

nl_langinfo(CODESET) については、 locale 名に関係なく nl_langinfo(CODESET) が MIME preferred name を返すように実装してもいいですし、 あるいは iconv のほうで alias するというのが常套手段ですね。 Citrus は後者になってます。 また、前者もできるようなメカニズムになってますが、 宗教的理由によりそうしてません。

平成15年7月29日(火曜日)

最近ムンクを見てから寝る生活なので眠くてしかたない。

遅らばせながら BOOKOFF で見つけてきた「悪の対話術」なんぞを読了。

私、本質的に悪人なんで、どちらかといえば再確認の意味が強かった。 この人の文章は、枝葉が多い(そしてそれが熱い・暑苦しい) けどおそらく構成がちゃんと考えられてるらしく読みやすい。 閑話休題付けるのを忘れないってのもあって着地点が明確なんだろうな。 匿名発言うんぬんについて、なんか思考停止に陥ってるところがかわいい。 テクノロジについてけないおっさんの香りがした。

がはは

なぜ政府のオープンソース優遇措置を受け入れるべきか 。 典型的な形で論点のすり替えが行われているので注意。 アナロジーとして用いる媒概念が根本的にズレている。 接着剤の例でいえば、もし「製造法を委細隠さず世間に公開するべし」 という政府調達基準が存在するのならば、 それをアナロジーとして持ち出すのは正当だが、 単なる厳しい要求仕様を持ち出すのはいかにもズレてる。 この接着剤の例に対応する事例がコンピュータの世界にあるとすれば、 それは例の POSIX 対応義務じゃないかね。

後で出てくる例も、要求仕様が変だとか、手続きが煩雑だとか、 そんな例ばっかりで、本題であるところの 「オープンソースにすべし≒企業秘密を公開すべし」 という件に関するアナロジーは一つも出てこないべ。

まあ、「政府の優遇措置を受けいれるべきか否か」ということに関しての 私の意見をここで述べることはしないが、 少なくともこんな文章を読んで納得してるようではいかんよ諸君。

NetBSD Device Driver Writing Guide

これ 。 ぱっと図とか見た感じ、newconfig についてちゃんと説明してそうな 気がしてよさげなのだが、ドイツ語はさすがに読めん :D

丸数字

機種依存文字 。 perl は 5.6 で止まってるので知らないんですが、 CP932 相当の指定はありませんかね?

平成15年7月30日(水曜日)

CP932 と SJIS

ややこしいんですよねー 。 独立した話題が二つ混在してるので、 ひとつずつほどいていくといいかもしれません。

一つめの話題というのは SJIS と CP932 の違いでして、 この二つは良く似ているけどいろいろと違います。 SJIS および CP932 で使われているエンコーディングスキームは、 大まかに言って 8bit 領域 2 つと 16bit 領域 1 つを持っており、 8bit の一つがいわゆる半角英数字記号、もう一つがいわゆる半角カナ、 そして 16bit 領域がいわゆる全角漢字記号に使われます。

SJIS では、この領域にそれぞれ 「ISO646-JP」「JISX0201 カナ」「JISX0208」が割り当てられています。 対して CP932 は 「ISO646-US」「JISX0201 カナ」「JISX0208+拡張文字」が 割り当てられています。これをみれば分かるとおり、 そもそも SJIS は拡張文字を持ってないため、 たとえば「丸数字を SJIS で表現する」ということ自体が厳密には不可能でして、 もしそれをやっていたとしたらそれは厳密には 不正なバイト列ということになります。 したがって、実際にそこで SJIS と言われてるものは、 実は十中八九 CP932 のことを指しています。 そもそも Windows で使われているのは SJIS ではなくて CP932 なので、 したがって、Windows との相互運用を考えた場合には SJIS ではなくてできるかぎり CP932 を選択するほうが無難です。 まあそれができない場合には仕方ないんですけど。

SJIS と CP932 には違いがあるということと、 世の中ではそういう混同があるということを認識しておくのが大切ですね。 これが一つめの話題。丸数字の問題に関しては、こっちだけ理解しておけば 十分ともいえます。

二つめの話題というのは、SJIS ないし CP932 を Unicode へと変換する時の あいまいさに起因する問題です。SJIS や CP932 は、 論理的に同じと見なされるような文字を重複して持っています。 たとえば、「全角のA」と「半角の A」は、エンコーディング上は 別々の文字として扱われていますが、論理的には同じ文字です。 同様に、Unicode も重複した文字を持っています。

問題となるのは、SJIS ないし CP932 から Unicode へ変換する時、 その重複している文字のどっちに変換すればいいのかという部分です。 常識的に考えて、SJIS と CP932 の重複部分、つまり 「JISX0201 カナ」と「JISX0208」 に関しては同じルールを適用できるはずです。 ところがややこしいことに、 Unicode コンソーシアムが提供している JISX0208 vs Unicode 変換表と、 Windows で使われている JISX0208 vs Unicode 変換表が違うんですね。 たった 4 文字 7 文字なんですけど、 これが文字列検索などで問題になることがあります。

これは本質的に SJIS と CP932 の違いとは次元の異なる話なのですが、 Windows との互換性を考えた場合に毒を食らわば皿まで、ということで、 「SJIS を Unicode に変換する時は Unicode コンソーシアムの JIS X 0208 変換ルールを使う」 「CP932 を Unicode に変換する時は Windows の JIS X 0208 変換ルールを使う」 という「慣例」になっています。これが二つめの問題ですね。

後者に良く似た話として、ISO646-JP と ISO646-US の違いに起因して、 Unicode 変換した時に顕在化する問題というのもあるのですが、 まあこれは省略します。

まあなんというかややこしいですね。個人的にはですね、 SJIS と書いてあるところは何も考えずに CP932 と読み替え/書き換えてしまったほうが、 結果としてその後も何も考える必要がなくて良いと思っています。 上記のような話を除いたとしても、 ISO646-JP を使っているということ自体が SJIS の潜在的問題の一つでして、 これが Unicode との相互運用で面倒くさい話を発生させます。

もっとも今度は、「円マークがバックスラッシュになる問題」が発生して、 エンドユーザから文句を言われたりする可能性もなきにしもあらず。 まぁフロントエンドが Windows だけで閉じてれば、 これも顕在化しなかったりする可能性が高いですけど。

すっかり忘れてましたけど 、 拡張文字と JISX0208 で見ると同じ文字が 3 つとか存在するケースもありますな。 これは、「JISX0208 になかった字を NEC と IBM がそれぞれ独自に追加し、 その後 JISX0208 もそれを追加した」という歴史的経緯によります。 Windows 3.1 でこれらをまとめた際に、変換を容易にするため Unify は されなかったんですな。

Unicode コンソーシアムの JISX0208 vs Unicode 変換テーブルには、 レガシーな文字コードとの相互運用性という観点からすると一つ致命的な問題が あるんですよね。それはバックスラッシュの扱いでして、件のテーブルは これが U+005C へと変換されるようになっています。EUC-JP も CP932 と同様に、いわゆる半角英数字として ISO646-US を使っており、 当然こっちのバックスラッシュも U+005C へと飛ばされますから、 バックスラッシュを含む文字列を EUC-JP → Unicode → EUC-JP と変換すると元に戻らない可能性があるということになります (普通は、 いわゆる全角バックスラッシュが半角バックスラッシュになってしまいます)。 一方、Windows の変換テーブルは JISX0208 のこの文字を U+FF3C へと 変換するので元に戻せます。もっともこれ、 Unicode コンソーシアムの気持ちもわからんではないんですけどね。 まあパンドラの箱をあけちまった Unicode コンソーシアムの連中が 悪いんだけど(ぉぃ

レイティング

SafetyOnline2 レイティング基準 。 この基準に従うとですね、 このページ はレベル 4 にひっかかってお子様には見せられない、 ということになってしまうんですがどうすればいいんでしょうか :D

まあなんというか、 レイティングによる子供に対する情報遮断というのは、 本質的に「責任を果たしたフリをする無責任」である気がするんだがのう。

難しいかどうか

イメージの問題 。 実はそういうのは軽視できない要素だったりして。 「ね、そんなに難しくないでしょ 」 とはいうものの、たとえばこれを次の例に置き換えて考えると面白い:

  • 私を「甲」とよぶ
  • あなたを「乙」とよぶ
  • 私の書いたプログラムを「丙」とよぶ
  • 甲は乙に対し丙を与える。
  • 乙はその対価として甲に対し金一万円を支払う
ね、何言ってるんだか訳分かんないでしょ :D

まあ何というか、慣れてくださいとしか言えない世界ではあるんでしょうな。 論理という観点で言えば、 「私はあなたにこのプログラムを与える」と「甲は乙に対し丙を与える」は 等価なんだけども、私も含めて普通の人間ってばそんなに 出来がよろしくはないので、こういう述語的な違いが理解力に 大きな影響を与えるんですよね。

人間って単純苦にはだいたい対応できるんですけど、 二重苦三重苦と重なっていくとだんだん精神力がおっつかなくなってくる。 上の例で言えば、 「概念の理解」と「用語の強要」でがんじがらめになってしまう。 こういう話のいちばん端的な例が C 言語のポインタでして、 これ、なんで難しいかというと、私が思うには 「ポインタという概念の理解」と「文法的な難しさの強要」 が混ざってるからなんですよね。私が十数年前に始めて C を勉強した時、 私はすでにアセンブラを知っていましたから概念でつまずくことは なかったのですが、 あのよくわからん文法および、配列とポインタの違いを租借するのには 苦労した記憶があるので、ましてやアセンブラというバックグラウンドが なければがんじがらめになってしまうのではないかという気がしますね。

結局、こういうものを理解させるためには、問題を整理して単純化して、 一歩一歩先に進むしかない、という話になるんじゃないかな、 という気はします。 親鳥がヒナに餌を与えるときにはそれを適切に咀嚼する能力が必要なのと同様に、 学ばせる側は、 その問題の急所を見つけて単純に分解する能力が必要になるわけですな。 一方、あまりそれをやりすぎると前に進もうとしなくなっちゃうので、 その辺のサジ加減も難しい。

平成15年7月31日(木曜日)

リンク許可

なんでこんな幼稚な発想しか出来ないんだろう…… 。 影響力の大きなサイトでこういう形でさらしものにするのは ある種の暴力だと思うよ。 まあ、今回は対象が公的機関だというのもあるんだろうけどさぁ。

何度か書いてる話だけど、 なんでこいつら、まず最初に法的根拠ありきなんだろう。 それは本来、最後にもってくるものだろう。 そのまえに考慮すべきことはいっぱいあるだろうに。 最終的にリンクするのが自由なのは確かだけど、 コンテンツ提供側の意思はある程度尊重してあげるというのが人情だと思う。 リンクするのが自由なのと同様に、 無許可リンクしないでくれとお願いするのも自由なんだし、 そのお願いを「いや常識だから」で無碍に無視するのは、 何か「自由」に伴って負うべき責任の一つである「節度」 というものがないがしろにされてるのではないかという気がするんですよね。 もちろん程度問題ではあるし、 黙って無視してリンクする程度ならば、それは各人の判断ではあると思うんだが、 それがさも当然の「権利」であるかのごとく強弁するのはちょっとね。

というか、もうこの手の記事は飽きたからいいよ。同じギャグは三度まで。

xine

(゜д゜ )クシーン……

昨日のしーぽん

なんか、どんどん小唄としーぽんのキモーイ度がアップしてますな :D

小唄とかしーぽんの醸し出してるキモさは制作者の意図どおりなのかね。 たとえば小唄の台詞のキモさは意図的なのかもしれんけど、 この二人のキモさの本質はそういう小手先の描写に源があるわけじゃないよな。 端的に言えば、「純真無垢な善人の醸し出すキモさ」かにゃ。

まあ、これをテレビの前で「キモーイキモーイ」言いながら(言ってないけど) 見てる漏れも、一般人的にはキモイかもしれんがー。

同じ善人でも蟹はキモクないのはなぜだろう。

まちがいさがし

茄子アンダルシアのサウンドトラックを買ってきたのだが、 ライナーノーツのミュージシャン紹介がこんな感じ:

なんかおかしいと思ったら、二人め以降が一行上にズレてるよ :D

他にまほらばドラマ CD を買ってきたが、石丸博也に爆笑。

今週のチャンピオン

狂姫ぢゃ〜〜。今週もぱんつはいてない。

みかん。ムサシくんのは立派です。

フェイスガード(2)。つる姫ぢゃ〜〜。

萌え遊戯王。萌え。

愛梨さま。次回最終回うわーん。

変なデバイス

utoro の再来か :D

やってることは utoro と同じやね。