僕は発展途上技術者

Mac vs Windows のパロディ Ruby on Rails vs PHP のコマーシャル

Hi, I'm Mac もとい I'm Ruby on Rails で始まるコマーシャル。


よくできたパロディです。


Ruby on Rails vs Java -- ad #1 of 4


Ruby on Rails vs PHP - Migrations - ad #2 of 4


Ruby on Rails vs PHP - Organization - ad #3 of 4


Ruby on Rails vs PHP - Changing Database - ad #4 of 4


このなかで、最も共感したのは、三つ目の Ruby on Rails vs PHP - Organization - ad #3 of 4。


(フレームワークを使ってない場合に限り、そして他人が書いたコードの場合は特になのですが)ぐっちゃぐちゃでどこでどんな処理をしているのか見通しが非常につきにくいPHPに対して、整然としていて他人が書いたコードでもだいたいどこでどんな処理がされているかがわかりやすい Ruby on Rails という主張です。


わけのわからん SQL だらけ、と登場する PHP さんは嘆いていますが、僕が始めて他人の書いた PHP のコードを見たときにも同じ思いをしました。


今、Rails の開発案件でちょうど他人の書いたコードを読んでいるところですが、Rails なら構成はいつも同じなので、どこでどんな処理をしているかあらかじめ見当がつき、PHP のときとは段違いの読みやすさです。


Start Mac あるいは Switch to Mac ならぬ Start Ruby on Rails, Swicth to RoR ですかね。(一般的にPHP駄目って言ってるわけではないです。そんなこと言えるほど PHP も Ruby on Rails も知り尽くしているわけではないので。。。単に僕の経験の上では Ruby on Rails 最高、って意見ですので悪しからず。)


『田口元の「ひとりで作るネットサービス」探訪』に出させていただきました

ITmedia Biz.ID の連載記事『田口元の「ひとりで作るネットサービス」探訪』は好きな記事の一つでしたが、まさか自分が載ることになるとは。。。


» ITmedia Biz.ID:「弁当の買い出し」でPCの面白さに目覚めた――あとで行く・石原淳也さん


いやあ、うれしいですが、恥ずかしい。


2時間近くのインタビューを受けての記事なのですが、意図がものすごく正確に伝わっているのに驚きました。そして非常に綺麗にまとめられています。うまいなあ。


取材を受けたときに、自分のこれまでの歩みをふりかえったわけですが、今ある自分はさまざまな人との縁と力添えによって成り立っているんだなあ、と改めて実感しました。お世話になった方々、自分に影響を与えたみなさんに感謝です。


gem_server で rails の API ドキュメントを電車(ローカル)で読む

Rails 関連メモです。


以前参加した Rails ワークショップ で教わったこと。


Rails の API ドキュメントは gem_server を起動したあと、http://localhost:8808 で閲覧できる。


さらに、はてな secondlife さんのRDoc をインクリメンタルサーチする greasemonkey スクリプトを使えば超快適。


Rails をやり始めた方は絶対知っておいたほうがいい情報です。


僕は約1年間、ネット上のドキュメントを参照していました。もっと早くに知ってればよかった。。。


「あとで行く」で「みんなが決めたその他の分類」を表示するようにしました

「あとで行く」のアップデート情報です。


» あとで行く


「レストラン」などあらかじめ用意された分類とは別に、独自の分類(タグ)を各場所に付けることができるようになっています。その「みんなが決めたその他の分類」をトップページに表示するようにしました。


misctag.jpg


みなさん、なかなかユニークな分類を付けているようです。こちらから、自分のお気に入りの場所をみつけて、自分の「あとで行く」に追加していくのもいいかもしれません。


ほかにもいくつかバグやら細かな修正をおこないました。


キャッシュなど駆使して、負荷対策をおこなっていますが、サーバーのスペックが追いついていなくて、反応が重い場合もあるようでご迷惑をおかけしています。サーバーの移行も考えにいれています。なんとか、サービス開始時のようにサクサク動く便利ツールに、また戻していければと思っています。


