僕は発展途上技術者

クックパッド「開発コンテスト24」に参加しました - その2

追記


開発コンテスト24 結果が発表されました。


» 第2回「開発コンテスト24」受賞作品発表 | クックパッド株式会社


残念ながら Team 3meter として参加して開発した、Help Me Tutor は受賞できませんでした。いい線行ってたと思うんだけどなあ、残念。


» Help Me Tutor


受賞作品はそれぞれ素晴らしいアイデアで問題を解決できている作品だと思います。受賞された方々、おめでとうございます。


Help Me Tutor は、最初の出来上がりのこれはいけるんじゃないかという印象を信じて、完成度をあげて、App Store に申請、プロダクト化するところまでがんばってみたいと思っています。


追記ここまで


» クックパッド「開発コンテスト24」に参加しました - その1 : 僕は発展途上技術者


の続き。


その1は長々書いてしまったので、その2ではサクッと、開発の Tips 的なことを列挙していきます。



  • 開発に参加したメンバーは3人。サーバー側と、Chrome Extension 版担当が@bluerabbit777jp さん、iPhone アプリ版担当が僕、デザイン担当が つくる社 で一緒にやっている

    @monoookiでした。開発期間中一度も会うことなく、@bluerabbit777jp さんにいたっては奥様の実家に行くという私用をこなしつつ完成させるというスーパーマンぶりで、問題なくコミュニケーションができたのは Skype のおかげ。通常はチャットで、込み入ったときには通話しつつ、必要なファイルを送ったり、画面共有も使ったりと大活躍でした。

  • 役割が3人ともかぶることなく完全に独立していたのもスムーズに進んだ理由だったと思います。

  • iPhone 版の進捗があるたびに、Adhoc 版をビルドして三人で共有していたのですが、それには Adhoc 版を瞬時に配布できる Test Flightが超便利。バイナリをアップロードする必要があるので神経質な人や組織では使えないかもしれませんが、そうでない iPhone アプリ開発者だったら絶対使ったほうがいいです。面倒だった Adhoc 版のやりとりを格段に楽にしてくれる TestFlight という紹介エントリーを以前に書いているのでよかったら参考にしてください。

  • 24時間という短い時間内に開発するのではまることは許されない。それぞれが得意な部分から逸脱しないように、未知な部分には手をつけないようにしました。 @bluerabbit777jp さんは Google App Engine のスペシャリストで、ATND Notifyearthquake Notify(緊急地震速報) といった Chrome Extension をいくつも開発しているので、サーバー側と Extension 担当、僕は最近 Titanium を使っていくつか iPhone アプリを作っていたので、iPhone 担当になりました。デザイン担当は @monoooki、これは言わずもがなです。

  • Titanium の開発、途中少しはまりました。どう考えても動くコードなのに動かない… ふと思いついて、変換された Objective C のコードを全消ししてリビルドしたところ問題なく動くようになりました。「なんなんだよ!!」と Titanium に対して若干怒りを覚えましたが、Titanium なしでは24時間で iPhone アプリを作ることは僕には到底無理、大変良いツールなので許します。

  • ライバルでありリスペクトしている FJORD, LLC のデザイナ @machida さん、プログラマ @komagata さんが進めている KUROIGAMEN(黒い画面) という運動があります。デザイナもシステムやプログラミングの知識をある程度身につけてサービス・プロダクト開発にもっと密に関わろうという趣旨だ、というのが僕の理解なのですが、つくる社のデザイナの @monoooki ももともと PHP や Flash もかける人で、最近 git もお手のもの。今回も作っている途中で Titanium のソースを github で公開し、git レポジトリの URL を伝え「あとはよろしくお願いです」状態。数時間後、git pull したらアイコンも画像も勝手に綺麗になっていて大変心地よい。開発者にとっては大助かりです。こちらももっとデザインや UI の勉強をしないといけませんね。


こんなところですかね。


こうしたコンテストに個人では何回か参加したことがありましたが、チームで参加するのは初めて。とても恵まれたチームで、終わったときはやり遂げた感たっぷり、充実した経験をさせていただきました。


コンテストの存在にまったく気づいてなかったところを誘ってくれた @bluerabbit777jp さんに感謝。


休みの日の突然の招集に「おもしろそう」と答えてくれ参加してくれた @monooki に感謝。


