僕は発展途上技術者

ハワイ旅行記(1日目)

正月休みを利用してハワイに行ってきました。


向こうでパソコンを開きネットにつなげてブログを毎日更新、というのもよかったのですが、せっかくの休みなのでほぼ一週間パソコンを触らない生活をしてみました。(おかげで、休み明け、ブラインドタッチの感覚を忘れてしまってます。リハビリが必要か。。。)


写真とともに駆け足で。


010609_dscn0955.jpg


到着してすぐロイヤル・ハワイアン・センターにあるIsland Vintage Coffeeで朝食。飛行機で一睡もできず、不調。妻の頼んだアサイ・ボウル(なんと鉄分をほうれん草の2倍も含んでいるらしい)を少しもらうが、いきなりアメリカサイズのどでかさに圧倒されました。




010609_sany0015mp4.jpg


ワイキキビーチでしばし砂遊びをしたあと昼食。同じロイヤル・ハワイアン・センター内のThe Cheesecake Factory。サンフランシスコで行ったことがあったので多少予想してはいたのですが、量が多い、多すぎます。定番のロコモコとピザを頼んだのですが、家族4人では到底食べきれず。。。早くも懐かしきアメリカの食事にげんなり気味。




010609_dscn0962.jpg


午後はショッピング。夕方、パック旅行のサービスのリムジンでホテルに向かい、チェックイン。その後、夕日を見に行こう、ということで Hilton Hawaiian Village まで散歩。途中のだだっ広い公園を家族で一人占め。写真はフリスビーを思いっきりぶん投げているところ。こういうところは「アメリカはいいなあ」と思わせてくれる。




010609_dscn0966.jpg


Village はまさにリゾートという感じで、いい感じ。ビーチから夕日を眺めました。さすが、とても綺麗でした。帰る途中で、早くも次男が眠りについてしまいました。というわけで外食することなく、ホテルでカップラーメンという寂しい夕食。一日目は時差がきついです。へとへと。




autotest + growl で楽々テスト

もっと早くからやっておけばよかったです。


autotest を使うと Rails でのテスト実行が格段に楽になります。コードを編集しファイルを保存した瞬間、テストを自動実行してくれるので、いちいち開発 <-> テストの各作業の切り替えが必要なく、開発している間中ずっと裏でテストを実行し続けてくれるのです。


さらに mac だと growl と連携できるため、いちいち autotest を実行しているコンソールを開く必要がなく、さらに快適。


以下の情報源を参考にさせていただいたのですが、本日(2008/12/10)時点での各アプリケーションのバージョンの違いや環境の違いからか、そのままではうまく動かないところがありました。メモ代わりに自分の環境でおこなった手順を書き留めておきます。


参考にした情報源



autotest をインストール・設定



sudo gem install ZenTest


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



sudo cp /Library/Ruby/Gems/1.8/gems/ZenTest-3.11.0/example_dot_autotest.rb RAILS_ROOT/.autotest


で、設定ファイルのひな形をRailsアプリケーションのルートフォルダ以下にコピーし、以下のように編集します。



.

.

# require 'autotest/rcov'

require 'autotest/redgreen' <== コメントアウトをはずす

# require 'autotest/restart'

.

.


Growl と連携させる


Growlのページより Growl 1.1.4 をダウンロードします。(Growl がインストールされていなければインストール)


以下の手順で、growlnotify をインストールします。



% cd /Volumes/Growl-1.1.4/Extras/growlnotify

% sudo ./install.sh


次に Growl の設定。Growl の環境設定を開き、以下のように「受信される通知を聞く」と「リモートアプリケーション登録を許可」のチェックを入れておきます。


growl-1.png


表示オプションも次のように変更して、見やすくしておきます。


growl-2.png


このあたりの設定は、


» テストはとことん自動で楽しく...。 - ザリガニが見ていた...。


で書かれているとおりそのままなのですが、「Mac OSX 10.5 Leopardでgrowlnotifyを利用する為に」の手順は飛ばしても私の環境ではうまく動きました。(後述する growlnotify の -H localhost オプションを追加したことが関係するのかもしれません)


通知メッセージとともに表示するアイコンの画像を用意します。



% mkdir ~/.autotest_icons

% cd ~/.autotest_icons

% wget http://blog.internautdesign.com/files/rails_ok.png

% wget http://blog.internautdesign.com/files/rails_fail.png


autotest の設定にもどり、RAILS_ROOT/.autotest の最後に以下を追加します。



この部分も基本的には、


» テストはとことん自動で楽しく...。 - ザリガニが見ていた...。


