Movable Typeの最近のブログ記事

年の瀬のあわただしい時にここのblogエンジンをMT3.33からMTOS4.2に更新しました。

テンプレートとかしっちゃかめっちゃかになってたので、普通にアップデートをするのではなくSQLiteのdbだけ持ってきてテンプレートを初期化して必要なところだけ変更するという手段をとりました。

まずは700エントリーを超えて再構築もしんどくなってきたのでダイナミックパブリッシングを試してみました。が、デフォルトのPHP版だといくつかのプラグインが動かなかったのでPerl版とかも試してみましたが、重すぎて使えないので結局断念しました。

で、テンプレートのキャッシュをいろいろ調整しながら試してみたら、これが意外と効いて比較的重いここのサーバーでもインデックスだけだったら10秒以内で再構築できるようなりました。全体の再構築は10分くらいかな。まぁ許容範囲です。

google-code-prettifyも入れたし、はてぶ数表示もしたし、後ははてな記法テキストフィルターつっこめば満足といった感じです。

デザインとかやっつけなのでレイアウトが崩れてたりするかもしれませんが、追々直して行こうと思います。

ここ数日のアクセス数が普段の半分くらいだったので、おっかし~な~と思いつつも通常でもスズメの涙程度のアクセス数だからこんなもんなのかな~と思っていた次第です。

で、週末になっても戻らないので、まさかMT3.3にアップデートしたときに設定ミスったか?と、さすがに不安になったので調べたところ何てことはない・・・

実は先日(といっても大分前ですが)RSS/AtomfeedをFeedBurnerにすり替えたのですが、その際に放置していた通常のフィードのURLのリダイレクトをmod_rewriteでやる、ってのをMTのアップデートのついでに行った次第なんです。

が、その際に.htaccessに設定したのが

RewriteEngine On
RewriteRule ^index\.rdf$ http://feeds.feedburner.jp/hidek [L,R=permanent]
RewriteRule ^index\.xml$ http://feeds.feedburner.jp/hidek [L,R=permanent]
RewriteRule ^atom\.xml$  http://feeds.feedburner.jp/hidek [L,R=permanent]

・・・そうです。全部リダイレクトしてました

FeedBurnerにはatom.xmlを登録してあるのですが、FeedBurnerがフィードをatom.xml取得しに来ても、リダイレクトされて結局FeedBurnerのフィードを取りに行き・・・これでは更新されるはずもありません。

とはいえ、以前にatom.xmlをRSSリーダーにフィードとして登録してくれている方もいらっしゃるようなので、これもリダイレクトしたい。

というわけで、Atomのテンプレートをそのまま新しく作ったAtom for FeedBurnerってテンプレートにコピーしてfeed.xmってファイル名で再構築するようにして、FeedBurnerにはこっちを登録して事なきを得ました。

再構築の際に若干負荷が上がりますが、まぁ当面の処置ってことでよろしいかと。

というわけで、すでに登録してくださっている方はなるべく

http://feeds.feedburner.jp/hidek

に登録しなおしてくださるとありがたい次第です。

最近、コメント・トラックバックスパムがしゃれにならなくなってきたのでOgawa::Memorandaさんが公開しているCaptcha Pluginを入れてみました。Yahoo!とかの登録画面でよく見るあれです。これで機械的なスパムは防御できるはずです。

cpatcha.gif

ただ問題なのはこのプラグインはAuthen::Cpatchaモジュールを必要とするのですが大抵のレンタルサーバーにはインストールされていません。

で、GDとDigest::MD5(その他のモジュール)がインストールされていることを前提に以下のようにすれば動きます。この二つはMovableTypeが動いていれば多分入っているはずです。

サーバーのMTのextlibディレクトリにAuthenディレクトリを作成します。

CPANからAuthen::Cpatchaパッケージをダウンロードします。

ローカルで解凍して[MTのpath]/extlib/AuthenにCaptcha.pmとCaptchaディレクトリをアップロードします。

[MTのpath]
    `--extlib
         |-- Authen
         |   |-- Captcha
         |   |   `-- images
         |   |       |-- 2.png
         |   |       ・・・
         |   |       `-- z.png
         |   `-- Captcha.pm

