メイン

カテゴリー [ Movable Type ]

2007年05月26日

ブログ、衣替え

先週末まとまった時間が取れたので前々からやろうやろうと思っていた、いろいろなことに着手した。
その一つは部屋の整理で、こちらは早々に飽きてしまった。けれども長らく使用しなかったものなどを廃棄したので、だいぶすっきりした。写真を飾るスペースもできたので、あらかじめ購入しておいたフレームに写真を入れて壁にかけると、それまで飾り気の無かった部屋が少しばかり華やぐ感じだ。
これまでどうも実用本位で部屋の中にものを配置していたのだが、それを思いっきり壊して 「 見せる 」 ことを意識して並べ直すことで雰囲気ががらっと変わる。

その次に着手したのが、このブログである。
僕は Movable Type を自前でインストールして使っているのだが、しばらくバージョンアップをスキップしてきたために新しい版のそれと比べると機能の点でだいぶ見劣りするようになってしまった。
そもそも Movable Type は改造できることが利点となっており、僕もだいぶ手を入れているのでバージョンアップが一筋縄ではいかないのである。それでバージョンアップを見送ってきたというわけである。

ちょっと時間があるから・・・と気軽に始めてしまった、Movable Type のバージョンアップであるが、結局数時間の予定が一日、二日・・・しまいには一週間もかかってしまい、ブログの更新も停止せざるをえなくなった。

もちろんデータベースのバックアップを取り、新たに Movable Type をインストールしてそちらでテストと改造をしていたので、これまでの New York Watch ブログにはなんの支障もないのだが、二つのデータベースを使っているのが長引くとデータベースに違いが生じてしまい ( つまり皆さんからのコメントなど )、その分は個別にデータベースをインポートするなど手間がかかる。
ということでここしばらくは意図的にブログに記事を投稿しないようにしていた、というわけである。

・・・ということでこの投稿が読めることからわかるように、予想よりだいぶ遅くなってしまったが無事バージョンアップを終え、いくつかの新機能も追加することができた。

最初に取り付けたのは 「 タグ機能 」。
最近はメールソフトの中にもタグの機能をサポートしているものが出てきたから知って人も多いと思うが、ブログのエントリーに現れる言葉などをキーワードにしてカテゴリを超えたエントリー同士のグループ化が簡単にできるようになった。サイドバーにある 「 Tag Could 」 はエントリーに登録したタグの出現率の高いキーワードが目立つように表示される。現時点では過去分のブログへ、タグ付けが完了していないのでまだ一部しか表示されていないが、これからもっと増やす予定である。

そしてそのタグ機能を用いて新たに追加したのが 「 Gallery 」 へのリンクである。
このブログで投稿してきた過去のエントリーにそれぞれ含まれる画像の中で、ギャラリーとして集めたいものだけにタグをつけ、それをサムネイル化して表示しているのである。

ところでその機能はもちろん僕が一から作ったものではなくて、Movable Type 用のプラグインを用いて組み合わせたものである。
今回のギャラリーは EntryImages というプラグインでできている。ところが当初公開されていたこのプラグインではタグによる画像を抽出する機能がなかったようで、だめもとで作者の方にタグが使えるかどうか尋ねるメールを送った。
確か夕方仕事が一段落したところでメールを書いたはずで、その後ジムにでかけたのだが、そこから帰宅してメールをチェックするともう作者の方からメールが入っていた。
それによると、タグが使えるように機能追加したものを作ったので、どこどこのリンクからダウンロードして欲しい、という内容のものだった。
( こちらはジムでちんたらちんたらしていたというのに、こんなに素早く対応していただき、どうもありがとうございました > 作者の Fujimoto さん )
そのお礼と言ってはなんだが、この方もフリーランスで働いているというので、氏のホームページから早速ドネーションさせてもらった。

ちなみにこの New York Watch ブログで使用しているプラグインは他にもこんなものがある。

MTPaginate
MTTagInvoke
captcha

これらについてはここよりもっと詳しく、かつわかりやすく解説しているサイトがあるので、「 New York Watch での使い方を知りたい 」 という奇特な方でもいない限り、ここでは省略させてもらおう。


