まだ重たい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/18(木)adiary 2.02の記法ヘルパーで記事が投稿される!?

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

Firefox でよく起こる

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

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

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

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で強制的に突っ込むぐらいのことはしてほしい(切実)

2008/09/08(月)Firefoxのばかーっ

はてなテーマで表示したとき、サイドバーがずれる問題を発見しました。

テストブログでは発生せず、IEやOperaでも発生せず、CSSを戻したり、スケルトンを戻したりとそれはそれはたくさんのことを試しました。はてな本家に行って試したりもしました。どうやっても再現せず。

キャッシュかなにかが残っているのかと思いブラウザを再起動してもだめ。

IEならまだしも、Firefoxでこんな不可思議な現象に当たったのははじめてです。なんだこれー


……Zoom設定を100%にしたら直った(汗)

しかもFirefox3は、デフォルトでサイトごとのズーム率を保存するという迷惑な仕様になっていて、ほとんどの環境でこの機能をオフにしてあるんですが、たまたま今回これがオンになってて引っかかった。

貴重な開発時間をかえせーーー(涙)

※Firefox3ユーザーは今ならここで縮小(CTRL+"-")することで再現できます。*1

*1 : hatena2テーマが1px単位できっちり調整してあるらしく、拡大・縮小時の端数の切り捨てや切り上げでたまたま横に入るスペースがなくなった様子。hatena2テーマのブラウザhackの苦労におもわず共感したのはここだけの秘密です。

ズーム保存をオフにする

アドレスバーに「about:config」と入れて、次を設定してください。

browser.zoom.siteSpecific    false

その他、よくキャッシュに困られるので、ドキュメントの比較をアクセスごとにしてます。

browser.cache.check_doc_frequency   1

で……

どこ改変しようとしてたんだっけか…(忘)

2008/06/28(土)開発近況

だいぶご無沙汰ですが、少しずつ作業しています。時期は明言はできませんが、そのうちVer2.00β2が出せるかと思います。本当はVer2正式版にしたいところですが、改変点から考えると色々おそろしいので(汗)

そういえば最近、はてブが少しずつ伸びています。ひとぅさんが書かれていたじわじわ来てるエントリーのおかげなのかも。ここのみなさんのブログも、mixi exportも含めて過去一度も人気の注目のエントリーに入ったことはないのですけど*1、あれってエントリー条件なんなんでしょう。

あと、Version2.00であれもこれも根本から修正しようと思っていたのですが、その方針だといつまでたってもリリースできないので、転換しました。やっぱりフリーソフトの基本、細かなリリースを守らないとね。

*1 : 中には2日で50ブックマークというおそろしいものもw