rubyの過去記事

Posted in Web, ruby at 16:36:48 by ジュンヤ

  • 午前中、Regional RubyKaigiのご報告のあと、上海のRailsコミュニティー! 日本がぼやぼやしている間に、上海はアツイ!Hello World From The Other Side Of Earthと続けざまに海外の方(上海の方は日本人ですが、発表は英語)のセッションを特別会議室で聞く。通訳急募というIRC上のリクエストに答えようかとちょっと迷ったのだが、躊躇してしまった。
  • RubyをつかったiPhoneアプリケーション開発。Ruby で開発できたら楽そうだよなあ、でも Objective C の各メソッド名などが長いのはどうにもならない。デバッグ用に使えるかな。
  • Take the Red Pill。Ruby 会議に昨年初めて参加したとき、そのクオリティの高さに驚いた。Ruby 会議の数倍もお金がかかっているコンファレンスなど今まで何回か参加したことがあったけれど、そのどれよりも素晴らしく、またプロフェッショナルさを感じたのだが、その裏での苦労、苦悩が感じ取れたセッションだった。
  • 基調講演: Rubyと私、そして日本Rubyの会。高橋さんは飄々とした見た感じとはちょっと想像できないんだけれども、熱くそしてエネルギッシュな人だ。Ruby コミュニティのこれまでの歩みがわかり、数々の人たちの努力と情熱のおかげがあって、こうしてすばらしいカンファレンスができるまでにコミュニティが育ったことを思い知らされた。

1日目、2日目と当日あるいは翌日にまとめを書いたあと、3日目のを書かずにいるのも締まらないと思い、時間を置いて書いた。そのため、上のまとめは全然うまく書けていないと思う。

そんなエクスキューズはさておき、Ruby 会議全体の感想。

これまでのまとめでも何回か触れているが、数々の人の努力と情熱があって Ruby が育ち、そして Rails が生まれ、それが世界中に使われるようになり、僕もそれでめしを食っている。これってほんとうに奇跡に近いと思うんだけれども、それを可能にした人々に感謝し過ぎてもしたりない気がする。

一般の人に、オープンソースというものがあって、いまや多くのサーバーの OS は無料で手に入り、開発言語や便利なソフトウェアも無料、それらを無償で開発・メンテナンスしている人々がたくさんいる、という話をしてもまだまだ信じてもらえないはず。僕も、POPFileというオープンソースのプロジェクトに日本語化という形で関わるまではそうだったと思う。でも、やってみたらそこにはまったく違う世界があったし、そして僕の世界も変わった。6年前に POPFile のパッチを初めて送ったときが僕が Red Pill を飲んだときだったんだと思う。

そこでは、お金という人類が生み出した便利な道具だけでなく(「でなく」と書くかわりに「だけでなく」と書くようにした。だってやっぱりお金なかったら食っていけない)、楽しいとか好奇心とか人の役に立ちたいという善意で動くひとたちがいて、それがみるみるプロダクトを完成させる、という現実に見える結果を生み出していた。おおげさでなく、僕はそこに人類は進化してついにここまできたんだという印象を持った。

Ruby 会議で言われていた「得も言われぬいい感じ」というのは、僕にとっては、最初にオープンソースに関わったときに感じた「良い感じ」と同じものであり、僕の原点を思い出させてくれる。

さてさて、とはいえ、「いい感じ」とか「楽しい」とかばっかり言っていても食っていけないのであり、またその「いい感じ」も継続的に維持はできないのだから、僕にできることとは Ruby -> Rails を使って価値を作り出し、食っていき続けること。Rails を使って学んだ知識をブログで公開すること。それと、相対的には人よりも得意だと思う英語を使って、Ruby のコミュニティに恩返しをすることだな、と思っている。IRC上の通訳を躊躇したことは反省していて、これからはもっと積極的に日本語 -> 英語、英語 -> 日本語へのブリッジ的役割でコミュニティに関わっていきたいと思っている。


Webカテゴリの最近の記事             