また「(普段の生活で)半径3m以内にいる人が困っていることを解決する」というコンテストの課題テーマは、良く考えられているテーマで、ネットサービスが威力を発揮するのは遠く離れている人に対してであり、3m以内にいる人が困っている場合、なにもネットのサービスを使わなくても「直接聞けばいいじゃん」で済んでしまうケースがほとんどであるところを、あえてサービスを使う必然性が求められるところにチャレンジがあったんだと思います。そんなクックパッドからの挑戦状に、まあうまく応えられたかと評価されるかどうかはわからないのですが、現時点の僕の力では、結構いっぱいいっぱいに応えられたかなと思っています。そんな素敵な機会を与えてくれたクックパッドに感謝です。


クックパッド「開発コンテスト24」に参加しました - その1

(サービスの設計の話だけですっかり長文になってしまったので、予期せずエントリーをいくつかに分けることにします)


24時間で課題に沿う「生活をより便利にするサービス」を開発するクックパッド主催の「開発コンテスト24」に参加しました。


» エンジニア向け「第2回 開発コンテスト24」開催 | クックパッド株式会社


サービスの設計・開発・デザインなどプロダクトをリリースするためにやらなければいけないことをすべて24時間以内にこなさなくてはいけないので、3日分くらい働いた感覚です。


課題提出後はすっかり疲れて何もできなかったのですが、一夜あけ、せっかくなので貴重な体験のなかで得られた知見を残しておこうと思いブログを書くことにしました。


具体的なシーンを思い浮かべることができるサービスを


@bluerabbit777jp さんから「コンテストに参加するので手を貸してほしい」という Twitter の DM を受け取っているのを確認したのは、金曜日22時頃、Startups 2011 に参加し、懇親会の後ほろ酔い気分で家に帰り着く途中のことでした。


Startups 2011 がどうもスマートフォン上のソーシャルゲームなどゲーム系に比重を置いている印象を受け、僕的にはどうも違うなあ、と思っていたところ、開発コンテスト24の方は、


(普段の生活で)半径3m以内にいる人が困っていることを解決する


というテーマで「生活をより便利にするサービス」という課題だったので、「生活を変え便利にするものづくり」を心がけている僕としては、ぜひ参加しておこう、ということになりました。まあ、たぶん酔いのせいもあったんだと思います。


帰宅途中の電車で Skype チャットで相談しながら、駅からの徒歩区間では Skype 通話に切り替えつつ、サービスの内容を二人で練り上げました。


@bluerabbit777jp さんからの最初の提案は、おてつだいロボ 的なサービス、でした。けれど、僕が「おてつだいロボ」を知らなかったのもあり、具体的に半径3メートル以内の助けてもらいたい人とそれを助けるサービスがイメージできず、@bluerabbit777jp さんも「10秒で伝わらないアプリはだめぽ。。」ですねということで別のサービスを考えることにしました。


@bluerabbit777jp さんのところでは新しい家族が増えたばかりで、赤ちゃん向けなど困っている題材はたくさんありそうで、困っている例をいろいろと聞いていたのですが、「仕事ではまってて声をかけてほしいときがある」という話から発展し、


Skype
Uploaded with Skitch!

という「10人くらいのハンズオン形式の研修」で困っている例を聞き、これを解決するサービスを作ればいいんじゃないか、ということになりました。


こうした勉強会は僕も参加することがあり、容易に使うシーンを想像することができたので、自然とどういうサービスを開発すればいいかイメージできたのです。


例えば、



  • 見知ったメンバーだったら別だけれど、知らない人が集まった勉強会とかで誰がどこに座っているかチューターの人はすぐには覚えられない。 -> ならば座席表がすぐにみられるといい

  • はまっている人は自分では自覚できていない。 -> 自分がどんな作業をやっているか簡単に報告できるようにして、長時間同じ作業をしている人 = はまっている人 ということでチューターの人にわかるようにしたらいい

  • 「助けが欲しい」という意思表示ってなかなかしづらい -> Help Me ボタンみたいなのがあって押せばチューターに伝わるようにしたらいい

  • コードラボのような場合はメインの作業は画面全体を使っている。わざわざこのアプリのためにウェブページ一枚開けておくのはきっとじゃまだろう -> 生徒側のアプリは Chrome Extension のような邪魔にならないものがいい

  • チューター、先生役の人はたぶん席をあちこち渡り歩いている -> チューター、先生側のアプリは iPhone アプリのように手元で確認できるもののほうがいい


