僕は発展途上技術者

Make: Tokyo Meeting 07 出展: スクラッチを使えばこどもでも Kinect を使ったプログラミングができる

12月3日(土)、4日(日)、東京工業大学で開催される、Make: Tokyo Meeting 07 (MTM07) に親子で出展します。

教育用プログラミング言語の Scratch でこどもたちがつくった作品(長男小4、次男小1)を展示します。

たとえば長男が作った Kinect Gundam、Kinect の前で自分が取ったポーズの通りにガンダムを動かします。脚を上げるとちゃんと「グワシーーン」という効果音が。PC が非力で多少処理落ちしてしまってカクカクしていますが、雰囲気は伝わるかと思います。




場所は、体育館内、こどもプログラミングサークル「スクラッチ」の方々が集まるスクラッチ島の一角です。

スクラッチ島では他にもスクラッチに関わる様々な展示やプレゼンテーション、ワークショップもあるので、スクラッチをやってみたいという方は、この機会に訪れてみてはいかがでしょうか?

以下はプログラミングサークル「スクラッチ」からの案内です。



» Make: Tokyo Meeting 07 出展のご案内 « こどもプログラミングサークル‘スクラッチ’

Ruby 製 CMS Lokka を動かす一番簡単な方法 - Lokka on fluxflex

いままで Lokka を動かすのに Heroku を使うのが一番簡単な方法だと思っていましたが、クラウド・ホスティング・プラットフォームの


を使えばあっという間でした。

以下、手順を紹介します。

fluxflex のサイトを訪れ、ログインします。Twitter や Facebook アカウントでログインできるのでユーザー登録さえ不要です。



fluxflex

最初から用意されている sandbox プロジェクトを使ってもいいですし、Create A New Project で新しいプロジェクトを作るのでも OK。[プロジェクト名].fluxflex.com という URL が割り当てられます。
 


fluxflex

プロジェクトの個別ページに移動し、メニューの Setup を選びます。




fluxflex

画面をスクロールさせて、下の方に位置する Lokka の Install ボタンをクリックします。



fluxflex

Importing という表示とともにオレンジ色の矢印アイコンが回り、約1、2分で Available という表示に変わったら完了です。http://[プロジェクト名].fluxflex.com にアクセスすれば以下の通り Lokka の画面が表示されるはずです。

Test Site

エラーがでる場合

最初に試した時、Lokka の画面が開かずエラー画面が表示されてしまいました。その場合は、右上の Deploy のボタンを押し、Request to clear repository and setup. にチェックを入れて Deploy をおこなうと、初期化をもう一度やり直すことができます。






fluxflex

fluxflex の課金プランをみると 3 プロジェクトまでは無料、15 プロジェクトまでの standard が $1.0/月、100 プロジェクトまでの super geek が $9.0/月 と Heroku に比べてとてもリーズナブルなので、Lokka のサイトを置く時には今後使ってみようと思っています。

Windows XP 環境で Scratch(スクラッチ)と Kinect(キネクト)センサーをつなげる

Scratch(スクラッチ)と Kinect(キネクト)センサーをつなげるととても楽しい。

どんな楽しいことができるかは、貼りつけた以下の動画を見てもらえばわかると思います。



Scratch and Kinect from Stephen Howell on Vimeo.

つなげるための準備が、情報が少し古いのと英語中心というのもあって、わかりにくかったので整理して紹介したいと思います。

また、紹介するのは Windows XP 環境上での方法です。Mac OS 上でセットアップする方法はまだ情報がありませんでした。Windows 7 上ですと、Windows XP よりも楽にセットアップできるようです。(下記リンク先参照)

≫ Kinect 2 Scratch | Free software for hooking Scratch up to Kinect


1. Kinect を用意する

まず言わずもがなかもしれませんが、準備するものとして Kinect センサーが必要です。

Xbox はなくてもセンサーだけ購入可能です。僕は Amazon で買いました。

Xbox 360 Kinect センサー
Xbox 360 Kinect センサー
posted with amazlet at 11.10.20
マイクロソフト (2010-11-20)
売り上げランキング: 201



