« 2008年10月 | メイン | 2008年12月 »

2008年11月 アーカイブ

2008年11月10日

MovableType用TemplateSetExporter Plugin Ver.0.71

MovableType用TemplateSetExporterプラグインのバージョンアップを行いました。変更点は次の通りです。

  • バージョン番号が出力されない不具合の修正

Movable Type 4.1からテンプレートセット機能が搭載されました。

テンプレートセットの選択と入れ替え | Movable Type 4 ドキュメント

テンプレートセットは、自由に作成することができます。

テンプレートセットの登録 | Movable Type 4 ドキュメント

しかし、作成するのは難しいと言う声も良く聞きます。
もっと簡単にテンプレートセットが作成できれば、テンプレートの配布の敷居もぐっとさがりますし、テスト環境から本番環境へのテンプレートの移行も気楽に行えるようになります。

そこで、テンプレートセットを作成するためのプラグインを作ってみました。

このプラグインを使うと、ブログごとのテンプレートをテンプレートセットとして出力することができるようになります。

テンプレートは、テンプレートセットの形で、ディレクトリに保存されます。
保存されたテンプレートセットは別のMovable Typeシステムに移動することもできますので、テスト環境で構築したテンプレートを本番環境に適用することが簡単に行えるようになります。
また、本プラグインで作成したテンプレートセットを配布することも簡単にできます。

ぜひ、お試しください。

ドキュメント:TemplateSetExporterプラグイン ドキュメント

ダウンロード:zip形式tar.gz形式

本プラグインは、GNU GENERAL PUBLIC LICENSE Version 2と独自ライセンスのデュアルライセンスにて公開されます。

MTで使用する場合
無償で利用できます。
MTOSで使用する場合
GNU GENERAL PUBLIC LICENSE Version 2にしたがいます

お問い合わせ

エムロジック株式会社ではMovable Typeによるサイト構築やプラグイン開発、iPhone・Windows等のアプリケーション開発業務を行っています。
お問い合わせはこちらまで。

2008年11月12日

MTの一部の機能をコマンドラインから操作する

プラグイン(には限りませんが)を書いていると、これから書こうとしているコードやちょっとした思いつきが正しく動くのかどうか確認したくなることがあります。 確認のためには、最低限の動作をするプラグインに仕上げ、ブラウザからアクセスし、ログあるいはデバッガで確認するという手順を踏む必要がありますが、確認したいコードがたった1行、例えば、MT->version_number()がどういう形式の値を返すのか知りたい、というときには、いちいち前述のような作業を行うのは面倒です。また、最低限の動作をさせるために書いた部分に問題があり、もともと確認したかったところへなかなか到達しない、ということもありがちです。 そうした場合に、役に立つのが、コマンドラインからMTの一部の機能を操作するスクリプトです。(スクリプトといっても、デバッガが起動し、MTのインスタンスを生成した後、breakするだけなのですが...。) ==
#!/usr/bin/perl -d

use lib '../lib';
use vars qw( $mt );
use MT;

BEGIN {
    $mt = MT->new;
}

$DB::signal = 1;
== これをMTをインストールしたディレクトリの下にある、toolsディレクトリに配置して、そこから起動します。ここではconsoleというファイル名にしています。 ==
$ perl console

Loading DB routines from perl5db.pl version 1.28
Editor support available.

Enter h or `h h' for help, or `man perldebug' for more help.

main::(console2:23):	$DB::signal = 1;
  DB<1> 
== スクリプトを起動すると、デバッガのプロンプトが表示されますので、後はperlのプログラムを記述するだけです。変数$mtがMTのインスタンスですので、これを使っていろいろと試すことができます。 たとえば、前述のバージョン番号を調べるのであれば、 ==
  DB<1> p $mt->version_number
4.22
== とします。 公開済みのエントリの一覧を取得し、タイトルを表示するには、 ==
  DB<2> @entries = MT::Entry->load({status=>MT::Entry::RELEASE()})

  DB<3> print $_->title,"\n" for @entries
Movable Type を利用してウェブサイトをリニューアルしました
Movable Type 4 へようこそ!

  DB<4> 
== などとします。 スクリプトの中にサブルーチンを定義しておくと便利です。例えば、変数をダンプするのに毎回、 ==
print Data::Dumper->Dump($v);
== と入力するのは面倒なので、 ==
sub dd {
    my ($v) = @_;
    require Data::Dumper;
    print Data::Dumper->Dump($v);
}
== と定義しておけば、 ==
dd $v
== だけで済みます。YAMLでフォーマットされたのが見やすければ、 ==
sub xx {
    my ($v) = @_;
    require YAML;
    print YAML::Dump($v);
}
== と定義しておき、 ==
xx $v
== とすることができます。 ちょっと動作を確認したい、という場面で役に立つと思いますが、いかがでしょうか?

2008年11月21日