さて新しい機能も無事動いているようでなによりだが、ただ一つだけ気がかりなことがある。

皆さんからのコメントを頂戴してからの処理に異様に時間がかかってしまい、しばらくはタイムアウトを起こしたと思ってしまう人が続出するのではないかということ。
まだチューニングはできていないので、それまでは投稿ボタンを押したあと忍耐強く画面が変わるまでお待ちください。

カテゴリー [ Movable Type ]

2006年04月23日

Movable Typeバージョンアップ完了

050410-195432.jpg
▲ Canon EOS 20D

ここ数日の New York は雨続きということもあって自宅でこつこつと打ち込んでいたのが、ブログシステム、Movable Type のバージョンアップ作業。
といっても Movable Type を自前でインストールして、自前のブログシステムを使用しない人にとっては全く関係ない話なのだが、これも今後バージョンアップする際の僕自身のメモとして書き記しておくことにした。

New York Watch もすでにエントリー数が700を超え、最初の頃は感じなかった不満点が出てきた。
その最たるものが速度で、僕がエントリーを書いてパブリッシュすると数十秒かかることも珍しくなくなった。僕のブログを読んでくれる人もコメントを書いて送信すると、ネットワークコネクションがとぎれてしまったんじゃないかと思うくらい時間がかかるようになったのでご存じのことだろう。
というのもコメントでもエントリーでもちょっと更新しようと思うと、データベースを更新した後でインデックスページやら個々のエントリーやらいくつもの html ファイルを作りあげたり更新するために非常に時間がかかるようになったのだ ( つまり毎回静的にファイルを生成しており、その度に700を超えるエントリー分のデータベースにアクセスする必要があった )。

もちろん Movable Type ではそのことも考慮して、ファイルを動的に生成させる仕組みも用意されている。つまりエントリーを登録したり、コメントが追加されたときにもデータベースに保存するだけでファイルを生成しないことで更新にかかる時間を短縮するわけだ。その代わりウェブサイトがアクセスされるとその度に表示するための html を生成することになるため、サーバに対する負担は高くなる。けれどもインデックスファイルなど頻繁にアクセスされるファイルは静的に作成しておくことで、バランスを取ることができる。

幸いこの機能は僕が使用していたバージョンでも使えるということだったので試してみたのだが、それほど目に見えて速いというほどパフォーマンスが向上することもなく、加えてコメントが新しいものから旧いものへの順番でしか表示できないなど不具合も報告されていた。
調べてみると最新のバージョンである 3.2 では不具合も修正されているということがわかり、それならばとシステムを入れ替えることにした。

それまで使用していたデータベースをエクスポートし、新しくインストールした Movable Type にインポートしてやれば移行作業自体は終わりなのでそれほど手間はかからない。以前にもやっているのでだいたい手順も覚えている。
けれどもそこから面倒なのはインストールしたプラグインソフトやら僕が改造したスクリプトの移行である。新旧 Movable Type の仕様の違いからそれまで動いていた機能が動かなくなったりするのだ。それらをいちいち手動で修正し、テストを繰り返していたらあっという間に数日かかってしまった。

具体的に機能追加や改造をしているのは、サイドバーのカレンダー表示、アクセスカウンター追加、最近のコメントのツリー表示、最新のトラックバック表示などであり、またリストをツリー上に表示するためのプラグインもインストールされている。そのほかにもスタイルシートを大幅に書き換え、表示されるフォントやレイアウトもオリジナルとはだいぶ異なっている。
スタイルシートは特にバージョン間で大きく変更されているために、画面のマージンやパディングの値を変えるたびに、画面で確認するなどだいぶ手間がかかった部分である。

