僕は発展途上技術者

僕が Ruby on Rails を絶賛する理由

» GOGA - doodle開発記: Ruby on Railsをめぐる二つの見解


を受けてのエントリー。


人の価値観とか何が誰にとってぴったり合うかなんてことはケースバイケース。「この映画がすごくいいよ」とか「この本絶対面白いから、読んでみて」と人に薦めたって、「絶対」なんてことはありえないというのが僕のスタンスです。だから自分の価値観を人に押し付ける人を見ると「何言ってんだか」と思ってしまう。


でも、自分と境遇が似ていたり、他の面での趣味趣向が同じ場合には、薦めたもの薦められたものが一致する可能性はかなり高い。だから、自分の好きなブログを読んでいて、そこで薦められていた本を手に取ってみたらばっちりはまることが多いのである。


で、Ruby on Rails の話に戻るのだが、



ちょうどMAの輪でも前日の呑み会でRails入門開催決定なるほどの盛り上がりをみせ、ついにジュンヤさんが本当にRoR解説サイトまで作ってしまったり、Skypeでの講義まで始まっているようなのだが、かつて私がPerl/CGIからPHPに移行したときのような凄まじい生産性の向上と魅力的な感動がRoRにはあるのか尋ねたところ、彼は「それ以上だ」と答えた。


とある通り、最近会う人会う人に「Ruby on Rails いいよ!」と薦めてきたのだけれど、多少考えなしで、自分が「自分の価値観を人に押し付ける人」になっていたんではないかと思ってしまった。


人にものをすすめるときには、ちゃんと自分の場合にはこうこう、こういう理由でぴったりはまったんだけれど、あなたの場合にはわからないが、僕の考えと多少共感する部分があるのなら、ぴったりとあう可能性は高いですよ、ということをある程度伝えながら薦めたほうがいいなと思うのでした。


僕が Ruby on Rails と出会ったのは、まだ Web プログラミングを本格的に始めて約一年経ったときでした。PHP 歴一年だったのですが、別段 PHP を使いこなしているほどってわけでもなく、PEAR のライブラリはあまり使ったことがなく、フレームワークもほとんど触ったことがありませんでした。


なので、言ってみたら、失うものがほとんどない状態だったのです。


自分のスタイルというのが確立されていなかったので、変数の名前だとか共通で使う関数はどこに置くのかといったことを型どおりにはめてくれる RoR は非常に都合がよかったのです。


また、SQL を書かずに DB にアクセスできる ActiveRecord やページネーションがわずか数行で書けるといったところに魅せられました。PEAR ライブラリを駆使すれば、PHP でも同等のことができるのかもしれないのですが、当時そういう知識がほとんどありませんでした。


デフォルトでそういった便利機能が使えるというところも気に入りました。migration やテスト機能は、すでに PHP で独自にそうした機能を実装してしまった PHP ハッカーの方々には RoR のそれは別段魅力的には見えないのかもしれませんが、インストールした先からいきなり使えてしまうというのは僕にはとても便利だったのです。


僕は自分は文系プログラマーなんじゃないかということを最近思い始めました。ものがどういう風に動いているかということには正直あまり興味がないのです。ある程度ブラックボックスで考えて、これとこれをこう組み合わせたら、自分の望む機能が実現できて、つかってくれる人が「おおこれは便利!」と喜んでくれそう、という思考を持つのです。


だから、


Screencasts of Ruby on Rails


の Creating a weblog in 15 minutes (15分でBlogアプリを作ってしまう) の動画をみたとき、これはもうまさに僕の欲しかったものだ、と思ったものでした。


実際に僕がやった場合には、まあその10倍かかったとしても、150分で頭の中にあるアイデアをこんなに素早く形にできたら最高だ、と考えたのです。


まとめると、僕のように


1. PHP で築いた資産があんまりないよという方

2. 自分でフレームワークとか作っちゃう、あるいは、世の中で使われているライブラリなんか使えない、自分でそれよりも効率よいものを作ってしまうぜ、というハードコアなエンジニアでない方