スタイリッシュ、おしゃれ!な写真を撮って Nikon COOLPIX S50c をもらっちゃおう

先月からモニターとして使わせてもらっている Nikon COOLPIX S50c ですが、皆さんも手に入れられるかもしれないプレゼント企画のご紹介です。


「COOLPIX S50c」の「S」はスタイリッシュの「S」です。それにちなんでスタイリッシュな写真を募集します。あなたがスタイリッシュ、おしゃれ!と感じるものを何でも良いので撮って送ってください。


とのことで、詳しくはバナーをクリックしてご覧ください。


COOLPIX S50c読者プレゼントはこちらから!


案内だけでは、なんですので、僕が撮ったスタイリッシュな写真を。


dscn0155.jpg


すみません。全然スタイリッシュなじゃいんですね。


いまひそかにはまっています。


写真は NPO法人 日本けん玉協会 オフィシャル けん玉 TK16 master。


なんか、速そう or 強そうじゃないですか?


PCに向かって作業して、ちょっと一息ってときにいいんです、これが。


僕のレベルは「とめけん」(たまに穴を入れる定番の技ですね)ができる程度なので、六級といったところでしょうか。


つぎは「飛行機」ができるよう、日々特訓中。


なんのエントリーかわからなくなってしまいました。


あ、そうそう、よろしければ、これに勝るスタイリッシュな写真を送って応募してみてください。


参考:

» NPO法人 日本けん玉協会公式HomePage : 級・段位


「あとで行く」が POP*POP、CNET Japan に紹介されました

念願の POP*POP デビュー。


登録したリストは週末などに見てデートやらの計画を立てれば良いですね。これは素晴らしいアプリです。


» あの行きたかった場所をもう忘れない!『あとで行く』速攻レビュー! | P O P * P O P


掲載されたのち、アクセスが急増して、サイトが非常に重くなってしまいご迷惑をおかけしました。


Rails のキャッシュ機能を使いまくったり、いろいろと工夫して、負荷対策を施しました。


今のところは問題なく使用できるんじゃないかと思います。(また重くなってしまったらごめんなさい)


非常にありがたい百式攻撃をいただきました。


そして CNET Japan にも。



あとで行くは、実際の店舗やスポットなど「あとで行きたい」と思う場所を紹介しているウェブサイトを、位置情報と一緒に登録することができるブックマークサービス。


» 行きたい場所を簡単登録--位置情報付きブックマークサービス「あとで行く」


掲載していただいてありがとうございます。(POPFile のあまつぶさんに教えてもらわなかったら気づかないところでした。感謝!!)


ほかにも様々なかたのブログで紹介されました。皆さんありがとうございます。


トラックフィード & フレッシュリーダー を使って、「あとで行く」を紹介していただいたブログのほとんどに目を通していると思います。


以下そのなかからピックアップして、レビュー・ポスターで表示してみました。(サイドフィード社の宣伝しまくりです。サービス名のことがありますので。。。は冗談で、ほんと使いやすいすぐれもののツールばかりです。)
















ユーザーの声




▼すべて表示


generated by レビュー・ポスター






使っていただいているみなさんからたくさん要望をいただいています。すべてに応えることはできないと思いますし、個人サービスなので少しずつになっていくとは思いますが、どんどん改良して使いやすいサービスに育てていきたいと思っています。


行きたい場所を簡単登録、位置情報付きブックマークサービス「あとで行く」

ひと月ワンサービスシリーズの4月分をようやくリリースしました。


» 行きたい場所を簡単登録、位置情報付きブックマークサービス「あとで行く」


1.jpg


[05/13 追記] 「む、どこかで聞いたような名前。。。」というツッコミが聞こえてきそう。はい、このネーミングはもちろん、見ているウェブサイトを1クリックでそのままメール送信できる、大変便利なサービス「あとで読む」にインスパイアされています。というか、ネーミングのみならず、○○講座は欠かさず読んでいますし、a++様には開発合宿ではいろいろと教えてもらってインスパイアされまくっています。