それまではテンポラリの URL でテストをしていたのだがどうやらほとんど以前のものと変わらぬ見栄えになったことから、これまで使っている New York Watch と同じ場所にブログが展開されるように設定を変え、再構築。これで移行は完了である。
もし 「 以前と変わったことに気がつかなかった 」 と言う人がいればそれはうまくスムーズに移行が完了した、ということであるがよくアクセスしてくれている人だったらちょっとした違いに気がついたかもしれない。
たとえばエントリーの中で 「 以前にここで紹介した 」 などという記述があり、そのブログエントリーへのリンクがあるのだがこれをクリックすると、以前静的に生成された html ファイルへジャンプする。ところがスタイルシートの互換性が無いために、旧い html ファイルは画面が乱れて見える ( フォントサイズの指定も違っている )。
せっかく動的にファイルが生成される方法を選んだのだから、過去の html ファイルを削除してしまえばいいのに、と言われるかもしれない。実は今回からファイルの拡張子も php 化のために html から php に変えている。そのため新しいファイルではリンク先の拡張子も php になっていないと正しい画面が表示されない。つまり各エントリーの中で過去のエントリーへリンクしている場合に、html と記述されている箇所をを全て php に変えてサイトをリビルドさせなくてはいけないのだ。
実はこれはかなり大変な作業である。いったいどのエントリーが他のエントリーへリンクを張っているかを調べる手段は用意されていないから、一つずつ目視で確認しなくてはならない。それと簡単に html を消せない事情は、サーチエンジンが覚えているリンク情報のこともある。
サーチエンジンがヒットしたキーワードに基づいてエントリーを表示させようと思ってもすでに html から php へファイル名が変わっているために、「 Not found 」 というエラーが表示されることになるのである。
困ったな、と思って google で探してみるとやはり同じような問題に遭遇した人がいて、すでに解決策が取り上げられていた。
具体的にはスクリプトを一本用意して、.htaccess というアクセス制御のファイルに html から php へ自動的にリダイレクトするよう、書き加えるのである。
今回そこまでテストする時間がなかったため、その機能追加は後回しにすることにした。それで過去のエントリーへのリンクをたどると画面レイアウトが崩れて見えるのである。これは時間があるときに対処することにしよう。
あとは小さな事だが、個々のエントリーを表示させるとこれまで表示されていた 「 そのブログエントリーが投稿された日時 」 タイトルバーが表示されなくなった。
どうやら 個別アーカイブで MTEntries を使わない方法に書き換えられたため、そのタグの中でしか使用できなかった MTDateHeader が使えなくなってしまったのだ。そのせいでバナーと本文がつながっているようで、間延びしているように見える。これについても時間があるときにテンプレート書き換えに再挑戦してみることにしよう。

さてつらつらと書いてきたが、移行作業が終わり、早速コメントの投稿テストをしてみたところ、どうやら少しばかり速くなった気がする。何より動的ファイル生成にしたことでサーバ上の使用ファイルサイズも減ることとなった。しばらくは旧バージョンが生成した html ファイルも残存するが、いずれこれも不要になるので、さらにサーバ使用量は少なくなりそうで、良かった良かった。

050410-195338.jpg
▲ Canon EOS 20D

さて明日からは通常に戻り、これまで通りのブログを書くことにしよう。皆さん、これからも New York Watch をどうぞよろしく。

カテゴリー [ Movable Type ]

2005年07月03日

ブログ更新の危機

・・・などと書くとちょっと大袈裟だが、実はこのブログもかなり苦労して更新している。

事の始まりは2日前だった。
いつものようにエディタでブログの本文を書き、Movable Type にログインして本文の内容を新しいエントリーにコピーして「保存」ボタンを押す・・・するといつもは「保存されました」というメッセージが出るはずなのに、保存も公開 ( publish ) もされず、かわりにこんなエラーが表示された。

500 Internal Server Error The server encountered an internal error or misconfiguration and was unable to complete your request. Please contact the server administrator, webmaster@nomeri.com and inform them of the time the error occurred, and anything you might have done that may have caused the error.

More information about this error may be available in the server error log.

--------------------------------------------------------------------------------

Apache/1.3.33 Server at www.nomeri.com Port 80

そこで、Apache ( web server ) の Error log を見てみるとこのエラーが書かれている。

Premature end of script headers: /xxx/mt.cgi