といったことが、実際のシチュエーションを想像することで次々と決まっていきました。


実際に困っている人、具体的なシーンを想像し、それらに対する解決する方法を考えると、その解決方法は結構自然な形になります。


次に参加するコードラボや勉強会で実際に使えるアプリをつくろう、と思えば自然と力も入ります。


(サービスの設計の話だけですっかり長文になってしまったので、いったんここで切ります。日曜日でこれから外出の予定があるので…帰ってきたらツールの話など、続きを書きます)


福島原発で起こっていることを素人なりに正確に理解する

東日本大震災で被害を受けた福島原発のニュースがテレビで流れており、Twitter でも多くの情報が取得できる。


しかし、こうした情報を断片的に読んでいるだけでは、中途半端な知識だけが増えるばかりで不安は一向に消えないどころか増すばかり。


こうした不安をのぞくには素人なりにきちんと今何が起こっているのかを理解する必要があると感じました。


そのために僕がおこなった方法と収集した情報を紹介します。いくらかでも皆さんの役に立てば幸いです。


背景


まず断っておきますが、紹介する情報を読み理解するのに僕の場合は 2、3時間を費やしました。それをやった後に、いま昨日配られた新聞の号外を読んだり、テレビのニュースを見て、やっと何が起こっているか素人なりに理解できるようになりました。


それなりに高校で物理を勉強し、プログラマーという職業上、ネット上の情報を識別できる力も身についているという背景があるということを考慮してください。なので、人によってはもっとかかるかもしれませんが、ネットを利用するなどしてわからないところをひとつひとつ調べていけばおおまかにでも理解できるはずです。


そうした上で、テレビや Twitter での情報を受け取り、自分なりにその真偽を判断することをおすすめします。


基本の知識


英語でなおかつ長文なのですが、


» Why I am not worried about Japan’s nuclear reactors. | Morgsatlarge – blogorific.


(追記: 日本語訳がでています。非常に長文な内容を素早く訳している@LunarModule7さん素晴らしいです。MIT研究者Dr. Josef Oehmenによる福島第一原発事故解説 - A Successful Failure)


をまず読むことをおすすめします。


これを読んで原発の仕組み、地震直後からいままでに起こっていること、1号機の爆発はなぜ起こったのか、そして今現在おこなわれている対応策、今後はどいったことが起こり得るか、が理解できます。


次に、原発で起こっていることを丁寧に解説されている東京大学理学系研究科の早野龍五教授の地震直後からの全ツイートに目を通しました。


» ryugo hayano (hayano) on Twitter


原発のニュースが気になった頃からフォローしていたのですが、最初に紹介した記事を読んで背景の知識を得たあと、すべてを読み返すことでより理解できるようになりました。


各地の放射線量


気になる各地の放射線量は


» リンク(環境・放射線モニター)


をたどっていけば参照できます。ただし福島県のモニターは止まってしまっています。


このモニターの値にはナノグレイという単位が使われており、ニュースで耳にするマイクロシーベルトと違うのですが、1グレイ = 0.8 シーベルトなので、1 ナノグレイ = 0.8 ナノシーベルト = 0.0008 マイクロシーベルトと考えるといいようです。1ミリ◯◯ = 1000マイクロ◯◯ = 1000000ナノ ◯◯と単位が違うと1000倍違うのでよく単位を把握して情報を読み取ることが重要です。


» JNFL環境モニタリング 解説


東京江東区屋内で計測中のガイガーカウンターが ust されています。ガイガーカウンターの単位は cpm でまた単位が異なるのですが、100 CPM = 1 マイクロシーベルト、普段は10~20CPM程度だそうで、3/14 9:51 現在、カウンターは 12 を指しています。


USTREAM: geiger_counter_tokyo: 東京江東区の屋内で稼働しているガイガーカウンタを写しています(CPM[1分あたりのカウント量]表示)。


最初に紹介した英文記事の内容が僕にはとても参考になり、本当はある程度日本語訳して紹介したいのですが、とりあえず公開することが優先と思い、リンクの紹介にとどめています。


専門家による間違いのご指摘やここがわかりにくいといったことがありましたらコメントください。出来る限り追記、修正していきます。


追記


» 日野市ガイガーカウンター


もあります。