を参考にしたのですが、4行目の部分が以下のままだと、autotest を実行しても、通知が来たり来なかったりと不安定でした。



system "growlnotify -n autotest --image #{img} -p #{pri} -m #{msg.inspect} #{title} #{sticky}"


» growlとautotestを連携させる - Hello, world! - s21g


を参考にして、-H localhost(赤字部分)を追加したところ、ちゃんと通知されるようになりました。



system "growlnotify -n autotest -H localhost --image #{img} -p #{pri} -m #{msg.inspect} #{title} #{sticky}"


以上で設定終了。



% cd RAILS_ROOT

% autotest


で autotest を実行すれば、テストがおこなわれるたびに結果が Growl で通知されるようになります。


Mac のメニューバーに時刻だけでなく日付も表示する

Macbook Air を修理にだしたら、ハードディスクの内容が全クリアされて戻ってきた。


戻ってきたのが2週間前。修理前にインストールされていたアプリケーションは必要になったら入れる、気づいたら設定を変更する、といった具合に気長に修理前の環境に戻す作業をおこなっているのだが、これもそのうちの一つ。また壊れてしまったときのためにメモしておく。


やることは、


» Macのメニューバーに日付を表示させる方法 - 頭ん中


そのまま。


systemuiserver.png


OS が最新だからなのか、なぜか曜日が先頭に表示されていてちょっとかっこ悪いのだが、さして支障はないのでこのまま。


できたら、こんな小細工をしないでも、日付は最初から表示しておいてほしいものだ。


あと、まわりで Mac を使っている人からは結構「修理にだした」という話は聞く。以前使っていた Let's Note はまったく壊れなかった。やっぱりハードは「Made in Japan」に限るのかもしれない。


以前アメリカに住んでいたときは、日本車に乗るのもなんなので、VW New Beetle を新車で購入し乗っていたが、保証期間の2年を過ぎたあたりからあちこちしょっちゅう壊れていた。


Mac を使うなら、「かっこいいけれど壊れるリスクも考慮にいれる」という外車に乗るのと同じ感覚を持つ必要があるのかも。またいつ壊れてもいいように Time Capsule 買うつもり。


11月はアカデミーヒルズのカフェ貸切が多い

久しぶりにアカデミーヒルズに行こうかなと思ったら、今週・来週はほぼ毎日のように40階か49階のどちらかが貸し切られている。


cafe.png


なのだそうだ。


カフェ貸切時間を Google Calendar に表示するようにしているので、こんなとき非常に助かる。どこが空いているかが一目瞭然。


calendar.png

↑ 紫がカフェ貸切時間。来週、結構うまっている。


アカデミーヒルズのカフェ貸切時間を表示しているページを ical フォーマットに変換している。


» アカデミーヒルズのカフェ貸切時間を Google Calendar に表示 : 僕は発展途上技術者


ウェブのサービスやツールをいろいろと作ってきたけど、「ないと困るなあ」と思えるものは結局こういう自分の生活と非常に密着したツールなんだなあ、と実感した。


データ元のページで貸切時間の時刻や日付の表記が変わったり、新しい表記が追加されたりするのだが、自分がいつも使っていてきちんと表示されないと困るので、地味に修正を加えてその都度対応するようにしている。


クックパッド * 百式 コミュニティ運営に関する勉強会で学んだこと

IDEA * IDEA で募集がおこなわれていたカジュアルな勉強会に応募して行ってきました。テーマは「コミュニティ運営」。


» コミュニティビジネスについて勉強した | IDEA*IDEA


クックパッドにはまったくおよびもつかないのですが、僕も Ruby on Rails で「あとで行く」や最近リリースしたばかりの「ピクイズ」といったサービスを運営しています。月間2億PVを超え、Ruby on Rails で運用しているサイトとしてはおそらく国内最大サービスの秘訣を聞いて、少しでも参考にしようと思ったのです。


が、しかし。。。集まった参加者からのコミュニティ運営に関する質問に、クックパッド CEO の佐野さんが答えていくという形で勉強会は進められたのですが、その答えの多くは良い意味で僕の(そしておそらく参加者の多くの)予想を裏切ってくれたのでした。


コミュニティサイトをクックパッドレベルまでの成功に持っていくためには、ユーザーを増やし、PV をどんどんあげて、広告収入で儲けるというのが一般にイメージされる図式だと思います。参加者からの質問の多くはそうした視点のものでしたし、僕が挙げた質問も、「サイトを見てもらうだけじゃなくコンテンツを作ってもらう秘訣は何ですか?」とか「ユーザーからの機能要望に対してはどうしていますか?」というように、


