毎秒1000リクエスト を捌く超高速CMS「adiary」
2007/05/08(火)adiary Version 1.31リリース情報
本リリースは、おもに Version1.30 のバグフィクスです。テストしているので大丈夫だとは思いますが、心配な方は数日様子を見てから導入してください。
- Ver1.311 (2007/05/09)
- カレンダーが表示されなくなる不具合を修正。カテゴリのページ送りの問題を修正。
Ver1.30→Ver1.31の変更点
- 日付部のリンクを復活させ、日記モードならば日付リンクを、blogモードならば記事IDリンクを生成するようにしました。
- タイトルの無い記事の扱いを変更し、タイトルのない記事では日記表示の際にタイトル欄が表示されないようにしました。*1
- 最初の記事のフッタ(後部)のみに表示する埋め込みテキスト <@s.bodyend_1st> を作りました。(Thanks to ASANO)
- カテゴリ検索などのQuery形式を若干変更しました。
- メール投稿の pop_mode においてエラー原因をログに記録するようにしました。
- Perlink が分かりにくいので、日付をリンクしないようにしました(日記帳の設定でリンクさせることもできます)。
- 管理者ユーザーのみトラストモードに設定できるようになりました(Thanks to なゆた)。
- 【メール投稿】popモード時、書き込み時刻を DATE ヘッダから生成するようにしました。([ml:users:55:Thanks to hitoxu])
- 【fix】Microsoft-IIS + perl.exe 環境において、redirect+Cookieかうまく行かないIISのバグに対策しました(READMEを参照ください)。
- 【fix】Microsoft-IIS環境において64KB以上のファイルをインポートまたはアップロードすると、CGIが応答しなくなる問題を解消しました。
- 以下は浅野さんよりパッチ付きでバグ報告頂きました。ありがとうございます。
- 【fix】日記データをインポート時、トラックバックURLから"-"が除去されてしまう問題を修正しました。
- 【fix】Google AdSense や Amazon Associate 用モジュールタグの不具合を修正しました。
- 【fix】カレンダーで「みどりの日」「海の日」「文化の日」が正しく表示されない等の問題を修正しました。
- 【fix】「一覧(複数)表示のとき」の 「開閉(スイッチ)」の設定が反映されない問題を修正しました。
- 【fix】任意のIDで作成した日記帳にメール投稿できない不具合を修正しました。日記帳の詳細設定→携帯設定を確認ください。([ml:users:49:Thanks to hitoxu])
- 【fix(1.30-)】メール投稿時、書き込みパスワードが dummy に化けてしまうバグを修正しました。([ml:users:52:Thanks to すがぬま])
<@s.bodyend_1st> を追加した関係と日付をリンクオフにする機能の関係で _main, _main_onelog が変更されています。スケルトンを直接書き換えている方でそれらの機能を利用する場合は追従してください。
Version1.30β以降(1.29以降)からの乗り換え
そのまま上書きしてください。
- テーマは一切変更はないのでテーマなし版で十分です。
- カテゴリ検索などのQueryが変更されているので任意の日記を保存するか、複数日記帳がある場合は管理者でログイン後「システム管理→付属情報の再生成」を行ってください。
- 検索も変更されているため、日記本文内で検索を利用している方(はてな式カテゴリを利用の方)は、すべての日記を再構築してください。
Version1.21~1.22からの乗り換え
上書き後、管理者ユーザーでログインし「管理」→「システム管理」→「管理者メニュー」→「Version 1.22以前 → Version 1.30以降へのアップグレード」を行ってください。
- popup記法や,Amazon記法の画像popupをご利用の方は、該当の日記帳で「日記帳の再構築」を行ってください。
Version1.20以前からの乗り換え
本リリースを上書き後、先にVersion1.21リリース情報の該当乗り換え処理を行ってください。
2007/05/03(木)adiary wiki?
adiaryの記法に慣れすぎて、HTML書くのが面倒になってきたのでwiki的なものを作ろうかと検討してます。
とりあえず、PukiWikiとYukiWikiを軽く触ってみたんですが、なんとまーシンプルな実装で(褒め言葉)。Wikiはもっと凝った作りだと勝手に思い込んでいたのですが、基本的には ?wikiname に対応するファイル(文字列のHEX展開.txt)が置かれているだけです。1データ1ファイル対応。*1
それとフロントページやインデックス、最近の更新なんかを別ファイルとして管理してるだけで……まあたしかに考えてみればそれで済むのか。
データ構造に悩み中
9. 賢いデータ構造と間抜けなコードのほうが、その逆よりずっとまし。
伽藍とバザール
とあるとおりデータ構造に非常に悩んでおります。
2007/04/30(月)adiary Version 1.30リリース情報
一応テストもしていますしβ公開して数日、大丈夫だと思いますが、Ver1.22が長らく安定であったため、安定を最重視する方はしばらく様子を見てからにしましょう。
Ver1.22→Ver1.30の変更点
- プライベート日記モード(強制非公開モード)を強化し、日記帳一覧などにも表示されないようにしました。
- 画像リンク、http記法リンクに rel 属性を設定できるようになりました(日記帳の詳細設定から行ってください)。
- マルチユーザーモード時に、blog名を表示できるようにしました。
- はてな新テーマのために若干の修正を行いました。
- 非公開日記のカテゴリも扱えるように仕様変更しました。
- 多重ログインができるようになりました*1。
- 記事ID(0123などの記事番号)を変えずにインポートする機能が付きました。
- はてなライクな見出しカテゴリに対応しました。
- WordPress XML形式のインポートに対応しました。
- MT/JUGEM形式でエクスポート時に投稿日時を日付設定から生成するよう指定できるようになりました。(Thanks to ひとぅ)
- サイドバーに月別記事数リストを表示出来るようになりました。日記帳の設定から行ってください。(Thanks to ひとぅ)*2
- 【記法】uncタグができました。
- 【仕様変更】a target=_blank といった、裸の属性値がキャンセルされる仕様を変更しました。*3
- 【仕様変更】</p > のような余計に空白を含む閉じタグを許可するようにしました。
- 【内部処理】utf8 から他のエンコードへの変換が3倍ぐらい速くなりました。
- 【内部処理】日記の書き込み処理を高速化しました。*4
- 【fix】Windows環境(IIS/AN HTTPD, Apache除く)において動作しないバグを修正しました。(Thanks to ひとぅ)
- 【fix】画像の下部に1pxの空間ができる CSS の問題を修正しました。
- 【fix】popupがIEでうまく動作しないバグを修正しました。*5
- 【fix】URL自動リンクが ~ に対して無効だったので修正しました。
- 【fix】空白を含むカテゴリ名を編集できないバグを修正しました。
- 【fix】インポート画面で、はてな形式の取り込みオプションが表示されない不具合を修正しました。*6
- その他細々とした修正。
変更点について
ユーザー承認関係を変更した関係で、アップグレード用にファイルを差し替えると、ログイン中のセッションがすべて無効になります。ご了承ください。(ログインしなおしてください)
マルチユーザーモードのtopにblog名を表示出来るようになりました。blog名を一覧するタイプのトップページを表示するには、adiary.conf.cgi の次の箇所を修正してください(表示確認は移行処理を行ってからお願いします)。
<$v.multiuser_top_skelton = "_multiuser_top"> ↓ <$v.multiuser_top_skelton = "_multiuser_top2">
他にもマルチユーザモード関連の設定項目が増えておりますので、必要ならば新しいサンプルを参照ください。
はてなライクな見出しカテゴリに対応しました。
*[test][カテゴリ]見出し
システム上カテゴリとしては認識してないのですが*7、検索への自動リンクを張りますので実用上はあまり問題ないと思います。
月別リストをサイドバーに表示する際、詳細デザインを利用している方は、
<module name="month_list">
を表示したい位置に追加の上で、日記帳の詳細設定→サイドバー設定から「月別記事数リスト」をチェックしてください。
Version1.30β(1.29表記)からの乗り換え
そのまま上書きしてください。
Version1.21~1.22以降からの乗り換え
上書き後、管理者ユーザーでログインし「管理」→「システム管理」→「管理者メニュー」→「Version 1.22以前 → Version 1.30以降へのアップグレード」を行ってください。
- popup記法や,Amazon記法の画像popupをご利用の方は、該当の日記帳で「日記帳の再構築」を行ってください。
Version1.20以前からの乗り換え
本リリースを上書き後、先にVersion1.21リリース情報の該当乗り換え処理を行ってください。
2007/04/28(土)WordPress XML形式のインポート対応
adiary 1.30以降(β含まず)では、WordPress XML形式のインポートに対応しました。
注意点など
WordPressのエクスポートには(ME2.1.3現在)EUC-JP環境で文字化けする既知の問題があります。
wp-admin/export.php がエクスポートの実体で、大半はデータベースから引っ張ってきたデータをそのまま出力しているのですが、タイトルやカテゴリの出力の際だけ
<title><?php bloginfo_rss('name'); ?></title> <title><?php the_title_rss() ?></title> <?php the_category_rss() ?>
というよりにRSS出力ルーチンを呼び出しています。RSS出力ということは当然 UTF-8 です。その他のデータベースから取り出したデータは EUC-JP です。1つのファイルに複数の文字コードが混在することになり、かなり致命的です。
こういう部分をみると、元々他言語対応でないシステムを他言語対応にするのって大変なんだなって思いますね(^^;
……以前より実装されいてるSQLバックアップの方がトラブルは発生しないと思いますが、WordPress2.1.xにはその形式出力はない模様。wp-db-backup か phpMyAdmin でデータベースをダンプしてインポートください。
2007/04/26(木)adiary Version 1.30β公開情報
ダウンロードはこちらから。adiary-1.29 で始まるファイルを探してください。
このバージョンはβ版です。テストにご協力頂ける方(多少トラブルが起きても構わない方)のみダウンロードしてください。
Ver1.22→Ver1.30βの変更点
- プライベート日記モード(強制非公開モード)を強化し、日記帳一覧などにも表示されないようにしました。
- 画像リンク、http記法リンクに rel 属性を設定できるようになりました(日記帳の詳細設定から行ってください)。
- マルチユーザーモード時に、blog名を表示できるようにしました。
- はてな新テーマのために若干の修正を行いました。
- 非公開日記のカテゴリも扱えるように仕様変更しました。
- 多重ログインができるようになりました*1。
- 記事ID(0123などの記事番号)を変えずにインポートする機能が付きました。
- はてなライクな見出しカテゴリに対応しました。
- 【記法】uncタグができました。
- 【内部処理】utf8 から他のエンコードへの変換が3倍ぐらい速くなりました。
- 【fix】Windows環境(IIS/AN HTTPD, Apache除く)において動作しないバグを修正しました。(Thanks to ひとぅ)
- 【fix】画像の下部に1pxの空間ができる CSS の問題を修正しました。
- 【fix】popup用がIEでうまく動作しないバグを修正しました(popup用ブロック <div id="_popup"> のID が HTML4.0違反だったことが原因)。
- 【fix】URL自動リンクが ~ に対して無効だったので修正しました。
- 【fix】空白を含むカテゴリ名を編集できないバグを修正しました。
- 【fix】インポート画面で、はてな形式の取り込みオプションが表示されない不具合を修正しました。*2
- その他細々とした修正。
変更点について
ユーザー承認関係を変更した関係で、アップグレード用にファイルを差し替えると、ログイン中のセッションがすべて無効になります。ご了承ください(ログインしなおしてください)。
マルチユーザーモードのtopにblog名を表示出来るようになりました。blog名を一覧するタイプのトップページを表示するには、adiary.conf.cgi の次の箇所を修正してください(表示確認は移行処理を行ってからお願いします)。
<$v.multiuser_top_skelton = "_multiuser_top"> ↓ <$v.multiuser_top_skelton = "_multiuser_top2">
他にもマルチユーザモード関連の設定項目が増えておりますので、必要ならば新しいサンプルを参照ください。
はてなライクな見出しカテゴリに対応しました。
*[test][カテゴリ]見出し
システム上カテゴリとしては認識してないのですが*3、検索への自動リンクを張りますので実用上はあまり問題ないと思います。
Version1.21以降からの乗り換え
上書き後、管理者ユーザーでログインし「管理」→「システム管理」→「管理者メニュー」→「Version 1.22以前 → Version 1.30以降へのアップグレード」を行ってください。
- popup記法や,Amazon記法の画像popupをご利用の方は、該当の日記帳で「日記帳の再構築」を行ってください。
Version1.20以前からの乗り換え
本リリースを上書き後、先にVersion1.21リリース情報の該当乗り換え処理を行ってください。