3. ある意味動けばOKというスタンスで自分のアイデアを素早く形にしたいという方


には断然 Ruby on Rails がおすすめです。


あと、RoR をすすめるとき、セットで「RailsによるアジャイルWebアプリケーション開発」を教科書として薦めておきます。


この本がなかったら、Rails もここまで広まらなかったんじゃないかと言えるほどの最高の良書だと思っています。


最近、第2版が出版されたのですが、まわりの Rails エンジニアで第1版を持っていたんだけれど第2版も買ってしまったと言う人を何人も知っています。僕もたまらず買ってしまいました。


dscn0855.jpg


実際には内容がかなり書き換えられて良くなっているというのはあるのですが、版が新しくなったから買った本なんて初めてです。



RailsによるアジャイルWebアプリケーション開発 第2版



Dave Thomas David Heinemeier Hansson Leon Breedt Mike Clark Andreas Schwarz James Duncan Davidson Justin Gehtland 前田 修吾
オーム社 (2007/10/26)
売り上げランキング: 2372


おすすめ度の平均: 5.0

5 1日に少しの時間で成果が分かる1冊
5 Ruby on Rails 入門の決定版!






SaaS World 2007 に集結

来週の水曜・木曜(11/28・29)に開催される SaaS World 2007 にて、リクルートが出展するMashup Award のブースで、受賞作品をデモすることになりました。


» 音声認識でハンズフリーレストラン検索 「声探」


or/and


» しゃべって覚える単語学習サイト「英声(ええこえ)」


をデモします。


音声認識の部分はどうやっているのか、よく聞かれることなので、そのあたりの秘密(ってほどでもないのですが)も披露できればと思っています。


Mashup Award 3rd で最優秀賞を受賞した ONGMAP.COM の yuki さんのブログで他の参加者が紹介されています。


» blog@ongmap.com » SaaS Worldに集結しませんか?

» blog@ongmap.com » SaaS Wolrd続報


マッシュアップサイト開発者ならだれでもデモを行う側として参加できるようです。


» SaaS Worldでマッシュアップをアピールしませんか? : お知らせ一覧 : MASHUPEDIA - マッシュペディア - : Web API x Mashup


より参加表明できます。


つくるぶガイドブログ: Rails で楽々ソーシャルブックマークの仕組みを作る

» つくるぶガイドブログ: Rails で楽々ソーシャルブックマークの仕組みを作る


を書き終えました。



今回は以下のような流れで基礎となるソーシャルブックマークの仕組みを作っていきます。


1. モデルの作成

2. フォームのエラー処理

3. ブックマーク作成の処理を整える

4. データが空のときの画面デザイン


毎回長文になってしまうのですが、それでも結構はしょって書かざるをえません。


もしわかりにくい部分があれば、つくるぶのブログの方に遠慮なくコメント or トラックバックをいただければと思います。


BlogNation Japan Launch Party に行ってきて、決意したこと

7ns.jp の yuki さんに誘われ、blognation Japan の Launch Party に行ってきました。


blognation は元 TechCrunch の人が立ち上げたブログメディア。ユニークな点は、各国に特派員がいて、それぞれの国の最新テック事情を伝えていくというところ。Japan は Launch したばかりということで、これから日本のニュースを英語で伝えていくようだ。


以前、ウノウ時代に似たようなコンセプトで jspy.us というブログを立ち上げたのだけれど、残念ながら半年ほどでサービスを終了した。コンセプト自体は面白いと思ってはじめたものだったので、blognation Japan にはぜひ期待したい。


パーティは、日本人が半分、外国人が半分ほど。yuki さんが Mashup Award で最優秀賞に輝いた ongmap.com をデモしていたのだけれど、ちゃんと英語版が用意されていてさすが。