ひと月で作るにはかなり重かったのですが(実は2月ごろから着手。3月にリリースすると予告していましたが。。。)、自分が使いたいサービスだったのでがんばって作りました。


「ちょっと面白い場所に行ってきましたよ」といった内容のブログを読んで、「お、ここ行ってみたいな」と思うことがあります。


でも、そういうのって結構忘れてしまって、せっかく休日がきても、「どこ行こうか?」とあてがないまま近場のいつも良く行く場所で済ませてしまったりします。


あるいは、僕の場合結構多いのが、テレビのグルメ番組とか見てて、「うわ、おいしそう。ここ行きたい!」と思うこと。


でも、やっぱりこれも忘れてしまうんですよね。


こういった日ごろ行きたいと思った場所を記録しておき、簡単に参照できるようなサービスがあればなと思っていたので、それを形にしてみました。


使い方は簡単。とくにブックマークレットを使う方法がすごく手軽なのでおススメです。


例に挙げるのは、「『はじめまして』の名刺展」に行ってきたよ という idea * idea の記事。(実際、これを読んで「行きたい」と思ったのですが、結局忘れちゃいました。)


このサイトを自分の「あとで行く」リストに登録する方法をご紹介します。


2.jpg


このページを開いているときに、あらかじめ設置しておいた「あとで行く」ブックマークレットをポチッとクリックすればいいのですが、その前に便利技のための準備を。


ページ中、場所を指し示すキーワードとなる部分をマウスで選択、ハイライトさせておきます。


住所が最適ですが、下図のように「印刷博物館」のような施設名でもうまくいくことがあります。(Google Maps の Geocoding 次第です。)


3.PNG


それから、「あとで行く」ブックマークレットをポチっとクリック。


4.PNG


そうすると「あとで行く」の画面が開きます。


チェックボックスになっている「分類」をポチポチ選び、自分でも入力したりしてから、「リストに追加」ボタンを押します。


5.jpg


次の画面では Google Maps を利用して、サイトが示す場所を登録するのですが、さきほど「印刷博物館」を選択していたおかげで、あらかじめ「印刷博物館」の候補と思われる場所にマーカーが立っています。


この場所であっていれば、ほとんど何もする必要はありません。


「更新」ボタンを押すだけです。


6.jpg


以上で終わり。


あとは休日が近づいたときに、自分のリストを眺め、次行く場所をリストの中から選べばいいのです。


これって、あらかじめ2分で終わるタスクをリストアップしておき、空き時間ができたらそのリストの中からタスクを選んでこなすというライフハックの手法と似てるな、と思ったりします。


今回かなりがんばって作りこんでみたので、工夫した部分を紹介させてください。



  • ユーザー登録って面倒ですよね。それに個人の運営するウェブサービスだとかなり信用してもらえないと登録してもらえなそう。そこで、はてな認証APIを使ってユーザー管理ははてな株式会社に丸投げしました。はてなユーザーなら登録なしに即使えます。信用の話に関しては、僕よりはてなの方がはるかに信用できますでしょ。ユーザー登録の仕組みといった面倒な実装も不要、プライバシーポリシーとか書かなくてよいしで、良いことばかりです。

  • 良く知っている人何人かに声をかけてあらかじめリリース前に使ってもらったのですが、軒並み好評だったのが、最寄り駅表示機能。これには、SimpleAPI 第2弾 最寄り駅Webサービス を使っています。第1弾の ウェブサイトサムネイル作成API も使っていて SimpleAPI づくし。簡単に利用できてすばらしいです。

  • 以前、百式 PR Board のユーザビリティ会議に参加させてもらって、ユーザビリティがいかに大切か、そしてサイトのユーザビリティ向上にはユーザビリティテストが非常に効果があることを学びました。今回、(ごく普通のネットユーザーである)妻に協力してもらい、サイトを触ってもらって、その様子を横から眺め、わかりにくい部分などを聞き出すというユーザビリティテストの真似事をやってみました。「タグって何?意味不明」という言葉から、「タグ」⇒「分類」と言い換えてみたり、日ごろネットに親しみ過ぎてしまって気が付かなくなっている部分を数多く指摘してもらいました。これからもこの試みは続けていきたいと思っています。

  • [あとで行く]というタグを付けておくと、はてなブックマークから「あとで行く」に自動でブックマークがインポートされます。気になるサイトをブックマークする習慣があるはてブユーザーには、はてブに加えて「あとで行く」にブックマークするという二度手間になることなく使っていただけます。