MovableType用KotonohaLinkプラグイン v0.61

MovableType用KotonohaLinkプラグインのバージョンアップを行いました。変更点は次の通りです。

  • テキストのみのフィールドで置換ができない問題の修正

エントリ中の特定の言葉に常にリンクをはりたいときがあります。 例えば、自社名には自社サイトへのリンクをはりたいですし、製品名には製品紹介ページへのリンクをはりたいということもあると思います。 これを自動的に処理するためのプラグインが、「KotonohaLink」です。 ぜひ、お試しください。

本プラグインは、以前「MovableTypeで行こう!」にて公開されていたもののバージョンアップ版ですが、以前のバージョンとの互換性はありません。ご注意ください。

ドキュメント:KotonohaLinkプラグイン ドキュメント

ダウンロード:zip形式tar.gz形式

2008年11月26日

Windows環境のMTでmemcachedを使う

懲りることを知らない私は、前回に引き続きWindows関係のネタを書いていこうと思います。

Movable Type 4 では、分散型メモリキャッシュシステムであるmemcachedを使ったキャッシュ機構が組み込まれています。
システム自体は、大規模なシステムでこそより大きな効果を発揮する性質のものではありますが、メモリに余裕があれば、単体での利用でもかなりの効果を望めます。
また、MT::Memcachedを使った開発を行う場合、ローカル環境で動作確認できると大変便利です。

そこで、今回はWindows環境のMovable Typeでmemcachedを利用する方法を紹介したいと思います。

memcachedのインストール

公式サイトで配布されているmemcachedはWin32向けにビルドすることができないのですが、現在いくつかのサイトにおいてWin32版のmemcachedが開発・公開されています。
今回は、執筆時点での最新となるmemcached1.2.6を公開している次のサイトのものをインストールします。

Jellycan Code - memcached

ここでmemcachedの「win32 binary」として公開されているmemcached-1.2.6-win32-bin.zipをダウンロードし、zipファイルに含まれているファイル memcached.exe を適切なフォルダに保存します。

保存後、コマンドプロンプトを開き、先程 memcached.exe を保存したフォルダへ移動し、次のコマンドラインを実行します。

memcached.exe -d install

これでmemcachedがサービスとして登録されます。デフォルトでは利用するメモリは64MBになっていますので、必要に応じて-mオプションで利用メモリを増やすとよいでしょう。あとは

memcached.exe -d start

とすることで、memcached Server サービスが起動します。

Perlモジュールのインストール

memcachedをPerlから利用するためにはPerlモジュールCache::Memcachedもしくはその互換モジュールが必要となります。
今回はWin32でも安心して使えるPurePerl実装のCache::Memcachedをインストールします。
ActivePerlではppmを用いて容易にインストールできます。

ppm install Cache-Memcached

mt-config.cgiの設定

Movable Typeに実装されているmemcachedを用いたキャッシュ機構を利用するためには、mt-config.cgiに環境変数「MemcachedServers」の設定を追加して、利用するmemcachedサーバーを指定する必要があります。
今回はローカルにインストールされたデフォルト設定のmemcacheを利用しますので、次の1行をmt-config.cgiに追加します。

MemcachedServers 127.0.0.1:11211

あとは必要に応じてWebサーバーの再起動を行います。これでmemcachedが利用されるようになりました。
どれくらい効果があるかは環境にも大きく依存すると思いますが、データベースへのアクセスが多い場面では、変化を実感しやすいのではないかと思います。

mt-config.cgiでの設定ですが、環境変数「MemcachedServers」を複数記述することで複数のmemcachedサーバーを利用することができるようになります。
また、複数のMovable Typeから同一のmemcachedサーバーを利用する場合には環境変数「MemcachedNamespace」に固有の接頭辞を設定することで、キャッシュの衝突を防ぐことができます。
必要に応じて設定しましょう。

また、memcachedの動作状況を表示したり設定を行ったりすることができる「MemCacheD Manager」のような補助ツールも存在します。必要に応じてインストールしておくと便利です。

より高速に

PerlモジュールCache::Memcachedには複数の互換モジュールが存在します。これらの互換モジュールを利用する場合にはmt-config.cgiに環境変数「MemcachedDriver」の設定を追加します。
例えばより高速に動作するCache::Memcached::Fastを利用したい場合、次の1行をmt-config.cgiに追加します。

MemcachedDriver Cache::Memcached::Fast

ただし、互換モジュールには、動作させているmemcachedのバージョンへの対応を含め、完全な互換性を持っていない可能性がありますので、導入の際には慎重に動作確認を行いましょう。

まとめ

memcachedは汎用性があり様々な言語から利用することができる大変便利なキャッシュシステムです。
導入のハードルもさほど高くないので、性能的なボトルネックが見つかった際、memcachedの利用が可能であるか検討してみるとよいかと思います。