Posted in Web, ruby at 16:20:25 by ジュンヤ

1日目に引き続き箇条書きで。。。

  • Ruby 1.8 のゆくえRuby 1.9.2ロードマップ。Ruby 1.9 に移行しようか、どうしようかなあ。
  • ウノウのときの僕の師匠、btoに再会。昼食も一緒に。いやあ、Ruby 会議ではいろんな人と再会できて楽しい。bto さんはEIR(客員起業家)として新しいサービスを開発中。応援してます。
  • まつもとさんによる基調講演。「感謝」という言葉が僕にとっては印象的。いま僕がこうしてフリーランスで仕事できているのは Ruby をつくったまつもとさん、まつもとさんも言及していましたが Ruby に貢献しているコミュニティの方々全員なんだよなあ、と改めて感じました。
  • Lightning Talks Part 2。Lightning Talks 後に万葉ブースで遊ばせてもらいましたが、RomanticRuby! で作ったギャルゲー、よくできてる。途中出てくる(というかこれがメイン?)Ruby の問題に全滅でしたが。。。(おかしいなあ、一年前はちゃんと通ったんですが。。)
  • 調布の花火大会があるので、早めに退散。自宅のベランダから、ほんと目の前でみられるという特等席で親戚も集まるので、Ruby 会議よりそちらを優先です。

Webカテゴリの最近の記事             

Posted in Web, ruby at 15:03:03 by ジュンヤ

気負って書こうと思うとなかなか書けないので、もう箇条書きで。。

  • 会場、今年は神保町。実質自宅から一本で行けるのでとても楽になりました。
  • 懇親会について, 会場までの道のり動画 - RubyKaigi日記(2009-07-16)の動画のおかげでまったく迷わず到着。すばらしいアイデア。
  • 30min.のiPhoneアプリで検索してひっかかった、学士会館のカレーが昼食。大正か明治の雰囲気。
  • Using Git and GitHub to Develop One Million Times Faster。rebase とかちょっと込み入ったことは全然わからなくて git を使いこなしてはいないので、Apress - Pro Gitで勉強しようかなあ、どうしようかなあ。
  • Pragmatic Patterns of Ruby on Rails - 現場で役立つRuby on Railsパターン万葉大場さんのプレゼン。「ARオブジェクトから絞り込むと良い」とか「ロジックをコントローラーでなく、できるだけモデルに書く」など役に立つお話。「REST から逃げない」は耳が痛いなあ。自分プロジェクトではいままでどうしても REST から逃げちゃっているので。。
  • 『エンタープライズRails』に学ぶ企業ユーザのためのRails活用の極意。高井さんはプレゼンがうまい。かつ、内容も充実。データが不整合を起こしてしまわないよう DB 側で制限をかけるなど、実践的なお話。
  • From Rails to Rack: Making Rails 3 a Better Ruby Citizen。ちょっと聞きにくく、内容もいまいちついていけなかった。Rails 3 ではデフォルトのコンポーネントに加えてほかのコンポーネントも柔軟に使えるよ、という内容と理解したがいいのかな?
  • Lightning Talks。いまmixiアプリを開発しているので、unshiu‎のmixiアプリ対応プラグインに惹かれた。
  • 懇親会。色紙にサインをもらって話をきっかけを作るというアイデアは良いなあ。
  • 初対面の方々と懇親。仙台で活躍されている片平堂の片平さんとはフリーランス事情を情報交換、伊藤ソフトの伊藤さんには開発されている iPhone アプリ「ioTouch」を見せていただいたり、ワイクル株式会社角さんとは受託開発事情を交換したり、安否確認システム e-安否の藤岡さんからは会社経営のアドバイスをいただいたり。
  • smart.fmKimBirkir(kill bill にそらみ)、Zeb や位置情報系のライブラリGeoRubyの開発者でオーストラリアからわざわざ来たというGeoLabsShoaibとも懇親。今回の Ruby 会議は海外からの方が多い。もれなく自分のサービスKanji-Fandom(外国人の名前を漢字に変換する Web サービス)を紹介しておいた。
  • 写真がないと寂しいのでおまけ(というかこれ一枚しかRuby会議関連の写真撮ってなかった)。懇親会後あまりにかっこいい人(かっこいいかっこの人?)がいたのでパシャリ。ヒント:テスト駆動開発で有名なあの人。まあ、url みちゃうとわかっちゃうんですけど。。
    twada.jpg