「サイトのコンテンツを充実させる」 or 「良い機能をどんどん追加する」 => ユーザーがたくさん来るようになる => PVアップ => 収益化


を意識した質問でした。


ところが佐野さんは、そうした「一般的にはこうだよねえ」と思われる考え方とは異なる逆説的な考えを披露してくださいました。面白いなあと感じた点をいくつか挙げてみます。


「コミュニティ」という言葉が嫌い


勉強会のテーマが「コミュニティ運営」であるにもかかわらず、のっけからこの言葉。


「コミュニティ」と言うと、人を同じ場所にどんどん集めて、その集まりを大きくしていくというイメージがあります。でも、人が一箇所に集まり、互いの距離が近過ぎてしまうと、トラブルが頻発するようになるし不快にもなってきちゃいます。馴れ合いが起こったり、元々その場所にいた人と新しく来た人との摩擦が起こったり。


「使っている人の満足度を第一に考えている」と佐野さんは何度となく口にしていましたが、ユーザー同士の距離には快適と思える距離があって、その距離を保てるようなサイト設計を心がけているのだそうです。具体的には、あえてたくさんクリックしないとたどりつけないようになっていたりだとか、コメントに文字数制限を設けたりだとか。。


あえて不便にするような方法を取るということに驚いたのですが、もっと驚いたのはこうしたことをサービス開始当初(10年前!!)から考えていたのだとか。すごいなあと思いました。


アクセス数を増やすことが目的ではない


佐野さんの口から繰り返し出てくるのは、「料理を楽しくする」とか「ユーザーの満足度が大事」という言葉。「アクセス数を増やす」「ユーザー数を増やす」ことが目的ではない、と何度も口にするのです。


ユーザーが増え、アクセス数が伸びてきて、サーバーの許容能力を超えてくると、レスポンスが悪くなってしまいユーザーの満足度が減ってしまいます。だからサーバーリソースが追いついていないときには、ユーザー数が増えすぎてしまうのは困りものなのだそうです。


ユーザーがサイトを見たいと思ったときにちゃんと見られるようになっているのか、いらいらすることなくサッと見られるようになっているのか、ということをいつも気にしているのだそうです。「アクセスの先に生活感を感じている」とおっしゃっていました。


アクセス解析で見る指標として、PV(ページビュー)ではなく UU(ユニークユーザー)を重視している。なぜかという問いに対して、「人に対してサービスを展開しているので」という言葉が印象的でした。


エンジニアに求めるものは技術力じゃない


エンジニアの僕にはこの言葉が一番印象に残りました。


この言葉に込められていたのは、もちろん技術力も大事だけど、「使ってくれる人のことを考えてものを作るこころが一番大事」だということなんじゃないかなあ。


佐野さんが挙げた例なのですが、たとえば「幼稚園の送り迎えを快適にする」というサービスがあったら、その目的を達成できるサービスをちゃんと作れることが大事だ、と言います。


このとき、エンジニアに必要なのは、高度なアルゴリズムを使う能力でも Javascript をばりばり使いこなす能力でもあるいは効率的で綺麗なコードを書く能力でもなく、送り迎えする人の立場に立ってわかろうとする気持ちだったり、あるいは自分自身が送り迎えをするという体験なんだと思います。


懇親会のときにクックパッドのエンジニアに話を聞きました。少人数であるにも関わらず、億を超える PV をさばき、それだけのユーザーに満足してもらえるクオリティの機能を提供しているのだから、皆それぞれかなり高いレベルの技術力を持っているはずです。でも、それと同時にみんなが料理することが好きで得意だ、ということを聞いてハッとしたのでした。


「コードばっかり書いていちゃ良い技術者になれない」


のだ、と。


Rails を開発した David Heinemeier Hansson 氏が、「Rails で高めた生産性で稼いだ余剰時間を、さらにプログラミングに費やすのではなく、他のことのために使おう」といったことを言っています。


» Ruby on Railsの作者より:高まった生産性を仕事を余計にこなすためではなく自分の将来に向けて使おう - himazu blog より


勉強会の日の数日前に読んだエントリーだったのですが、それがそのとき思い出されたのです。


料理をしたり、絵を描いたり、スポーツをしたり、英語以外の言語を学んだり。。。とプログラミング以外のことをすることで、新しいサービスのアイデアが浮かんでくるかもしれないし、新しい方法を考えついてそれをプログラミングにも適用できるかもしれない。人間力といったらいいのか、それを高めることが大切だということを実感したのでした。


まとめ


