February 2008 Archives
February 27, 2008
バージョン表記がひどすぎる件について
wolawolaの中の人に指摘していただいて初めて気がついたのですが、拙作プラグイン「BuildTracer」のバージョン番号がめちゃくちゃでした。
正しくは以下の通りになります。
| 管理画面での表示 | 特徴 | 本当のバージョン |
|---|---|---|
| 0.1 | 上部パネルが無い stashを選択できない |
0.1 |
| 0.1 | 上部パネルが無い stashを選択できる |
0.2 |
| 0.1 | 上部パネルがある オートランが無い |
0.3 |
| 0.4 | 上部パネルがある オートランがある |
0.31 |
0.1以外全部一致していないってどういうことでしょうか。ということで、次のバージョンは0.4をスキップして0.5にしようかなと思います。
February 24, 2008
BuildTracer0.31をリリースします
今回は大きな機能追加などはありません。主に内部的な修正を行いました。
February 17, 2008
February 11, 2008
BuildTracer0.2をリリースします。
BuildTracer0.1で問題だった、トレースの実行時に実際にファイルが置き換えられてしまう問題に対応しました。
February 6, 2008
MTタグの書き方を調べてみました。
<mt:setvar foo value="fizz","buzz">こんなMTタグの書き方はありでしょうか!?実はありなんです!
というわけで、MT4.1で利用可能なMTタグの書式を調べてみました。
全般編
- 基本形
-
<$MTBlogName$>
- $マークは省略出来る
-
<MTBlogName>
かたっぽだけというのもOK。ただしかっこ悪い。<$MTBlogName>
<MTBlogName$>
これはMT3から省略できました。ちなみに、ブロックタグでは$マークをつけること自体出来ません。ブロックの閉じタグの頭のスラッシュ「/」と$マークが両立できないためです。 - 末尾に/を付けられる
-
これはMT4からの機能。
<MTBlogName />
XMLの空タグ風に記述できます。これもブロックタグでは使えないかと思われます。
タグ名編
- 大文字小文字は問わない
-
MT4より。
<mtblogname>
<mtBlogName>
<mTblOgnAme>
すべてOKです - 「MT」とタグ名の間にコロンを挟める
-
MT4より。
<mt:blogname>
モディファイア編
- 基本
-
キー="値"の形で指定します。
<mt:setvar name="foo" value="fizz">
- 値の括りはシングルクオートでも可
-
<mt:getvar name='foo'>
- クオートを省略しても可
-
<mt:getvar name=foo>
ただし、半角スペースのような、単語の区切りとみなされる物を値に含む場合はダメです。つまり、これはOKですが<mt:setvar name=fizzbuzz value=15> <mt:getvar name=fizzbuzz>
これはNGです。<mt:getvar name=fizz buzz>
- イコールの前後やアトリビュートの前後にスペースや改行を挟める
-
<mt:setvar name = "boo" value = " fizz buzz ">
<mt:getvar name = "boo" capitalize = "1" strip = "-" /> - 値には小なり「<」大なり「>」記号を含めることが出来る
-
実はMT4.1から。それ以前は大なり「>」を含めることが出来ませんでした。
<mt:setvar name="goo" value="<fizz><buzz>">
- nameキーは省略可能
-
<mt:getvar goo>
これは、<mt:getvar name="goo">
と同じ意味となります。 - カンマ区切りで配列を渡せる
-
<mt:setvar moo value="fizz","buzz">
区切りはコロンでもOKです。<mt:setvar weekdays value="sun":"mon":"tue":"wed":"thu":"fry":"sat">
なお、配列を指定する場合は、クオート(''や""の括り)が必須となります。
実際にモディファイアに直接配列を指定できるケースというのはそう多くは無いのですが、Entriesのidモディファイアや、regex_replaceグローバルモディファイアで利用することが出来ます。<mt:entries id="1":"3":"5"> <mt:entrytitle> </mt:entries><mt:getvar boo regex_replace="/z/g","k">
- $記号で変数展開
-
<mt:setvar doo value="foo"> <mt:getvar name="$doo">
これは、変数「foo」の値が出力されます。
この変数展開は、配列に対しても有効です。<mt:setvars> pattern=/z/g replace=p </mt:setvars> <mt:getvar boo regex_replace="$pattern","$replace">
なお、[]や{}による配列やハッシュへのアクセスは、あくまで「mt:setvar」「mt:getvar」のタグに固有の機能となりますので、今回は調べませんでした。
February 4, 2008
BuildTracer0.1
ハッカソンからこっち、すっかりMT三昧の日々です。
中でも、ちょこちょこ作ってきたプラグインが形になってきたので、公開してみます。