Webカテゴリの最近の記事             

Posted in Web, rails, ruby at 23:54:25 by ジュンヤ

わかってしまえば超簡単なのですが、2時間近くはまってしまいました。

Slicehost 上の Ubuntu Hardy に ImageMagick と RMagick をインストールするには

% sudo aptitude update
% sudo aptitude install imagemagick libmagick9-dev
% sudo gem install rmagick

であっさり出来てしまうのですが、最初の sudo aptitude update をやっていなかったために、sudo gem install rmagick で

Building native extensions. This could take a while…
ERROR: Error installing rmagick:
ERROR: Failed to build gem native extension.

/usr/bin/ruby1.8 extconf.rb install rmagick
checking for Ruby version >= 1.8.2… yes
checking for cc… yes
checking for Magick-config… no
Can’t install RMagick 2.9.1. Can’t find Magick-config in /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/X11R6/bin

というエラーに悩まされ、ああでもこうでもないと散々パッケージのインストール、アンインストールを繰り返してしまいました。

sudo aptitude update は、man の記述

Updates the list of available packages from the apt sources (this
is equivalent to “apt-get update”)

の通り、aptitude でインストールするパッケージ情報を最新に更新するコマンドです。これまで特に更新しなくても問題が起こらなかったため、甘く見てました。今度からは aptitude install でなにかパッケージをインストールするときは、事前に必ず aptitude update をおこなうことにします。

aptitude update 超重要ということはもっと認識されるべきです。(どこにもあまり書かれてない)

あと、sudo aptitude install imagemagick libmagick9-dev がなにごともなく通っているように見えて、ImageMagick が正常にインストールされている、と勝手に思い込んでしまったことも問題がどこにあるかわからなくなってしまったことの原因。

ImageMagick がインストールされているかどうかは、

% which convert
/usr/bin/convert

で確認できるということが、インストールがうまくいった後わかりました。


Webカテゴリの最近の記事             

Posted in Web, rails, ruby at 0:26:54 by ジュンヤ

これを調べようと検索しても、探し方が悪いのかなかなか上位にヒットしないので、自分用にメモ。

たとえば rails のバージョンを 2.1.2 に指定して新規アプリケーションを作成したい場合は、

% rails _2.1.2_ <app name>


Webカテゴリの最近の記事             

Posted in Web, ruby at 0:24:20 by ジュンヤ

DB に postgres を使って rails の開発をおこなっていて、スキーマを大幅変更、面倒なので db を一旦削除して再作成ってときがある。

しかし、

% rake db:drop

とやって db を削除しようとしても、

Couldn’t drop test_development : #<ActiveRecord::StatementInvalid: RuntimeError: ERROR C55006 Mdatabase “test_development” is being accessed by other users Fdbcommands.c L674 Rdropdb: DROP DATABASE IF EXISTS “test_development”>

というエラーが表示されてできないときがある。

pgAdmin3 のような GUI ツールから db の操作をおこなっているとこれが確実に起きる。pgAdmin3 のようなクライアントからの接続が残っている限り、postgres では db を削除できないようだ。

でも、開発環境ではいちいち pgAdmin3 を閉じたりなどして接続を切るのも面倒。

そこで、ちょっと乱暴だが、postgres へのクライアントからの接続を強制切断する ruby スクリプトを書いてみた。

postgres への接続プロセスの pid を調べ、sudo kill -9 しているだけ。

もし使う場合は、各環境に応じて変更して自己責任でお使いください。


Webカテゴリの最近の記事             

