Category Archives: Rails

飲み会重要!!-TDC設立総会

えー、・・・ナニから書いていいか分からないくらい、盛りだくさんでした。東北デベロッパーズコミュニティ(TDC)設立総会。杉山さんはじめ、準備委員の皆さん、お疲れ様でございました。

セッションの一本一本は、正直ちょっと長いかな、と感じましたが、でもアレ以上短いと、ほとんど内容が無くなってしまうので、結果的にはちょうど良かったのかも。

(パネルディスカッションが短くなったのは残念でしたが、続きはまた次回のお楽しみということで。)

会場もかなり埋まってましたし、大成功じゃないですか。

ま、若干リアクションに乏しいのは、東北人気質ってことですかね。

で、いよいよメイン・イベントである(?)懇親会。

80人以上参加する飲み会なんて、初めてかも。すごかったです。ひそかに熱い東北人・・・。

色んな人とお話しましたが、「(この会を)ひがさんのブログ見て知った。」という方が多かったです。さすが。ネームバリューが違いますね。

ちなみに、タイトルの「飲み会重要」は、きしださんのプレゼンからの引用です。ワタシも同感であります。Rails勉強会@東北も最初からそんな感じでした。

多分、コミュニティなんて、”休日に手弁当でも参加したい”というキトクな(=イイ意味でおもろい)人が集まるところだからでしょうね。”何かやろう” という気力のある方の話は間違いなく面白いです。はい。

んで、ワタクシ個人としてうれしかったのは、もちろん、先にご紹介した有名人の皆さんとお会いできたこともありますが、山形のたけださんと仙台の今井さんという(ワタシが知る中では)地元屈指のJava使いの方々を顔合わせできたこと、それとワタクシに記念すべき初オファーをくださったサイエンティアの荒井社長にご挨拶できたことです。

しかし、こんなに一気に色んな人に会えるなんて、なんかある意味、”夢の中”みたいな感覚でした。

皆さんは、こんな夢を見たことないでしょうか・・・。

(時系列で考えると)絶対に知り合うはずがない人たち、例えば、自分の小学校の同級生と、会社の同期の仲間とが一緒になって学校で遊んでたりする・・・そんな不思議な場面を。

それに近いものがありました。この懇親会での出会い・交流は。

# ちなみに、これと同じ話を自分の結婚式のスピーチでしましたw。結婚式の来賓もそんな感じですよね。かつてお世話になった人々がみんないて。

さ、これからですね。TDC。

”継続はチカラなり”-です。

[Rails]Rubyでマイ便利ツール

いや、大した話ではありません。Railsともほとんど関係ありません。

たとえば、システムの性能測定とかやると、トレース・ログから集計しなきゃならないことがあると思います。

実は今までは、テキストエディタとExcelでチカラ技で集計してたんですが、単純作業が多くて効率が悪い・・・。

なので、勉強もかねて、Rubyで集計ツール作ることにしました。Rubyレシピブック片手に。

2~3時間格闘して、完成。

やっぱRubyは文字列操作強いですね(Perlも同じかな?)。

特に、String#grepとか、String#sliceは、JavaのStringには無い(たぶん・・・)ので、すごく助かりました。

ただ、出来上がったソースコードは・・・何かJavaというよりCっぽいかもwww。慣れればもっと少ない量で書けるんでしょうけど。

あー、やっとRubyの”楽しさ”が少し味わえた感じです。

いじょ。

[Rails]カメでSubversion

Rails勉強会@東北第5回に参加しました。

今回は私用のため、自分のセッションとxibbarさんのを聴いたところで途中退席させてもらいました。なので、日程調整アプリがどこまで進んだのか、すごく気になります。次回までに復習せねば。

ワタシのセッションは、予告どおり、Subversionについて。

eclipseプラグインにしようか、トータスSVNにしようか迷って、結局トータスくんにしました。

正直、もっと使い込んでいれば、皆さんのためになるネタのご紹介ができたんでしょうが、結局、ツール導入のさわりで終わってしまいました・・・反省。

次にxibbarさんのRails2.0。

「Sexy○○」とか「Lovers○○(でしたっけ?)」とか、ネタなのかマジなのかすごいネーミングですよね。あと、scaffoldで生成されるフォームは、前のパーシャル形式のほうが良い様な気がしましたが、どうなんでしょうね。その他いろいろ、ためになりました。ありがとうございます。

