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

2008/10/19(日)開発中

Ver2.1xの予定でしたが、メジャーバージョンアップになりそうです。本当はこれがVer2.0にする予定だったのですが、Ver1.44は成熟されてるとは言い難かったですから。

システムの奥深くにあちこち手を入れています。skeleton のタイプミスとか恥ずかしものから、スケルトンコンパイラとか。コンパイラの改修はほぼ終了し、今はユーザー承認モジュール(Auth*)を書き直してます。これ一番最初に書いたライブラリだったので、インターフェイスは問題ないものの実装が汚く、データファイルも独自形式。これをDBモジュールを使うように修正してます。*1

そんなことをやっているうちに、その下位ライブラリであるDBモジュールを書き直したくなり、Authを放置してDB_pseudo(擬似データベース。デフォルトで使用するテキストベースの独自DBです)の全面改修。気付いたら UNIQUE制約 や NOT NULL制約 がまともに動作するようになってたり(苦笑)*2

この手の独自DBモジュールというのは、壊れたときに対処に困るというのが最大の問題で*3、擬似DBはそこに気を遣った実装です。インデックスファイルとカラムひとつに対応する1ファイルから成ります。データベースはすべてテキストファイルで構成されていて、indexが壊れたときは、インデックスファイルを削除することでindexを自動再構築する機能が付いています。*4

さっきやっと擬似DBの修繕がほぼ完了したので、これからAuthの改修に戻るかというところなんですが、時間経ちすぎて、どこまで改修したのかもう忘れかけてる(笑)

*1 : DBモジュールがあとに開発されてるため、当時は使うという選択肢がなかった。逆に言うとAuth*がDB_pseudo*の下書きなっているため実装が綺麗になった。

*2 : SQL使えないだけで、"擬似"を取ってもいいんじゃないかって気がします。MySQLのMyISAMの実装がだいたいこのぐらいですし。参照制約はさすがに実装しませんでしたけど(MyISAMにもない)。

*3 : PerlのBDBだったかを使うと、飛んだときに巨大ファイルが1つだけ残るということが、昔よく聞きました。

*4 : 試しに data/db/#index.dat を削除してみるといいですよ。各カラムのデータを直接書き換えても、data/db/#index.dat を削除するだけでそのまま運用できたりします。

2008/09/29(月)Version2.03リリース情報

Ver2.02のバグフィック版です。修正内容に特に致命的な不具合はないので、Ver2.02の人は乗り換える必要はあまりなさそうです。

ダウンロードはこちらから