「コミュニティ運営」について学んだのはもちろん、「みんなはこう言っているけど、ほんとうにそうなの?実は違うんじゃないの?」というスタンスを持つことの大切さ、最後にはエンジニアとしてあり方みたいなことも気づかされた大変充実した勉強会でした。


佐野さん、百式管理人、それに懇親会でお話を聞かせていただいた参加者の皆さん、クックパッドの方々(おいしいお料理もいただきました)に感謝です。


以下、参加者の方々のエントリーです。


» F's Garage:コミュニティビジネスに大事なたった一つのこと


» 2008-11-01 - satake7’s memo


» watchpad.jp 開発チームブログ» ブログアーカイブ » 百式|COOKPADの勉強会に参加


» 百式 カジュアルな勉強会 コミュニティ運営に行ってきた | 芸人社長のブログ


» 月間 2.8 億 pv!クックパッドの運営ノウハウについて聞いてきた - 19790401173.4


» Cookpad でコミュニティについて勉強してきました (ラボブログ)


TextMateで全角スペースをハイライトする方法

Ruby on Rails の開発に、TextMateを使っています。


一見バグがないように見えるのにどうしてもプログラムが動かない、よく調べてみたら、コードの中に全角スペースが入り込んでしまっていた、ということが良くあったので、それを TextMate 上で阻止する方法を調べてみました。


TextMate はデフォルトでは日本語が入力できないためだと思うのですが(日本語を入力できるようにする方法についてはTextMate を試してみた - yuum3のお仕事日記を参照)、日本人にユーザーが少なく、日本語のまとまった情報が少ない。


以下のエントリーで解説されている「改行前の無意味なスペースをハイライトする方法」を参考にして、全角スペースをハイライトできるようにしたのでその方法を紹介します。


» life.i.think: Trailing Whitespace in Textmate


TextMate のメニューから、Bundles > Bundle Editor > Edit Languages を選びます。


左メニューで Ruby を選択して、下のキャプチャのように適当な場所に invalid.zenkaku-whitespace を定義します。match の中身は全角スペース一個です。


bundle-editor.png


次に、(このウィンドウがなかなかみつけられなかったのですが。。) TextMate > Preferences を選び、Fonts & Colors タブを選択します。


fonts-colors.png


やや左下の方の + アイコンをクリックし、Element を追加、Zenkaku-Whitespace などと名付けたあと、Scope Selector で先ほど定義した invalid.zenkaku-whitespace を選びます。BG(バックグラウンドカラー)は適当に好みの色を選びます。


以上で設定完了。


以下のような感じで、全角スペースが紛れ込んでしまっても一目瞭然です。


environment.png


TextMate は強力なエディターだという話は聞いていましたが、これまでこういった便利機能は駆使しておらず、普通のエディタとしてしか使っていませんでした。これを機会にもっと使いこなしてみたいと思います。


作ってたのしい遊んでたのしい画像クイズサイト「ピクイズ(Piquiz)」

Google AJAX Search API を使い、簡単に画像や写真を使ったクイズを作って楽しめるサービスを作りました。


» ピクイズ(Piquiz) - 作ってたのしい遊んでたのしい画像クイズサイト



元々同じコンセプトで四択.comというサービスを去年作ったのですが、すっかり放置状態となっていたのを、「もったいない、私がテコ入れしますよ」と声をかけてもらった有限会社三恵さんと共同で開発し直しました。


Google 画像検索では、キーワードを入力してそのキーワードに関連した画像を検索します。ピクイズは、逆に検索された画像や写真を見て、それがどのキーワードで検索された画像かを当てるクイズです。


四択.com では管理者の僕だけがクイズを作成できるようにしていたのですが、作っているうちに、「これって遊ぶのもたのしいけれど、作るほうも結構楽しいじゃないか」と思い、その楽しさを味わってもらおうと、ピクイズではユーザーの誰もがクイズを作成できるようにしました。


キーワードの組み合わせを工夫することにより、例えば都道府県当てクイズ幕末人物列伝のような雑学クイズができたり、おすぎ と ピーコねこの名前を神業的にあてるクイズといったちょっとしたお遊びのネタ的なクイズを作ることができます。


ちなみに僕のお気に入りは、


» ピクイズ(Piquiz) - 印象派の画家たち


検索された画像がきれいにそろっていて美しい!


では、ピクイズのキモであるクイズの作り方をご紹介します。


まず、サイト左側の「ピクイズをつくる!!」をクリックします。ユーザー登録をしていなくてもとりあえず試しに作れるようになっています。


piquiz2.png


