冬様もすなる☆日記というもの (2008年11月)

2008年11月28日

はなみずき (@23:28 +09:00)

結局一日中鼻水が止まらなかったorz 風邪引いたかな?

Re: はなみずき (@23:28 +09:00)

知恵熱かも。

ご感想 (著者に直接送る)
[これは何?]

2008年11月26日

蒟蒻畑復活 (@21:33 +09:00)

思ったより早かったですね。これで安心して冷蔵庫の中の蒟蒻畑を消費できますwwww

ご感想 (著者に直接送る)
[これは何?]

2008年11月24日

ゆっくりしていってね! (@17:57 +09:00)

ゆっくりの声をインストールしたよ。ゆっくりしていってね。

SuikaWiki の長い道のり (@22:28 +09:00)

どうも、記録によると SuikaWiki の歴史が始まったのは2002年2月2日のようです。*1 ということは、まもなく SuikaWiki は7周年を迎えます。

単なる自画自賛ですが、変化の激しいこの Web の世界で、7年間もずっとこうして存在し続けられているのは、すばらしいことだと思います。スクリプトを作るのに協力してくださった方々や、記事を書いてくださった方々に感謝せずにはいられません。

今月の初めに数えた時点では SuikaWiki の頁数は 13000 を超えていました。 13000 といわれてもすごいのかすごくないのかわからないので、 7 × 12 × 30 で割ってみたら、答えは 5 でした。つまり、 SuikaWiki の頁数は1日5頁ずつ増えていっているということです。もちろんその5頁には、たいして中身のない頁だとか、もっといえば spam だけの頁なんかも含まれているわけですけれども、でも、5頁ずつ増えていっているだけではなくて、既存の頁が更新されたりもしているのですから、やっぱりすごい。自画自賛ですが。

既存の頁が更新といいましたが、もちろんすべての頁が更新されているわけではなく、ずっと前に書かれたきり、ずっとそのままになっている頁もあったりします。その理由は、既に十分な内容があるからだったり、忘れ去られたからだったり、飽きたからだったり、いろいろでしょうが、理由はともあれ、古い記事を見つけると埋蔵文化財でも発掘したような嬉しい気持ちになります。電子メイル関係の記事が古いやつの宝庫みたいですね。

今まで見つけた中では、2002年6月更新になっているのが、更新日 (頁の最後に書いてあります。) 付きの記事では一番古いみたいです。ただし、すごく昔の記事は更新日が記録されていません。いつから更新日がつくようになったのかはよく調べないとわかりませんが、おそらく2002年6月くらいでしょうね。だから更新日がない記事を見つけるというのは旧石器を発掘するようなもんでしょう。*2 ちなみに、 SuikaWiki の記事は CVS で保存しているので、更新日が最近であっても昔の記事のソースを見ることもできます。でも一番古いのでも2002年7月くらいみたいです。ちょっと残念です。

  1. 最初に CVS に commit されたのが4日ですが、その時 commit された ChangeLog の日付は2日になってます。
  2. ただし、古い版の SuikaWiki には更新日を更新しない機能があって、それを使って書き込まれた記事は2002年6月以降でも更新日がついていないことがあります。困ったもんですw
ご感想 (著者に直接送る)
[これは何?]

2008年11月23日

アニーたん (@07:45 +09:00)

犬にも猫にも鼠にも虫にも変身できるスーパー動物(謎)アニーたんと家に帰る・・・という夢を見ました。

ご感想 (著者に直接送る)
[これは何?]

2008年11月16日

Re: はじめての (@10:27 +09:00)

ナカーマ

そうそれ、まさにそれです。でも「(株)TSN」じゃなくて、「(株)CDE」担当の「浅野」さんからでしたw

ご感想 (著者に直接送る)
[これは何?]

2008年11月15日

机の脚 (@18:34 +09:00)

机、というかちゃぶ台、というかテーブル、というかなんというのか知りませんが、それの脚の付け根? がなんかすこし曲がって上の台が斜めってきてることに気付きました。

いつも上にひじとかついて体重掛けた状態でニコニコ動画とか見てるせいでしょうかねw

500ウォン硬貨 (@18:43 +09:00)

