history

青木日記 RSS

<前の日 | この月 | 次の日>

2004-01-13

ruby-dev summary

例によって例によって例によってすっかり忘れてました! うおお。土曜までは確かに覚えていたのに。 休みが入ったのがいけなかったのか。

BitChannel についてちょっとだけ話そうじゃないかっ

むう。tdiarygrep と言い BitChannel と言い、 めじゃーな分野で何か作ると反応が大きいのね……。

ここぞとばかりに役に立たない話を書こう。

まずきっかけから。

作るきっかけはサイトのページ更新がうざかったこと。 今は HTML なり RD なりを編集して cvs ci して make して rsync なんだけど、 これがめんどくさい。 BitChannel みたいな CVS 内蔵型 Wiki を使えば edit → save で終わる。 流行り言葉で言うと CMSっていうんですか? そういう使いかたがしたかった。

理由の二つめは「ソースコードを読むための技術」。 あれにはメールしか連絡手段がないにも関らず、 いまだに感想とか追加の指摘とかが来ている。 だからこれを Wiki に移してコメントボックスを付けて 簡単に意見が書けるようにすれば、 もっとたくさん意見が来るに違いないと目論んだわけだ。

そこで条件に合う Wiki を探してみた。 その条件はこんなかんじ。

  • Ruby で書いてある
  • バージョン管理できる。できれば CVS がいい。
  • 文法は RD (ブロック文法のみ)
  • 家のサーバ (Celeron 333A) で我慢できる速度が出る
  • せっかく Wiki なので WikiName とかも使ってみたい

あんまり無理な条件じゃないと思うんだけど この条件に当てはまる Wiki は意外に少なくて、 部分的に当てはまるのが AsWiki, RWiki, VikiWiki あたりだろうか。 一番理想に近そうなのが AsWiki だったのでちょっと改造してみたけども、 改造レベルではなくなってしまったので途中でやめた。

ここで運の悪いことに、ちょうど「rd2html の最小実装」 なるものを書き終えたところで、パーサがもうあった。 あとは実装一直線ですな。もっとも、その後 RD のフル実装は 複雑すぎることがわかって捨てたから結局 rd2html はほとんど役に立たなかった。

BitChannel / ポリシー決定

どこが「ちょっと」なのだ。まあいいや。 次はポリシーの由来 (?) について。 長々と文章で書くと疲れるので箇条書きでてきとうに書こうかな。

  • CVS 必須

去年の 11 月に『バカが征く』で話が出てたと思うけども、 もはや Wiki と言えどもバージョン管理は必須なのですよ。 だいたいコンテンツを作るのにバージョン管理しないなんて狂気の沙汰だと思うね。

と言いつつ tDiary のデータファイルはバージョン管理していないけども、 毎日全部 tar.gz に固めて三個所に分散バックアップしてるから勘弁してください。

  • amrita は使わない
  • キャッシュ追放
  • Ruby 1.8 以上対応

テンプレートライブラリは amrita か erb だろう。 しかし amrita は使いかたを知らない。 あと、どうも amrita が勝手にキャッシュするみたいなことが どっかに書いてあったので (これは間違いかも)、なんとなく嫌だった。

最近はとにかくキャッシュが嫌いなのだ。 tDiary でほとんど唯一気に食わないのもキャッシュだし。 家のメインマシンの CPU は P4 2.4GHz なわけで、 キャッシュなんかなくても高速に動くのだ。 それにも関らず必ずキャッシュしてくれちゃうもので、 tdiary.conf を編集するたびに rm -rf cache/tdiary するのがうざくてたまんない。 キャッシュは嫌だ。キャッシュは悪だ。世界の敵だ。 ブギーポップが出現しちゃうくらいダメだ。

あと amrita は標準添付でないというのも非常に大きい。 あんまりいろんなライブラリをインストールさせるのは面倒なので、 できることなら (1.8 の) 標準添付の範囲で済ませたかった。 1.6 を対象にしてしまうと time.rb とか uri.rb が使えないことになり、 いくらなんでもつらすぎるので捨てることにした。

  • 削った文法

ある文法が必要かどうかは「RHG で必要になったかどうか」で判断した。 RHG で使ったマークアップは必要。 使わなかったマークアップは不要。 「そんなもん RHG でも使わなかったぞ!」と言われると、 なんとなく納得できない? この基準に従って、というか、もうちょっと厳しくしたけど、 斜体とか打ち消し線とか深さ 5 以上のキャプションとかを排除。

  • そのほかいろいろ

でもって最後に、 たださんのポリシーとかなり一致する のは偶然でもなんでもなく、 そのへんの仕様は全部たださんの意見を参考にして決定されたからです。 12 月に「ただのにっき」で KoBit を検索しまくっていたのはわたしだ! (いばるな) WikiFarm に肯定的なのもそのへんの議論が理由。

あとは Tiki とか PukiWiki とか FreeStyleWiki とか YukiWiki とか 「 Wikiの文法の標準化に関するWiki」 を微妙に参考にしつつ、欲しい機能をピックアップして終わり。

まいなーは楽だ

それにつけても思うのは、マイナーで行くと割り切ってしまうと プログラムを書くのがすごく楽だということだ。

容赦なく「Ruby 1.8 以降対応」とか言えるし。 容赦なくマークアップを削れるし。 一般人向けの機能を要求するユーザには Hiki か RWiki をお勧めしておけば済むし (マテ

名前
メールアドレス

<前の日 | この月 | 次の日>
2002|04|05|06|07|08|09|10|11|12|
2003|01|02|03|04|05|06|07|08|09|10|11|12|
2004|01|02|03|04|05|06|07|08|09|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|04|05|06|09|10|
2009|07|
2010|09|

Copyright (c) 2002-2007 青木峰郎 / Minero Aoki. All rights reserved. LIRS