Kinect と Scratch をつなげるには、OpenNI2Scratch というプログラムを使うのですが、これを動かすためには、いくつかのミドルウェアやドライバをインストールする必要があります。

2. OpenNI をインストールする

OpenNI のホームページ http://www.openni.org/ に行き、上部のメニューより Downloads > OpenNI Modules を選びます。

以下のように OpenNI Binaries、Unstable、OpenNI Unstable Build for Windows x86(32-bit) v1.3.4.3 Development Edition を選択しダウンロードした OpenNI をインストールします。



OpenNI - OpenNI > Downloads > OpenNI Modules

3. Kinect sensor plugin をインストールする

https://github.com/avin2/SensorKinect/tree/unstable/Bin より SensorKinect-Win-OpenSource32-5.0.3.4.msi をダウンロード、インストールします。

4. NITE をインストールする



http://kinmob.googlecode.com/files/NITE-Win32-1.3.0.17.exe
 をダウンロード、インストールします。

インストール途中でライセンスキーを聞かれるので



0KOIk2JeIBYClPWVnMoRKn5cdY4=

を入力します。

5. OpenNI2Scratch をインストールする

OpenNI2Scratch をダウンロード、インストールします。

6. Kinect をつなげる

ここまで準備ができたら、Kinect を Windows XP マシンにつなげてみます。

USB ケーブルを接続し、Kinect Motor、Kinect Motor、Kinect Audio といったドライバが順次インストールされれば成功です。

7. OpenNI2Scratch を起動する

最後のステップです。

OpenNI2Scratch(ファイル名は OpenNI2ScratchGUI7.exe)を起動します。

ここまでの手順がすべてうまくいっていたら下のような画面が表示されるので、Launch Kinect のボタンをクリックします。



プレビュー



Kinect found - please stand in the calibration pose というメッセージが現れたら、calibration ポーズをセンサーの前でとって下さい。

Calibration complete, tracking user now と出たら成功です。