放射線は距離の逆二乗で減衰する(放射線Q&Aより)ので、たとえば 1km で 1 という単位のものは 200km 離れている場所では 200 x 200 = 40000、つまり約4万分の1となります。


なおこのエントリーは福島より200km以上離れた東京で生活している立場で書いています。Why I am not worried という英文の記事を紹介しておりますが、原発近隣の方にとっては全然「それほど心配はない」なんてことはないはずで、一刻もはやく原発での対応がおこなわれ、早く安心できる環境になることを祈っております。


開発環境で RVM + Rails 3 + Passenger + Apache を動かすときの設定メモ

自分用メモです。


開発環境で RVM + Rails 3 + Passenger + Apache を動かすときの VirtualHost の設定は以下のとおり。


アプリケーションのルートディレクトリを /Users/user/rails/testapp としています。



Ruby 製クラウド用 CMS「Lokka」のプラグイン Redirect_if_heroku を書いてみた

打倒 WordPress をうたう Ruby 製クラウド用 CMS「Lokka」を Heroku に置いて使っている。


独自ドメインを取ってアクセスできるようにしているのだが、そうなると example.com と example.heroku.com の両方でアクセスできるようになってしまう。example.heroku.com へのアクセスは example.com へリダイレクトしたいので、そのような処理をおこなうプラグインを書いてみました。



これを以下のように public/plugin/lokka-redirect_if_heroku/lib/lokka 以下に置きます。


TextMate
Uploaded with Skitch!

リダイレクト先は SITE_URL という環境変数で指定できるようにしました。


% heroku config:add SITE_URL=http://example.com


のように heroku コマンドで指定してください。


いくつかポイント。


1) いくつかあるプラグインのサンプルでは def self.registered(app) 以下にたとえば app.get '/hello' do (/hello にアクセスすると hello と表示される)などと書いて、特定の URL にアクセスした場合の挙動を書いてあるものが多い。Rails の before_filter 的な処理はどうやるのだろうと sinatra のドキュメントなどを漁っていたのですが、見よう見まねで app.before で処理を囲んであげたらうまくいきました。


2) redirect_if_heroku.rb 内での module 名を最初、Rails 風に RedirectIfHeroku と書いていたところどうもうまく動かない。lib/lokka/app.rb のプラグインをオートロードしている部分のソースコードを読んでみたところ


register ::Lokka.const_get(name.capitalize)


とあったので、Redirect_if_heroku("redirect_if_heroku".capitalize => Redirect_if_heroku だから)と書き直したところ、うまくプラグインが読み込まれました。 さっそく lokka の最新ソースで、capitalize => camelize に修正されていたので、RedirectIfHeroku というモジュール名で動くようになりました。


3) リダイレクト先は環境変数で設定するようにしましたが、本当は管理画面などから指定できるようにしたい。@komagata さんに今度聞いてみる。


ちなみに Lokka で設置したブログはこちら↓


» エピソード7 | スターウォーズの情報・旬なネタを日本語で届けます


Libron 2.1.1 で大学図書館が選びやすくなりました

Libron を 2.1.1 に更新しました。


カーリルが次々と大学の図書館に対応しているので、Libron の図書館選択のメニューに「図書館(大学)」というカテゴリを新たに設け、選択しやすくしました。


Libron2_1_1
Uploaded with plasq's Skitch!

これで、大学生にも


» Libron(リブロン) - 図書館をもっと身近に


が使いやすくなったと思います。


ほかにいくつか細かなバグを修正しています。以下、リリースノートの抜粋です。



2.1.1

- 図書館選択用プルダウンに新たに「図書館(大学)」カテゴリを用意しました。

- Twitterへのつぶやき機能改善(長すぎるタイトルの省略。不要なHTMLタグの削除)


ひらがなゲーム「かなぶん」(iPhoneアプリ)を日本以外の App Store でもリリースしました

» ひらがなゲーム「かなぶん」


のiPhone版は今まで日本の App Store でしかダウンロードできなかったのですが、UI やヘルプ画面を英語化し、日本以外の App Store(数えたらなんと90ヶ国もありました)でもダウンロードできるようにしました。



盤面のひらがなを使って(日本語の)単語を時間内にたくさん作る、というゲームの内容はそのままなので、ターゲットは日本語に興味を持ち学習している外国の方です。