Posted in rails, ruby, TextMate at 12:17:08 by ジュンヤ

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


railsカテゴリの最近の記事             

Posted in Web, rails, ruby at 14:44:27 by ジュンヤ

フリーランスとして働き始め、もうすぐ2年になろうとしています。

企業が会社案内のホームページを持つように、僕もこのブログとは別にホームページを作るべきだったのですが、やろうやろうと思いつつ、あまり乗り気がせず、そのままにしていました。

この夏体調を少し崩していた間、自分はいったい何をやりたいのか、など見つめ直す時間がありました。良い機会なので、その間に考えたことなどを反映させ、Ruby on Rails でコーポレートサイトっぽいもの(個人事業主なのでコーポレートではありませんが。。)を作ってみました。

» Champierre(シャンピエール) - ミッション

デザインは超シンプルでショボショボですが、機能的には結構満足いくものができたので、ポイントを簡単にですが以下にまとめておきます。

1. Ruby on Rails で作る

静的ページばかりだから HTML ベタ書きでもいいんじゃないかという気がしますが、ヘッダーやフッターなどどのページにも同じく表示されなくてはいけないパーツがあったり、ひとつのページのなかでも繰り返し登場する部分があったりするので、動的にページを作成できるようにしました。それが可能ならば、言語やフレームワークはなんでもいい、自分が得意なものを選んで使えばいいと思います。

Ruby on Rails、あるいはほかの言語 + フレームワークを習得中であれば、今後自分が一番良く使い、見ることになるホームページをその道具を使って作ってみるのが良いと思います。

2. Active Scaffold で管理画面を作成

サイトを作ったはいいけれども、更新されずに放置されてしまうというのが結構ありがちなパターン。そうならないよう、手軽に更新できる仕組みを作りました。

Page というモデルを作り、1ページを1オブジェクトに対応させて作ったので、ページ追加も編集もDBのデータをいじるだけ。管理画面は僕しかさわらないので、ActiveScaffoldを使ってサクッと作りました。

active_scaffold.png

管理画面には僕だけがアクセスできるよう、Rails 2.0 から手軽に実装できるようになったBasic認証と、アクセス元のIPアドレスをチェックするようにして、アクセス制限を設けました。

3. お問い合わせフォーム

» Champierre(シャンピエール) - お問い合わせ

メールアドレスを表示するだけでもよかったのですが、せっかくなので ActionMailer を使ってお問い合わせフォームを実装。この手軽さは Rails ならではかもしれません。

4. キャッシュ

動的にページ作成といっても、僕が管理画面で変更したあとはずっと同じページを表示するだけ。表示するたびにページを作成するとその分反応が遅くなってしまうので、Rails のページキャッシュの仕組みを使ってほぼすべてのページをキャッシュしました。

5. Capistrano で簡単デプロイ

繰り返しになりますが、サイトはいかに更新がしやすいかが大事だと思っています。コンテンツは管理画面から簡単に更新できるようにしましたが、そのほかの部分でもちょっとした修正や機能追加をしたいな、と思ったとき、少しでも手間がかかるとそれがおっくうになってしまいます。

FTPサーバーから該当ページのHTMLファイルをダウンロードしてきて、ローカルで修正、FTPサーバーにアップロードして戻す、という作業は数分でできますが、その数分が結構面倒に思えてきてしまいます。

Capistranoを使うことで、ローカルの開発環境で修正、動作確認、その後コマンド一発で変更を本番環境に反映させることができます。この便利さを知ったあとでは、Subversionによるバージョン管理とCapistranoを使ったデプロイなしの開発には戻れません。

以上、同じような簡単なサイトをサッと作りたいときに参考にしていただければ。。。


Webカテゴリの最近の記事             

Posted in ruby at 15:50:45 by ジュンヤ

Ruby会議のとき、勢いで申し込んでしまったRuby技術者認定試験を受けてきました。

結果合格でホッとしてます。(合格してなければ受けたことを内緒にしてます :-))

