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

2006/11/06(月)IE7における標準準拠モード

adiary各テーマをIE7で表示テスト

曰く「IE7ではCSSの問題を解決した」らしく、現在配布されている adiary ではその言葉を信用してIE7の場合は標準準拠モードでレンダリングするよう設定されています。日本語正式版がリリースされましたので、実際のところどうなっているのか確認してみました。

konomiテーマの場合

ie7_konomi.gif

記事下側の枠線が表示されません。

shukujoテーマの場合

ie7_syukujo.gif

:after :beforeの擬似要素に対応していないために、名前欄などのカスタマイズが有効になっていません。おまけに「_ hack」(アンダースコアハック)が無効化されているため、本来表示すべき文字も表示されません。またリンクの表示位置がずれまくっていて無惨です。

umiテーマの場合

ie7_umi.gif

固定幅の左右余白が変動するのが本来の動きなのですが、本文部分の左余白が変化せずなぜかスクロールバーが表示されています。また「ログイン」の部分がクリックできなければいけないのですが、マウスをどこにもっていってもクリックできません。

結論

どこの標準に準拠したのか非常に謎です。やっつけにやっつけを重ねてるんじゃなくて、レンダリングエンジンをきちんと1から作り直したらどうかと思うんですが。ということで、adiaryでは今後、IE7はIE6などと同じようなCSS解釈を行う互換モードでレンダリングさせることに決定しました。

なお当然のことながら、Firefox、Operaでは何ら問題なく表示されます。

2006/11/05(日)perlの長所と短所

所詮Perl?

ネットをみていると「所詮Perl」的な発言をみかけるのですが、いやいやマテマテマテマテ。かと思うと、はてなmixiもPerlだ! 的な肯定意見があったりして、それもまた視点としておかしいような。

Perlの長所

  • Rubyなどのスクリプト言語と比べ速く動作する(時に数倍以上)。
  • CやC++に比べはるかに開発が容易。
  • CやC++に比べどうしても遅くなるものの、重い計算をループ処理させなければ実用上そこまで大きく変わらない。
  • PHPに比べ、MVC的なソース(ソースとHTML部分を分離させるコード)を書くのに適当である。
  • 世の中のほとんどのサーバで動作する

という特徴があります。adiaryの基礎になっているスケルトンシステム(Satsuki-system)開発時、本当はRubyも検討したんですが、簡単なテストスクリプトをいくら走らせてもRubyの処理速度はPerlのそれに到底及びません。Perlは隅々まで最適化が行き届いていて、うまく書いてやれば相当早く動作します。

Perlの短所

  • 言語仕様が非常にきたない(アセンブラおなじくスクリプト言語として原始的)。
  • 標準ではCGIとして動作させるため、スクリプトとしての起動が遅い。処理が遅いのではない

ほとんどこの2点に尽きると思います。1つめは対Rubyで考えると非常に分かりやすい。互換性を保ってきた結果が現在のPerl 5+オブジェクト指向という複雑な状況なんですが、それでもこのゆるゆるのオブジェクト指向がまた逆手に取ってうまく使うと非常に効率的なシステムが作れます。

2つめはネットを検索すると沢山出てきますが、「PHPはPerlより速い」という意味での速いです。起動が速い。ネット上の共有レンタルサーバでなければmod_perlなどを使うことで解決できますし、うまく書けばCGIとして動かしてもそこまで重くなりません。*1

結局

Perlってのは使い倒せば大規模開発にも十二分にも耐えられる言語です。ただこの辺は適切に判断すべきで、仕様をきっちり決めることで綺麗なメンテ性を取るならRubyもありですし、Webアプリとして手軽に作りたいならPHP、処理速度と開発効率を同時に求めるならPerlということになると思います。*2

*1 : 起動=コンパイルが遅いということは、ライブラリが必要になるまで極力ロードしないことで改善できるということです

*2 : おまけに配布を考えなければCのルーチンを呼び出すことで処理速度は必要な部分でいくらでも速められますしね。

adiaryを開発する人間としては

「早くPerl6出ないかなぁー」ってのが本音です(笑) Satsuki-systemが全面書き直しになりそうで怖いのは怖いけども(苦笑)

2006/10/25(水)β12リリース情報

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

β11→β12の変更点

  • 全文検索機能が付きました。
  • はてなブックマークアイコン使用時に、はてなブックマークカウンタを表示するようにしました。
  • ポッドキャスティングに対応しました(正確には、ポッドキャスティング等で使用されるRSSの付加メディア情報要素に対応しました)。
  • Flash Single MP3 Playerと呼ばれるフリーのmp3プレイヤーを配布物に含めました。プレイヤーのライセンスはこちら
  • 日記帳の管理者権限を他のユーザーに付与できるようになりました。
  • 【fix】ユーザースタイルシートのエスケープ処理にバグがあったのを修正しました。(thanks to serika
  • 【fix】一部の特殊な半角文字で検索すると、結果の表示がおかしくなるを不具合を修正しました。
  • 【IE】ページ送り付近で、一時的に日記の表示が崩れるIEの奇病バグに対応しました。
  • その他、細かい修正。

mp3ファイルをアップロードすると自動的に「Flash Single MP3 Player」が使用されますが、このツールの利用は各自の責任で行ってください。特にこのツールは商用利用が許可されていないのでご注意ください。どなたか代替になるmp3等のプレイヤーを作って頂けると非常に助かります

色々機能が増えてますがあまりデバッグされていません。不具合などありましたらご連絡ください。

過去バージョンからのアップグレード

β11以前

ポッドキャスティングを使用する場合は adiary.conf.cgi の130行目付近に(ずれても問題ありません)、次を書き加えてください

<$v.allow_attach_files = 'info/mime_types.txt'>

β10以前

過去の記事を参照してください

2006/10/19(木)mixi export

mixiのログを取得

かの有名なbackup_mixiのサイトをみたら、どうもmixiの仕様変更に追従できず、修正作業中……と思いきや修正作業の時間もなかなか取れないみたいです。そこへ押し寄せる大量の修正要望&公開待ちメッセージの数々……。おつかれさまです、お察しします(^^;;

最近mixi、仕様変更多いですからね。気になって、mixi exportの動作を確認しておきました。今現在正しく動作しているようです。backup_mixiの様にブラウザ向けにメニューを構成したりして綺麗に切り出して*1いないので、影響を受けにくいといえば受けにくいのは確かですけど。

ついでにデファルトのsleep時間が10秒のままだったので、6秒に修正しておきました。

*1 : かつ広告を埋め込んだりして

2006/10/17(火)検索機能

検索機能でも付けようかなぁーと思ってるんですが、言うまでもなくとんでもなく遅くなるんですよね……。遅いの覚悟で付けますけど、性能(検索速度)は期待しないでください*1。擬似データベースにも実装しますが、多分相当遅いかと思います。配布用アプリじゃなければ、Sennaでも使うんですけど…。

*1 : ほとんどRDBMSの性能になります