Ver2.02→Ver2.03の変更点

  • aws-modokiテーマを新規に収録しました。(Designed by saa
  • mikkyテーマ(4種類)を新規に収録しました。(Designed by GLANSHE)
  • 【fix】IE7使用時、wikiコンテンツの親ノードが正しく指定できないことがある不具合を修正。(Thanks to saa)
  • 【fix】非公開コメントを許可しないの「強制Off」が無効になっていた不具合を修正。
  • 【fix】ポップアップ位置がずれることがある不具合を修正。(matu, Harry
  • 【fix】スケルトン _main.html の単純ミスを修正。(Thanks to つーさ, matu
  • 以下はつーささんのご指摘です。感謝。
    • 【fix】公開ファイルディレクトリを変更している場合、記法ヘルパーアイコンが表示されない不具合を修正。
    • 【fix】theme/satsuki/base.css のタイポの修正。
    • 【fix】日記編集画面の「wikiコンテンツにする」のチェックを変更したときやコメントの表示・非表示を変更したときなどに、フォーム要素のリサイズが正常に働かない不具合を修正。
    • 【変更】日記編集画面のinput要素で enter を押したとき"*"がひとつ入力される仕様でしたが、何も起きないように細工しました。*1

*1 : なおJavaScriptオフの環境ではフォームが送信されます。

Version2.00(β含む)以降からの乗り換え

  • そのまま上書きしてください。

Version1.44以前(C73/2.00α含む)以前からの乗り換え

Version2.00への移行処理を先に行ってください。

2008/09/18(木)adiary 2.02の記法ヘルパーで記事が投稿される!?

ブラウザによってJavaScriptがキャッシュされています結構みなさん引っかかっている(報告2件目)ようなので記事にしておきますね。

Firefox でよく起こる

コンテンツとキャッシュの比較をセッションごとかアクセスごとにするか、CTRL+F5のスーパーリロードをしてください。

いくつか細かいバグが出ているようですが

そのうち(バグ修正が溜まったら?)Ver2.03でも出しますね。

2008/09/10(水)Version2.02リリース情報

Ver2.01に細かな変更を行ったものです。今後は開発版(非安定版)としてVer2.1系に移行する予定です。

ダウンロードはこちらから

Ver2.011→Ver2.02の変更点

  • コメント投稿時、URLおよびE-mailアドレス記入欄を表示させることができるようになりました。(日記帳の設定から*1
  • コメント先頭の "#" マークをその記事への書き込み順番(番号)に変更しました。*2
  • システムチェック画面と日記帳設定画面(メール通知設定)で、sendmailコマンドを確認するようにしました。
  • 記法ヘルパーを改良しました(アイコン、機能など)。(Patch by 浅野/一部)
  • YouTube、ニコニコ動画記法を更新しました。(Patch by 浅野)
  • フォームリサイズを微調整・不具合修正しました。(Patch by 浅野)
  • ヘッダにMETAタグとして「name=generator」および「name=owner」を出力するようにしました(アルバムでも)。
  • IE8によるアクセス時、標準準拠モードでレンダリングさせるようにしました。*3
  • 【記法】[[ ]]タグ表記を使用したとき、記法内の最後にスペースがあれば1つだけ削除するようにしました。
    • つまり記法タグとして[[tagname:[inner text] ]]としたとき、内要素として「tagname:[inner text]」と見なすようにしました。
  • 【記法】*t:%Y/%m/%d %J:%M*セクション 等と記述することで、時刻出力フォーマットを指定できるようにしました。時刻指定方法はstrftime*4を参照ください。(Request by かえで)
  • 【記法】table記法中に「* ^ ~ _」などの記号が単独で書けるようになりました。"{ }"にてエスケープしてください。([ml:users:264:Request by なかい])
  • 【fix】URIとして裸の"&"(&ではなく)を出力している部分があったため気づいたところは修正しました。(Thanks to つーさ
  • 【fix】カテゴリ一覧部分で、HTMLのid属性として、HTML4.01のinvalidな文字列(日本語)を使用するケースがあったため修正しました*5。(Thanks to つーさ
  • 【fix】その他HTML4.01になるべく準拠すべく細部を修正しました。
  • 【fix】最近のコメント/TBにある記事のタイトルを書き換えたとき、最近のコメント一覧などに正しく反映されない不具合を修正。
  • 【fix】文末改行の除去処理が、いつの頃からかまったく動いてなかったため修正しました(記事/コメント)。
  • 【アルバム】【fix】IEでのJavaScriptエラーの対策をしました(window.openerが有効なときだけinsert_text呼ぶようにしました)。(by serika)
  • 【アルバム】ファイル一覧表示時にテーブルのソート機能が付きました。(by serika

*1 : URL欄表示はSPAM対策や安全性(危険なURLを貼られてうっかりクリックしてしまう)の面からあまりおすすめは致しません。

*2 : 非公開コメントがあった場合、管理者と一般ユーザで表示番号がずれることがあります。

*3 : はてなテーマ除く。このご時世に、いまだCSS互換モードレンダリングが基本のはてなテーマも困ったものですが…。

*4 : 日付変更線などの関係で一部独自拡張あり。Base.pm の tm_printf を呼び出しています。

*5 : 適当な記事を開いて再保存するまで、この修正は反映されません

Version2.00(β含む)以降からの乗り換え

  • そのまま上書きしてください。
  • JavaScriptがブウラザにキャッシュされていると、記事編集画面で一部不具合がでることがあります。スーパーリロード(CTRL+リロード)をためしてください。

Version1.44以前(C73/2.00α含む)以前からの乗り換え

Version2.00への移行処理を先に行ってください。

その他

今更ですが、やっと開発版と安定版のリポジトリを分割しました^^;

2008/09/09(火)IE8 beta2

IE8のレンダリングがどうやらまともらしいという噂を聞きつけてインストールしてみしまた。

もちろん表示テストは某テーマ作者様のページ*1。ボタン一発で互換モードと標準準拠モードを切り替えられるため、両方試してみました。

互換モード標準準拠モード
ie8_test_compat.png
ie8_test_standard.png

標準準拠モードでは、いわゆるアンダースコアハックによるCSS Hackはすべて無効化されています。IE7はどこの標準に準拠したのか小一時間問いつめたい仕様でしたが、IE8はbefore/afterセレクタ等にも対応し、CSSの解釈もとても普通でした。検索ボタンがずれてますが、過去のことを考えればこれぐらいご愛敬でしょう。

adiaryでは、とりあえずIE8アクセスの場合、標準準拠モードでレンダリングするよう記述しておきます。*2

*1 : 非常に凝ったCSSの実装を行っているので、CSSテストには最適。

*2 : IE7以前の場合は互換モードでレンダリングするように設定していた。

あとは

IE7以前のユーザーがIE8に乗り換えて、IE6/IE7が死滅することを祈るばかり

むしろWindows Updateで強制的に突っ込むぐらいのことはしてほしい(切実)