僕は発展途上技術者

delayed_job を monit で動かし、サーバー再起動時に自動起動するようにする

結構苦労したので、備忘録的にメモしておきます。

monit をインストール

% sudo apt-get install monit

monit の自動起動を設定

% sudo update-rc.d monit defaults

monitrc の編集

% sudo vi /etc/monit/monitrc

以下のようにコメントを外す。

set httpd port 2812 and
#    use address localhost  # only accept connection from localhost
    allow localhost

monit の状況を確認するコマンドが実行できることを確認。

% sudo /etc/init.d/monit restart % sudo monit summary

ここが一番はまった箇所。delayed_job が提供するサンプルのmonitrcではうまく動かず、以下のように設定したところ動いた。

## /var/www/apps/{app_name}/shared/config

check process delayed_job
  with pidfile /var/www/apps/{app_name}/shared/pids/delayed_job.pid
  start program = "/bin/su - app -c 'cd /var/www/apps/{app_name}/current; RAILS_ENV=production script/delayed_job start'"
  stop program = "/bin/su - app -c 'cd /var/www/apps/{app_name}/current; RAILS_ENV=production script/delayed_job stop'"
## /etc/monit/monitrc

include /var/www/apps/{app_name}/shared/config/delayed_job.monitrc

を追加

「Raspberry Piではじめるどきどきプログラミング」という本を書きました

共著で書きました「Raspberry Piではじめるどきどきプログラミング」が本日出版されました。

Raspberry Piではじめるどきどきプログラミング (はじめるプログラミング シリーズ)
阿部 和広 石原 淳也 塩野 禎隆
日経BP社
売り上げランキング: 978

要点については

»「Raspberry Piではじめるどきどきプログラミング」のここがすごい

の方を見ていただくとして、ここでは書いた本人だからこそ知る裏話的なことをいくつか紹介したいと思います。

  • OtOMO やこども向けプログラミング教育の活動で大変お世話になっている阿部先生、そして塩野禎隆さんとの共著で、僕はマインクラフトのパートを書きました。このブログでScratch で Minecraft を動かすという試みを紹介していたのがきっかけで執筆のお誘いを受けました。こういう話はブログを書き続けている人からは良く聞く話なのですが、自分のブログで情報を発信しておくといいことが起こるので、まだやっていない人はぜひやったほうがいいと思います。

  • 小学生からはじめるわくわくプログラミング から続くシリーズ第2弾ということで、いくつかのキャラクターが再登場します。こども向けとは言え技術書ですから間違いのないように気を使いながら記述する一方で、ストーリーを考え、ニャタロ〜とワールド博士との掛け合いのセリフも創作する必要があり、これが思っていたよりもだいぶ大変でした。なんというか左脳とウノウの両方を駆使する必要がありました。ワールド博士になりきって、「◯◯なのじゃ」「◯◯だぞい」とブツブツつぶやきながら執筆していました。

  • 本の中に登場する Scratch と Minecraft をつなげる Scratch2MCPI を作り、GitHub 上で公開しています。誰でも簡単にインストールできるようにということで、依存するライブラリのインストールやその他の手順をすべてひとつのスクリプトで実行できるようにし、たった一行ターミナルに入力するだけで終わるように工夫しています。

  • 原稿は、小6、小3の息子二人に加えて、スクラッチもマインクラフトも全くわからない奥さんに頻繁にレビューしてもらいました。スクラッチもマインクラフトもよくわかっている息子達はスイスイ読み進めて操作できるのに、奥さんはつまずきまくるので、「もう、なんでそんなことわからないんだよ」と腹が立ちそうにもなりましたが、一つ一つそうしたつまずきポイントをつぶしていったおかげで、だいぶ改善されてわかりやすくなっているのではと自負しています。

  • 手タレとして長男の手が写真にたびたび登場しています。ガッサガサの遊んだときの傷まであった手で大丈夫かなと思いましたが、プロフェッショナルな技のおかげで見違えるほど綺麗に撮っていただいています。

  • マインクラフトの画面例として、次男がマインクラフトの世界の中に作ったまちをキャプチャしました。「小さな家や高い塔、地下基地やお城といった好きなものを作れる」という文脈にマッチするように作ってほしいとお願いしたところ、どうも地下基地を地下墓地と読み間違えたと思しき部分があるのですが、それも愛嬌ということでそのまま採用しています。

