c2dm_on_rails gem を利用する rails プロジェクトのサンプル
2011/10/07 10:32:44

2011/10/07 10:32:44
2011/10/06 05:00:35
に参加してきました。WordPress で書かれているこのブログを Lokka に移行するプロジェクトの3回目。
これまでやったことは、
» WordPress のブログを Lokka に移行しようとしています(まだ途中) : 僕は発展途上技術者
» WordPress のブログを Lokka に移行(第2部) : 僕は発展途上技術者
に書いています。
今回やりたかったことは WordPress スタイルの URL を Lokka スタイルの URL にリダイレクトすること。たとえばこのブログだと、今月のエントリーが見られる
http://blog.champierre.com/archives/date/2011/09/
という URL は Lokka 移行後は
http://blog.champierre.com/2011/09/
というスタイルの URL にリダイレクトしたい。
正規表現でリダイレクトのルールを作成すれば、その通りリダイレクトされるプラグインを作成することにしました。
今回も @komagata さんにいろいろ聞いて、相当助けてもらいました。
当たり前ですが、Lokka を開発している本人に聞けばほとんどのことは解決、Lokkathon に参加することでかなり捗りました。
» champierre/lokka-redirect - GitHub
からインストールできます。
redirect プラグインの管理画面で以下のようにルールを設定すれば、WordPress スタイルの URL を Lokka スタイルの URL にリダイレクトしてくれます。
次回 Lokkathon は 10/5(水曜日)。
準備はひと通り整った感じなので、いよいよこのブログを Lokka に移行する日が来ました。
次のエントリーはもしかしたら、Lokka からかもしれません。楽しみです。
2011/09/29 11:24:00
に参加して、WordPress で書かれているこのブログを Lokka に移行するプロジェクトの続きをやりました。
前回やった内容は、
» WordPress のブログを Lokka に移行しようとしています(まだ途中) : 僕は発展途上技術者
で書いています。
前回までで残されたタスクは
1. http://blog.champierre.com/archives/928 といった同じ URL のままで個別の記事にアクセスできるよう Lokka 側で URL を Rewrite する仕組みを用意する
2. 画像などのメディアファイルも移行する
3. WordPress では改行2つがpタグに自動的に変換されていたのが、Lokka では変換されないため、段落がまったくなくなってしまうのを何とかする
の3つ。このうち、2 と 3 を片付けました。
これはとても簡単。
Wordpress で使っていた画像は wp-content/uploads 以下にあったので、これをゴソッと Lokka の public 以下に移して難なく完了。
WordPress では本文中に改行2つがあると p タグに、改行1つを br タグにそれぞれ自動的に変換して表示してくれます。
しかし、これに頼って書かれたエントリーのデータ自体に p タグや br タグが差し込まれるわけではないため、エクスポートしたデータを Lokka にインポートすると、WordPress では段落分けされて表示されていたデータは、ズラッと一行になって表示されてしまいます。
これを何とかしないといかん、ということで最初、rails の simple_format のソースを参考にして、改行2つを p タグに、改行1つを br タグに一気に変換したあとインポートしてみました。
一見うまくいきそうなのですが、これだと例えば pre の中の改行2つや改行1つまで変換されてしまいます。そんな感じで例外を考えていくときりがなくて途方に暮れてしまいました。
一緒に調べてくれた @komagata さんが WordPress のソースを見てくれて、じゃあ WordPress が行っている処理を Lokka に移植すればいいんじゃないかと、なったのですが、実際にみてみると、preg_replace (置換)の嵐でとても移植する気になれません。
p タグや br タグへの自動変換は wpautop という関数でおこなわれていることを @komagata さんが突き止めてくれて、そのソースを見ていたのですが、そこでひらめきました。WordPress のエクスポートの処理に wpautop をはさめば p タグへの変換をしたあとの結果が xml ファイルに吐き出されるんではないかと。
そこで、前回のように wp-admin/includes/export.php を開き、以下の 369 行目の部分を変更、$post->post_content を wpautop で処理した上で xml に吐き出すようにしたところ、うまくいきました。
前回、こんな感じで段落がなかったところが

