今年の振り返り(ただのひとりごと)

さて、2010年も残すところ僅か。簡単に2010年を振り返ってみようかなと思います。

  • 1月  ---- 残業ばかりの毎日... ------
  • 2月  ---- 残業ばかりの毎日... ------
  • 3月  ---- 残業ばかりの毎日...(もういい加減限界かな、と思い始める)
  • 4月  ---- 残業ばかりの毎日... ------
  • 5月  ---- 残業ばかりの毎日... ------
  • 6月  Minami.rbに参加(以後、ちょくちょく顔出す)
  • 7月  ---- ここらへんからRubyに対する活動が盛んに -----
  • 8月  RubyKaigi2010@Tsukubaに参加。FRR(仮面ライダーW最終回鑑賞会)に参加、阿波踊り参加
  • 9月  RubyKaigiの余韻...(ここは多いに刺激をうけた反動)
  • 10月 AgileTourOsakaに参加
  • 11月 関西Ruby会議03参加、勉強会スタッフにスカウトされる
  • 12月 第47回Ruby/Rails勉強会@関西ディレクタ、Rails勉強会@東京参加, Ruby忘年会参加


これを見ると、実質、私の2010年は6月から始まってた!! という...orz

とはいえ、今年はアクティブだったなぁ。Ruby関連だけではないのだけれども、関西を飛びだして行くことが多かった。東京(Rails勉強会)、岐阜(友人結婚式)、茨城(RubyKaigi)、石川(これ仕事かつ実家あるし)、徳島(阿波踊り)。


Ruby関係でも、Ruby/Rails勉強会@関西だけでなく、RubyKaigiやRails勉強会@東京にも参加して思い切って大海に出た感があった。Rubyを通じていろんな人と出会ったなぁ。普通に考えて「俺、こんな人と絡んで大丈夫か?」っていう人達といっぱい交流したし。おかげさまで大きな刺激になりました。ありがとうございました。


最近の出来事ではあるが、やはりRuby関西のスタッフになったのが大きいかなぁ。アレが一気に私の背中を押してしまったw。これは@yalabさんに感謝すべきなのかな?ありがとうございます。なんだかんだ言って、中に入ってみるといろいろ気になって仕方がない。こんなディレクタでどうもすいません。


RubyKaigiで話題になっていた「最後のRubyKaigiに向けて自分ができること」に対して、何かしらコミュニティに対して還元をしたいと思っていたところでは、スタッフになることで少しは前進したのかな?と思う。ただ、技術的な面ではまだまだ貢献のKの字も貢献できていない...2011年はここが課題だなぁ。


2011年の課題:Ruby力をあげる(技術的な面で)

Rails勉強会@東京第58回に行って来た!

関西に住んでいながらも、ひょんなことから東京の勉強会に参加することになりまして行ってきました。

全体の流れと概要はこちら Rails勉強会@東京第58回 を参照してください。


セッション内容
  • RSpec, TDD
    • テストファーストを根付かせるには?
    • テストファーストを習慣づけするには?
      • ペアプロが一番かな?
      • あんまり気負わない。プレッシャーかけすぎない。
    • RSpecってどうやって使う?
      • RSpec2についてよくまとまってるサイトRelish
      • Matcher自分でつくろうぜ!snippetにテンプレート作ると便利!
      • Matcherはspec内にまず書いて、他のspecでも使いたくなったらhelperにmodule化して
  • Rails3のプラグイン(認証まわり)について
    • こんなこともあろうかと。資料
    • OmniAuth
      • いろんなモジュラーあり
      • 作ったロジックのテストにWebMockを使った。
      • その他FakeWeb、wwとかも使えるよ
    • devise
      • 色々そろってて綺麗に作ってるけど、綺麗に作ってるが故にあちこち見ないと
      • 自分でカスタマイズするにはちょっとハードルが高い
  • Heroku, GAE
    • Herokuってどんなもの?
      • git pushすることで自動的にデプロイされるRuby用のPaas
      • ファイルの動的作成ができない。
      • Railsで実験するにはいいかも。あまり重い処理は控えよう。
      • 日本のAPIとか叩くと距離の問題で遅い
      • HeroScale