Amazon ではすでに入荷待ち(2014/2/15時点)になってしまっていますが、リアル書店ではこれから入荷されるとのことです。 もし見かけたら、ぜひ手にとってみてください。

こどもに買い与えてはい終わりではなくて、てきたら大人にも読んでもらってこどもと一緒に Raspberry Pi とプログラミングを楽しんでほしいと思っています。

» Raspberry Piではじめるどきどきプログラミング (はじめるプログラミング シリーズ)

ちなみに Raspberry Pi を購入する場合は、RSオンラインの方が安く購入できるのでおすすめですが、ワンクリックで Amazon から購入したいという場合はこちらから(LANとUSBが2つ、メモリが512MBを搭載するタイプBのほうがおすすめです)↓

Raspberry Pi Type B 512MB
Raspberry Pi Type B 512MB
posted with amazlet at 14.02.19
RS Components Ltd (ソースマーキング及び販売 Umemoto LLP)
売り上げランキング: 242

raspberry pi でスクリーンキャプチャを撮る

raspberry pi でスクリーンキャプチャを撮るツールとして、ググってみると KSnapshot がおすすめとして挙がってくるのだが、依存関係が多くインストールにめちゃめちゃ時間がかかる。

% sudo apt-get install gnome-utils

で gnome-utils をインストールするほうが、こちらもやや時間がかかるが、まだ早い。

アクセサリ > スクリーンショット でキャプチャツールを使うことができるようになる。

「株式会社まちクエスト」を登記しました

年末年始はなんやかやと忙しく、またすっかりブログのエントリーを書くのが億劫になってしまったというのもあって、だいぶ時間差の報告になってしまったのですが、年末(12月27日)に「株式会社まちクエスト」を 登記しました。

何の会社?

昨年夏に「まちクエスト」という Web サービスをリリースしました。(まちクエストについて詳しくは まちクエスト - スマホで謎解きにでかけよう!というWebサービスを開発しています を参照してください)

「株式会社まちクエスト」はその名前が示す通り、この「まちクエスト」を開発・運営していく会社です。

なぜ新たに会社を作る必要があったか?

すでに合同会社つくる社としてこれまで活動してきましたが、ツイキャスやメルカリ、BASE にも投資している East Ventures の East Ventures Engineer Accelerator に昨年11月に採択され、株式の割り当てが必要となったために株式会社を設立しました。

「まちクエスト」はガソリン価格の比較サイト「gogo.gs」を開発した小川智史さんとともに開発しました。

まだまだユーザー数は少なく、始まったばかりのサービスではありますが、コアユーザーが少しずつ増えてきてその方々からの反応は良く、自分たちでも使っていて楽しく、可能性を感じています。

僕はこれまでも受託開発の傍ら Libronかなぶん といったプロダクトを出してきましたが、「まちクエスト」についてはこれらから独立させ、今後どんどん拡大させていきたいという意気込みを示す上でも会社設立は良いきっかけになったと思います。

今後の予定は?

East Ventures Engineer Accelerator では Y Combinator のようにデモデイがあります。いまはそのデモデイに向け、「まちクエスト」の iPhone アプリ版を開発しています。また、「まちクエスト」の裏サービスというか姉妹サービスとなるウェブサービスも開発しており、デモデイまでにはリリースしたいと思っています。

Y Combinator について書かれた

Yコンビネーター
Yコンビネーター
posted with amazlet at 14.01.07
日経BP社 (2013-09-03)
売り上げランキング: 6,089

を読むとやる気がでてくるのですが、一方で「学生のうちに起業するべき」「スタートアップの創業者になるのに最適なのは20代半ば」といったフレーズがあちこちに書かれていて、しょんぼりしてしまいます。

僕も共同創業者の小川さんもすでに(いつの間にか?)40代、もはや決して若いとは言えないおっさんプログラマーです。こどもから風邪をもらえば3週間近く長引くわ、ときたま腰痛に襲われるわで、あまり無理がききません。時には必要となる根拠のない自信だったり無鉄砲さも、他の同年代の人よりかはあるかもしれませんが、無尽蔵にはもはや持ちあわせてはいません。若くて元気でイケイケな起業家に比べるとハンデをしょっているとは思います。