こんな感じです。

Captchaプラグインの配布先からプラグインをダウンロードして説明どおりにインストールします。

plugins/captcha/captcha_js.cgiを以下のように変更します。

・・・
use lib '../../extlib';

use Authen::Captcha;
use CGI;
・・・

これで動くはずです。

MovableType 3.31が公開されたので重い腰を上げてアップグレードしました。
ベータの時からちょこちょこいじってはいたのですがデザインを変えようなどと思ったのが運のつきで、かなりの放置プレーになってしまいました。

で、今回はテンプレートなどもすっきりさせたかったのでsqliteのDBファイルだけまっさらな3.31の環境にコピーして地道に変更するといった作業をとりました。

で、感想なんですが、期待していたタグは再構築が重過ぎて使えませんでした。色々手段はあるんだろうけど、今回はばっさり諦めました。

というわけで、久々に新しいデザインにしたのであちこち不具合があると思いますが、なんかあったら御一報いただけるとこれ幸いです。

というわけで、コメントスパム対策としてOgawa::Memorandaさん御提供のQuasi-Spam Filter Pluginを導入しました。

コメントスパム対策の手法としては

  1. スパム元のIPをリストにしてはじく。
  2. 1バイト文字(半角英数字。コメントスパムの多くが海外からだから。)だけのコメントははじく。
  3. 特定の文字列が含むものははじく。

などありますが、IPなんてコロコロ変えられるので追っかけていったらイタチごっこだし、1バイト文字だけのをはじくというのもグローバルなご時勢にどうかと思い3つ目の手法のものを探していました。

なかったら、勉強がてら作ろうかとも思いましたが、前述のサイトで公開されていたので利用させていただくことにしました。シンプルでとっても良いです。しかも3.1から公開されたCall back APIも使われているので勉強にもいいです。

というわけで、今後は特定のHTMLタグを含むコメントは受け付けないようになってるのでご注意くださいまし。

というわけで、重い腰を上げて3.15へアップグレードしました。

きっかけは昨日から大量のコメントスパムを食らったため、アンチコメントスパムなプラグインを導入しようとしたのですが、Callback APIを使っているため3.1以上じゃないと動かないからです。

ここを参考にしました。SubCategoriesプラグインを入れていたため、カテゴリーの再階層化が面倒でしたがサクッとうまくいった模様です。

なお、3.0から3.1にアップデートしたのですがアップデートログによると


Upgrading your databases:
Running 'alter table mt_blog add blog_ping_technorati tinyint'
Running 'alter table mt_blog add blog_children_modified_on datetime'
Running 'alter table mt_blog add blog_custom_dynamic_templates varchar(25)'
Running 'update mt_blog set blog_custom_dynamic_templates = 'none''
Running 'alter table mt_template add template_created_on datetime not null'
Running 'alter table mt_template add template_modified_on timestamp not null'
Running 'alter table mt_template add template_created_by integer'
Running 'alter table mt_template add template_modified_by integer'
Running 'alter table mt_template add template_build_dynamic tinyint'
Running 'update mt_template set template_build_dynamic = 0 where template_build_dynamic <> 1'
Running 'alter table mt_template modify template_build_dynamic tinyint not null'
Running 'alter table mt_category add category_parent integer'
Running 'update mt_category set category_parent = 0'
Running 'alter table mt_category modify category_parent integer not null'
Running 'alter table mt_entry modify entry_basename varchar(50) not null'
Running 'create table mt_fileinfo (
    fileinfo_id integer primary key auto_increment,
    fileinfo_blog_id integer not null,
    fileinfo_entry_id integer,
    fileinfo_url varchar(255),
    fileinfo_file_path text,
    fileinfo_template_id integer,
    fileinfo_templatemap_id integer,
    fileinfo_archive_type varchar(255),
    fileinfo_category_id integer,
    fileinfo_startdate varchar(80),
    fileinfo_virtual tinyint,
    index(fileinfo_blog_id),
    index(fileinfo_entry_id),
    index(fileinfo_url)
)
'
Creating Dynamic Site Bootstrapper.
Creating Dynamic Pages Error Template.