パーティであまり話せなかったんだけれど、参加していた Serkan Toto さんの Web 2.0 Expo に関するレポートを読んで、うちのめされました。Web 2.0 Expo、僕も15日に展示を見ましたが、VERY low level of internationalization という言葉はまさにその通り。パンフレット、スライド、そして説明に立つガイドも、海外から展示会を見に来る方々をまったく意識していないと言わんばかりで、ほとんどすべての情報が日本語のみ。


あとで行く」など、いままで自分が作ったサービスを、まずは英語版をちゃんと用意しないと、と決意するのでした。


MAの輪のみ会と Rails 入門 on Skype

MA(Mashup Award)の輪、


ONGMAP.COMのyukiさん

出張JAWSの黒田さん

バスでお出かけMAPセールスガジェッツみんなの水遊びMAPのCALTA Projectさん

authrのuchiyama2000さん

doodle(ドゥードゥル)の株式会社ゴーガ(GOGA, Inc.)諏訪研究所さん

フォト蔵 for Skypeののどぐろさん


というそうそうたるメンバーの集まりに混ぜていただきました。


歴代最優秀作品受賞者の yuki さん、黒田さん、CALTA Project さんが並んで座っていて圧巻。


この三人を含めた集まったメンバー達で次の Mashup Award に出品しよう、なんてすごい話がでたりして、もし実現したらそりゃファミスタのメジャーリーガーズ級の反則だろ、と思ったりしました。


メンバーがメンバーなだけに、非常に刺激を受けた楽しい時間を過ごしました。みなさんありがとうございます。


これだけの人たちを集め、幹事役をつとめられたのどぐろさんには特に感謝です。


そののどぐろさんが最近 Rails を始めたというので、応援する意味で、のどぐろさんの質問に Skype で答え、その会話をそのままブログにするという


» Rails 入門 on Skype


というコーナーを別ブログに設けました。


» MVC ってどういうことよ?


が最初のエントリー。


Skype の会話がそのままブログのネタになって楽ちん。


つくるぶガイドブログ: ひとりサービスの雛型をつくる

» つくるぶガイドブログ: ひとりサービスの雛型をつくる(リキッドレイアウト、GetText、Acts as Authenticated)


を書き終えました。



今回は、基本的なレイアウトを決め、英語版もすぐリリースできるよう多言語化の用意もしておき、ログイン機能を整えた上で、ひとりサービスの雛型として次のサービスを作るときにも再利用できるものを作ります。


サイトも作りながらなので、えらい時間がかかります。まあ、楽しみながら書いているので、いいのですが。。


Ruby から Skype API を使用できる Ruby4Skype を速攻試してみた

Skype Developer Conference 2nd で Twitter4Skype を開発してアジアベスト賞を受賞した bopper さんがやってくれました。


受賞式後の懇親会でトロフィーにビールをついで一気に飲み干すところからして、只者ではないと思ってましたが、公約どおり Skype API を Ruby から使用できるライブラリ Ruby4Skype を公開してくれました。


» Ruby4Skype


すでに一週間前にリリースされていたとは。。。のどぐろさんのブログに書かれていたのをうかつにも見落としてました。


これを使えば、いろいろと面白そうなものが作れそう。久々わくわくしています。


さっそくインストールしてサンプルを動かしてみました。かかった時間はわずか10分ほど。


授賞式のときに bopper さんが、壇上でちゃちゃっとコードを書き、リクルートの Hotpepper API を使い Skype でレストラン検索をおこなって聴衆を驚かせていましたが、なるほどこのライブラリを使えばあっという間ですね。すごい、すごい。


手順を紹介。


前提として Windows に Ruby がインストールされていることが必要です。(もちろん Skype も)


インストールページよりライブラリをダウンロード。tar 形式ですが何とか展開します。


展開先にサンプルプログラムを置けばそのまま Skype API にアクセスできるのですが、今後どこからでもこのライブラリを使えるようにするために、lib 以下のフォルダ構造が合うようにファイルを c:\ruby\lib 以下に移します。


i386-msvcrt\swin.so が上書きされるので、念のために元の swin.so を _swin.so などと名前を変更しておきます。