でも一方で、経験を生かして、より成功率が高い方の施策を選ぶ決断を積み重ねていけば、効率良くサービスを成長させることができると思っています。また、家族やこどもと一緒に楽しめるサービス、家庭のニーズに応えるサービスを作る場合には、われわれに分があると思っています。

若くないおっさんでもスタートアップを成功させることができるひとつの例を作り出せるよう、死ぬ気で頑張っちゃうと本当に死んでしまいそうなので、楽しんでやっていこうと思います。

[rails] delayed_job を使ってメールを送るときは deliver メソッドをつけない

年齢に勝てずもの忘れが激しい。ついこの前はまっていた箇所を忘れて、再度はまってしまった。

なので、忘れないようにブログに書いておく。

delayed_job を使ってメールを送るときには、

UserMailer.delay.comment_created_notification.deliver

でなく

UserMailer.delay.comment_created_notification

のように deliver メソッドをつけない。

結構忘れがちで、今回もはまってしまったのは、開発環境で delayed_job を起動するのが面倒で、デバッグのために一時的に delayed_job をはさまず送りたいというときに、

UserMailer.delay.comment_created_notification

UserMailer.comment_created_notification

と書き換え、deliver を付け忘れたまま、「あれ?あれ?メールが送られないぞ」と悩むパターン。

正しくは、

UserMailer.comment_created_notification.deliver

でないと送られない。

参考: https://github.com/collectiveidea/delayed_job#rails-3-mailers

ウェブサービス開発者がリアルイベントをやる際に準備したこととやったあとの反省点

先週金曜日、運営している「まちクエスト」のリアルイベント「まちクエスト・カフェ」をおこないました。

イベントの詳細は、

» リアルイベント「まちクエスト」カフェをおこないました

を見ていただくとして、ここでは「まちクエスト・カフェ」のために準備したことや反省点を書きます。これからリアルイベントやオフ会を開きたいと考えているウェブサービスの運営者の参考に少しでもなれば、と思います。

まずは準備したこと。

  • 場所は下北沢OSSカフェをお借りしました。OSSカフェは通常は金曜日お休みなのですが、一日店長やるなら、サービスの名前を冠して「◯◯カフェ」という形で営業させてもらえます。Square のレジの使い方やラテの入れ方などは当日開店前に教えてもらいます。飲食のバイトをやったことがなかった僕はもしかしたらこの一日店長の役割が一番緊張したかも。。

↑ラテ、なかなかうまくできました

  • お店の外にだしておくのぼりを用意しました。雨・雹と降ってきてしまい今回は途中で店の中にひっこめてしまいましたが、これからのイベントでも使えるものなので、あるといいかと思います。お値段もそんなにかからず今回は makumaku というところにお願いしましたが、印刷代自体は1000円かかりませんでした。ポールは近所のホームセンターで買ってきました。かつぐと桃太郎になったみたいです。

↑標準サイズの 180cm x 45cm。結構でかい。

  • 告知は Facebook がメイン。CoffeeMeeting にもイベントを立てました。

  • OSSカフェのまわりにいくつかクエストを作り、それらをまわってコンプリートしていく形式のクエストラリーを用意しておきました。同じ下北沢駅でも反対側にそこそこ歩く場所にもクエストを作ったのですが、それをラリーに含めてしまうと、かなりの距離を歩くことになってしまうのでやめました。自分で実際に歩いて作ったのでそのあたりの距離感がつかめて良かったと思います。

» 「下北沢まち歩き」のクエストラリー

はイベントが終了してもこれからも楽しめるので、下北沢に遊びに来るようなことがあれば、あるいはOSSカフェに来る際に、良かったらやってみてください。

  • まちクエスト」のトップページの一番上段に最新のクエストラリーを表示するようにしました。通常は最新のクエストラリー一覧は一番最下段にあるのですが、それだと目立たないので。といっても、これはイベント最中に気づき、急いでカフェで修正してデプロイしました。