この通りバッチリです。
残るは、
1. http://blog.champierre.com/archives/928 といった同じ URL のままで個別の記事にアクセスできるよう Lokka 側で URL を Rewrite する仕組みを用意する
の Rewrite 問題、次回の Lokkathon で取り組みます。
2011/09/07 23:41:49
に参加して、WordPress で書かれているこのブログを Lokka に移行するプロジェクトに取り組みました。
タイトル通り、まだ途中の段階での記録ですが、結構いいところまで行ってます。もうあと数歩といった段階。
Lokka に WordPress のデータをインポートするには、WordPress のエクスポート機能を使って吐き出す WordPress eXtended RSS と呼ばれる xml ファイルが必要です。
ところがこのブログが使っている WordPress ME2.0.5 は結構古いバージョンであるため、エクスポート機能がついていません。
そこで、まずは最新の WordPress 3.2.1 の環境を用意し、そこにこのブログのデータを流し込むという作業から始めました。
WordPress 3.2.1 の環境は、ローカルの Mac に用意することにしました。
最初の難関は PHP が動く環境を用意すること。
» Pow: Zero-configuration Rack server for Mac OS X
を使っているため、ローカルへのアクセスはすべて Pow に横取りされてしまい、Apache にアクセスがいかない。
そこで、IPv4 と IPv6 を使い分ける方法で Pow と Apache を共存させます。詳しくは以下の記事を御覧ください。
» Pow and Apache Side-by-Side - Jerod Santo
httpd.conf の
LoadModule php5_module libexec/apache2/libphp5.so
のコメントアウトを外し、http-vhosts.conf に以下を追加。
<VirtualHost *:80>
ServerName blog
DocumentRoot "[home dir]/php/blog"
ErrorLog [home dir]php/blog/log/error.log
CustomLog [home dir]/php/blog/log/access.log common
<Directory "[home dir]/php/blog">
AllowOverride All
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
サーバー側にログインし、ブログのデータを保存している mysql の DB をダンプ、ローカルの DB にリストアします。
WordPress のホームページより WordPress 3.2.1 をダウンロードし、ファイルを http-vhosts.conf で追加した DocumentRoot に置きます。
本当は、テーマファイルなどもコピーしないと完全な移行にはならないのですが、データをエクスポートさえできればいいので、データの移行だけで十分です。
wp-config-sample.php を wp-config.php にコピーし、データベースの情報を書き換えます。
ひとつはまったのは、MySQL のホスト名。
localhost に指定したらうまく接続できず、127.0.0.1 に変えたところ動くようになりました。
/** MySQL hostname */
define('DB_HOST', '127.0.0.1');
http://[wordpress に割り当てた ServerName]/wp-login.php で初めてログインすると、データベースのアップグレードを WordPress 側がよろしくやってくれます。
しばし待つと無事管理画面が開けました。
テーマファイルなどがないため、ブログの表示はまともにはできないですが、管理画面の Tools > Export さえ使えれば OK。
ただし、WordPress のエクスポート機能には
» #15203 (Export function does not properly escape ]]> (CDATA)) – WordPress Trac
でも報告されている をエスケープしてくれないというバグがあり、ソースコードを貼り付けていることが多い僕のブログも影響を受けてしまっていました。
Lokka へのインポートのときに を含むエントリーでインポートが止まってしまい、以降のエントリーがインポートされなくなっていました。
そこで、wordpress の wp-admin/includes/export.php を開き、126 行目の部分を追加。
エクスポートを実行し wordpress.2011-08-31.xml というファイルが吐き出されて一安心。
ようやく Lokka 登場です。
インポート機能は最新バージョンの Lokka に実装されているので、まだ Lokka をインストールしていなければ、
git clone git://github.com/komagata/lokka.git
でインストールしましょう。すでにインストール済みの場合は git pull です。
Lokka の管理画面に入り、左メニューの一番下の方にインポートがあります。
WordPress でエクスポートした xml ファイルを選んで、「WordPressからのインポート」を押すとインポートが始まります。
WordPress でドラフト状態の投稿を残したままインポートをおこなうと途中でエラーとなる問題がありましたが、
» Comparing 0fb46d0...718137e for komagata's lokka - GitHub
でコミットを push しておきました。
僕のブログの場合は、以上でインポート無事完了。
以下の感じで一応は Lokka にインポートされました。
残されたタスクは以下の通り。
これらを次回の
以降で解決していきます。
WordPress を Lokka に移行したいという方、一緒に参加しましょう。
2011/09/01 02:16:19
ポイントが貯まったのでゲットしたニンテンドーDS用「ゲーム&ウォッチコレクション」が届いた。