Done upgrading your schema! All went well.

こんな感じな変更が加わったようです。

正直言って僕はSEOに全く興味ありません。と言ってもサーチエンジンのアルゴリズムには興味あるので古いですがこんな記事を見つけてフムフムと・・・

iNTERNET magazine 9 月号はヤフー特集 / Movable Type で YST SEO (NDO:Weblog)
細かいところは Googlebot と Yahoo! Slurp (YST のロボット) で違いが結構あるようですが、大枠のアルゴリズムはかなり似通っているので、Google に対しての SEO はヤフーに対しても有効。しかし、SEO するにあたって一つ大きな違いとして、Yahoo! Slurp は meta タグ (の keywords と descriptions) を解釈するという点が挙がっていました。

この号持ってるんですけど、前述の通りSEOに興味なかったので読んでませんでした。

で、MovableTypeでYST SEOする方法として記事中ではmetaタグのkeywordsにエントリーで指定したキーワードとカテゴリーのラベルを表示させる方法が紹介されています。

ご存知の通りMovableType3.1からカテゴリーの階層化ができます。というわけで親階層からのカテゴリーラベルを表示させたい場合は

<meta name="keywords" content="<$MTEntryKeywords$>, <MTEntryCategories glue=", "><MTParentCategories glue=", "><$MTCategoryLabel$></MTParentCategories></MTEntryCategories>" />

こんな感じをIndividual Entry Archiveのテンプレートに書いてやればよろしいかと思う次第です。

Movable Type 日本語版サイト
米国でMovable Type 3.14の提供を開始しました。大量のスパムを受信したときのサーバー負荷を軽減するための変更などを実施しました。

日本では現在、バージョン3.121をご提供していますが、2005年1月中に日本語版のバージョン3.14をお届けする計画です。

だそうです。
個人的には未だに3.1に踏み切れない(横着してるだけという噂も)のでどうなんでしょ?って感じですが、そろそろ手をつけたほうがいいのかもしれませんね。

自分のサーバーだったらDBも含めてさくっとテストサイト作って・・・って出来るんだけどレンタルサーバーだとこの辺が億劫になりがちかもしれません。

新年になったら手をつけるかも・・・たぶん・・・きっと・・・めいびー・・・

Movable Type 3.121の提供を開始
Movable Type 3.121の提供を開始しました。Movable Type 3.121はMovable Type 3.11のマイナー・バージョンアップ版です。 Movable Type 3.11のリリース後にユーザーの皆様から寄せられたバグ・レポートなどを反映し、修正を加えたと同時に、mt-load.cgi,mt-check.cgi のメッセージやドキュメントなどを日本語化し、日本語対応を進めました。詳しい修正は、更新履歴 をご参照ください。

だそうな。
そろそろ見た目も変えたいところだからついでに3.1に移行しようかしらん。
でもダイナミックパブリッシュは鬼門っぽいので要思案ですね。

プロフィールページを作ろうと思ってたけどエントリーとして登録すると色々厄介になるし、どうしようかと思いつつ放置して早3ヶ月。

小粋空間

あぁ。なるほどテンプレートとして直に保存すればいいわけだ。頭いいですね。というわけでサクっと作ってみた

10月19日付でMovableType 3.1の日本語版がリリースされたらしい。

すでに新機能はあちこちで紹介されているので割愛。

実は英語版の3.1をインストールして使ったことがあるけど個人的にはSubCutegoriesプラグインを導入したら後は事足りているのでしばらく見送り。

デフォルトでは再構築から7日前までの記事を表示するようになっている。これを最新の10件の表示に変える。

Audioscrobblerとプラグインを使えば今現在WMPやiTunesで聴いている音楽をRSS配信できる。これを動的にMovableTypeで紹介する。

拡張子を.phpにすることでPHPが有効なサーバーであればPHPを使えるようになる。

MovableType 3.1からデフォルトの機能になったカテゴリーの階層化を3.0でやってみる。

プロフィール

このアーカイブについて

このページには、過去に書かれたブログ記事のうちMovable Typeカテゴリに属しているものが含まれています。

前のカテゴリはLinuxです。

次のカテゴリはMySQLです。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。