今回も、初参加の方含めて10名弱でしたが、みんなで意見を言い合って進めるには、これくらいの人数がちょうどいいかもしれませんね。

さ、年末は合宿だ!!(皆さんのスケジュールが合うといいですね。)

ナマMatz

今日は、Matzさんセミナーに行ってきました。

・・・といっても、今回は客演(オープニング・アクト?)的な感じで、事前資料配布も無く、内容も特に目新しいことはありませんでした。(昨晩の睡眠不足のせいで、途中、強烈な睡魔に襲われてしまいました・・・。)

それでも、ワタシにとっては、今このタイミングでMatzさんをナマで見れたことは、いい思い出になりました。

会場で、Rails勉強会でご一緒しているKatahiraさんとサクマさんに会いました。あ、s-laboの北川さんにも(ちゃんとご挨拶できませんで申し訳ありませんでした。)。

で、図々しくも(Katahiraさんに便乗して)Matzさんと名刺交換させていただきましたが、さすがに2ショット写真は撮れませんでしたwww。

また機会があったらお会いしたいです。(もっと色んな話が聞きたい)

[Rails]Subversionにしようかな

4日ぶりにPC起動しました・・・。なんか最近、肩こりがひどくて。

さて、今度のRails勉強会@東北で、ワタシも一つセッション受け持つことになりまして。

テーマは”Subversion(以下SVN)について”です。

Railsに限らず、チームでお仕事するときにはソースのバージョン管理は必須だと思われます。ワタシも、仕事ではVSS(Microsoft)やCVSを使ってます。でもSVNは未だ使ったことがありませんので、ちょうど良い機会かと。

んで、プレゼン資料作るにあたって色々調べたところ、とてもわかりやすい記事(Subversion)を発見しました。特にJavaプロジェクト等でCVS使ってる皆さんには参考になると思います。

上記記事を読んで、色んな意味でSVNがCVSの進化系だということがよく理解できました。

特に”ブランチ”が使えるレベルにある(CVSのは分けわかんないです)らしいということと、明示的にタグ付けしなくともコミットのタイミングでスナップショットが撮れている、というあたりがすごいです。

以上、ご参考まで。 この辺の記事で概念を予習してから勉強会に参加されると、より理解が深まるんじゃないでしょうか。

さ、私も使ってみよ。

[Rails]Rails勉強会@東北第4回にトラバしてみる

昨日、一昨日と、Rails勉強会@東北第4回に関するエントリを書きました。

[Rails]はじめよう! InstantRailsで。

[Rails]実践-日程調整アプリ(1)

で、Wikiにトラックバックを送ったんですが、なぜか反映されず・・・。

あまりに記事が長いせいかな?とか画像使いすぎたかな?などと色々考えましたが、原因特定できません。

なので、最後にこの短い”まとめエントリ”を書いて、トラックバックしてみようかと思います。

だめだったらあきらめます。

# 最近、WordPressを2.2.2から2.2.3に上げたせいかな?

[Rails]実践-日程調整アプリ(1)

Rails勉強会@東北第4回

前回から、フライトさんに場所をご提供いただいてます。(ありがとうございます。)

このビルは、若かりし頃に常駐していた思い出の地でもあります(当時、2Fに某社が入ってまして)。当時は1Fに ローソンとか入ってなかったなぁ・・・。

フロアに入ると、お仕事中の方々もいらっしゃる。休日出勤ご苦労様です。ん?その中に見覚えのある後姿が・・・おぉ、この間まで一緒に仕事してたUさんではないですか!懐かしくて、しばし雑談。がんばって!!

まずはランチを食べながら、自己紹介。皆さん工夫を凝らしたPPを持参。たのしいです。

その後、大久保さん、藤岡さんのセッション(またしてもガンダムねたw。しかもパワーアップしてます。ツボ突かれました。)が続きます。ご両名とも相変わらずレベル高いです。ただただ”スゲー”と唸るばかりです。(内容は割愛させていただきます。ごめんなさい。)

3つ目は、いよいよ実践!一からアプリを作ってみようということで、片平さん主導でみんなで設計、たまたまWindowsマシンを持参した(初心者代表の)私が打ち込んでいく、ということになりました。

尚、開発環境に関しては、こちらのエントリ「[Rails]はじめよう! InstantRailsで。」を参照ください。

Continue reading