さて、次に反省点です。

  • 雹が降ってくるほどの天気のせいにしたいところですが、でももう少し初めて「まちクエスト」を体験しに来ていただく人を増やしたかった。どのくらい来るのかが読めなかったので告知を Facebook メインにしていたのですが、それだけだと不十分だったんだと思います。次回はイベント系のサービス使って幅広く告知したい。

  • [追記] 参加者から指摘をうけました。確かに、と思ったので追記します。事前に参加者のプロフィール(自分のサイト、興味のあること、ユーザ名など)をイベントページに記入してもらっていたほうが、誰がどんなことをしているのかがわかって良かった。あるいは、LT大会の前に軽く自己紹介タイムを設ければよかった。

  • 役割分担をきちんとすべきでした。飲み物を用意してサーブする一日店長、LT大会の司会、動画の配信、写真の撮影、イベントの模様を Twitter と Facebook に実況、とこれだけでも5つも役割があったのに、事前に把握しておらず分担しませんでした。幸い、事前にお願いしていないにも関わらず、OSSカフェの河村さんが動画配信を、@fuji3zpgさんが写真撮影を、そして沖縄にいながらも配信されている動画をみながら、@ogaworks が実況ツイートと togetter にまとめてくれたため(『まちクエスト・カフェ』まとめ)に、終わってみたら全部ちゃんとできてはいたのですが、いつもこんなに気が利く方々に恵まれるとは限りません。有能な方の反射神経頼みはいかんなと思いました。

  • 初めて「まちクエスト」をやる方のために、サービスの内容を A4 一枚とかにまとめたものを用意し、プリントしておくべきでした。実際に複数の方に聞かれ、「すみません、ありません」と答えざるえませんでした。今から用意します。

これらを踏まえて次回に活かしたいと思います。

もし「第2回 まちクエスト・カフェ」に場所を提供してもいいよ、という方がいらっしゃいましたらこちらまでご連絡ください。

SpheroのイケてるPV動画7連発

Sphero Advent Calendar 2013 の5日目のエントリーです。連日の連投で疲れてきたので、Sphero のハック関連からちょっと離れます。

上の Sphero の PV を観て、思わず衝動買いしてしまったのですが、Sphero のサイトにあがっているほかの動画もなかなか面白いので紹介していきます。

Sphero を買うと、ジャンプ台2つがついてくるので、動画のように Sphero をジャンプさせて遊ぶことができます。でもこの動画のようにうまくコントロールできるようには、結構練習が必要。

#TricksWithBalls のハッシュタグで Sphero のトリックプレーを撮った動画を Twitter や Instagram に投稿すると、毎週、その週一番のトリックプレーの投稿者に Sphero があたる、というのもなかなかプロモーション的にうまいです。

Apple 限定モデル。スケルトン仕様で超カッコイイです。普通のやつを買ってから、このモデルの存在を知りました。これ知ってたら、絶対こっち買ってた。

動画は感動的。ちょっとうるっとしました。こどもに Sphero を買ってあげたら、将来トニー・スタークばりの天才エンジニアになるのかもしれません。。

Sphero 対応アプリの The Rolling Dead の紹介動画ですが、The Walking Dead 観たことがあればニヤリとするでしょう。

あのオバマさんも Sphero を操作した!という動画。「Excuse me, give me some space to drive my ball.」(ちょっと失礼、僕のボールが動くんでそこあけてくれない?)とオバマさんに言わせた Sphero、すごい!

超大型 Sphero PeaceKeeper、笑えます。動画の公開日は、2013/04/01 です。巨大ネコと戯れるシーンとか良く撮ったなあ。

最後、おまけ。Sphero の公式動画でなく、AppBank からの紹介動画。楽しそうです。

どうでしょう?

Sphero 欲しくなりました?欲しくなった方はぜひこちらから :-) ↓

【日本正規代理店品】 Orbotix Sphero 2.0 white S003AS(JP)
Orbotix (2013-09-26)
売り上げランキング: 1,089

そのほかの Sphero 関連エントリーはこちらです↓

» ロボティックボール Sphero 2.0 が楽しすぎる

» Sphero を Scratch(スクラッチ)から動かせるようにしたのでこどもでもプログラミングできるよ

» スクラッチからSpheroをブログラミングできるScratch2Spheroを改良しました

スクラッチからSpheroをブログラミングできるScratch2Spheroを改良しました

昨日に引き続き Sphero Advent Calendar 2013 の4日目のエントリーです。

スクラッチからSpheroをブログラミングできるScratch2Spheroを改良しました。

» https://github.com/champierre/scratch2sphero

Scratch2Sphero が何か?については、

» Sphero を Scratch(スクラッチ)から動かせるようにしたのでこどもでもプログラミングできるよ

を参照してください。

