もしかしてそろそろ年賀状買ったほうがいい系? ここ数年年賀状をまともに出してない (きたらだす) から年賀状のあれがどういうシステムかを完全に忘却してる……
あーほら、キリのいい年だからこっちから出そうかと思ったけどめんどくなってきt
なにやら w3.org ドメインにあるじゃないですか! っていってもどれほど使えるかわかりませんけど……
namazu 検索エンジン の夢を見た。namazu はある大学の一つの建物で、中がかなり広い。namazu は工事中らしい。中に入るとコンクリート片やらパイプやらが散らばっている。中に入っていくつかの部屋を抜ける間に何人かの学生を見た。何をしていたかは知らない。かなり中のほうの部屋までいった。そこでパイプの残骸を見つめて、そこで目が覚めた。
coLinux をインスコして Debian を弄ってみる。わかんないこと多すぎだけどとりあえず手探りで……とりあえず仮想的にコンピュータがもう一個あるのは遊べるなぁ。最初にやったのはころがってるチュートリアル見ながら SSH の設定と環境構築 (zsh インスコとか)
一通り KDE とかインスコしてみて VNC で遊んだので Apache をインスコ。
何となく WebDAV って楽しそうじゃん?とか思って mod_dav をインスコ。しかしながら XP SP2 の Web フォルダでは HTTPS でないと Basic 認証ができないらしく mod_ssl を入れる。ついでにログイン時のユーザ名がわけわかになって絶対認証に失敗するので Web Client サービスをとめる。
なんかできたっぽいかなと思ったので、この状態でこのウェブサーバに外部から接続するにはどうしたらいいだろうと考えた。普通の HTTP はホストコンピュータ上の Apache からバーチャルホスト設定 (ホストの Apache はそのまま使うため) と内部 Proxy 使っていってらっしゃい。SSL のほうは TCPTunnel 使ってポートフォワーディング。めでたしめでたし。
xyzzy のキーバインドを一部覚えててよかった。
画像に埋め込んであるだけだといちいち編集するのが面倒なので、簡単な管理方法を考えた。っていっても firefox.png に対して firefox-meta.rdf というファイルを作っておいてスクリプトで一括合成させるだけのものだけど……
本当は firefox.rdf にしようと思ったけど、そのままアップロードしたとき MultiViews のネゴシエーションで RDF のほうが優先されて困るので -meta というサフィックスをつけた。playing.xml を変換するスタイルシートに playing-style.xsl と同じような雰囲気。
むしろ画像データ (firefox.png) をリクエストしてメタデータ (firefox.rdf) が返ってくるは少し変な気もする。いやでも firefox.png はメタデータを含んでいるし、image/png を受け入れないなら RDF を返してもいいか。実際 W3C もそういう方法 (photoRDF) を考えているみたいだし……
なんかこういうのを見つけて仕様 (PDF) を見てみたけど、XML である意味が薄いところが多々あると思う。それと仕様が緩くて仕様の意味が薄かったり、そもそもアプリケーション間のエクスポート・インポートにしか使えない。手で書いたとき creator 属性には何を入れればいいんだろう? 想定外なんだろうけど、メールで XML を送ってインポートさせてあげられれば相手の手間が省けるんじゃないかなぁ。
なんていうか ExtensionItem なんて要素作らずにアプリケーション個別の拡張のためなら独自のネームスペースでやればいいのになぁとか思った。せっかく eXtensible なのに……何か理由があるんだろうか。
いっぱいありすぎてドレがいいのかサッパリ。何にしても機械がないのでインスコできないんだけども……
pngtxt.zip (458KB) MD5:44fda2b7421e94e6f181ee80a134e814
exerb で固めてみた。たぶん zlib.dll がいる。んでファイルサイズが大きい。
iTXt 以外のチャンクは (tEXt, zTXt チャンクも) 見ることさえできません。tEXt, zTXt チャンクを全部 iTXt に変換する機能とかあるけども、文字コード変換はやらないからあんまり意味ない。ついでに変換するやつに Unicode 文字以外があると微妙に危険。
Compress にチェックを入れても、圧縮しないほうがデータサイズが小さいときは自動的に無圧縮で保存されます。つまり Compress にチェックを入れても必ず圧縮されるわけじゃないです。たぶん多くの場合はこのほうが便利だと思うので……
図書室から寝ぼけながら教室の自分の机に戻ると、知っている女の子が二人いる。一言二言話して行ってしまう。机の上に何か色々書いてある紙が置いてある。白黒でペンによって書かれている。右上から左下にかけて斜めに女の子の絵が描いてある。二人のうちの一人が書いたらしい。その周りにはいろいろメッセージがぎっしり書いてある。カバンの中に手帳が入っている。二人のうち一人のらしい。妙に幸せな気分だった。
起きたらなんか妙に切なかった。なんかそれでしばらく混乱しててひとつ授業受けそびれた……別にいいんだけど出席がやばめ。
とにかくごちゃごちゃ書いてある紙の絵が好きだった。
結局自分で作ってみた。exerb で EXE 化しようと思ったら mswin32 版の Ruby では zlib が原因不明の SEGV で落ちるのでどうしたものかと。
Ruby + VisualuRuby で GUI 作った。iTXt 以外は TweakPNG があるので何もしない。UI は見ての通り TweakPNG のパクり。
使っているライブラリは Uconv と zlib と VisualuRuby かな。VisualuRuby が Win32API 使ってるか。といいますかですね、GUI まですぐ作れる Ruby ってやっぱ偉大なんですよ。
zlib.dll を変えていったら(?)直った。よく分からないけどめでたし。
とりあえず iTXt への書き込み/読み込み方法はできたので実際にどうやって埋め込むかを考える。考えるっていっても、メタデータを埋め込んでいる PNG ファイルというと RDF のアイコンが既にあるのでそいつをそのまま真似ればいいかなと。
この埋め込み方法は二つのチャンクを使う。一つはメディアタイプを明確にする Metadata Type チャンク。もう一つは実際にデータを埋め込む Metadata チャンク。RDF アイコンではこれらは tEXt チャンクに入っているけど、日本語を (というか国際化のために) 使うのでどちらも iTXt に入れる。Metadata Type (ASCII しか使われないっぽい) も iTXt にするのは tEXt, zTXt チャンクが iTXt 登場のおかげで既に古くさい感じが漂うから。
ってか実際何を埋め込んで何をしたら面白いかをちゃんと考えてない。まだあくまでこういう方法もできるという保険みたいなもん。何かいいことできないかな。
GOOD DREAMS のせいで(というのよりフリクリまた見たせいで)ピロウズのアレとかソレとかがかなり燃焼。ポータブルプレイヤー(256MB)にも the pillows ディレクトリ作って入れまくった。
ところで最近 Blues Drive Monster 聞いているとヤバいですよ。喩えるなら心臓に下から繋がっているパイプを素手で掴んでひっぱってくるような感じ。本当に格好いいなぁ……
たのしいことがしたい。
何か知らないけどいろんなところで微妙に価値観がずれているらしい。学校では控えめに言っても納得できないことがかなり多い。色々あって黙っているのが一番いいと気付いたわけだけど、完全に諦め切れない部分で困る。ちゃんとマルチスレッドにしないと……別スレッドに納得できないことを移して kill すれば(感情用のプロパティに直接 nil を代入しようとすると TypeError なのだ)消える。素敵だ。問題はどうやって実装するかだけれど。
俺は嫌いなことが多いっぽい。例えば俺の管理下にある部分で全く Strict じゃない部分があるのは嫌いだ。フレームが大嫌いだ。気取ったやつが嫌いだ。まぁを多様するやつが嫌いだ。解ったふりするやつが嫌いだ。勘違いが嫌いだ。C 言語至上主義者が嫌いだ。汚い実装が嫌いだ。あまり使わない漢字を強いポリシーがないのに使っているのが嫌いだ。他人に影響されすぎるやつが嫌いだ。聞いてもいない音楽を批判するのは頭が腐ってるとしか思えない。勉強できるやつが嫌いだ。理解力が低いやつが嫌いだ。満員電車が嫌いだ。遅刻しても各駅に乗る。体育会系が大嫌いだ。体育教師は例外なく嫌いだ。挙動不審なやつが嫌いだ。神話至上主義者が嫌いだ。緊張感が嫌いだ。調べようとしないやつが嫌いだ。神経症だからと言うやつが嫌いだ。テレビのニュースが大嫌いだ。空気読めないやつが嫌いだ。くだらないラブソングが嫌いだ。想像力がないやつが大嫌いだ。こういう中で自分が当てはまっている部分があると本当嫌気がさす。
マンガ読まないのに MANGA SICK。可愛いあの子は夢の中とか、インチキ空間の次元は幾つだろうとか。もやしは日のないところで育つ。なんかそれっぽいこと言っておけばOK。
これからしばらくですますと僕を使うようにしようと思う。なんかアフォっぽくなって素敵そうだから。
もっとちゃんと調べてみました。でもあんまり見つからない。(google: png iTXt)
PNGの仕様上、アルファベットだけにしてください。と書いてあります。
PNG 仕様書の tEXt チャンクの仕様には
テキストは ISO/IEC 8859-1 (Latin-1) [ISO/IEC-8859-1] 文字集合に従って解釈されます。テキスト文字列はどのような Latin-1 も格納できます。テキスト文字列中の改行は LF 文字(十進 10)ひとつで表現されるべきです。ほかのコントロール文字をテキスト中に使うことは推奨されません。
と書いてあるので、マルチバイトは含めないみたいです。日本語に拘るなよとか言われたらそれまでという感じですけど、XML 格納するなら I18N 必須じゃないかなぁと思います。
てかですます僕ってなんか……
スーパー適当実装 iTXt 埋め込み用クラス(でもサイズとかも取得できるよ)。微妙に中途半端だけど力尽きたのでまた今度にします。デバッグ用のコード (p) 満載。
昼ぐらいまで寝ていると少し問題があるけどかなり幸せな夢を見る。
あー起きたくねーなー。でも起きないと時間もったいないなーというジレンマ