僕は発展途上技術者

[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](https://github.com/collectiveidea/delayed_job#rails-3-mailers)

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

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

イベントの詳細は、

» [リアルイベント「まちクエスト」カフェをおこないました](http://blog.machique.st/post/70691446043)

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

まずは準備したこと。

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



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

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



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

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

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

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

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

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

さて、次に反省点です。

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

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

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

- 初めて「まちクエスト」をやる方のために、サービスの内容を 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 [email protected]: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

プロフィール

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

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

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

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

Email: webmaster at champierre dot com

Twitter @jishiha

最近のエントリー

アーカイブ