毎秒1000リクエスト を捌く超高速CMS「adiary」
2006/07/21(金)β4リリース情報
- JavaScriptによるコメント/TrackbackのSPAM対策を行いました。
- 1日1記事用の日記モードを搭載しました。
- 書き込み時刻を表示する機能を付けました(日記帳の詳細設定 → 表示設定)。
- 記事IDの代わりに書き込み時刻(UTC)を指定する方式を付けました(日記帳引っ越し対策)。
- カテゴリ編集へのリンクが消えていたので修正しました。
- JUGEM形式でエクスポートできない不具合を修正しました。
- メニューの「自分の日記へ」のリンク先がおかしかったので修正しました。
- 【標準パーサ】[hatena:help:リンクを簡単に記述する(http記法、mailto記法):http記法]のimage指定に対応しました。実装にはSimpleAPIを使用しています(Thanks to SimpleAPI)。
- 【標準パーサ】ユーザー定義タグのオプション部に正規表現を書けるようにしました詳細。
- 【標準テーマ】h5 タグに属性「margin-bottom: 1em;」を追加しました。
- スタイルシートの解釈がおかしいIE7β3の不具合に、部分的に対応しました。
- その他細かい修正
SPAM対策ですが、JavaScriptということで落ち着きました。一応チェックはしていますが、不具合などありましたら遠慮無くご連絡ください。これを突破するspammer(ロボット)が現れたらまた何か考えましょう。
追記。今回から対応したFastCGIですが、念入りに確認してみるとイマイチ動作不安があるので、β4でのFastCGIの導入はお勧めしましせん。さらに追記。問題なく安定して動作するようになりました。β5以降をお待ちください。
SPAM対策の方針メモ
要するに人間に認識しやすく、ロボットに認識しにくい方式を考えればよいのですが、JavaScriptや質問文その他の方策をいくら取ったところで、adiary向けの専用対策を取られたら太刀打ちは無理(イタチごっこ)になります。ですから逆に開き直って、とりあえずは JavaScript+JavaScriptがない環境では簡単なキーワード入力を促すという方式にしました。
あまりテストしていないので誤動作する or 特定ブラウザでうまくコメントを書き込めない*1ようならご連絡ください。
せっかくなので
http記法のimageで遊んでみる。
おまけにTeX記法を使ってみる。
2006/07/18(火)β3リリース情報
- Perl 5.8 以前(?)には標準で含まれない、Time::HiRes がないと起動できない問題を修正しました(もしβ2.1がインストールできず悩まされていた人が居たらお試しください)。
- 記法タグ[ ]内での{ }のエスケープ処理を無効にしました。*1
- 単一記事表示時に、HTMLタイトルに記事タイトルが出ない問題を修正しました。
- Google Analyticsに対応しました。
- 【標準パーサー】タグ定義表記を拡張しました(idea by kaede)
- 【標準パーサー】続きを読む記法使用時の<div class="section">~</div>の互換性を解消しました。
- 【標準パーサー】続きを読む記法使用時、最後のセクションの注釈が省略されないバグを修正しました。
- 【標準パーサー】セクションごとに出力する注釈を<div class="section">~</div>の外に出しました。
- 【はてダラ機能】最初のサイブタイトルカテゴリをカテゴリとして抽出するようにしました。
- 【はてダラ機能】*t* 記法を時間に置き換えるようにしました(マスターファイルは書き換えません)。
- 【はてダラ機能】【パーサー動作】Text::Hatena がインストールされているときは、そちらを使うようにしました*2。
- その他、バグ修正など
β2からの移行に際して、adiary.conf.cgi の書き換えは必要ありません。
追伸。adiary公式ページに書いた「FastCGI対応」は書き間違えでした。大変失礼しました。*3
メモ、Text::Hatena について
ある意味公式みたいな感じで、はてダラ向けには最適と使ってみたものの、Hatenaサービス固有のタグのリンク先がイマイチな感じで若干期待外れでした。ライブラリ活用・省力という意味でものすごく正しいのですが、速度や使いやすさ*4から考えたとき依存モジュールが多いのもなぁ……とか個人的に。
他のblogツール向けに、adiary標準パーサをとっとと単独公開すべきなのかなぁ~、とか思ったりしました(苦笑)*5
2006/07/15(土)β2.1リリース情報
- はてなダイアリーライター(以下はてダラ)用追加キットを一緒に収めました。(参考:adiaryではてダラ)
それ以外はβ2と変わりませんので、β2から差し替える必要はまったくありません。
はてダラとの連携について、質問・要望などありましたら、こちらにどうぞ。
2006/07/14(金)Version 1.00 β2リリース情報
β1→β2の変更点
- データベースカラムを一部変更しました。当分これでfixとします。
- コメントの新着判別が特定条件下で誤っていたので修正しました。
- 記事keyや日付で記事を指定する[key:xxx]タグ[day:xxx]タグを作成しました。→詳細情報
- 【TeX記法】http://adiary.blog.abk.nu/063に対応しました。使用には mimeTeX が必要です(→詳細)*1。
- システムメニューを変更しました。
- 日記帳の全構築機能を追加しました。
- デバッグメッセージを出力しないようにしました。
- 細々としたバグフィックスと機能追加
β1→β2の移行では adiary.conf.cgi の古いままで問題ありません。
標準テーマの変更
- h1 img, h1 a img, div.comment form textareaを追加。
- ul.system-menuの値を変更。
詳細はsatsuki.cssを参照ください。
ここのレンタルサービス固有の話
- アルバムを2006/07/13 + patch版*2に入れ替えました。
2006/07/11(火)adiaryのパーサー
パーサーの単独配布?
adiaryのパーサー(入力記法システム)はかなり強烈かつ便利なわけですが*1、これをadiaryのためだけに使うには勿体ない。やってる内容的に、ちょっと書き換えれば standalone で動くモジュールになります(つまりSatsuki-systemなしで単独で使用可能になる。*2)。
はてな互換記法もそこそこ乱立してる上に、結構需要があるみたいなので。完全互換ではありませんが、非互換部を差し引いても余りある機能追加がありますので、要望があればテキストパーサー単独でLGPLライセンスぐらい緩い使用条件で配布してもいいかなとは思っています。
ただ記法の乱立(混乱)抑制が目的なので、実装済記法(機能)のいくつかをプロテクト(改変禁止)するかもだけど。
追記
本家のはてな記法がCPANにあるらしいよ(なんでだれも使わないんだろう……*3
余談。
例えば「id:jkondo」と書いた時にどこにリンクすればいいんだ、
adiaryでは id:xxxxx は、はてなインポーターで[hatena:id:xxxxx]に変換され、それを書くと最終的にはxxxxx となります。[id:xxxxx]は今のところ未定義です...