Scratch2Sphero を使うことにより、スクラッチから forward/backward/right/left の4つの命令を送って Sphero を動かせるようにしたわけだが、この方法は LOGO の流れを組むスクラッチらしからぬ方法。

LOGO に関する Wikipedia の記述に詳しいが、自分が主体となって前方に動いたり、△度回転するという考え方のほうがこどもにとってはわかりやすい。

スクラッチのネコを動かす、「◯歩動く」「△度回す」にならい、move と turn の2つの命令で動かせるようにしました。◯歩の部分は steps という変数(10, 20, 30… のように 10 刻み)で、△度の部分は degrees という変数(0から359)で指定します。

たとえば四角形を描くように Sphero を動かすには「10歩すすんで90度回る、10歩すすんで90度回る、10歩すすんで90度回る、10歩すすんで90度回る」でいけるので、以下のようなスクリプトになります。

では、三角形を描くように動かすにはどうすればいいでしょうか?これ大人は結構ひっかかる。何も知らない子どものほうが難なくできる問題なのです。

答えが気になる方は、Sphero を実際に動かしてみるか、持ってない方はスクラッチのネコに描かせて確かめてみましょう。

【日本正規代理店品】 Orbotix Sphero 2.0 white S003AS(JP)
Orbotix (2013-09-26)
売り上げランキング: 1,089

Sphero を Scratch(スクラッチ)から動かせるようにしたのでこどもでもプログラミングできるよ

このエントリーは Sphero Advent Calendar 2013 の3日目のエントリーです。

【日本正規代理店品】 Orbotix Sphero 2.0 white S003AS(JP)
Orbotix (2013-09-26)
売り上げランキング: 1,089

» ロボティックボール Sphero 2.0 が楽しすぎる

で予告したように、Sphero を Scratch(スクラッチ)から動かす方法を紹介したいと思います。

スクラッチは MIT が開発した教育用プログラミング言語で、ブロックを並べることで、こどもやプログラミング経験がない大人でも楽しくプログラミングできます。こども用と侮るなかれ、マリオやテトリス、頑張ればドラクエライクなゲームだって作ることができます。

スクラッチの Remote Sensor Protocol という仕組みを使うことで TCP ポートを経由して外部との接続が可能なことを利用して、Sphero とつなげるプログラムを書いてみました。

ちょうど、前日の Sphero Advent Calendar の2日目のエントリー、

» Sphero gem で Sphero を操作してみる

で紹介されている Ruby の Sphero gem を使います。

動かした環境は MacOSX 10.8.5 です。スクラッチは 1.4 を使います。

まず hybridgroup-serialport gem と sphero gem をインストールします。

% gem install hybridgroup-serialport
% gem install sphero

あるいは

% sudo gem install hybridgroup-serialport
% sudo gem install sphero

次に、コンピューターと Sphero を Bluetooth で接続します。これは通常の Bluetooth ペアリング設定です。Bluetooth 設定アシスタントより Sphero に接続しましょう。

このあたりは、Sphero gem で Sphero を操作してみるのエントリーに詳しく載っています。

次にスクラッチと Sphero とをつなぐ

» scratch2sphero

をインストールします。

git clone git@github.com:champierre/scratch2sphero.git

インストールできたら、scratch2sphero を起動する前にスクラッチを起動しておきます。Scratch 1.4 をインストールしていない場合は、Scratch 1.4 のダウンロードページより MacOS X 版をダウンロードおよびインストールします。

スクラッチを起動したら、「調べる」カテゴリーを選び、「スライダーセンサーの値」ブロックの上で右クリックして、「遠隔センサー接続を有効にする」を選んで「遠隔センサ接続」を有効にしておきます。

いよいよ scratch2sphero を起動します。

% ruby scratch2sphero.rb

このとき

