MovableType + Memcached @ Mac OS X

MovableTypeにmemcachedを組み込んでみた日記。次のリンクが参考になる。

Running Movable Type with memcached | MovableType.org – Home of the MT Community

http://www.movabletype.org/documentation/administrator/maintenance/memcached.html

[memcached] memcached導入手順 – Life with IT

http://l-w-i.net/t/memcached/0install_001.txt

memcachedのインストール

リンク先ではソースからコンパイルしてるが、ここはお手軽にMacPortsで行ってみる。

$ sudo port install memcached

するとLaunchdの設定ファイルが/Library/LaunchDaemons/org.macports.memcached.plistに作成される。次のコマンドで自動起動と最初の起動が行われる。

$ sudo launchctl load -w /Library/LaunchDaemons/org.macports.memcached.plist

実際の起動スクリプトは/opt/local/etc/LaunchDaemons/org.macports.memcached/memcached.wrapperにあるようだ。必要ならこのファイルを編集して起動オプションを書き換えよう。

動作確認にはtelnetを使う。statsで統計情報を表示し、quitで終了する。

$ telnet localhost 11211
Trying ::1...
Connected to localhost.
Escape character is '^]'.
stats
STAT pid 64143
STAT uptime 40868
STAT time 1266977732

~省略~

quit
Connection closed by foreign host.

Continue reading

Last.fmウィジェットはどこに行った?

この情報は古いです。現在は Flash を使わないウィジェットが推奨されています。詳しくはこちら → jQuery 版 Last.FM ウィジェットを導入してみた


しばらく前からLast.fmを利用している。SNSと言うより、自分の音楽嗜好を記録し、まだ見ぬ(聴かぬ)名曲を探すツールとして使うとおもしろい。

で、せっかくブログ始めたからには前々から気になってたウィジェットを貼ろうとしたのだが、これが妙なことになっている。Last.fmからウィジェット紹介のページが消えてるのだ1

Last FM Widget ? What Happened – Web Site Support – Last.fm
http://www.lastfm.jp/forum/21713/_/579208

どうやら去年の11月から何かおかしかったらしい。「最近ほったらかしだったし、メンテめんどいからもうやめるね! 今度からはサードパーティのアプリ使ってよ」(スタッフ談、超意訳)と書いてある。どこにもそんなアプリ見つからないんだけど……。

途方に暮れていたのだが更にググってみると、ウィジェットのHTMLソースを整形して解説してあるサイトを見つけた。これをいじって自分のところに貼っちゃえばいいのだ。

Last.fmウィジェットのコード整形 – 最遅メンヘル研究会
http://d.hatena.ne.jp/kageroh_/20080606/1212706200

Last.fmのWidgetを設置。 – fujii-t:blog(フジイブログ)
http://www.hitohen.com/fujii-t/2007/12/last-fm.html

今更ですがLast.fmがおもしろい | ブルマンぶるぶる
http://www.bluesman.nbworks.co.jp/2010/02/16/715/

上記のようなリンクを参考にして次のコードを書いた。

Continue reading

SyntaxHighlighterでYAMLをハイライトする

当然と言えば当然だが、TT2 のとき(その1その2)よりは遙かに楽だった。

# サンプル
arg1: value1
arg2:
    -   [ value2, value3 ]
    -   arg3:
            - value4

修正・作成するファイルは2つ。

ファイル名
/mt/plugins/SyntaxHighlighter/lib/SyntaxHighlighter/Plugin.pm

        'html'=>'shBrushXml',
        'xhtml'=>'shBrushXml',
        'tt' => 'shBrushTT2',
        'tt2' => 'shBrushTT2',
# 前回の修正の直後に書き加える
        'yml' => 'shBrushYAML',
        'yaml' => 'shBrushYAML',
    );

ファイル名
/mt-static/plugins/SyntaxHighlighter/2.0/scripts/shBrushYAML.js

/* こっちは新たに作成する
   かなり大雑把だけど、一応の役には立つよね */
SyntaxHighlighter.brushes.YAML = function() {
    this.regexList = [
        { regex: /#.*$/gm,     css: 'comments' }
        ,{ regex: /\w+:/g,     css: 'keyword' }
        ,{ regex: /[^#:]+$/gm,    css: 'string' }
        ,{ regex: SyntaxHighlighter.regexLib.doubleQuotedString
            ,css: 'string' }
        ,{ regex: SyntaxHighlighter.regexLib.singleQuotedString
            ,css: 'string' }
    ];
};
SyntaxHighlighter.brushes.YAML.prototype
    = new SyntaxHighlighter.Highlighter();
SyntaxHighlighter.brushes.YAML.aliases
    = ['yml', 'yaml'];

最後にMTのHTMLヘッダーテンプレートを書き換えて完了だ。

<$mt:SyntaxHighlighterInclude brush="html,perl,jscript,bash,tt2,plain,sql,yaml" theme="default"$>

SyntaxHighlighter でTemplate Toolkitをハイライトする その2

前回の状態ではTT2構文のハイライトはうまくいくものの、本来の用途である、HTML中に埋め込んだ状態ではそれが反映されなかった。それは今回使用したプラグインにおける以下の仕様のためだ。

SyntaxHighlighter for Movable Type « kwLog

  • SyntaxHighlighterのconfigurationには対応していません

よってプラグインの構文を無理矢理拡張して対応。さらにカラフルになった。

#!/usr/bin/perl
use utf8;
use strict;
use warnings;
use errors;

my $word = shift;
if ( $word =~ /orz/ ) {
    die "ズコー";
}

Continue reading

SyntaxHighlighterでTemplate Toolkitをハイライトする

これは結構大変だった。前回いじったshBrushPerl.jsと同じ場所1shBrushTT2.jsを置いても、それだけでは反映されない。次のファイルをいじる。

/mt/plugins/SyntaxHighlighter/lib/SyntaxHighlighter/Plugin.pm

# 149行目あたりに2行を追加
        'html'=>'shBrushXml',
        'xhtml'=>'shBrushXml',
        'tt' => 'shBrushTT2',
        'tt2' => 'shBrushTT2',
    );

これで後はHTMLヘッダーテンプレートに”tt2″を加えるだけだ。

<$mt:SyntaxHighlighterInclude brush="html,perl,jscript,bash,tt2,plain" theme="default"$>

肝心のshBrushTT2.jsの中身は次の通り。

Continue reading

SyntaxHighlighterにハイライトしたい語句を追加する

Perl5.10で登場した語句や、Mooseなキーワードがハイライトされないのでそれを改良。といっても大したことはない。次のファイルをいじる。

/mt-static/plugins/SyntaxHighlighter/2.0/scripts/shBrushPerl.js

// 53行目あたり
'undef unlink unpack ... ' +
'say';
// 59行目あたり
'require return sub ... ' +
'try catch with using otherwise finally given when state BEGIN END ' +
'extends requires has';

後は必要なときに付け足していこう。

Image::Magickのインストール@Mac OS X

Movable Type の必要モジュールのうち、Image::Magick がなかなか入らなかった。結局これが一番手っ取り早いみたい。

Installing ImageMagick on OSX (Global Moxie)
http://globalmoxie.com/blog/imagemagick-install-osx.shtml

長々と書いてあるが、真ん中のこれでうまくいった。-no_x11 じゃなくて、+no_x11 でした。4 ヶ月も経って気づいたorz

$ sudo port install ImageMagick +no_x11 +perl

Image-Magick 本体と、Perl のバージョンが合わないから云々が理由だった由。