Rails Rails 言っていてそれで食っているわけだし、試験代は馬鹿にならないし、土日は家族ほっといて試験対策にあてたしで、当然合格しないとっていうプレッシャーをちょっと感じていました。テストらしいテストは、確か五年くらい前にアメリカで CBT の TOEFL を受けた以来久々で、なんか懐かしい緊張感でした。

よく、こんな試験や資格に意味はない、という人がいますが、僕はそうは思わないです。確かに資格持ってるから良いコードが書けるか、優秀な技術者かというと必ずしもそういうわけではないですが、Ruby のコードが書けるちゃんとした技術者ならば、きちんと対策さえすれば認定試験に合格するのはわけないのです。つまり、この資格を持っていればかなりの高い確度で Ruby をきちんと使える技術者だ、と言えるわけで、その人のコードを実際に読んで判断できない場合には、結構妥当な指標になると思います。

また、受ける僕側のメリットとしては、試験対策をすることで Ruby の良い復習になったし、普段はわからなくてもいちいち調べていたリファレンスの内容を頭に無理矢理叩き込む機会ができた、というのがあります。

その対策方法ですが、Ruby会議で申し込んだときにいただいた模擬試験(内容は以下 ITpro の記事と同じ)

» [1] まつもと ゆきひろのRuby検定:ITpro

それと、NaCL による対策問題

» [2] Ruby認定試験対策問題

» [3] Ruby認定試験対策問題(総合問題 No.1)

をやりました。

実際の問題は [1] と [3] に近い感じです。[2] の後半はやや難しく、僕はこれをやったあと「大丈夫だろうか」とちょっとあせりました。

だいたいどんな試験がでるかイメージがつかめたあとは、すでに合格している人から聞いたアドバイスに従い、たのしいRuby 第2版 Rubyではじめる気軽なプログラミング をひっぱりだしてきて Array Hash String を重点的に復習。

入門書だけじゃ心配だったので、ピッケル本の英語版を以下より閲覧、Built-in Classes and Methods の章の Array Hash String と Enumerable を頭にたたきこみました。

» Programming Ruby

Array Hash String からの出題が多く、これらをきちんと把握しておけば合格点に到達できる感じですが、余裕をもって望みたいなら、正規表現とあと僕のように普段 Rails を触るのが中心という人にとって意外と穴なのがIOクラスまわり(ファイル入出力とかあまりやらないので)、このあたりをフォローしておくといいと思います。

試験時間の90分は十分余裕があり、50分くらいで一通り回答、20分くらいを見直しにあてました。自信もって「これは間違いないだろう」と思える問題以外は、見直しマークをつけておき、あとで見直し。これが僕の場合10問近くありました。

見直すときですが、どちらが正解かがわからず迷った場合には、最初に回答するときに勘で正解と思った方を直さずそのままでいく、という戦略をとりました。この戦略はひとによってまちまちで、あとに考えこんで正解と思った方でいくとか、いろいろあると思いますが、一貫してこれでいく、という戦略をあらかじめ自分のなかで決めておくことが大事だと思います。戦略を決めておけば、他の問題に移ったときに、迷って回答した問題が頭に残ってしまって集中できないという状況を防ぐことができます。

なんて、えらそうに以前から僕がそうしているように書いていますが、今日受けてそうすればよかった、という反省をこめて書いています。


rubyカテゴリの最近の記事             

Posted in ruby at 10:14:06 by ジュンヤ

RubyKaigi 2008 に参加してきました。

初めての参加だったのですが、運営の素晴らしさに驚きました。あれがボランティアでの運営とは。。。いままでいくつかコンベンション、カンファレンスという類いのイベントに参加したことがありましたが、Ruby に思い入れが強いということを差し引いても、参加したあとの満足感では僕の中ではダントツでした。スタッフの方々、そしてスピーカーの方々、関わったすべての方に感謝したいと思います。