昨日まで動いていたものが急に壊れるはずは無い。ということで調べてみるとどうやら本文に4000バイトほどのデータがあると保存出来ず、それより小さいと保存出来ることが分かった ( なのでこのブログも手短に書いている )。
僕はここしばらく Movable Type のスクリプトを変更していないので、障害はサーバ側に有るはずだ、と早速ホスティング会社のカスタマーサポートにメールすると、やはりこの現象に見舞われているのは僕だけでない様子。

加えて Movable Type のユーザフォーラムでもこの件で各地から報告があがっている。

http://www.movabletype.org/support/index.php?s=99182fa96ffc403839d9bf680f884e22&act=ST&f=9&t=52920&st=0

どうやらホスティングが cPanel のアップデートを行ったため、その中の Perl モジュールのどれかが Movable Type に問題を起こしているようなのだが、ホストが違っても障害報告があがっているところを見ると、各社似たタイミングで Cpanel をアップデートしたのだろうか。
ホスティング会社がサーバの環境を元に戻すかそれともシックスアパート ( Six Apart ) がなんらかの対応パッチを出さない限りは直りそうにない。

一応「すべての更新」を選び、全部のモジュールをリビルドすることはできるのでエントリーを公開するたびにリビルドすることで回避は出来るのだが、これだけエントリーがあるとリビルドにも時間がかかる。

ということで原因がわかり修正されるまでの間、エントリーは短めにしよう。ひとまず報告まで。

カテゴリー [ Movable Type ]

2005年04月08日

ブログの改造

僕のホームページもメインはすっかりブログに移行し、これまでのようにデザインを変えるたびにHTMLコードを書きなおす、という手間はだいぶ軽減された。
ブログという、一つの完結したシステムを使うことで統一された操作感が得られる一方で、スタイルとしては固定されている ( それがブログのいいところでもある )。なので出来ることと言ったら、ちょっとしたカスタマイズぐらいで、その中身も細々としたものながらいろいろな機能を追加出来るとあって定期的に変更するのが楽しい。
基本的には細かい機能をたくさん付けると却って見づらくなり、翻って操作感にも悪影響を与えるので必要最低限のものだけを追加しているのだが、付け加えてきた機能を列挙しておかないとどこから持ってきたのか忘れてしまう。

ということで Movable Type 用の改造を少しリストしておくことにする。いずれ Movable Type のバージョンアップがある際に、「あれこのプラグインどこからもってきたんだったっけ?」とならないように自分のための備忘録みたいなものだ。


・カテゴリー名の表示

各エントリーはカテゴリー分けをしているのだが、これまで今読んでいるエントリーがどのカテゴリーに入っているのかは表示してこなかった。読んでいるエントリーと関連性のあるエントリーを読もうと思ってもこれじゃあ読めないわけだ。特に僕のブログは僕の頭の中のように支離滅裂な話題を取りあげているのでなおさら混乱の度を深める。そこで各エントリーのタイトルのしたにカテゴリー名を表示することにした。

これを実現するのはあまりにも簡単で改造とは言えないかもしれないが、とりあえず紹介しておこう。テンプレートに数行書き足すだけで実現出来る。

変更箇所はいくつかのテンプレートで、ここではメインページをサンプルとして取りあげよう。

僕のメインページテンプレートではこんな風にエントリータイトルが表示され、その下にエントリー本文が表示されるようになっている。

<h3><$MTEntryTitle$></h3>

<$MTEntryBody$>

今回カテゴリー名をタイトルの次の行に表示させたいので、下に強調表示した行を追加する。

<h3><$MTEntryTitle$></h3>

<br /> <div class="category">カテゴリー [ <MTEntryCategories glue=", "> <a href="<$MTCategoryArchiveLink$>"><$MTCategoryDescription$></a> </MTEntryCategories>]</div>

<$MTEntryBody$>

これと似た行が個別アーカイブ、日別アーカイブなどのテンプレートにあるので、好みに応じて ( つまり個々のエントリー毎や月別エントリー表示のページでカテゴリー名を表示させたければ ) 上の強調ラインを追加すればよい。
テンプレートの編集を終え、保存したらリビルドを忘れずに。

・コメントやトラックバックのツリー化