serialport.rb:22:in `create': Resource busy

というエラーが出るかもしれませんが、あきらめず何度かやり直してみます。

Sphero が点滅から青く光るようになれば接続成功です。

スクラッチの画面で、「制御」カテゴリーから『「◯◯」を送る』ブロックを選び、真ん中のスクリプトエリアにドラッグして置きます。

scratch2sphero と接続したことによって backward/forward/left/right のメッセージを送ることができるようになっているので、どれかを選び、ブロックをクリックしてメッセージを送ってみましょう。Sphero を動かすことができます。

このメッセージが TCP ポートの 42001 番を経由して Scratch2Sphero に渡され、Scratch2Sphero が sphero gem を使って Sphero を動かしています。

また、スクラッチで変数「speed」(0 から 255 まで)と「initial_heading」(0 から 359 まで)に値をセットすることで、それぞれ、Sphero のスピードと Sphero の forward を受け取った時に進むデフォルトの方向を変えることができます。各変数は「変数」カテゴリーで「新しい変数を作る」をクリックすることで作ることができます。

これらを組み合わせ、たとえば Sphero をジグザグに進ませるプログラムはこんな感じで書けます。

こどもでも Sphero をプログラミングできるようになる、ということが大げさでない証拠に、小6息子が Sphero を動かしている模様を動画で撮りました。

Sphero についてもっと知りたい場合は、こちらを参考に。

» ロボティックボール Sphero 2.0 が楽しすぎる

» ころころ可愛い♡なのに高性能!Orbotix Sphero 2.0 が面白い #sphero #gosphero

Sphero Advent Calendar 2013は明日以降まだ埋まっていないところをみると、日本ではまだあまり注目されていないんでしょうか?

以下の Amazon リンクから買えるので、ぜひ Sphero 2.0 を手に入れて Advent Calendar にブログ記事を書きましょう :-)

【日本正規代理店品】 Orbotix Sphero 2.0 white S003AS(JP)
Orbotix (2013-09-26)
売り上げランキング: 1,089

ロボティックボール Sphero 2.0 が楽しすぎる

PV を見て思わず Amazon で衝動買いしてしまったロボティックボール Sphero 2.0 が楽しすぎる。

【日本正規代理店品】 Orbotix Sphero 2.0 white S003AS(JP)
Orbotix (2013-09-26)
売り上げランキング: 1,089

こちらがその PV です↓

Amazon で購入したら翌日には届きました。

ブルーのカバーも合わせて購入↓

こういうガジェットにありがちな英語の説明書一枚にテキトーな包装でくることを予想していたら、思いのほかちゃんとした立派な箱でびっくりしました。しかもちゃんと日本語化されている。説明書もちゃんと数ヶ国語に翻訳されている。充電器のコンセントに差す部分も、だいたいどこの国にも対応できるよう4パターンくらい用意されたアダプタをつける方式で、すでにいろんな国で販売されている様子が伺える。

こどももいるし、結構荒っぽい使い方をしたいと思ったのであわせてブルーのカバーも買ったのだが、自由に変えられる本体の色がわかりにくいので、あとになって透明なカバーにすれば良かったと後悔。

bluetooth 経由で iPhone や Android 専用のアプリからコントロールできる。うちは iPhone だが、セットアップは難なくできて、すぐに動かせるようになりました。

さっそく自宅近くの公園で遊ばせていたら、ワラワラこどもたちが寄ってきて、「これどこで買ったの?」「いくらするの?」の質問責め。本体は頑丈なので心配ないのだが、コントローラーとなる僕の iPhone 5S をこどもたちに貸していたら、もう興奮し過ぎてこどもたち同士の取り合いになりそうだったのでヒヤヒヤ。Sphero のコントローラー用には、耐衝撃カバーがついた古い iPhone を使ったほうが良さそうだと思いました。

PV にあるように完全防水で水の上でも走るので、風呂でも遊ばせることができる。どこか公園の池などで遊んでみたいのだが、電池切れ or 故障で動かなくなったときに、最悪取りに行けるような池というとそうなくて、まだ手頃な池がみつかっていない。

付属のジャンプ台でジャンプさせるのが、これまた楽しくて、iPhone 5S のスローモーションカメラで撮影しながら、息子たちと延々遊んでいます。

さらに、開発者にとってうれしいのは、API が公開されているため、いろいろとハックできるところ。さっそく Scratch でコントロールできるようにしてみました。

簡単に Sphero の動きをプログラミングできるので、自動操縦が思いのまま。

コントローラーのプログラムのscratch2spheroをgithubに公開し、詳細はSphero Advent Calendar 2013に登録した次のエントリーで紹介する予定です。

いやあ、こどもも大人もこれだけ楽しめるおもちゃはなかなかないです。いい買い物をしました。

【日本正規代理店品】 Orbotix Sphero 2.0 white S003AS(JP)
Orbotix (2013-09-26)
売り上げランキング: 1,089

Recent Entries

Tags

Archives

Admin