hotpepper.rb などと適当に名前を付けたファイルを作成し、サンプルページの Hotpepper Chat Robot のコードをコピペします。


このサンプルを動かすには Hotpepper API Ruby 向けラッパーが必要なので、たたみラボのページからソース一式を入手します。tar 形式のファイルを展開し、lib 以下の hotpepper_api.rb を c:\ruby\lib\ruby\site_ruby\1.8 に移動しておきます。


サンプルを実験するには Skype アカウントが2個必要です。Skype を起動し、Ruby4Skype 用に用意した別アカウントでログインします。


この状態で、さきほど作った hotpepper.rb をコマンドライン上から


ruby hotpepper.rb


で起動。初回は ruby.exe が Skype と連携しようとする許可を求めてくるので、許可します。


別にもうひとつ Skype を立ち上げ、そちらは通常使っているアカウントでログインし、Ruby4Skype 用のアカウントにチャットで


#search 新宿


などと話しかけます。


すると以下の通り、新宿界隈のレストランを案内してくれます。


ruby4skype.png


家のマシンで Ruby4Skype 用アカウントの Skype を立ち上げっぱなしにしておけば、外から Skype でそのアカウントに話しかけていろいろ命令を実行させることができそうです。


Skype 2.2 for Windows Mobile なんていうのもあるようなので、W-ZERO3 からもアクセスできるかも。開発意欲がそそられます。


リクルートのつくるぶガイドブログの執筆を始めました

最初なので力入っちゃいました。



Ruby on Rails を使ってなにか Web のサービスを作っていく過程を実況中継しつつ、毎回いくつか役に立つ Tips を盛りこんでいけたらと考えています。


» Ruby on Rails を使ってひとりでサービスを作ってみよう


ブログを書きながら、同時に、さぼりがちとなってしまっているひと月ワンサービスを達成してしまおうという魂胆です。


Rails Apache + FastCGI 環境構築ではまる

はまりました。


はまって Google で検索してみても解決方法が見つからなかった場合は自分で提供、Google に貢献。


別ブログにまとめておきました。


» On the Rails Rails Apache + FastCGI 環境構築のはまりパターン


Skype Developer Conference 2nd に参加してきました

Mash up Award 3rd で Skype 賞を受賞したのがきっかけとなり、Skype Developer Conference 2ndに参加してきました。


実は、受賞作品では Skype と Web サービスを連携させてはいるのですが、いまだ Skype API には触ったことはないのです。なので、カンファレンスでおこなわれた API の説明や、実際に動いているアプリケーションのデモは非常に興味深く見させていただきました。次こそはぜひとも Skype API、使ってみたいと思います。


特に Skype のマッシュアップアワードのアジア部門に輝いた作品の一つ Twitter4Skype は非常に面白いです。僕は Twitter はほとんど使ったことないのですが、その理由の一つは Twitter のページを開いたままブラウザを常に立ち上げて おくというのがどうもしっくりこなかったから。それが Skype でメッセージを送ったり受けたりできるのなら、利用するかもしれません。さっそく登録してみました。


写真はその後の懇親会で Twitter4Skype を作った bopper さん、Mash up Award 3rd の方で フォト蔵 for Skype を作ってウノウ賞を受賞したのどぐろさんと一緒に取ったいわば Skype マッシュアッパー達の記念写真。


ちなみにフォト蔵の写真を Skype のアバター写真に表示してくれるのどぐろさんのフォト蔵 for Skype、結構気に入っています。おかげで久々フォト蔵にアクセス。最近撮る写真は子供の写真ばかりで、公開することはせずに親や親戚が集まったときにもっぱら Wii で見ていたのですが、下に貼ったようなブログパーツやフォト蔵 for Skype 用に公開写真をフォト蔵にアップロードするのも結構いいなと再認識しました。


トロフィーにビールついで飲んじゃう bopper さん。若い。↓


プロフィール

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

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

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

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

Email: webmaster at champierre dot com

Twitter @jishiha

最近のエントリー

アーカイブ