ここ、New York Watch のサイドバーで「最新のコメント」と「カテゴリー」の項目で使用しているのが「小粋空間」さんで紹介してくれている「maketree.js 1.01」
コメントがツリー化されすっきりした。また Movable Type ではサブカテゴリの階層化が可能になったので、これまたカテゴリー一覧表示もツリーによりだいぶ見やすくなった。
ただし New York Watch の兄弟サイト、「ヨシュラン」ではカテゴリーが親-子-孫の三世代以上になるので、同じく「小粋空間」さんが公開予定としている「折りたたみ」の方を利用する予定だ。

maketree.js

小粋空間

maketree.js のダウンロードが可能なページ




これからも Movable Type を利用していろいろなプラグイン ( 部品 ) を試していく予定。少しでも便利になったとか、見やすくなれば、嬉しいのだが。

カテゴリー [ Movable Type ]

2005年02月03日

Movable Type 3.15でのメール通知

最初、学術・研究・軍事の目的で開発、利用されてきたインターネットが学校や職場で使えるようになり、さらにコンピュータを私生活でもよく使う人は早くからインターネットを導入してきた。
そのうち一家に一台の PC になり、いまや1人1台、いや1人でn台のコンピューティング環境を持つ、というのも決して珍しくなくなり、インターネット利用のすそ野は大きく広がった。
1人n台というのは大げさな話ではなく、自宅の PC でもちろんインターネット接続するだけでなく、今や携帯電話、PDA でも接続が可能だ。車の中でカーナビ経由で使えるインターネットはもっと普及するだろうし、いずれデジタルカメラなど普段持ち歩くものにも標準装備されるかもしれない。

インターネットがコンピュータ好きな人たちの間で使われているときはまだ「パソコン通信」のイメージが世間一般には多く、今ほどインフラが整っているわけでもなく、もちろんインターネットバンキングなどもなかった。それが今やほとんどのサービスがインターネットで受け連れられるようになり、この傾向はますます進むと思われる。

それにつれて自宅にダイレクトメールが舞い込む様にインターネットでも広告産業がにぎやかになってきた。それだけ生活に根ざした一つの通信手段になってきたからだと思う。
当初はメールとして送られてくる広告 ( スパムメール ) だけだったのが、最近はブログブームを反映してかブログに着くコメントやトラックバックまで利用して広告を貼り付けにくるほどだ。
僕がこの New York Watch のブログシステムとして利用している Mobable Type もそういったスパムコメントやスパムトラックバックに対応するため、大きなバージョンアップがあった。それが version 3.0だ。
ここ New York Watch でもいろいろなスパムが投稿されるので、早くから3.0をインストールし、さらにver 2.6x の時代からコメントが投稿されればすぐにメールで僕のところに通知されるように設定して注意を払ってきた。
ところが 2.6X から ver 3.11-ja にインストールし直したときに、なぜかメール通知機能が働かなくなってしまった。
このときはあまり詳しく調べず、単に google で検索してみると「2.6Xなど過去の Movable Type から lib/MT/Mail.pm を抜き出して、上書きすれば動作した」という他のユーザの書き込みが見つかった。そこでこのときは対処方としてこれに従って同じ事をやってみた。
もちろんこれで動くようになったのだが、今回、3.11-ja から3.15-ja へとアップグレードをするとやはりコメント通知機能が動作しなくなった。

そこで今回はもうちょっと詳しく調べてみようとググって見ると、どうやらこの現象は日本人にだけ起きていることがわかった。米国ではこの問題は報告されていないのだ。
今回のアップグレードでもやはり Mail.pm というモジュールが書き換えられているので、このファイルをエディタで開いてみて納得。
日本語環境で使用している場合に、メールの From: や Subject: の部分をエンコードしている部分があり、どうやらこのエンコードが正しく行われていないためにメールが送出できなくなっているようだった。
ググって見るとこれに気が付いている人たちがすでに対処法をのせている。僕が参照させてもらったのは「MT3.0以降でのメール文字化け修正」というブログのエントリだ。
こちらでは、文字化けという形で問題が出ているが、僕の場合は sendmail か Postfix とのハンドシェイクで失敗しているようでそのためにメールが送られない、とそれぞれ現象は違うがこの方の修正方法で僕の方も正しく動くようになった。