やっぱり、自分が使いたいサービスを作るのが一番です。開発のモチベーションがものすごく高くなります。


とはいえ、もちろんできるだけ多くの人にも便利に使ってもらいたい。


機能要望やバグ報告があればこの記事にコメント、トラックバックしていただいてもいいですし、Lingr にサポート用会議室を用意したので、よろしければどうぞ。

("サービスをひとつにまとめよう!"Plnet.jp から拝借したアイデア。こちら知人がやっている個人のサービス。便利です)


» 「あとで行く」サポート会議室 (at Lingr)


現在はコンタクトフォームよりお問い合わせを受けております。


» 行きたい場所を簡単登録、位置情報付きブックマークサービス「あとで行く」


Nikon COOLPIX S50c を使ってPCレスで写真アップロード(Wii編)

突ですが、Wii が凄い。


GW期間中、実家に持っていって Wii スポーツを遊んだのだが、僕の親から弟、そして5歳の息子までみんな夢中。


三世代が手をとりあった姿を描いた Touch! Generations というロゴが Wii ソフトには付いているのだが、まさにそのロゴどおり、三世代がワイワイ仲良くゲームを楽しんでいた。


» Touch! Generations - Wikipedia


たとえば対戦するとき、手加減やハンデは必要ない。


5歳の息子でも、ゲームなんてほとんどやらない僕の両親でも、すぐに思い通り操作できるようになるすばらしいユーザーインターフェースを Wii は備えている。


て、話変わってデジカメの話。


デジカメによってアナログカメラとはまったく違った写真の楽しみ方ができるようになった。


残りフィルムを気にしないでよくなったから失敗を恐れず何枚でも撮れるようになったし、遠く離れた友人や親戚に簡単に写真を送れるようになったりと、デジカメがもたらした変化はさまざまだ。


その変化の中で、これは子供がいる親じゃないとあまり気づかないことだが、デジカメのおかげで子供でも簡単に写真を撮ることを楽しめるようになった、というのがある。


アナログカメラの時代は、フィルムは高価なものだ。


無駄遣いしちゃいけないから、まだ小さな子供がカメラを持たせてもらうことなんてほとんどなかった。


しかし、デジカメならばフィルムなんて気にせず、どんどん失敗していいのだから、ちゃんと撮れなくたっていくらでも撮らせて練習させることができる。


5歳の息子にデジカメをもたせたらとても楽しんで写真を撮っている。


花や人物、犬を撮ってみたり。


ぶれて何が写っているのかわからない写真や、自分の指でレンズをふさいでしまった写真に紛れて、たまに非常に良く撮れた写真があったりするのだ。


低いアングルから独特の角度で撮られた写真が面白かったりする。


要は構えてシャッターボタンを押すだけなのだから、本来は子供でも写真を楽しむ権利はあったのだ。


子供でも写真を楽しむことがデジカメによってようやく可能になったと言える。


同じことは子供だけでなく、一般に機械の操作がそれほど得意でないシルバー世代にも言えることなんじゃないかと思う。


どの世代でも楽しめるようになった、というのは、前述した任天堂の Touch Generations のロゴに通じる話だ。


キーは操作性、ユーザーインターフェースだと思う。


うやく本題。


Nikon COOLPIX S50c が任天堂のようにどの世代にも受け入れられることを思想として持っているのかどうかはわからないけれども、可能性としては良い線をいっていると思う。


