rails3のコントローラーで入力チェクを行う

以前、rails2系でコントローラーで入力チェックを行う方法をご紹介しました。


しかし、このActionController::Base.verifyメソッドはrails3では利用できなくなっています。
verifyのアノテーションを記述していても全くムシされてしまっていて、代わりに次のような警告が表示されます。

DEPRECATION WARNING: verify was removed from Rails and is now available as a plugin. Please install it with `rails plugin install git://github.com/rails/verification.git`.

(verifyメソッドはもうないからプラグイン使ってねー)


という訳で、指示されるままにプラグインをインストールします。

rails plugin install git://github.com/rails/verification.git


これでrails2系と同じようにverifyが使えるようになります。
確認してみたところ、使い方・利用できるオプションはrails2系の時と相違は無いようです。
詳細は以前まとめたものがあります。


ただし、よほどのことがない限りroutes.rbで制御した方がよいので、使用頻度はあまり高くない気がします。
ただ、アクション内が汚くなりそうだったら使ってみるとよいかもしれません。

AgileJapan2011北海道サテライトに参加してきました

AgileJapan2011北海道サテライトに実行委員として参加してきました。


アジャイルについて考えることのできるイベントが、北海道で開催されたというのはとても価値のあることだと思います。アジャイル開発の根底の部分、"なぜそんなプラクティスが行われているか"っていう思いの部分は、実際に行っている人と接することでしか伝わらないような気がしています。
まったくやったことのない現場のひとにとっては、本はあまりに理想的すぎて、現実との距離が遠いと思うのです。


で、実際にアジャイル開発を行っているひとたちや、やったことないひとたちが集まって会話できたっていうのは、これから良い現場を作っていくためのきっかけになるんじゃないかなぁ。


それと、こちらがぼくの今日の発表資料です。
アジャイル的なアプローチを通じてぼくが実際に学んだこと、そしてこれから目指して行きたい現場作りについて発表させてもらいました。
"良い現場"について今考えていることです。

興味があるけどアジャイルで開発できていない状況の一つは、現実と理想がかけ離れすぎていることなんじゃないかなーと思います。現場の規模も人数も大きすぎて、そこに個人で何か働きかける余地がないような状況です。
ぼくは今日、そんな人たちにアジャイル開発を始めるということを伝えられたらいいなと思って発表させてもらいました。


ぼくが以前いたプロジェクトもやっぱり巨大で、個人でカイゼンできるような隙はほとんどありませんでした。ただそれでも現場と向かい合って行くってことは大事なことで、カイゼンできそうな何かを見つけようとするだけでも大事な一歩だったりすると思うのです。
ぼくが最初に挑戦したのは、業務時間外に社内勉強会を行う、ということでした。


自分の伝えたかったことがどこまで伝えられたかはわかりませんが、少しでも誰かに届いてると嬉しいなぁ。


それと、今日の自分の裏テーマとして意識したのが「アジャイルワードを使わないこと」です。
ぼくが実際に取り組んできたことっていうのは、アジャイルワードを使って表すといくつかの言葉に収まってしまうようなとても小さな取り組みです。でも、今ぼくが思いを届けたいひとたちにはアジャイルワードを使ってしまうと全く届かないものになってしまうような気がしました。
例えるなら、「オブジェクト指向を知らないひとがjavaを勉強するのに、デザインパターンから勉強を始めるようなもの」かなと思います。なんでそれが必要になったのか、見えなくなってしまうんじゃないかな、と。


そして裏テーマの2つ目。ぼくは今回の発表では徹底して「顧客」という言葉を使っています。「顧客≠お客さん」。
これはあくまで理想論なのですが、望まれるモノを作るためには顧客を巻き込んで一緒に開発を行っていく必要があると思います。
そうしてときに「お客さん」ではダメなのです。
チームメンバーの一員の「顧客」というロールとして、こちらが接していけるといいんじゃないかなぁと思います。
あくまで理想論ですが。(2回目)


裏テーマ3、スライドの最後の1枚は@t-wadaさんの資料のパク…もといオマージュです。
元ネタをからめてちょっとアレンジさせていただきました。

(勝手に)使わせていただき、ありがとうございます!


最後に、参加されたみなさま、お疲れさまでした&ありがとうございました!
北海道でも、現場のカイゼンについて考えることのできるイベントをもっと増やしていきたいなぁ。

えにしテックに入社しました

本日、えにしテックに入社しました。


前職を辞めると決めてから、ほんとうに多くの方に相談に乗ってもらいました。
退職を決めたのは、「もっとお客さんに近い仕事がしたい」「誰かが幸せになれる仕事がしたい」という思いからです。
そのための選択肢は本当に多くて、かなり長い期間どうすべきか考えていました。
そんな中で多くの方に、励まし/アドバイスをいただきました。
素晴らしい方々に囲まれていることを、ほんとに誇らしく思います。

また、面接させていただいた会社さまにもとても感謝しています。
いろいろな可能性を考えさせていただきました。


これからは自分の夢と仕事の中で向き合っていけることがほんとに嬉しいです。


でもこれは、まだスタート地点に立っただけなんだと思います。
ここからどう進んでいくか、何を為していくかは自分次第なはず!

自分の人生に責任を持って仕事ができることを嬉しく思います。