[Rails]はじめよう! InstantRailsで。

先日、Rails勉強会@東北に行ってまいりました。

今回から、”実際に手を動かしていこう”ということだったので、ワタシもノートPCを持参することに。

で、Windows上にRails環境を作るため、InstantRailsを入れました。

ご参考までに手順を載せておきます。

  1. まずはこちら(http://rubyforge.org/frs/?group_id=904)からzipファイルをダウンロードします。(2007/09/24現在の最新は、Instant Rails 1.7 のようです。)
  2. ダウンロードしたzipファイルを任意のディレクトリに解凍します。このとき、ディレクトリパスに半角スペースが入らないところに入れたほうがいいらしいです(c:\instantrailsとか。)。
  3. 解凍したディレクトリにある、InstantRails.exeを起動します。
    instatntrails_001.gif
  4. 下のようなダイアログメッセージが出るので、「OK」をクリックします。
    instatntrails_002.gif
  5. メイン画面(?)が起動し、Apache、MySQLが起動しますが、うちのPCの場合、80 PORTに対する警告画面が出ました。なので、(推奨)と書いてあるのを選んでOKをクリックしました。これでインストール自体は終了です。instatntrails_004.gif
  6. では、何か動かしてみましょう。メイン画面から、Rails Applications->Manage Rails Applicationsを選びます。instatntrails_005.gif
  7. 登録済みのRailsプロジェクトの一覧が出るので、サンプルのcookbookを選択して、”Start With Mongrel”をクリックしてWEBサーバ(Mongrel)を起動します。ちなみに、新規のRailsプロジェクトを作る場合は、この画面の”Create New Rails App…”をクリックします。
    instatntrails_006.gifinstatntrails_007.gif
  8. ポート3001で正常に起動したことを確認後、ブラウザでアクセスしてみます。
    instatntrails_008.gifおぉ!!Railsアプリにアクセスできました。

・・・ということで、Railsアプリケーションを作る準備ができました。

ここから先の、勉強会の感想は、別途エントリします。

[Rails]Rubyのカベ-リフレクションとメタプログラミング

Rubyの壁シリーズその2です。

正直、ジャズフェス直前なので、どっぷりミュージシャン・モードに浸ってたかったんですが、どうにも書かずにいられなくて・・・。

今回の壁は、ワタシにとっては致命的というか本質というか、とにかくまずい予感がします。旧世代のプログラマの皆さん、要注意ですよ。

そもそもの発端は、Railsで、「Controlerで生成したインスタンス変数(@Hoge)が、なんでViewで参照できんだろう? 」という素朴な疑問でした。

やはり、我々のように一親方としてチームに参戦している場合、Railsを導入するためには、現場の技術リーダーも納得するように仕組みを解説する必要がありまして、「どういうカラクリで実現してんだ?」という部分は理解しておかないといけないのです。

ググったら、こちらの記事が、仕組みの解説としては分かりやすかったです。

この中で

view の中では controller のインスタンス変数を文法上そのままアクセスできるが、これはリフレクションのような手法を使って巧みに作り込まれた物らしい。

との記述が。

リフレクション?う~ん、これだけじゃまだ分からん!・・・と更に掘り下げると、どうもメタプログラミングなる技法で実装しているらしい。うっ・・・、聞いたことはあるけどよくわからない。どっちかというと、あえて避けて通ってきたような気がしないでもない。難しいんですもの。

で、メタプログラミングで検索すると、「Railsによるメタプログラミング入門」(PDF) なる記事を発見。プレゼン資料なので、きれいにまとまっております。

(途中に、METAの間違った例として出てきた”METALLICA”のKILL ‘EM ALLのジャケはツボでしたw 。Master of Puppetsなら尚ヨシw)

こちらを読む限りでは、Railsは、このリフレクションをガンガン使って実装されていることがわかりました。evalもガシガシ・・・。

なんと・・・。

これは避けて通れない気がしてきました。

メタプログラミングの知識なしにRuby(OnRails)の習得は進まないです。少なくともワタシの場合は。

単に「こういうもんだ」と割り切って使い倒す分には、深く考えなくともいいかもしれませんが、仮に企業のシステムに導入するとなれば、仕組みの理解は必須だと思われますので。

あぁ、気が重い。でもがんばるよ!(来週から)

余談。こちらの記事も参考までに。

Ruby のリフレクションはダークサイドか