理由は、PC の操作を必要とせず写真をアップロードできるからだ。


PC は幼い子供、そして特にシルバー世代を阻む大きな壁だ。


Nikon COOLPIX S50c を使ってPCレスで写真アップロード(設定編)で紹介したように、Nikon COOLPIX S50c で撮った写真は、カメラの充電中に自動的に Nikon のサーバーに転送されるため、写真をアップロードするというプロセスではとりあえずこの壁を避けて通ることができる。


いやしかし、写真を見るには Nikon のサーバーにアクセスして閲覧するためのブラウザが必要、やっぱり PC がいるじゃないかという話だが、ここで、Wii が登場する。


Wii には「インターネットチャネル」というインターネットに接続して、ウェブサイトを閲覧できる機能が付いている。


ブラウザは Opera だ。


アドレスを打ち込めば、PCのブラウザで見られるものとほとんど同じものが、リビングのテレビで見られるのだ。


いや、なかにはちゃんと見られないページはあるけれども。。。


そこで、実際に Nikon COOLPIX S50c で撮った写真を PC レスでアップロード、それを PC レスで閲覧、すなわち Wii で観ることができるかを実験してみた。


電中に転送された写真は、デジタルフォトアーカイブ&共有サービス Nikon COOLPIX CONNECT 2 で見る事ができる。


COOLPIX CONNECT 2 に Wii の Opera ブラウザからログインできて、ちゃんと写真を表示できれば、完全に PC レスでアップロードから閲覧が可能となるわけだ。


まずは、COOLPIX CONNECT 2 のアドレスを打ち込んで、ページ自体がちゃんと表示されるかどうか。


dscn0016.jpg


上記をごらんのように、問題なく表示できた。


次はログイン。


ユーザー名とパスワードを Wii リモコンで入力するのは多少面倒だが、そこは Wii の問題である。


問題なくログインできた。


そしていよいよアルバムにアクセスして各写真がちゃんと表示されるかだが、


dscn0015.jpg


この通り、問題なく見られた!!


めでたくちゃんと閲覧できて何の問題もないように思えるのだが、しかし、ソファにごろりと横になりながら、リビングのテレビに映し出された写真を眺めるにはスライドショー機能がどうしても欲しい。


そして、COOLPIX CONNECT 2 にはいまのところこのスライドショー機能がない。


このため、写真を次々と閲覧するためには Wii リモコンを駆使していろいろクリックしなければならず、これはどうしたって疲れる。


惜しい!!


うーむ、これは自分でちょっと作ってみるしかないかなあ、という考えがちょっと頭をもたげる。。。


論。


Nikon COOLPIX S50c で写真を撮る -> 充電ケーブルにつなげる -> 写真はサーバーに転送 -> Wii の電源を入れ、インターネットチャネルにアクセス -> COOLPIX CONNECT 2 につなげて写真を閲覧


この一連の流れを PC なしで実現できた。


どんな人でも操作できるかの良い指標になるので、これを5歳のわが息子が助けなしで一人でできるかと考えてみると。。。 COOLPIX CONNECT 2 の操作がちょっと面倒そうだができないこともない気がする。


カメラ本体とサーバー側のアプリケーションともにユーザーインターフェースを磨いて洗練させていけば、老若男女、広いユーザー層に受け入れられる可能性は大いにあると思う。


Rails の migration ファイルで decimal 型のカラムを作成する

メモ代わりのエントリー。


Google Maps 上にデータをプロットしたくて、緯度と経度を DB に保存したいのだが、Rails の migration ファイルで



def self.up
create_table :tests, :force => true do |t|
t.column :lat, :float
t.column :lng, :float
end
end

として、float 型の lat と lng カラムを用意した場合、誤差が生じて、実際にプロットしたい場所とずれて表示されてしまう。


解決方法はというと、Rails のバージョンが 1.2.2 以上ならば、:decimal 型がサポートされているとのことなので、



t.column(:price, :decimal, :precision => 17, :scale => 14,
:default => 0.0, :null => false)