買い物に行ったとき、1円玉を出そうとして、うっかり間違えて5豪セント硬貨*1 を出してしまいましたorz 色が同じでサイズも近いんで、一瞬わかんなかったんですがw*2 ちなみに題名の500ウォンは今 35 円くらいみたいです。こっちも安くなりましたねw

  1. ぐぐった結果、 3.2 円くらいらしいです。昔はもっと高かったんですがw
  2. オーストラリアから戻った後に財布から出したはずなのですが、1円玉に似てるので見落としてしまったみたいです。

はじめての (@18:53 +09:00)

携帯電話に C メールで架空請求が来ました。携帯を持つようになってもう長いですが、はじめてこういうのがきました。とってもうれしいです。

ご感想 (著者に直接送る)
[これは何?]

2008年11月11日

最終回 (@12:33 +09:00)

そういえば、カードキャプターさくらの最終回あたりの話の展開って全然覚えていません。前に再放送で見たときも、その前に見たときの最後あたりの記憶が全然ありませんでした。これは偶然とは思えません!!!11! 何か不思議な力が働いているに違いありません。きっと最終回には見てはいけない何かが含まれていて、それを覚えていられると困る方々が記憶を消していったんでしょう。

クイズ (@21:48 +09:00)

7分間に CSS 2.0の特性名を何個書けるか? このシリーズは意外と難しい。全部で122あるうち、38個も書けませんでした。時間より記憶力が。*1

  1. ちなみに抜けてたのは azimuth, background-image, content, counter-increment,counter-reset, cue, cue-after, cue-before, cursor, elevation,marker-offset, marks, max-height, max-width, min-height, min-width,orphans, outline-width, pause, pause-after, pause-before, pitch-range,play-during, quotes, richness, speak, speak-header, speak-numeral,speak-punctuation, speech-rate, stress, text-align, text-shadow,text-transform, vertical-align, visibility, volume, z-index。普通使わない ACSS はともかくとして、それ以外は冷静に考えればわかったはずですが、なかなか難しい。
ご感想 (著者に直接送る)
[これは何?]

2008年11月10日

SuikaWiki における名前空間の失敗 (@23:04 +09:00)

もう5年以上経ってしまったと思うのですが (!)、 SuikaWiki*1 に新しく追加した機能の1つに「名前空間」がありました。プログラミング言語や XML などでしばしば耳にする「名前空間」ですが、 SuikaWiki では、頁を識別する文字列である WikiName の階層化を意味していました。それまでの SuikaWiki では頁にはそれぞれ「愛」や「名前」といった WikiName が与えられていたのですが*2 、名前空間に対応した SuikaWiki では、「XML//名前」、「XML//空白」、「HTML//空白」といったように、「//」で区切ることによって階層構造を持った WikiName を使うことができるようになりました。 SuikaWiki では頁の内容を記述する際に「[[単語]]」のように括弧を使って括ることで他の頁へのリンクを作成できましたが、「XML//名前」という頁で「[[..//空白]]」と書くと「XML//空白」へのリンクになる、という相対参照の仕組みも導入されました*3

この名前空間の機能は、当時の先進的な wiki engine のいくつかが既に似たような形で実装していました*4 し、名前空間がない wiki engine を使っていても、「WikiNews」や「HTMLの仕様書」のように頁の名前の一部を名前空間的 convention を定めて用いていることが多いようだったので、その導入は必然であるかのように思えました。

ところが、 SuikaWiki における名前空間は思ったほどうまく働きませんでした。その大きな理由は文化的なものと技術的なもの、2つを挙げることができると考えられます。

まず文化的なものというのは、 SuikaWiki のごっちゃにカオス的編集方針との親和性です。 SuikaWiki には Web 関連、電子メイル関連、ローカル・ネタ、アニメ関連、暦関連など、色々な分野の話題が明確な境界なしに混在しており、むしろそれが好ましいと考えています*5 。ところが、名前空間が提供する機能はこの理念と正反対のことを実現するためのものです。名前空間ごとに記事を整理してしまっては、混在によるカオス感が減っていってしまいます。