MTの再構築の結果を構造化して表示します。
自分で言うのもなんですが、MTerの方はなんとなく見るだけでも面白いと思うのでお試し下さい。
あ、ちょっとですが副作用があるので、気をつけてお使い下さい。
February 2, 2008
ActionStreamsではてなブックマーク
アイコンの設置とcssでのli要素への表示が上手くいかずごり押しした。追加サービスの配布を考えるとこれから、て感じかしら。
あと、タグの取得もまだです。
ちょっとお出かけするのでパッケージングともども、あとで考えます。
config.yamlは大体こんな感じ。
あちこち変なので、もう少し手を入れる予定。
name: Hatena Bookmark
id: hatenabookmark
key: Hatebu
author_link: http://blog.aklaswad.com/
author_name: aklaswad
description: Adds profile service and activity stream for Hatena Bookmark.
version: 1.0
plugin_link: http://blog.aklaswad.com/
profile_services:
hatenabookmark:
name: Hatena Bookmark
url: http://b.hatena.ne.jp/%s
icon: images/b.png
action_streams:
hatenabookmark:
bookmarks:
name: Bookmarks
description: Hatena Bookmark
fields:
- note
html_form: '[_1] bookmarked <a href="[_2]">[_3]</a> [_4]'
html_params:
- url
- title
- note
url: 'http://b.hatena.ne.jp/{{ident}}/atomfeed'
identifier: url
atom:
note: summary/child::text()
created_on: issued/child::text()
Action Streams!
SixApartから登場した新しいプラグイン、Action Streams がステキすぎます。
- Action Streams | Plugin Directory | movabletype.org
- Six Apart - 広報ブログ: 自分の行動履歴を自分で管理できるMTプラグイン「Action Streams」
- Action Stream をインストール : MTで、FlickrやTwitterなど色々なサービスの更新状況を表示:Goodpic
自分もいくつか似た様なものを作っていましたが、こっちのほうがよさそうですね。
さて、早速導入してみたのですが、導入に関して何箇所かつまずいたところがあったので、注意点をまとめておきます。
文字コードは UTF-8 で!
現在のバージョンでは文字コードの変換を行ってくれないようです。このブログは euc-jp で公開していたのですが、見事に取得したActionが文字化けしてくれました。
多分何も文字コードを操作していないと思うのですが、twitterやvoxに日本語をポストしている場合はutf-8で返ってくるようですので、MT側もutf-8なら問題ないようです。
文字コードが異なる状態でActionStreamsが動作してしまった場合、文字化けした状態のActionやタグが登録されてしまい、後の作業での障害になる場合があります。特に文字化けしたタグは削除することが容易ではないので、必ず事前に、導入する MT の文字コードがutf-8であることを確認しましょう。
自分の場合は、かねてからutf-8にしたいと考えていたので、無理やり文字コードを変更しました。こちらの記事が参考になりました。
追記: あー、どうもあちこちおかしいと思ったら、Storableされてるメタデータやプラグインデータがぶっ壊れたかも。ふむう。DBのダンプをnkfではダメみたい。なにか違うやり方を考えないと。
テンプレートセットを適用するときはユーザーの言語設定を英語に!
ActionStreamsプラグインは、専用のテンプレートセットを提供してくれます。が。こちらもローカライズが一部問題あるようです。
以下の手順で、テンプレートが中途半端に日本語化されないようにしましょう。
- プロフィール画面を開く。管理画面右上の「こんにちは(ログイン名)さん」から開けます。
- 使用言語を英語にして保存
- テンプレートセット「ActionStream」を使って新規ブログを作成
テンプレートセットの適用後は、言語設定を日本語に戻してしまっても問題ありません。
Actionが少ないと寂しい!
えー。
・・・・・・頑張ってついったりヴぉくすったりします。
ではでは。
February 1, 2008
[error] mod_mime_magic: can't read `***.cgi' は多分無視して構わない気がします。
mod_mime_magicというのは、ファイルの拡張子に頼らずにMIMEタイプを推測するApacheモジュール。
Apacheは通常、拡張子を見て「.mp3」なら「audio/mpeg」です、というようにファイルの種類(MIMEタイプ)を返している。だがmod_mime_magicを利用すると、実際のファイルを読み取って、たとえば先頭のnバイトが特定のパターンになっていたら、これはmp3に違いない、と判断して自動的に「audio/mpeg」を返してくれるようになる。たとえばXMLの場合、ファイルの先頭からの文字列が「<?xml」なら「text/xml」を返却する、という具合。以下、実際のmod_mime_magicの設定ファイルの一部。
0 string \<?xml text/xml
こんな感じでいろんなファイルの種類が指定してあるので、いちいち拡張子ごとの設定を行ったりしなくても済むようになって便利だよね、というモジュールです。
さて。suExec環境でCGI を設置したときに、「mod_mime_magic: can't read `***.cgi'」というエラーがエラーログに山ほど残る場合がある。これはmod_mime_magicが、MIMEタイプ推測の際のファイルの読み取りに失敗した場合に出るらしい。
suExec 環境下では、CGI の実行自体はファイルのオーナーとして行われるため、オーナーの権限が設定されていればOK。0700、なんてパーミッションでもきちんと動作する。
しかし、mod_mime_magic がファイルを読みに来るときには、Apache ユーザーで読みに来てしまうため、ここでワールドのパーミッションが必要となってしまう。お馬鹿。
で、まあ、エラーログに「mod_mime_magic: can't read `***.cgi'」がたくさん出てウザイという場合は、cgiファイルのパーミッションを0704とかにしてみるととりあえず回避できると思います。
また、メッセージ自体は単に「MIMEタイプの推測に失敗した」と言う警告なだけで、実際のCGIの実行には問題が無いので、そのまま放置しても構わないはず。(CGI側できちんとMIMEtypeをヘッダに含めて返しているはずなので。)
一番良いのはmod_mime_magicを使わない、かな。