のように指定できる。

(depot/iterate/TaskA_Product_Maintenance - Study Ruby On Rails - Trac より)


rails 1.2.2 を使用できない場合は、



def self.up
create_table :tests, :force => true do |t|
end
execute "ALTER TABLE pages ADD COLUMN lat DECIMAL(17,14)"
execute "ALTER TABLE pages ADD COLUMN lng DECIMAL(17,14) AFTER `lat`"
end

のように execute 文で直接 SQL 文を流せばよい。

(UsingMigrations in Ruby on Rails より)


Nikon COOLPIX S50c を使ってPCレスで写真アップロード(設定編)

100SHIKI PR Board が主催するワイヤレスピクチャー会議に参加してきました。


Nikon製の無線LANを搭載したデジタルカメラ COOLPIX S50c を一ヶ月間モニターさせていただけることになりました。


目玉はなんといっても、無線LAN搭載で PC を介さず、直接 Nikon の写真サーバーにアップロードできるところ。無料で 2GB まで保存可能なので普通のユーザーにとっては十分でしょう。


ということで、そのPCレスで写真がアップロードできるところまでを今回レポートします。


写真をサーバーに送信する機能は COOLPIX CONNECT と名付けられています。この COOLPIX CONNECT のメニューを呼び出すと「SSID 検索中」と表示され、飛んでる電波をキャッチしにいきます。自宅の無線LANの SSID がちゃんと表示され、「おお、ちゃんと見えてる!」となるわけですが、用心深い人なら普通 WEP などでデータを暗号化していると思うのでここでキーの入力となります。


WEP だと、数字とアルファベットの組み合わせで計26文字。これをひたすら打ち込むのは結構骨が折れます。利便性と引き換えにセキュリティを取っているわけですけれども、この WEP キー打ち込みという作業はなんとかならないものか、といつも思います。


COOLPIX S50c だと、数字、アルファベット小文字、大文字、@マークなどの記号、と4つの入力モードがあるのですが、WEP キーの入力に使うのは数字とアルファベットは a から f だけ。ならば、この16文字しか入力できないモードに自動的に切り替わってくれるという一工夫があれば、「お、なかなか気が利いているな」と思わせ、ポイント高くなるのでは。(まあ、わかる人にだけですけど)


さらに我が家の無線LAN環境では、MAC アドレスフィルタリングもかけています。これは指定した MAC アドレスを持った無線インターフェースからの電波しか接続を認めないというルーター側の設定。


COOLPIX S50c の接続を認めるためには、カメラが持つ MAC アドレスを知る必要があるのですが、これはさすがに勘を頼りにあちこちメニューをいじってみても見つけることはできませんでした。


マニュアルにはしっかり書いてありました。セットアップメニューの[バージョン情報]のところで確認できます。


img094.jpg


こうして2つの壁を通り抜けようやく接続完了。


すごく便利なのは、充電ケーブルを接続すると、自動的にそれまで撮った写真がサーバーに転送される機能です。これがあるおかげで、SDカードを抜いて PC に差し込み、ローカルに保存するなり、写真サービスにアップロードするなりして写真を移動するという手間がまったく必要ないのです。


最初のセットアップは面倒ですが、そこを代わりにやってあげれば、PCに不慣れなために、デジカメで写真撮る -> メモリを写真屋に持っていく -> プリントアウト というアナログのカメラとほとんど変わらない行動パターンの方々(たとえば僕の親とか)にも、新しい楽しみ方を提案できる可能性を持っていると感じました。


そんなところが第一印象。


PCレスをつきつめて、今度は Nikon COOLPIX S50c で撮った写真を Wii で見てみるという試みをやってみようかと思っています。これができれば、写真撮る -> 自動的にサーバーに写真を転送 -> リビングで写真を見る という完全 PC レスを実現することができます。


プロフィール

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

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

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

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

Email: webmaster at champierre dot com

Twitter @jishiha

最近のエントリー

アーカイブ