もう1つの技術的なというのは、こういうのを「技術的」というのかは知りませんが、名前空間の導入によって WikiName がキーワードからファイル名へと変質していったことに問題があります。例えば「HTML//注釈」から「XML//注釈」へリンクしたいとすると、「[[XML//注釈]]」のように「//」が含まれる WikiName を書かないといけません。あるいは、「HTML」から「HTML//注釈」へリンクするには「.//注釈」と書かないといけません。*6 そもそもの wiki が持っていた、キーワードが簡単にリンクなって、ファイル名のようなものを覚えておく or 調べる必要がない、という特徴がこれでは失われてしまいます。リンクはハイパーテキスト・システムとしての wiki の根幹ですから、この手軽さは決して捨ててはならないものですが、名前空間はそれを危うくしました。

更に、名前空間は様々な実装上の複雑さをもたらしました。 WikiName は元々は単純な文字列だったのですが、名前空間区切子「//」を導入したことによって、色々な処理の前に構成部品毎にばらすか、予めばらしておいて文字列の配列で保持しておくか、いずれにせよ処理が圧倒的に多くなりました。また、 WikiName 全体が「//」な場合や WikiName が「//」で始まる場合や WikiName が「//」で終わる場合、といったように、それまで不要だった例外処理が必要になりました。「//」を含む WikiName を作れなくなったので、「http://suika.fam.cx/」という名前の WikiName を作れなくなりました (「http:」に属する「suika.fam.cx/」でよければ作れますが)*7 。何らかの escape 構文を導入してそれを可能にしようと検討したこともありましたが、それ以上の複雑化は避けるべきだと判断し、断念しました。また、 WikiName はファイル・システム上の記事データベースのファイル名としても (多少の変換は行っていますが) 使っていました。*8 そのため、名前空間の構造の変化に応じたディレクトリの作成・消去や CVS を使った履歴管理機能におけるディレクトリ内の再帰的な処理などの場面で、ディレクトリの階層構造が存在することによる処理の複雑化が起こっていました。その複雑化がバグの温床ともなることは言うまでもありません。このように、名前空間は害こそあれ、有益性をもたらすことはありませんでした。

  1. 「SuikaWiki」という語には「SuikaWiki という wiki engine 実装」という意味と、「SuikaWiki という wiki engine 実装を使って運用されている suika.fam.cx の wiki」という意味の2つがあって紛らわしいのですが、本稿では敢えて曖昧なまま使います。
  2. 当時 (当初から SuikaWiki3 まで) の SuikaWiki の実装の実情からすると、逆に WikiName に頁の内容が関連付けられていたと捉えた方が正確かもしれません。
  3. 相対参照は後に更に拡張されて、「[[空白]]」と書くだけでまず「XML//空白」があるか調べ、あればそれへのリンクに、なければ「空白」へのリンクにする、という実装になりました。
  4. 例えば MediaWikiには2002年に実装されたそうです。なお、 MediaWiki には相対参照的なものはないみたいです。その他各種 wiki engine の実装も色々違いがありますので、本稿でいう「失敗」は必ずしも他の wiki engine の場合には当てはまりません。
  5. なぜそれが良いのかというと、「wiki は Web のミニチュアだから」とか「異分野の融合によって新たな創造の可能性が(ry」とか「単に面倒だから」とか色々説明の仕方はあるのでしょうが、「RFC 822 でいう comment」、「HTTP でいう comment」、「HTML に昔あった comment 属性」、「XML の注釈宣言」、「DOM の Comment 界面」、「SuikaWiki/0.9 の #comment 命令」といった似たような概念についての記事が「RFC 822」、「HTTP」、「HTML」、「XML」、「DOM」、「SuikaWiki/0.9」といった別々のところに分散しているより、まとまっているべきである、その方が面白い、というのが実用上一番大きな理由だと思います。
  6. リンクのラベルとリンク先を変えられるようにすれば「//」が含まれることによる文章上の不自然さはなくなるのですが、 SuikaWiki では敢えてリンクのラベルとリンク先を変える機能を用意していません。 MediaWiki のように名前空間を持っている wiki engine はそういう機能を持つことが多いようです。
  7. 敢えて名前空間区切子を2文字の「//」にしたのは、1文字の例えば「/」にするとそれが使えなくなってしまうからでしたが・・・。
  8. もちろん、名前空間の構造とファイル・システム上のディレクトリ構成を揃えなければならない理由はなく、実際 SuikaWiki3 は両者を分離可能とすることを設計目標の1つに含んでいたのですが、それができなかった旧来の SuikaWiki2 のデータをそのまま使い続け、移行できずにいました。ちなみになぜ SuikaWiki2 がそんな設計になっていたのかというと、 SuikaWiki2 のベースとなった YukiWiki には名前空間の仕組みがなく、そこに強引に名前空間を追加したからです。
ご感想 (著者に直接送る)
[これは何?]

2008年11月6日

最近寒いですね。 (@10:14 +09:00)

最近寒いですね。なんか風邪ひいてる人沢山いますね。気をつけないとですね。。。

ご感想 (著者に直接送る)
[これは何?]

2008年11月5日

今朝の夢 (@09:42 +09:00)

なんか知らない人に、俺昔同じクラスだったよ、といわれました。そういわれるとそうかも。そんな夢を見ました。

ご感想 (著者に直接送る)
[これは何?]

2008年11月1日

Wii のマリオカート (@21:48 +09:00)

最近マリオカート Wii 実況がニコニコによくあがってるんですが、やばいですね、欲しくなりますね。 Wii もってないけど。あとアイマスも欲しい。 X 箱もってないけど。やっぱ実況やばい。思う壺だwwww

この日記システムの調子が悪い件 (@22:02 +09:00)

なんかまた Atom フィードの生成に失敗してます。

この日記システム、設計が古くて杜撰なうえにつぎはぎなんで、何かあってもいじりにくいんですよね。。。いじるとむしろ壊しそうで。。。

そろそろ再設計して作り直さないと駄目かなー。

この日記システムの調子が悪い件 (2) (@22:06 +09:00)

この日記システムはある電子メイル・アドレスにメイルを送ると、その本文が記事になるという仕組みになってます。メイルが鯖に届くと、 Postfix が設定に従ってプログラムを起動して、ごにょごにょして更に別のプログラムで・・・なんてことをやってます。この辺の設計がてきとーかつつぎはぎでよくない。どこかで問題が起こっても、それがどこでどういう問題が発生したのか、記録がどこにも残らないのでさっぱりわからない。困ったことです。

この日記システムの調子が悪い件 (3) (@22:10 +09:00)

ところで、全然話は変わりますが、たまに、デバッガーになにを使っているか、と聞かれることがあります。そういう時は決まって、「print デバッグさいこー」と答えます。 print とか printf とか document.write とか alert とか WScript.Echo とか MsgBox とかその辺があれば、大抵の問題はそっこーで解決しますよね。*1

  1. でも C の segmentation fault は gdb 使った方が早いかな。

この日記システムの調子が悪い件 (4) (@22:16 +09:00)

何がいいたいかというと、こうやって内容のない記事を書きながらデバッグしているということです。

どう考えても、プログラムを直すのに必要な時間より、この無駄な記事を書くのに必要な時間の方が多いです。無駄ですねwwwwww

この日記システムの調子が悪い件 (5) (@22:20 +09:00)

ちなみに、結局原因は必要なモジュールを require するのを忘れていたというごくごく単純だけどありがちなミスだったのですけれども、なんで今まで動いていたのかが謎ですね。たぶんどこかで間接的に呼ばれていたのがなにかの弾みwで呼ばれなくなったんでしょうけど。。。

この日記システムの調子が悪い件 (6) (@22:25 +09:00)

モジュールなんかを作る時はあとからエンバグしてもすぐわかるように半自動化した単体テストを用意したりするんですけど*1 、こういうのはどうやってテストしたらいいんでしょうかねー。勝手に記事書くテストなんてやったらうざいしw かといってテスト用の別の日記を作る、とかいうのもめんどくさい。そもそも頻繁に内容書き換わるようなモジュールなんて使うなという話もありますがwww

  1. めんどいのでさぼることもよくあるんですがw
ご感想 (著者に直接送る)
[これは何?]