参加してみて思ったこと。

RSpecのテスト周り(意識付け、効率化、使い方)は非常に勉強になりました。テスト書こう、テスト!
質問ほとんどできず状態。わからないならば、質問してセッションを盛り上げる、という気概が足りなかった。

勉強になったこと

Relishとか、snippetとか。
Relish。こんなまとまったサイトがあったなんて... snippetはちょっと感動。あそこまで入力してくれるんだったら、書きたいテストに集中できる!


勉強会の形式。
グループに分かれてセッションを構成する形式。引っ張ってく人は必要かもしれないけど、皆で勉強会を構成している感もでるし、発表者の負担も減るだろうしいいなぁ。


まだまだだなぁ。
自分に足りないものを認識すること、刺激を受けること、これが一番大事かなと個人的には思ってます。
今回はそれをよく感じました。自分でなく、他の環境に刺激を求めていることが残念なのだけれども、「自分を高めなければ!」と思える環境があるっていうのは幸せですよね。

最後に

また参加したいと思う勉強会でした。ちょっと距離があるけど、是非また参加したい。
関西でやってる勉強会にも今回の経験を何かしら活かしたい。
参加者の皆様、ありがとうございました! 関西に来られる際は是非、勉強会に参加を(ry ...

第47回Ruby/Rails勉強会@関西でDしてきました。

久しぶりの日記です。
先日開催された関西Ruby会議03でDirectorの指名を受けて、右も左もわからない中スタッフの皆さんのおかげで無事開催、終了することができました。

当日は札幌Ruby会議03という超超がつく裏番組があった中、足を運んでくださった皆様に感謝いたします。ありがとうございました。

忙しい中、時間をつくって発表いただいたSixeightさん、wakuさん、かわばたさん、こなみ先生ありがとうございました。



で、だいたいの経緯と中身ですが。


今回はスタッフ間で新しいことをしようという話が持ち上がったので色々と考えたのですが、

  • 関西Ruby会議後で初参加者が多いだろうから、まず何かのきっかけとしてもらおう
  • 初級者レッスン前に回りの参加者と交流をもってもらおう
  • 懇親会に参加できない人たちにも交流の場を提供しよう

ということと、特に物理的な準備が必要ないことから「フリートークセッション」をしよう、ということになりました。


直前にひがきさん、かわばたさんと方向性決めて進めました。すべったらつるしあげでしたw。
参加者にグループ単位に固まって自己紹介をしてもらい、質問コーナーを設けるという形で進行。

ちょっと途中で静まってしまう感じがあったものの、それなりの盛り上がりがありました。
つるしあげは回避できた感じですw(緊張はしっぱなしでしたが...)



当日のアンケート・twitterでの反応を見ると、まだ課題はあるものの「フリートークセッション」は思っていたよりも好評で、必要とされているようです。

勉強会って「勉強する」という第一の目的もありますが、新しい場所に踏み出す、新しいつながりを作るっていう効果もありますしね。そういう点から見ると、進行はどうかわかりませんが、あの「場」が必要とされるのは至極当然か...

第47回の勉強会は終わりましたが、フィードバックはまだまだ募集中。
気づいた点やよかった点、課題などありましたら、コメント、twitter等で連絡いただければと思います。
Ust: http://www.ustream.tv/recorded/11240699
twitterの場合は、#rubykansai でつぶやいていただければ。



勉強会は引き続き開催していきますので、是非お時間をつくっていただき参加いただければと思います。

お疲れさまでした〜 ノシ

AgileTourOsaka2010に参加してきました。

まとめは他の理解の高い方々にお任せして、今日知ったこと・思ったことを書きます。

【知ったこと】

  • 欧米と日本で同じ方法でAgile開発を実現できない。

派遣法など法律による縛りや、粘り強く極める、器用であることなど民族性の違いから、欧米で成功した事 例をそのまま適用すること自体が難しいパターンや、適用自体が難しいパターンがある。だから、欧米で成功した方法をそのまま日本に適用しても成功するとは限らない。育った環境が違うから...

  • 自分たちで方法を探し、創りださなければならない。

自分たちの会社や現場の環境によっても、制約がある。上司・ユーザの合意のとれる部分/とれない部分、適用しやすい/しにくいプラクティスがある。結局は自分たちに合うようにXPなりScrumなりに手を加える必要がある。借り物ではダメってこと。

  • 段階を踏んで適用していく

いきなり「Agile開発!」とするのではなく、BTSで不具合とチケットを一元管理することから始めたり、テスト駆動から適用したり、など。いきなり導入は開発者も管理者も拒否反応・不適合を招く。そもそも欧米諸国もウォーターフォールからイテレーティブ、アジャイルと段階踏んできたんだし。薬も少しずつ飲まないと一気に飲んだら毒になる。


【自分の現場に対して思ったこと】
まだアジャイル開発のフィールドに立つのは難しい。今の現場ではアジャイル開発を適用するのは難しいと思う(課題がたくさんある)。

  1. 割り込み作業が多過ぎ、スプリントの間に開発に集中させることができない。
  2. テスト駆動開発の価値を理解してもらえない。(目の前の工数が増大するため)
  3. 簡単な自動化よりも「苦労する」ことが大事であると勘違いしているところがある。
  4. 新しいものを採用してみることに拒否反応が見られる。
  5. 「顧客への価値」って何?を再度考える必要あり。設計書も大事、でもユーザが欲しいのは動くもの。

など。


愚痴になってしまうので、ひとつだけ書こ。まずこれだけ始めませんか?と言いたい。
※ここからはAgileTourOsaka2010は関係ないです。私個人の思うところ。


テストコード、自動テストの価値
既存のレガシーコードから独立した新しい機能作るときは、テストコード作成しよう...
テストコード作るには工数がかかるかもしれないけど、いろんな効果がある。

  1. 開発者にコードの理解を促す(製造時の勘違いバグ、考慮漏れによる後工程で発見されるバグを軽減)
  2. リファクタリング時の保険になる(Code and Prayでなくなる)
  3. テスト実行は人を介さないため、結果は正確(疲れて不正確になったりしない)
  4. リグレッションを防ぐ(Code and Prayでなくなる)
  5. 自動ビルドの価値が高まる(CIが機能し始める)


本当はリファクタリングの重要性も理解して欲しいんだけど、そこまで贅沢言わない。
結局、Agileがどうとかより、テストコードにだけこだわってる気がするけど、説得してこれ適用できるいい方法ないかなぁ...

『メタプログラミングRuby』を読みました。

RubyKaigi2010で購入したこちらの本を読みました。

メタプログラミングRuby

メタプログラミングRuby

これは初心者こそ読むべき!というのが第一の感想。


「黒魔術」の本ということで、高度な内容を想像すると思いますが、訳が非常に読みやすいためか、すいすい読めてしまいます。読みやすいものだから、内容もすんなり頭に入ってきます。また、節々に面白い記述が入っていて、読んでいて楽しくなります。


メタプログラミングのテクニックって、難しい、読んでも理解できない、っていうのが定番?な感じがしますが、これはそんなことを微塵も感じさせません。

実際、私はRuby初心者で別の本を読みながら「こんなのどんな場面で使うんだ?」とか「これ難し…」と思った手法も、具体的なユースケースで説明されているので理解が早かった(?)と思います。


難しいと思われる「黒魔術」メタプログラミングですが、この本で高すぎると思っていたハードルが大いに下がるのではないかと思います。
ただし、黒魔術は用法・要領を守って正しく使いましょう…技に溺れないように。


Paolo Perrottaさん、@kdmsnrさんに感謝!ありがとうございます m( _ _ )m

RubyKaigi2010に参加してきました。

RubyKaigiは初参加。
RubyKaigiは、Rubyまわりで活躍している方々の成果を直接見たり、話をしたりと、直接感じることができるイベントということで、距離と平日からというハードルを超えて参加しました。


Ruby初心者の私にとっては、見るものすべてが新鮮で刺激的でした。


内容については玄人向けのものが多かったりしますが、あまり触れていない人こそ参加するべきだと思いました。「こんなこともできる」、「こんなものもある」というのを知るだけでそれはもう知識なわけです。開発者会議とか、全然わかりませんけど、話聞いているだけでプログラマ魂に刺激が与えられます。


また、色々なRubyistsとコネクションもできるし、話するだけでも楽しいです。周りに質問出来る人たちが溢れているわけです。それはRubyのコードやお仕事に関してだけではなく、「コミュニティ」の運営なんかについても経験豊富な方々が揃っていて、かつ、話しかけやすい場所なわけです。


実際、私も著名なRubyistsと話す機会なんてRubyKaigiでしか考えられませんからね。しかも一緒に仮面ライダーWの最終回観るなんてこんな経験RubyKaigiでしかッ(ry…
参加者各位:本当にいい最終回の場をありがとうございました。


初参加にして、最後に残念な報告が@takahashim会長から。
RubyKaigiが来年で最終回とのこと。「過剰品質」だから?当初の目的を果たしたから?というのは前から聞いてましたけど、本当に来年で最終回なんですね。


@takahashimさんの発表を@kakutaniさんはを知っていたのかと思っていたのですが、どうも違う様子。けれども、私にはあの@kakutaniさんの話はRubyKaigiの最終回宣言に通じているものとして聴いていました。


これはRubyistsに対して、RubyKaigiに対して設定された「門」であると。
Rubyistsも、RubyKaigi自体も、何か殻を破るべきときが来た、というふうに私は受け取りました。


今回参加してみて、来年も参加したいと思いましたが、来年の開催までに自分にできることは何か、自分にとっての「門」はなんなのか、はまだ結論がでていません。

でももう、次回の開催まで10ヶ月くらいなんだぜ!?


※追記:2010/09/03
@kakutaniさんは、例の発言を知っていた模様。ただし、想像の範疇を少し超えていたらしい。

第一回minami.rbに参加

最近、忙しさに負けて勉強会に参加できていなかったことと、Railsを1から勉強しなおすことができる場を求めて参加しました。


参加者10人で第一回は開始。

  • 自己紹介
  • Rails, RubyのQA(付箋に書いてセンセーが回答)
  • Rackって何?
    • middleware
    • cgiとか何だとかプロトコルの差を吸収してくれる
    • ちょっとムズカシイ(middlewareってわかっても具体的に何してるか思い浮かばない)


そろそろ…ってことで実際に作ってみようということで、何を作るか検討。blogとかブクマとか会員一覧とかでたけど、blogを作っていくことになりました。
いきなり無茶なネタ(トラックバック, RSS, Twitter連携とか)出たけど、簡単にシンプルなblogから入ることになりました。

以下勉強できたこと。

  • railsコマンド実行
  • scaffold実行
    • Contentテーブル作成
    • title
    • content
  • modelにvalidates_presence_of :titleを追加
  • routes.rbにmap.resources :contents追記
  • i18nの設定
    • config/environment.rb
    • ブロックの中に以下の記述を追記
      • config.time_zone = 'Tokyo'
      • config.i18n.default_locale = :ja
    • config/locales/ja.ymlを配置(日本語はここに書く)
    • viewの表示名称をtメソッドで囲む
  • テストの実行
    • testにテストロジックを作成
    • functional:controllterのテスト書くとこ
    • unit:モデルのテスト書くとこ
    • rakeタスクでテスト実行


学習したコマンド
rakeコマンド一覧表示

rake --tasks 

routesの表示

rake routes

localのtimezone表記の確認

rake time:zone:local

testの実行

rake test


ja.ymlは以下から借りました。感謝。
http://github.com/svenfuchs/rails-i18n/blob/master/rails/locale/ja.yml

yamlの勉強する宿題が残ってますが、以上が第一回で勉強したことの概要。

yalabさん、satomicchyさん、参加者のみなさんに感謝