GEEK DAY TOKYOに参加しました。

前職で一緒に働いていた nittyan に何か発表してほしいと依頼されたので、 GEEK DAY TOKYO でネタを発表してきました。 ”こまちゃん監視システムをPicasaからCouchDBに切り替えた。” のような軽めの内容でということだったのですが、1週間くらい前まで何も考えていませんでした。おまめちゃんで手一杯だったのが正直なところです。で以前からブログの移行を考えていたことや、3月にはてブのトラッキング情報取得の騒動と、4/1の前日ということでちょうど良いタイミングだな、ということではてなダイアリーからの移行についてをネタにしました。発表の資料は slideshare に公開してあります。ヨメさんの用事や車の6ヶ月点検が終わってから夕方からの参加でした。いつも参加している勉強会とはちょっと趣きも、発表内容の対象も異なる勉強会で、印象的にはOSCの懇親会でのLTみたいな感じでした。ここ数年懇親会参加してませんけど。:p

移行の技術的な理由は資料に書いてありますので、ここではGithubで公開した 移行ツール についての補足をしておきます。使い方は README.md に記載してあるので、ここでは書いていないことをば。Movable Type形式のエクスポートデータを入力ファイルにしてmt2rest.pyを実行すると、カレントディレクトリ下にoutディレクトリを作成し、その下にtinkererで生成するYYYY/MM/DD形式でのディレクトリを作ります。そしてその下に、はてなダイアリーでのエントリ毎( ‘*’ 一つで始まるエントリ)にreSTファイルを生成します。tinkererではreSTファイルのファイル名は、 tinkerer -p POST のように -p オプションで指定したブログタイトルがファイル名 title.rst のようになりますが、そのままブログのタイトルを使ってしまうと、ファイル名が日本語名になってしまうので不都合です。なので、エントリの公開時間を使い、 HHMMDD.rst となるようにしています。このエントリの名前は、master.rst.tmpに、最新の日付が上になるようにソートして記述しています。master.rstの並び順は、ブログでの表示順に影響します。一度生成したoutディレクトリ以下のreSTファイルを使って、tinkerコマンドでHTMLを生成すると、最初の一回だけRSSが生成されますが、その後reSTファイルを編集してHTMLを再発行してもRSSには再発行されません。現状、mt2rest.pyでは部分的にできていないことがありますが、機能実装後やバグ修正後にmt2rest.pyでreSTファイルを再生成し、HTMLを再発行してもRSSは再発行されませんので、エクスポートデータだけ保存しておけば、機能未実装分で意図通りに表示されない項目があっても個別に手で編集しなおす必要はありません。

なお、GEEK DAY TOKYOで発表後に、画像が表示されない件については既に修正済みです。まだ未実装部分やバグがあるので、はてなダイアリーからの移行を考えている方は、バグ報告及びパッチプリーズ。