修正部分というのは lib/MT/Mail.pm ( 3.15-ja 版 ) の41行目の
$hdrs->{Subject} =~ s/\r?\n/\r\n/g;
という行をコメントアウトしてしまうこと。具体的には行頭に「#」を加えるだけだ。
すると付近の行のイメージはこんな感じになる。

if ($mgr->DefaultLanguage eq 'ja') {
my $enc = $mgr->PublishCharset;
$body = MT::I18N::encode_text($body,$enc,'jis');
$hdrs->{Subject} = MT::I18N::encode_text($hdrs->{Subject}, undef, 'jis');
$hdrs->{Subject} = Jcode->new($hdrs->{Subject}, 'jis')->mime_encode;
# $hdrs->{Subject} =~ s/\r?\n/\r\n/g;
$hdrs->{'Content-Type'} = qq(text/plain; charset="iso-2022-jp");
$hdrs->{'Content-Transfer-Encoding'} = "7bit";
}

僕の環境ではこれだけでメールの送信が正しく行われるようになったので、似たような現象で悩んでいる人は試してみては?

それにしても「デフォルト言語が日本語なら」という分岐部分なので、確かにこれなら日本人にしか起きない問題なわけだ。

ということで無事 Movable Type 3.15 にアップグレード完了。これからもご声援お願いします。

カテゴリー [ Movable Type ]

2005年02月01日

Movable Type 3.15リリース

朝一番出社後にするのはまずコーヒーを飲むこと。

嬉しいことに昨年からはエスプレッソも飲めるようになったので、一番香りの強いこのエスプレッソで重い頭をしゃきっとさせる。
そのあとは仕事のメールのチェックをしながら日本のサイトなどを見て回るのだが、その中の一つに PC Watch がある。今日はその PC Watch の姉妹サイト、Internet Watch の記事タイトルを斜め読みしていたときに、ぱっと目に止まった記事があった。
それがこの Movable Type 3.15日本語版のリリースを伝える記事だった。

僕が New York Watch で使っている Movable Type は当初 version 2.65 英語版を日本語化して使っていたのが、そのうちブログブームが日本でもおき、開発元の Six Apart も日本法人を構えるまでになった。そして待望の日本語版がリリースされたので、総入れ替えをしたのだが最近になってそのバージョンに脆弱性が発見されたのと、新しいバージョンではリビルドにかかる時間が短くなったとあって新バージョンの日本語版リリースを心待ちにしていたのだ。
ちなみに日本法人シックスアパートの会長、伊藤氏とは15~6年前に知りあってその後自宅にお邪魔したことも。僕と同世代のとても気さくな人だ。

ということで今夜はアップグレード作業をすることに専念して、今日のブログエントリは一回休みとさせて貰おう ( 正確にいうとこれもエントリだが ) 。
うまくアップグレードが完了したら、無事これまでと変わらぬ姿で表示されるはず。さて取りかかるとするか。


Movable Type

シックスアパート公式サイト

3.15のダウンロードはこちらから
http://www.movabletype.jp/archives/2005/01/movable_type_31_4.html

カテゴリー [ Movable Type ]

2004年08月31日

Movable Type 3.1がリリース!

New York で行われている共和党大会にちなんで、New York で見られるシーンを毎日紹介しているのだが、今日は嬉しくてもう一つ別の話題もエントリーしておこう。

8月中になんらかの進展があるはず・・・と思っていた Movable Type だが、やきもきしていたらなんと8月最後の今日になって3.1がリリースされた。
7月26日にアナウンスがあり、「画面のサンプルなど近いうちに見せられる」と言っていたのだが、画面が出てこないので「リリースも遅れるのかな」と思っていたのだ。
なのでダウンロードできる形でリリースされたのは嬉しい誤算。

Movable Type 3.1の新機能については以下のページで見られるが、なんと行っても僕にとっては「サブカテゴリ」のサポートが嬉しい!

http://www.movabletype.org/features.shtml

ということで休眠中の「ヨシュラン」サイト復活に向けて一歩ずつ歩き出したのだ・・・。
問題は日本語版を待ってインストールするかどうか。