Scratch を起動し、Kinect とつなげて遊べる Scratch のサンプルプロジェクト(http://scratch.mit.edu/users/SHowell)の中から一つを選んで開いたら、Connect to Scratch ボタンをクリックします。


以上、結構煩雑なのですが、ひとつひとつ確実にやっていけばうまくいくと思います。

情報が更新されて、リンクが切れたりしてしまっている場合は、以下の情報元をたどっていけば新しい情報が得られるかもしれません。




≫ Stephen Howell's Mind



≫ Scratch Forums / Scratch and the Kinect

ssh 接続やリモートホストと何らかのやり取りをおこなおうとして POSSIBLE DNS SPOOFING DETECTED! というエラーが出てしまった時の対処方法

% ssh example.com


といった ssh 接続やリモートホストと何らかのやり取り、たとえば git pull といった git コマンドを実行しようとして、



@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: POSSIBLE DNS SPOOFING DETECTED! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
The RSA host key for example.com has changed,
and the key for the corresponding IP address 1.2.3.4
is unknown. This could either mean that
DNS SPOOFING is happening or the IP address for the host
and its host key have changed at the same time.


といったエラーメッセージがでてしまった時の対処方法をメモしておきます。



サーバーの移行などでリモートのホストの IP アドレスが変わったようなときに発生します。



ホームディレクトリ以下の .ssh ディレクトリに移動し、 known_hosts というファイルを開きます。



example.com で始まる一行(長いのでエディタによっては 何行にも渡って表示されてしまう可能性はありますが、example.com~ で始まって改行で終わる一行という意味です)を削除してください。



その上で、



% ssh kodomo@kodomo-kenkou.com


を実行します。



The authenticity of host 'example.com (1.2.3.4)' can't be established. RSA key fingerprint is aa:bb:cc:dd:ee:ff:11:22:33:44:55:66:77:88:99:00. Are you sure you want to continue connecting (yes/no)?


のような接続の確認を求めるメッセージが表示されるので、yes と答えて下さい。



上記の一連の操作は最初の一回だけで、以降は必要ないのでご安心ください。

c2dm_on_rails gem を利用する rails プロジェクトのサンプル

c2dm_on_rails という gem を利用する rails プロジェクトのサンプルを頼まれて作りました。

せっかくなので公開しておきます。



ブログを WordPress から Lokka に移行しました

記念すべき Lokka からの第一回目の投稿です。 

ようやくこのブログを WordPress から Lokka に移行できました。 

今までの手順の詳細は文末のリンクをたどってもらうとして、ざっくりと移行した手順を書き出してみます。

  1. 素の Lokka が動く環境を用意します。方法は Getting Started - Lokka などを見て参考にしてください。僕はいつも通り Heroku に用意しました。
  2. WordPress のエクスポート機能を利用し、WordPress eXtended RSS と呼ばれる xml ファイルにエクスポートします。僕が使っていた WordPress は古いバージョン(ME2.0.5)でエクスポート機能がついていなかったのですが、ローカルに最新の WordPress 3.2.1 を用意し、そこに mysql のダンプ/リストアでブログのデータを流し込んだところ、自動的にデータ構造がアップグレードされ、エクスポートできるようになりました。
  3. Lokka のインポート機能を使い xml ファイルをインポートします。
  4. 画像などのメディアファイルを WordPress から Lokka に移動します。
  5. lokka-redirect プラグインをインストールし、WordPress 形式の URL を Lokka 形式の URL にリダイレクトするようにします。
  6. 他に必要なプラグインをインストールします。インストールしたプラグインは、lokka-facebook_like_buttonlokka-hatena_bookmark_buttonlokka-redirect_if_herokulokka-tweet_button です。
  7. Heroku の Add-On、Custom Domains でブログのアドレス blog.champierre.com を登録します。
  8. DNS を書き換えて blog.champierre.com へのアクセスが champierre.heroku.com に向くようにします。

一晩経ち DNS が書き換わったのが反映されて、めでたく移行完了です。

今 Lokka から投稿していて何だかうれしいというか安心した気持ちになります。

この安心感は、普段 Ruby を使っているから、Ruby でできている Lokka なら問題が起こっても自分で直せるし、「こんな機能が欲しいなあ」というときに自分でプラグインを作って欲しい機能を簡単に追加できると思えるところから来ているのだと思います。

Lokka はまだまだ荒削りなので、万人におすすめ、というわけではありませんが、僕のようにいつも Ruby を使っているという人だったら WordPress からの移行を考えてもいいと思います。

自分のブログが Lokka になったというのはデカイです。細かくいろんな機能が欲しくなってきました。Lokkathon に参加して、プラグインを作ったり、Lokka 本体へのパッチを送ったりと、引き続き Lokka を応援していきたいと思います。


参考エントリ

WordPress のブログを Lokka に移行(第3部) - Redirect プラグインを作りました

» Lokkathon #11 : ATND


に参加してきました。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 にリダイレクトしたい。


正規表現でリダイレクトのルールを作成すれば、その通りリダイレクトされるプラグインを作成することにしました。


lokka-redirect プラグイン


今回も @komagata さんにいろいろ聞いて、相当助けてもらいました。


当たり前ですが、Lokka を開発している本人に聞けばほとんどのことは解決、Lokkathon に参加することでかなり捗りました。


» champierre/lokka-redirect - GitHub


からインストールできます。


redirect プラグインの管理画面で以下のようにルールを設定すれば、WordPress スタイルの URL を Lokka スタイルの URL にリダイレクトしてくれます。


僕は発展途上技術者 - Lokka

次回 Lokkathon


次回 Lokkathon は 10/5(水曜日)。


» Lokkathon #12 : ATND


準備はひと通り整った感じなので、いよいよこのブログを Lokka に移行する日が来ました。


次のエントリーはもしかしたら、Lokka からかもしれません。楽しみです。


WordPress のブログを Lokka に移行(第2部)

» Lokkathon #9 : ATND


に参加して、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 以下に移して難なく完了。


TextMate

WordPress の p タグ問題


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 に吐き出すようにしたところ、うまくいきました。



前回、こんな感じで段落がなかったところが



この通りバッチリです。


lokka.dev

残るは、


1. http://blog.champierre.com/archives/928 といった同じ URL のままで個別の記事にアクセスできるよう Lokka 側で URL を Rewrite する仕組みを用意する


の Rewrite 問題、次回の Lokkathon で取り組みます。


» Lokkathon #10 : ATND


WordPress のブログを Lokka に移行しようとしています(まだ途中)

» Lokkathon #8 : ATND


に参加して、WordPress で書かれているこのブログを Lokka に移行するプロジェクトに取り組みました。


タイトル通り、まだ途中の段階での記録ですが、結構いいところまで行ってます。もうあと数歩といった段階。


Lokka に WordPress のデータをインポートするには、WordPress のエクスポート機能を使って吐き出す WordPress eXtended RSS と呼ばれる xml ファイルが必要です。


ところがこのブログが使っている WordPress ME2.0.5 は結構古いバージョンであるため、エクスポート機能がついていません。


そこで、まずは最新の WordPress 3.2.1 の環境を用意し、そこにこのブログのデータを流し込むという作業から始めました。


WordPress 3.2.1 を Mac で動かす


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>

WordPress eXtended RSS を作成


サーバー側にログインし、ブログのデータを保存している 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 というファイルが吐き出されて一安心。


Export ‹ 僕は発展途上技術者 — WordPress

Lokka にインポート


ようやく Lokka 登場です。


インポート機能は最新バージョンの Lokka に実装されているので、まだ Lokka をインストールしていなければ、



git clone git://github.com/komagata/lokka.git

でインストールしましょう。すでにインストール済みの場合は git pull です。


Lokka の管理画面に入り、左メニューの一番下の方にインポートがあります。


僕は発展途上技術者 - Lokka

WordPress でエクスポートした xml ファイルを選んで、「WordPressからのインポート」を押すとインポートが始まります。


WordPress でドラフト状態の投稿を残したままインポートをおこなうと途中でエラーとなる問題がありましたが、


» Comparing 0fb46d0...718137e for komagata's lokka - GitHub


でコミットを push しておきました。


僕のブログの場合は、以上でインポート無事完了。


以下の感じで一応は Lokka にインポートされました。


lokka.dev

残されたタスク


残されたタスクは以下の通り。



  1. http://blog.champierre.com/archives/928 といった同じ URL のままで個別の記事にアクセスできるよう Lokka 側で URL を Rewrite する仕組みを用意する

  2. 画像などのメディアファイルも移行する

  3. WordPress では改行2つがpタグに自動的に変換されていたのが、Lokka では変換されないため、段落がまったくなくなってしまうのを何とかする


これらを次回の


» Lokkathon #9 : ATND


以降で解決していきます。


WordPress を Lokka に移行したいという方、一緒に参加しましょう。


任天堂の偉大さを感じる「ゲーム&ウォッチコレクション」

ポイントが貯まったのでゲットしたニンテンドーDS用「ゲーム&ウォッチコレクション」が届いた。



「ドンキーコング」「オイルパニック」「グリーンハウス」の3本が収録されているのだが、さっそく「ドンキーコング」にはまるこどもたち。


曰く「昔のゲームは簡単なのに面白い」とのこと。


簡単なのに、というのはグラフィックやBGMが豪華でなくても、という意味だと思う。


おっさんが昔を懐かしがって言う台詞ならそうでもないが、最近のゲームをやりまくって目が肥えた息子たちが言う台詞は重みが違う。


30年経っても「面白い!」と言わせるゲームを作った任天堂の偉大さを感じる。


さらにすごいのは、シンプルであるゆえに、「あとで自分で作ってみよう」とこども達の想像力をかきたてるところ。


スクラッチ(最近はまっている教育用プログラミング)でさっそく自分版ドンキーコングをつくるのだそうだ。


プロフィール

株式会社まちクエスト代表、つくる社LLC代表。

Scratchで楽しく学ぶ アート&サイエンスRaspberry Piではじめる どきどきプログラミングを書きました。

オンラインコンテンツ: 大人のためのScratch

Amazonから図書館検索 Libron、iPhoneアプリ ひらがなゲーム かなぶん を作っています。

Email: webmaster at champierre dot com

Twitter @jishiha

最近のエントリー

アーカイブ