ニッチなターゲットではあるのですが、日本語教育 - Wikipedia によると国外の日本語学習者は300万人!「かなぶん」のおかげで日本語に興味を持ったとか日本語を学ぶのに一役買うことができたらうれしいと思います。


もし海外にiPhoneユーザーのお知り合いがいたら、良かったら勧めてみてください。


» ひらがなゲーム「かなぶん」


Libron の Firefox Add-on 版をリリースしました

Amazon の検索結果画面より簡単に図書館の蔵書検索ができる Libron、おかげさまで累計 60,000 ダウンロードを超えました。Twitter やブログなどでご紹介いただいた方々、「便利だよー」と直接人に勧めてくださった方々のおかげです。どうもありがとうございます。


» Libron(リブロン) - 図書館をもっと身近に


いままで Greasemonkey という Firefox のアドオン上で動くスクリプトだったのですが、単体で動く Firefox Add-on 版として今回リリースしました。


アドオン
Uploaded with plasq's Skitch!

Libron を使うには、これまでは 1) Greasemonkey をインストールした上で、2) Libron Greasemonkey 版をインストール、という2つのステップが必要でしたが、Firefox Add-on 版は 1) Libron Add-on 版をインストール、というステップだけ。手間が少なく簡単にインストールできるようになりました。


また、体感速度もこれまでの Greasemonkey 版より速くなっています。


今後の機能追加やバグ修正は Add-on 版でだけおこなっていき、Greasemonkey 版はサポートいたしません。これまで Greasemonkey 版をご利用になっていた方にはお手数ですが Add-on 版に入れ替えていただきたくお願いいたします。


冒頭すぐに紹介した Libron ホームページの右側、Firefox Add-on のバナーをクリックすれば、ダウンロードページにジャンプします。


バグ修正や機能要望などなんでも何かあればコメントに残して下さい。今後とも Libron をよろしくお願いします。


スピッツのオフィシャル PV をエンドレスで視聴できる Endless Spitz(エンドレススピッツ) をリリースしました

プログラマが本気だしてファンサイトを作ってみたら。。というコンセプトで作ってみました。


» Endless Spitz(エンドレススピッツ)


スピッツ、YouTubeで全PV公開 - ITmedia News というニュースが流れ、公開されたPVを観ていたのですが、いちいち次の動画をクリックして観ていくのが面倒くさい。開発しているときなどに、傍らで流しっぱなしにしておきたいと思い作りました。サイトにアクセスしたら、あとはそのまま。何もしなくても、スピッツのオフィシャル PV が次々再生されます。


また、再生中の曲について Twitter でつぶやいているユーザーとそのつぶやきをリアルタイムで表示するようにしました。つまりは同じスピッツファンのつぶやきです。当然、フォローしたくなると思うので、Twitter @Anywhere を使い、サイト上で簡単に即座にフォロー出来る仕組みにしました。


これ、実際にやってもらったらわかるのですが、@jishiha のように @ がついている Twitter アカウント名の上にカーソルを持っていくと、Follow ボタンがついた吹き出しが表示され、すぐさまフォローできます。あまりに手軽過ぎで、どんどんフォローしてしまいます。


Endless Spitz
Uploaded with plasq's Skitch!

さらにサイト上から、Twitter のサイトに移らなくても、そのままつぶやきを投稿できるようにしました。曲の感想などをつぶやくと、そのつぶやきがすぐにその下のつぶやき一覧に表示されるので、ファン同士の交流ができるかも。。


スピッツファン限定のかなり個人的趣味が強いサービスですが、よかったら使ってみて下さい。


Libron の重要なお知らせ、2.0.5 に更新してください

Libron をご利用の方々に重要なお知らせです。


アップデート通知機能があるので、使っていればそのうち自動的にお知らせが表示はされますが、その前にこのお知らせを読みましたら、お手数ですが 2.0.5 にアップデートしてください。


» Libron(リブロン) - 図書館をもっと身近に


これまで、Amazon の検索結果に表示される各書籍の個別ページへのリンクに Libron のアソシエイトIDを付加していましたが、ユーザーの方から規約違反ではないかというご指摘を受けました。Amazon に確認したところ、「未申請サイトでのリンクの使用は禁止」という回答を得たので、2.0.5 にてアソシエイト ID を付加しないように修正しました。


ご協力よろしくお願いいたします。


プロフィール

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

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

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

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

Email: webmaster at champierre dot com

Twitter @jishiha

最近のエントリー

アーカイブ