XREA-ad

WEBLOG

2008/11/9 日曜日 21:54:33 [未分類]

WordPress導入

日本でもWordPressがだいぶ流行ってきたみたいなので、今更ながらrNoteから移行してみました。 XREAのサーバ情報のページによるとs28はMySQLのバージョンが古いらしく、 本家版WordPressが使えなかったので、派生版のWordPress MEを導入することに。

普及してきたこともあってテーマも色々なものが配布されているようですが、 やっぱりタグ打ちは自分でやりたかったのでWordPress Codex 日本語版を参考に自分用のテーマを作りました。 初めて触れたPHPの便利さに感動した。 こんなのがあったらPerlのCGIでHTML出力なんてやってられんなー。

適当に作ったら結構動いてしまったのでそのまま使ってます。 多分おかしな挙動をしている部分があると思うので、気づいた点があればコメント欄にお願いします。

それから、WordPressは他のブログツールからのインポートに対応していて MovableTypeとかの有名なものなら直接移行できるんですが、rNoteからの直接移行はもちろん無理なわけで、 昔の記事を捨てるかどうか悩みつつ、でも結構頑張って書いた記事もあった気がしたので 自力でインポートすることにしました。 WordPressのインポートの種類にRSSからのインポートというのがあったので、rNoteの全記事データを読み込んでRSSに変換する作戦に決めました。 文字列の処理をさせるなら言語はPerlでしょう。

そうして出来たスクリプトがこれ。

使い方の説明。 PerlがインストールされたWindows上で動かすことを想定してます。

  1. このファイルを解凍してexport.plを取り出す
  2. レンタルサーバー上でrNoteを動かしている人はentriesフォルダ(記事を置くフォルダ:rnote_config.phpで設定するやつ)をローカルにコピーする
  3. export.plentriesフォルダの中に移動する
  4. export.plをエディタで開いて一番上の設定項目を設定する(設定方法はスクリプト内のコメントを参考にしてください)
  5. export.plを実行すると、export.rdfというファイルが作られる
  6. WordPressの管理画面>インポート>RSSからexport.rdfを送信する

こんな感じです。使用は自己責任でお願いします。 コメントのインポートはできません。コメントを含めたRSSの書き方が分かりませんでした...。

元々人口の多くないrNoteからWordPressへのインポートツールって全然需要が無い気もしますが、せっかく作ったのであげておきました。 説明が色々適当ですが自分でrNoteを設定して運用できるような人なら大丈夫でしょう!

ちなみに、export.plには昔の記事のアドレスからリダイレクトさせるための.htaccessのテーブルを出力する機能も付いてはいるんですが、 説明が大変だし、rNoteとWordPress両方の設定に合わせて色々な部分を書き換えないといけないので全部コメントアウトしてあります。 わかる方だけ自分用に改造して使ってください。

2008/11/16 日曜日 17:59:52 [WEB]

mod_rewriteでのクエリの扱い

mod_rewriteでクエリ(URIの?マーク以降の部分)を参照するにはRewriteCond%{QUERY_STRING}を調べればよい。 rNote時代のクエリ付きのリクエストをリダイレクトさせようと思い、たとえば

http://reva.s28.xrea.com/?d=2008-11-16

へのアクセスを

http://reva.s28.xrea.com/archives/date/2008/11/16/

へ書き換えるべく、.htaccessに次のような記述を加えました。

RewriteEngine on
RewriteCond %{QUERY_STRING} d=([0-9]+)-([0-9]+)-([0-9]+)
RewriteRule . /archives/date/%1/%2/%3/ [R=301,L]

しかし実際にURIが正しく変換されるか試してみると、リクエストがループしていると怒られました。 どうやら書き換え後のURIにもクエリが付加されているようで、 いつまでたってもRewriteCondを満たしてしまっていたようです。 つまり、