「ドンキーコング」「オイルパニック」「グリーンハウス」の3本が収録されているのだが、さっそく「ドンキーコング」にはまるこどもたち。
曰く「昔のゲームは簡単なのに面白い」とのこと。
簡単なのに、というのはグラフィックやBGMが豪華でなくても、という意味だと思う。
おっさんが昔を懐かしがって言う台詞ならそうでもないが、最近のゲームをやりまくって目が肥えた息子たちが言う台詞は重みが違う。
30年経っても「面白い!」と言わせるゲームを作った任天堂の偉大さを感じる。
さらにすごいのは、シンプルであるゆえに、「あとで自分で作ってみよう」とこども達の想像力をかきたてるところ。
スクラッチ(最近はまっている教育用プログラミング)でさっそく自分版ドンキーコングをつくるのだそうだ。
2011/08/29 17:16:51
長男が自由研究の題材として電力使用量を調べたいというので、東京電力のホームページより過去の電力使用実績データをダウンロードしてきてグラフにすることにしました。
ちょうどいい題材だと思ったので、Scratch でやったらと提案、数字のリストをグラフ化するところは、いろいろと手助けしながらもなんとか自分で進めていけそうなのですが、
» TEPCO : でんき予報|過去の電力使用実績データのダウンロード
からダウンロードできる csv データから必要なデータだけ抽出するところだけは大人力を発揮 :-)
2011/7/20,18:00,3834
といった形で日付、時刻、電力使用量が並んでいるデータから、ビーク時と思われる 14:00 の電力使用量だけを抽出するという処理を Scratch でやってあげました。
実行するとガシガシデータを処理してくれて、自動で動くさまをこどもたちも、「おー、Scratch が働いてくれてるー」と感心しながら眺めていました。
» 電力使用料を抜き出す(Scratch3 になって動かなくなってしましましたが。。)
文字列処理にも使えて Scratch の強力さを改めて思い知りました。
追記: 上記データを利用して作成された長男のプロジェクトを載せておく。電力使用量と最高気温との関連を調べていたようだ。


2011/08/21 09:00:00
» 「かなぶん」が3歳〜小学3年生の女児向け雑誌「ぷっちぐみ」で紹介されました | つくる社LLC
ということでさっそく買って来ました。
なんとなく並べてみました、MacBook Air と「ぷっちぐみ」。
おー、載ってる!
小学生低学年の女の子もスマートフォンを使いこなす、すごい時代になりました。
小学館様、「かなぶん」を見つけてくださった担当者様、どうもありがとうございます。
» ことばであそぼう ひらがな知育ゲーム「かなぶん(カナブン)」
2011/08/13 12:11:12
I made the joke Scratch project below. This is a story that my wish(or curse :-)) might come true a little.
I sent an email to Mr. John M McIntosh(@squeaker68882), the developer of Scratch.app for iOS(Scratch.app existed a while in App Store until it was sadly rejected later) asking if there is a way to personally build the app on my iPhone and iPad. He kindly pointed me where I can get the source code.
I built it with Xcode. At first, the app could just start but any Scratch project did not run. I followed John's advice that probably URL for download the projects might be changed, so I changed the source code and I could finally made it run.
It is very nice that John also published the source on GitHub so that anyone can contribute.
» johnmci/Scratch.app.for.iOS - GitHub
Anyone who has iOS Developer Account can git clone the source and build it for iPhone or iPad.
I am sorry that not everyone can do this, but if you have some friends who have the build environment, why don't you ask him/her?
I help a volunteer group that teaches Scratch to kids
and also hold the following Scratch Meetup.
» 大人のための Scratch 勉強会 #4 : ATND
If you have iPhone or iPad, catch me at that place and ask me to build the app for you.
2011/08/11 13:32:25
Scratch で Apple と Steve Jobs を揶揄する動画をつくった願い(呪い?)が通じたのでしょうか?
iPhone/iPad 上で Scratch のプロジェクトを動かせる Scratch.app for iOS の開発者 John M McIntosh(@squeaker68882) 氏に、「Scratch.app が AppStore で却下されたのは悲しい。なんとか僕の iPhone/iPad で動かしたいんだ 」という旨のメールを送ってみたところ、快くソースコードを送っていただきました。
最初、Xcode でビルドしてみて動かしてみたところ、起動はするのですが、Scratch プロジェクトを動かすことができませんでした。「Scratch のサイトがアップデートされいくつか URL が変わっているので該当部分をいじれば動くんじゃないか」という John 氏のアドバイス通り修正してみたところ、動かすことに成功!
さらに、GitHub でソースを公開すれば興味がある人が貢献できていいのではないか、と進言してみたところ、すぐ公開されました。素晴らしいです。
» johnmci/Scratch.app.for.iOS - GitHub
これで、iOS のデベロッパーアカウントを持っていて、実機で動かす環境を持っている人は、上記よりソースを git clone してビルドすれば Scratch.app を動かすことができます。
残念ながら一般のユーザーが誰でも使えるというわけにはいかないですが、まわりに実機でビルドできる環境を持っている人がいたら、お願いしてみてはどうでしょうか。
僕も、こどもたちにスクラッチを教える
で少しお手伝いをしていたり、
» 大人のための Scratch 勉強会 #4 : ATND
といった勉強会を主催しているので、そういった場で遠慮なく声をかけてください。お持ちの実機で使えるようにビルドします。
2011/08/11 09:00:00
株式会社まちクエスト代表、つくる社LLC代表。
Scratchで楽しく学ぶ アート&サイエンス、Raspberry Piではじめる どきどきプログラミングを書きました。
オンラインコンテンツ: 大人のためのScratch
Amazonから図書館検索 Libron、iPhoneアプリ ひらがなゲーム かなぶん を作っています。
Email: webmaster at champierre dot com
Twitter @jishiha
@jishiha をフォローする