クイズのタイトルを決めます。


piquiz3.png


次にキーワードを入力していきます。このキーワードのひとつひとつが選択肢であり、正解の答えとなるキーワードでもあります。


piquiz4.png


今回技術面で一番工夫したところです。テキストエリアでカーソルを置いた行のキーワードを自動的に検出し、リアルタイムで画像検索の結果を右側に表示しています。この検索結果を見ながら、ちゃんと意図した画像が表示されるかを確かめるためです。


piquiz5.png


上のキャプチャのように、意図に反して、「apple」の検索結果としてコンピューターの apple の関連画像が表示されてしまいました。このようなときには検索の精度をあげるために、「apple fruit」のようにスペースのあとにキーワードを追加します。検索結果の精度をあげるのと同じ要領ですね。


piquiz6.png


各行の最初の単語だけが選択肢として表示されるので、「apple fruit」で検索していても選択肢として表示されるのは「apple」だけです。


あとは詳細やカテゴリ、タグ付けをご自由に。作成ボタンをボチッとクリックすればピクイズの出来上がりです。


piquiz8.png


楽しいクイズができたら、ブログにリンクを貼ったり、Twitter に発言したり、友達にメールを送ったりして一緒に遊んでもらいましょう。


piquiz101.png


最後にサイト名の由来を。。。といっても自明ですかね。


Picture(画像) の Pic と Quiz(クイズ) とを合わせて Piquiz です。企画面や文言・規約やレイアウトなどプログラマーが不得意とするすべての部分を担当していただいた共同開発者の佐藤さんの案で、とても気に入っています。


また、今回デザイン面でお手伝いいただいた Sasha さんには素敵なロゴを作っていただきました。


logo.png


途中中だるみしたところに、このロゴが決まり、俄然やる気を取り戻すことができました。やっぱり見た目大事です。


ほかにも id:Kanta さんには開発当初から使ってもらってバグ出ししてもらったり、妻にはユーザビリティテストで協力してもらったりと、今回はたくさんの人の協力を得てひとつのサービスを作ってみました。


ひとりで作る Web サービスもいいけれど、チームで作りあげるのも楽しいなと感じました。


» ピクイズ(Piquiz) - 作ってたのしい遊んでたのしい画像クイズサイト


よろしければどうぞ。


Kanji Fandom Facebook 版 on SiMPLE*SiMPLE

Kanji Fandom Facebook 版が SiMPLE*SiMPLE に載ってたのを発見!!


といってもキャプチャ画像の中の話ですが。。。


fb.png

↑ 真ん中あたりに Kanji Fandom のアイコンが!!


» FacebookがWindowsみたいになっていた | SiMPLE*SiMPLE


田口さん、ありがとうございます!!


外国人の名前を漢字に変換できる


» Kanji Fandom Facebook 版


の宣伝でした。通常の Web 版の


» Kanji-Fandom


もよろしければ、どうぞ。


「ハッカーの驚くほど多くは物書きとしても有能です」

Eric S. Raymond氏によるハッカーになろう (How To Become A Hacker)からの一節。



母語できちんと文が書けるようになること(わたしが知っている最高の連中を含め、ハッカーの驚くほど多くは物書きとしても有能です)。


「ハッカースタイル」の1つとして上記が挙げられている。


» 【急募】ウェブサービス開発のプログラマとデザイナー - p4lifeのメモ


を読んで、久々にこの「ハッカーは物書きとしても有能」の一節を思い出した。



ワイアードは,最先端の技術を盛り込んだ華やかなWeb2.0系サービスの開発を志向していません.

ユーザの視点に立ってサービスを設計し,その上で,利便性や使いやすさを実現するためにちょうど良いやり方を選択することが重要と考えています.


「ちょうど良いやり方」なんて、憎いこと書きます。


父親の面目丸つぶれ

衝撃!!もう引退かも。


Wii スポーツのボウリングを家族でやった結果です。


sany0016.jpg

↑長男圧勝、妻、次男、僕と続くの図


7歳の長男にはいつも負けてはいたのですが、4歳の次男にも負けてしまうとは。。。

しかも逆転負け。


(スコア結果を写真に撮ってブログに貼りつけて気づいたのですが、結果画面には名前が表示されないのです。これって、家族や友人の名前は公開したくないけどスコアだけは写真に撮ってブログとかに貼りつけたいというケースを考慮してのことなのでしょうか。だとしたら、よく考えられています。)


プロフィール

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

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

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

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

Email: webmaster at champierre dot com

Twitter @jishiha

最近のエントリー

アーカイブ