http://reva.s28.xrea.com/?d=2008-11-16
http://reva.s28.xrea.com/archives/date/2008/11/16/?d=2008-11-16
http://reva.s28.xrea.com/archives/date/2008/11/16/?d=2008-11-16
http://reva.s28.xrea.com/archives/date/2008/11/16/?d=2008-11-16
.
.
.

という風なリダイレクトが繰り返されていたと考えられます。 その後試行錯誤したところ、どうも書き換えURIに?が入っているとクエリの引継ぎは行われないことが分かり、

RewriteEngine on
RewriteCond %{QUERY_STRING} d=([0-9]+)-([0-9]+)-([0-9]+)
RewriteRule . /archives/date/%1/%2/%3/? [R=301,L]

と試しに書いてみたところ、期待通りに動いてしまいました。マジか。 しかも変換後のURIに?がくっついてhttp://reva.s28.xrea.com/archives/date/2008/11/16/? のようになることもありませんでした。これは如何に。

もう少し調べてみると、だいたい次のような感じで挙動していることが分かりました。

  • 書き換えURIに?が入っていなければ、元のURIのクエリを引き継ぐ
  • 書き換えURIに?が入っていれば、元のURIのクエリを破棄する
  • 書き換えURIに?が入っていて[QSA]オプションがついていれば、書き換えURIに元のクエリを合成する

これらから察するに、元のURIだけでなく書き換えURIも内部で一度クエリだけを切り離されて処理された後、付け直しているのかも。 末尾に?だけ付けても実際に返されるURIにゴミが付かなかったのは、元のURIのクエリが書き換えURIの空のクエリで上書きされた後、変換後のURIを出力する際にクエリは空だから?以降は付ける必要なしと判断されているものと考えられるんじゃないでしょうか。

それにしてもクエリ破棄のために末尾に?を付けるって発想はなかった。 mod_rewrite、というか.htaccessはまだまだ分からんことが多いなあ。

2008/11/17 月曜日 23:24:00 [PC]

Notepad++

最近Notepad++ EUC-JP 対応版というフリーのエディタを使い始めました。 かなり気に入ってます。

個人的に一番の魅力だと思うのは起動の軽さ。 いくら高性能のエディタがあっても起動に5秒も6秒もかかるようなやつだと、 ちょっと編集したいだけのときには使うのを躊躇ったりするじゃないですか。 でもこのエディタはメモ帳より一瞬遅れる程度の時間で立ち上がってくれて、 インデントや色分けや正規表現といったおおよそ必要なものはすべて揃ってます。 それからタブで複数のファイルが開けたり、最小化時にトレイに隠れてくれるのが省スペースで嬉しい。 今のところ完全にNotepadの上位互換で、これがあればメモ帳はいらないなって感じです。

2008/11/29 土曜日 23:29:53 [DTM]

これでまだ今年3曲目だと...!?

Download: バトル1 (ロマンシング サ・ガ 3)

やはりSFCの曲は気軽に耳コピできていいね。 必要な要素だけ詰まってる感じだ。

実は今年に入ってから作曲にも挑戦しているんですが、作曲を始める前と後とでは耳コピによって得られる経験値が全然違いますね。 一応ゲーム素材として使ってもらう曲を作ろうとしているので、SFCとかのゲームゲームした曲は勉強になります。

作曲の練習をするときにSC-8850を使うとあまりのヘボさに曲が音源に負けてしまうので、MSGS(Windowsに標準で付属するMIDI音源)を結構使ってました。 チープな曲にはチープな音源を使った方がしっくりくる。

でもその甲斐あってMSGSの扱いには慣れることができました。 このzipに同梱したMIDIもMSGS向けに調整してあるんですが、今までのデータに同梱してきたMIDIよりも幾分良い出来になっていると思います。 ただ、特定の音源向けに調整することは互換性を切り捨てることでもあり、他の音源で聞くと聞き苦しくなってしまうのでその点はご注意を。