まだ重たいCMSをお使いですか?
毎秒1000リクエスト を捌く超高速CMS「adiary

2006/05/31(水)インポータ/エクスポータ

インポータ・エクスポータあれこれ

はてな形式エクスポーターを実装しました。結構苦労しましたが、これの元ソースを突っ込んでも、きちんと表示されるぐらいに変換する(でも*見出しや-のリストなどはそのまま残す)ルーチンを作りました。

結局4~5種類のインポート/エクスポートを作成しましたが、かなり気合い入れてます。どうも他のブログシステムだと入力本文によっては自分自身ですらインポートできなかったり*1、改行を<br>に置換するフラグすらまともに設定してなかったり*2、書式を拡張したせいで一部ツールと互換性なくなってたり*3とか、ものによってはファイルフォーマット(形式)だけ変えて中身そのままってそれ変換って言わないですから。

例えば、tdiary2adiaryコンバータのはてな形式変換ならば、tDiaryの入力スタイルを適切に判断して最も近い形のはてな形式に変換、はてな形式→adiaryインポータでは記法の非互換部分を変換ルーチンで吸収(の山*4)、その他インポーターでは特殊な意味をもつ本文入力をエスケープ処理。

エクスポーターでは『使用しているパーサー』と出力方式によって変換方法を切り替えてます。はてな形式への出力に至っては、adiaryなら互換性の高い部分は元の文章をのこしつつ非互換な部分は部分的にパーサーを通して整形し、tDiary形式ならばtdiary2adiaryに実装されているはてな向けコンバータと同様の処理をして、シンプルパーサーならば、はてな向けの特殊記法のエスケープ処理を噛まして……という具合です。

もっともエスケープ処理ぐらい当たり前の話なんですけど、大半のblogはそれすら……(以下略


一応全部(境界条件にて)デバッグしてますが、完全じゃないので、何かうまく行かない問題があったら遠慮なくどうぞ。あと対応して欲しい形式があったら、エクスポートしたログファイルと一緒にどうぞ。

*1 : Movable Typeの「-----」問題、はてなのUTF8問題など

*2 : はてなのMovable Type形式エクスポート

*3 : Serene BachのJUGEM XML。XMLの要素を追加するのは構わないと思いますが、既に定義されているDATEの書式を変更するのは問題かと……

*4 : はてな記法と似ていますが、adiary標準パーサーはできるだけ例外的な処理をなくすという方針のため、非互換部分が結構あります

2006/05/27(土)tDiaryからはてな形式に変換

入力スタイル変換

tdiary2adiary.cgiに、ついカッとなって、はてな形式への入力スタイル変換を付けてしまいました(笑) その上、さらにカッとなってtDiaryを解放状態で設置して、ログ変換のリアルタイムサンプルに(ぉぃぉぃ)。はてな自体が、もともとtDiaryを参考にしているだけあって、入力スタイル変換はとても簡単でした。

もちろんはてな入力スタイルに強い影響を受けている、adiaryへもそのまま取り込むこともできます。しかしてtDiaryからはてなへの移行って単なるtDiary or はてなダイアリーのサポートツール。何やってるんだろ(笑)

tDiaryのエクスポートツール

tDiaryに、tDiary2形式でいいから、そのまま1つのファイルにまとめて出力(エクスポート)するツール付属すればいいのにねぇ……。

2006/05/23(火)擬似データベース

データインポータができたので、擬似データベースに800件ほどデータを突っ込んでみた。インポートに5分以上かかったけど、その後日記を月表示させてみるとこんな感じ。
Total time : 737.6 ms
DB time : 216 ms
Apache : prefork
Runtime : cgi perl
RDBMS : pseudo DB
VIA C3@500MHz で、しかも cgi 動作でこの速度なら優秀だと思います(満足)。というか個人運用なら十分すぎ。

2006/05/17(水)データインポータ

データインポータを作成中。だけど、なんか疲れてきた(苦笑) 書いているうちに、どんとんスマートにするアイデアが出てきたり、テキストパーサーに再度バグを発見したり(汗)、まあなんか色々です。

名前空間の使い方とか、もうちょっと考えて作ればよかったけど……もう今更なおしたくないよなぁーとか(プログラム内部の話)。 内部変数は大文字から始めることにしておけばよかったなぁーということなんてすが、もう信じられないぐらい大量に使っているので直すのが面倒 and 直し損ねてバグ生みそう(涙)*1

*1 : しかし本音はまだ悩んでいます

2006/05/04(木)adiary

何気なく検索してみたらadiaryというものはすでに存在するらしい(笑)

adiary の検索結果のうち 日本語のページ 約 159,000 件

adiary は開発コードということにして、何かナイスな名前を募集中(ぉ

まあ "aDiary"(PHP) は開発停止&公式サイト消滅みたいだし、こちらは "adiary" だから気にせず突進という手もなくはない。調べてみると、アルバム日記(adiary)やらADiaryなんてもあったりして(笑)

まったく余談ですが、このblogサービスの正式URLは http://blog.abk.nu/ です。http://adiary.abk.nu/ はadiary配布用サイトにする予定です。

追記

Googleでどんどんページ送りをしていったら

最も的確な結果を表示するために、上の140件と似たページは除かれています。

namespace adiary; は結構混沌としていますが、それにしても現状気にするほどじゃなさそうってことで気にしなくていいのかも(苦笑)*1

*1 : 159,000件というのは、日記システム内のすべての日記のページが検索に引っかかってるとかそういう感じみたいです