以下、感想をつらつらと列挙していきたいと思います。

  • 重ねて書きますが、ほとんどまったくといいほど滞りなく進められていた運営が素晴らしい。プロ顔負け。いや、むしろプロが運営するものの上を行っている気がします。Ruby がオープンソースでまつもとさんと有志のプログラマーというボランティアといっていい人たちの力でここまで育て上げられたことと重なります。「好き」とか「楽しい」と思えることに注がれた力が、ときに「お金」の力を上回る、ということを目の当たりにしました。
  • Ruby のコミッターの方々の技術的な話、難しい。でも、皆さん、本当に Ruby が好きで好きでしょうがないのですね。技術を深く理解するにはそれ相応にどっぷりとその事象にはまりこみ時間をかけなくてはいけないから、「好き」度合いがものすごく強くなくてはできない。Rails から入り、最終的な成果物であるアプリの方でどんなことができるかに専ら興味がある僕にはとても真似できないのですが、アプリ側の者としてできる限りの貢献をしていけたらなあ、と感じました。
  • JRuby、一度チャレンジしたことがあるのですが、本番環境でのデプロイでつまずいたことがあります。でも Charles Nutter/Thomas Enebo 氏によるセッションのデモではサクッと動いていました。GlassFish gem を使うと簡単そうです。再チャレンジするかな。。
  • Ruby M17N、文字コードの話は複雑怪奇ですね。アメリカで I18N や L10N の仕事をしていたときの苦労を思い出しました。
  • 仕事でもお世話になっている yuum3 さんの教育に関するセッション。テストコードを事前に用意し、それが通るようにコードを書かせるという教育方法は、「なるほどー」と思いました。会場の皆さんの多くもそう思っていたようです。
  • 「会場の皆さんの多くもそう思っていたようです。」ってなんでわかるかというと、IRC チャットでの発言内容が大スクリーン横の小スクリーンに表示されることで、擬似的にではありますが会場にいる人の思いが共有できていたから。この仕組みは初めて実際に見たのですが、とても面白い。
  • Lightning Talks も初めて実際に見たのですが、これも面白いですね。そして皆さんプレゼンが上手。勉強会などで場数をこなしているからなのと、やっぱり発表しているテーマそのものが好きだからなのでしょうね。僕も次は参加したいな。
  • Ruby 技術者認定試験。僕はリファレンスをちょこちょこと見ながら開発していくタイプですが、何度も同じ部分を忘れては見返しているということがあります。そういうところは暗記してしまうに越したことはないのですが、なかなかそういう気になれない。というわけで、自分を追い込むために認定試験を受験することを決意して、RubyKaigi の会場で申し込めばもらえる特典のマグカップをゲットしました。勉強しなくちゃ。。
  • MacRuby 楽しそう。まずは RubyCocoa で何か作ってみるかな。。
  • 会議中いろいろとお世話になった高井さん大場光一郎さんのセッション。漫才プレゼンがあまりにおかし過ぎて、内容が良く思い出せない :-) インパクトが強すぎるコマーシャルは何の商品に関する宣伝だったか覚えてもらえない、というのと同じ現象か。。実際に会場で聞いていた人で、僕と同じって人もいるでしょうが、技評の記事でニコニコ動画が見られるので復習にどうぞ。便利な時代です。
  • アプリ側の人間としては iKnow と食べログの話が非常に興味深かったです。もっと Rails での事例が増えるといいですね。
  • あとで行くでも使わせていただいているJpmobile。個人的にもっとも応援したいプロジェクトです。応援するには、もっともっと使って、フィードバックを返さないと。。チャットでちょっと話をしたことがあるdara さんと直接お会いすることができました。まだ学生さんのさわやかな好青年。がんばってほしいです。
  • 会議中にお会いしたあの人もこの人も執筆しているまるごと Ruby!を購入。もりだくさんでお買い得です。いま一生懸命読んでます。

会議中たくさんの方々と出会い、充実し過ぎていてもう書ききれないです。

来年もぜひぜひ参加したい。


rubyカテゴリの最近の記事             

« 前の記事 ·