これからは、えにしテックの一員として頑張って行きます。


みなさま、よろしくお願いします!

大江戸Ruby会議01に参加しました

2011.04.10にとても素敵な地域Ruby会議が開催されました。
大江戸Ruby会議01 - Regional RubyKaigi


Asakusa.rbがすっと前から気になっていたので、迷わず参加してきました。

当日は桜も咲いていて天気もよく、絶好の大江戸Ruby会議日和でした。


「コミュニティって何?」とか「コミュニティの在り方」については、最近ぽつぽつと考えていて、そんな中、角谷さんまつださん の話を聞けたのはとても良かったと思います。うん、そうだなぁ。仲間になりに、そして仲間を探しに行くような関わり方をもっとしていこう。


当日の発表内容については、優秀なレポート班の方々がるびまに掲げてくださるとのことなので、ぼくからは1つだけ。
@ukstudio さんのNinjaTalkがとてもよかったなー、って思いました。
UKSTUDIO - 大江戸Ruby会議01で発表してきました
現場のメンバー全員で一緒に考えていけるのが、継続してよいコードを保っていく方法なんだよなぁ。


あと、心残りだったのが、懇親会に参加できなかたこと><
当日、mさんがキャンセル分の空席を回してくれたんですが、中途半端な時間に飛行機を取ってしまっていたため泣く泣く断念しました。
(次からは、参加できなくても飛行機は遅めにとっておこう…!!)


運営されたみなさま、参加されたみなさまお疲れさまでした!
素敵な"生活発表会"をありがとうございました!

Macのirbで日本語入力をできるようにする

Macのデフォルトだと、readlineがよろしくないのでirbから日本語が入力できません。

これは、rvmでインストールしたrubyでも同様です。


そんなときは、rvmでreadlineをインストールしてからrubyをコンパイルしましょう。

$ rvm package install readline


ここはやっぱり最新のruby(現在:1.9.3dev)をインストールしたいですよね。
readlineのパスをコンパイル時のオプションに設定してインストールします。

$ rvm install ruby-head --with-readline-dir=$rvm_path/usr


2011/04/05現在、ruby-headをインストールしようとすると、ruby-1.8.7-p334も同時にインストールされます。

ここで、ruby-headをコンパイルする際に与えたオプションはruby-1.8.7には適応されません。
なので、ruby-1.8.7のirbでは日本語入力が行えません。


それぞれのrubyをオプション付きでコンパイルするようにします。

$ rvm install ruby-1.8.7 --with-readline-dir=$rvm_path/usr
$ rvm install ruby-head --with-readline-dir=$rvm_path/usr


これでどちらのirbでも日本語入力ができるようになりました。


[参考]

IE用のJavaScriptコンソール

IEでちょこちょこっと、JavaScriptの動作を確認したいときがあると思います。
そのためだけにアドオン入れるのも面倒だったので、簡単なJavaScriptコンソールを作ってみました。


ブックマークレット版はこちら


IEのお気に入りに登録して、試したいページでポチッとすればJavaScriptコンソールが表示されます。


[動作環境]

  • IE6+


どうでもいいんですが、IEでブックマークレットを登録しようとすると、必ず以下のようなメッセージが表示されます。


プロトコル"javascript"には登録されたプログラムがありません。この対象を維持しますか?


毎回丁寧に質問してくれるなんて、さすがIEさんですね!

「リーンソフトウェア開発と組織改革」

あまりに良い本でぐっときたので感想書きます。


リーンソフトウェア開発と組織改革

リーンソフトウェア開発と組織改革


アジャイル開発に積極的に取り組む現場が増える一方で、ウォーターフォールの現場では"アジャイル"っていう言葉がバズワード的な扱いを受けているのがとても気になる今日この頃です。


かくいう自分もウォーターフォールの現場で育ってきた身なので、アジャイル開発というものをなかなか理解できませんでした。
プラクティスありきで考えてしまっていたので、アジャイル開発の本質が見えていなかったように思います。

より良いプロダクトを提供するために、プロセスを改善していくということ

ウォーターフォール型の開発だと、作業中の各工程のみに注力することを促す開発手法であることなのが問題かと思います。
例えば、実現困難な仕様を携えた設計書とかきっと良く見かけますよね?


それに対してアジャイル開発だと、終始一貫してプロダクト自体を意識せざるを得ません。
アジャイルとは常にプロダクトを意識して1つの目標としてチームで共有できる、それを促進してくれる開発手法なんじゃないかと思います。


プロセスを変えるのは、より良いプロダクトのため。
そのためにアジャイル開発では、振り返りによって自分たちのプロジェクト自体を改善していくことが重視されています。


特に「第4章 たゆまぬ改善」は今日からできる改善を考えるきっかけになります。
これはどんな現場であるかに関係なく自分ひとりでも挑戦できる試みがあって、それを続けることでしか改善にはつながらないってことを教えてくれます。


自分ひとりからでもプロセスを改善して、それを組織自体にフィードバックしていく。
とてつもなく長い戦いかもしれませんが、前向きに戦う勇気をもらえる素晴らしい本でした。


ウォーターフォールの現場で、上手くいかないモヤモヤ感を感じている人には是非お勧めの一冊です!

リーンソフトウェア開発と組織改革

リーンソフトウェア開発と組織改革