浅草ではRuby 1.9.1を使ってます
February 23rd, 2009
先週行われたOSC Tokyo 2009/Springの日本Rubyの会のコマで、3週間ほど前にリリースされた新しいRuby、Ruby 1.9.1について、Ruby 1.9コンサルタント(自称)としてお話をしてきた。
浅草ではRuby 1.9.1を使ってます
資料はこちら。
今回は新機能などをいちいち細かく紹介するのはやめて、もっとざっくりと全体像をなるべくユーザーの視点から語ってみることにした。
つまり、今あなたがRuby 1.9.1をダウンロードしてインストールして毎日のスクリプティングに使い始めると何が嬉しいのか?何が楽しいのか?どんな良いことがあるのか?というのがメインテーマ。
事実、僕自身は毎日Ruby 1.9を使っていて非常に楽しい思いをさせてもらっているし、この機会にその楽しさをみんなに伝えたい、と思ったのだが、それって、何か理由を一つ挙げるとすると何故なんだろう?と考えてみると意外に説明が難しい。
で、僕なりに考え直してみた結果が、EnumeratorがどうしたとかVMがどうしたとかそういう難しいところじゃなくて(そういうのはささだ先生にお任せして)、「新しいことはいいことだ」で語った内容だと思う。
(以下、デンパ注意)
“Ruby”は人類の英知の結晶だ。”Ruby”は単にいちプログラミング言語の名前であるのみならず、僕らプログラマーが世の中をもっと良いものにしていく社会的ムーヴメントだ。
Rubyは、プログラミング言語としては必ずしもコンピューターサイエンス的な意味で最高に高度なものではないかも知れないが、どこかの大企業が自社製品を売り込むための思惑が込められているわけでもなければ、誰かの気まぐれな思いつき「だけ」で成り立っているわけでもなく、その代わりに、ユーザーがもっと楽しく、もっと豊かにプログラミングができるようにしたい!というみんなの想いがこれ以上ないぐらい高い密度で凝縮されてできている。
(特に太平洋の向こう側に住んでいる)一部の心ないRailerたちが過去のRubyの一部を切り取った”Ruby 1.8.6”という言語にしがみつこうとしているとかいうような話もあるようだが、おそらく彼らの曇った目にはRubyが”ちょっと仕事を便利にしてくれるプログラミング言語”というぐらいにしか映っていないのだろう。
でも僕らはそうじゃない。今たまたま日本に生まれてプログラマーという人生を選んでRubyという言語に出会ったおかげで、僕らはこの魔法のかかったムーヴメントの真っただ中に身を置くことができる。新しいRubyが毎日作り出されていく奇跡を肌で感じることができる。
さらに、何かしらの形で自分なりのアウトプットを先っちょのほうに投げ込んでみることによって、自分の中の何かがそんな魔法を作り出すエネルギーに変わって世界中を幸せにできたりするかも知れない。この”Ruby”という、世界中を巻き込みつつ未だかつてない規模で進行している「祭り」にリアルタイムで遭遇したというこのチャンスにあなたも参加しないなんてもったいない!
これが、あなたが今すぐにRuby 1.9.1を使い始めるべき最大の理由だ。
というようなことを語ろうと思ったけど、朝イチで眠かったし、ちょっと宗教じみてるかなー、とか思って自重してしまったっていうのもあったし、あと満員御礼(笑)で若干テンションが下がった、ってのもあって、ちょっと電波力を抑えすぎてしまったかな、と今では反省している。次の機会があったらもっと本気で電波出すことにしよう。
とにかく、あれを聞いて一人でも「Ruby 1.9.1をインストールしてみたよ!」とか「Asakusa.rb入りたい!」とか言ってくださる人が居たらいいなぁ。
仙台Ruby会議01
January 30th, 2009
仙台RubyKaigi01に参加した。仙台は、牛タンだけじゃなくて海の幸もすこぶるウマい素敵な街だった。
で、「Rails 2.3(もしくはMerb)で5分で作るトランプゲーム(仮)」というタイトルでLTした。とりあえず資料は以下。
ほんとうはRails 2.3というフレームワークの上で動くネットワーク対戦型トランプゲームフレームワーク、というという題材で、いかに業務ロジックを再利用可能なメタなフレームワーク部分とRubyっぽいDSL(Rails的な意味で)に分けて設計/実装できるか、というのが当初の構想で、いちおうその後の懇親会で見せたとおり、そのためのデモアプリも完成してはいたんだけど、素振りしてみたらこんなのを5分でデモを交えつつ喋るのはぜんぜんムリ、ということがわかったので、急遽方針変更してデモはばっさり落としてしまった。
結局、単に「メタとベタ」というフレーズ(1週間前のRails勉強会の懇親会で福井さんから聞いた)が使いたかっただけなんちゃうか的な感じになっちゃって、ちょっと内容が薄かったかな、と反省。
ちなみに、この問題のスライドだけど、

これは自分で書いたわけじゃなくて、「会社を紹介するスライドをなんかください」って会社の人に言ったらこんなのが出てきた、という。
そんなわけで、もう一度言っとくけど、
どうやらT&Fカンパニーという会社でフェロー(笑)をやってることになってます。
よろしくお願いします。
あと、「トランプゲーム」そのものをえらく楽しみにしててくださった方もいたようで、
『トランプの「ト」の字もでてこなかったじゃないかー』
と、あとで大場nay3にお叱りを受けてしまった。どうもすいません。
いちおう、そっちのほうはもうちょっとコードが整理できたらGitHubに上げとくので、興味がある方は是非ご覧ください。
第2回Asakusa.rb
August 4th, 2008
7/26(土)、 第2回Asakusa.rbが開催された。
今回は、 隅田川花火大会 の真っ最中に 花火会場のほど近くにお住まいのメンバー のご自宅にて開催、という、とっても夏の浅草「らしい」集いになった。
結局花火に夢中で、肝心のhackの方は全然はかどらなかったわけだが、まぁたまにはそういうのもアリなんじゃないでしょうかね。
そんなわけで、 まとめはこちら 。
今回は、前回よりも一層、「Rubyの凄い人」と「Railsの濃い人」がそれぞれ集まったようなメンバーで、 「RubygemsってやつをRuby 1.9から標準添付にしてるんだけどそんなもの使ったことないよ」っていう人 と 「Rubygemsは毎日使ってるけどRuby 1.9から標準添付になったなんて知らなかった」っていう人 が異文化コミュニケーションを果たすことができたというのは、これもまたAsakusa.rbの活動のひとつの大きな狙いだったりするので、個人的にはけっこう満足だったりする。
それから、今回のもうひとつ大きな収穫と言えば、「Rubyのおかしな挙動を見つけたらどんどん Redmineに上げちゃっていいよ」と Rubyコミッターチームに言っていただけたこと。
そんなわけで、とりあえず前回同様に最新版のRubyでも再現したSEGVの件について Redmineに報告しておいた 。
今回のこれのおかげで、今後の進め方がひとつはっきり見えてきたような気はする。
つまり、日頃いろんな関わり方でRubyを使っている多彩なメンバーが集まって、あちこちからYARVを突っついていじめて、とにかくたくさんバグを出して、片っ端から Redmineに報告する、というだけでも、立派な成果と呼べるものになるんじゃないだろうか?
ただ、それにしてもこのチケットはあまりに大雑把すぎて非常にいただけないので、次からはもうちょっときちんと切り分けができるようになりたい、というあたりは課題かな。
ちなみに、このとき明かされた舞波さんの新しいプラグインの構想が、超life changingで革命的すぎる一品だった!
あれさえあれば、Rails 2.xのあのダサかっこ悪い respond_toブロックがウルトラセクシーな記法に大変身!
心待ちにしておこう。
と思っていたら来た!
http://blog.s21g.com/articles/697
・・・けど、 致命的な問題 が><
ん〜、惜しい!
ファンの皆様、引き続きmaiha先生の新作にご期待ください!
RedCloth 4.0 Released
July 23rd, 2008
待望の RedCloth 4.0がリリースされた 。
さっそくこのブログのサーバにも入れてみたので、このポストが RedCloth 4.0で書く最初の文章になるかな。
そもそも、このブログは Mephisto 0.8 (Drax) の Gitの先っちょ版 で書いているのだが、この Mephistoはデフォルトでは RedClothの3.0.4をバンドルして使っていて、改行が <br> になってくれないという致命的に使いにくいブログシステムだった。
ので、 _why先生のリポジトリ から 3.301という開発版を取ってきてちょっと拡張して使っていたのだが、このたび 4.0が正式にリリースされたので全面的に乗り換えてみた(そこらへんの手順とかTIPSとかは自分のためにも気が向いたらあとで書く)。
この RedCloth 4.0が出たおかげで、Rubyで作られた Wikiとかブログとか CMSとかその手のツールもだいぶ使いやすくなって盛り上がってくるんじゃないかな。
やっぱりこういうやつってそこらへんの足回りがかなり重要なので。
そして、RedClothといえば、3.0.4をめっちゃオレオレ拡張して組み込んでる Redmine とかがどう対応するのかも気になるところですよね。
第1回Asakusa.rbの成果のご報告
July 17th, 2008
第1回Asakusa.rb のときに発見されて修正された Railsのバグをパッチにして投げてみたところ、
http://rails.lighthouseapp.com/projects/8994/tickets/623
そっこーで無事本体に取り込まれた。
http://github.com/rails/rails/commit/bb33432b0f5bf644713e696e4dafc7e7d3cc5808
ということで、さっそく成果が出たよ!めでたい!
なにしろこんなたった8文字書き加えるだけのパッチでも、僕一人ではどんなに頑張っても絶対に解決できなかったであろう、(僕にとっては)充分に高度な内容である。
そういう意味でも、みんなに集まってもらって会合を開いた価値はあったわけで、非常に喜ばしい。
しかし、エラーメッセージを一目見て解決してくださったのはささださんだし、
正しいデバッグの方法を指南してくださったのはgotoyuzoさんだし、
実際にキーボードを叩いてくださったのはかくたにさんだし1、
それ以前にネットにつなげてくれたのは cojiさんだし、
という具合なので、実は僕は何もやってないんだけど、
でもコミットは何故か僕の名前でクレジットされてて恐縮だ2。
そんな意味を込めてチケットの説明文には “We” って書いたんだけど、
でもなんの文脈もないので、「"We"って誰だよ?」って感じだよな。
そしてこれにて一件落着、かと思いきや、その直後にこんなアップデートが。
http://github.com/rails/rails/commit/3c282f3a0a7c1d5ab91241674251794ead5fa41d
なになに? uses more memory than eval with block ? そうなの?
Rubyは奥が深いなぁ・・・
1 このあたりについては かくたにさん的には何やらいろいろ言いたいことがあったらしい 。すみません><
2 しかも gitの configの user.name あたりの設定ができてなくて漢字でフルネームとかいって、恥ずかしすぎる><
Asakusa.rbが結成されました!
July 14th, 2008
このたび、こんなような趣旨で、 Asakusa.rb という団体を発足させてみた。
第1回 Asakusa.rb のご案内 – http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-list/45213
メールの内容を再掲するのもなんなので趣旨を3行でまとめると、
- 東京の下町とかそのあたりに住んでいる Ruby技術者たちが、
- オフで集まって酒でも飲みながらみんなで楽しくハックしつつ、
- 何か具体的な「成果を出す」活動を目的とした地域Rubyistコミュニティ
である。
なんだか偉そうなことを言ってるが、もちろんいきなり僕一人でそんなことができるわけがない。
今回の件は、ちょっとしたご縁があって、ささだ大先生・かくたに大明神のお2人の強力なお力添えがあってのことである。
もともとの話の発端は RubyKaigi 2008の「3日目」にさかのぼるのだが、まぁつまり、ここらへんで張られた伏線がやっと回収されてきたというところだろうか。
http://kakutani.com/20080623.html#p01
さて、そんなわけで、さっそく第1回の会合を7/11の金曜日に実施した。
MLへの告知がほんとに直前になってしまったことについては、何人かの方から「急すぎ」というもっともなご指摘をいただいた。
最初からあんまり人数ばっかり集め過ぎて収集つかなくなっちゃうのも嫌だから、第1回は敢えてある程度敷居を上げてコアなメンバーに絞ろうとしたという意図も多少あったのだが、その反面えらくクローズドな印象で感じ悪い告知になってしまった。
うーん・・・。難しい。
まぁそれでもけっこう人は集まってくれるもんで、当日は、
ささださん
かくたにさん
後藤裕蔵さん
Cojiさん
レオさん
「バリケン」の人
などなど、Yet Another Ruby Cityの名に恥じない総勢10名の実に豪華すぎるドリームチームが集結することになった。
肝心のハックの方は、こちらの準備の不手際もあってなかなかネットに繋がらなかったり、と、しょっぱなからずいぶんとグダグダな展開になってしまったが、それでも結果としてはあの短時間にしては充分な「成果」は出たと思うし( Railsの YARV対応漏れバグを1箇所直した!! )、なにより、この人たちが集まると何かめちゃめちゃものすごい化学反応が起こってすげぇことができちゃいそうな手応えを感じた。
そんな中に居合わせることができただけでも、日常では味わえない素晴らしくエキサイティングな体験だったと思う。
この歳になって自分がバンドで一番下手くそなメンバーで居られるというような、そんな素敵な機会を与えてくださった皆様に心から感謝したい。
そんなわけで、よければ引き続きこれからも活動を続けて行きたいと思っておりますので、
みなさま、今後とも Asakusa.rb をどうぞよろしくお願いいたします。
それから、これを読んで興味を持たれた方は、 http://qwik.jp/asakusarb/ に書いてある手順でメール1通でご加入いただけるので、次の機会には是非是非ご参加ください!
お待ちしております。
The 8th night of JRuby Japanese Tour 2008
June 29th, 2008
来日中の JRuby の Charles Nutter のジャパンツアーの最後の思い出に、ということで何故かこんなひどい話がもちあがり、
http://twitter.com/ko1_twitter/statuses/844148049
アキバのメイド喫茶というやつに行ってきた。
店内は写真撮影お断りとのことだったので、残念ながらメイドさんと一緒にミートソースを「まぜまぜ」する
Charlesのかわいらしいお姿をここで公開することはできないが、
“maze maze” と “moe moe” の2単語はバッチリ覚えたよ!家に帰っても使うよ!
と嬉しそうにおっしゃっていたので、まぁお連れした甲斐があったというものだ。
よかったよかった。
あわせて読みたい:
JRuby Japanese Tour 2008 Wrap-Up!
New Wave of Database Programming with Ruby 1.9 on Rails 2.1
June 26th, 2008
New Wave of Database Programming with Ruby 1.9 on Rails 2.1 というタイトルで、
RubyKaigi 2008で LTした。とりあえず発表資料は こちら 。
(2008/07/01追記: そうか! slideshareなんだからそのまんま貼っちゃえば良いのか!
ということにようやく気づいて以下に貼った)
ところで、これがまたどうも何故か Java方面から思わぬ反応を頂いているようだ。
http://d.hatena.ne.jp/higayasuo/20080624/1214305064
違うよ><全然違うよ!!
Javaは僕にオブジェクト指向を教えてくれた思い出深い言語なので、ひがさんのとこのコメントにも
書いたとおり嫌いとか対立とか全く思ってもいないし、ていうかそもそもそんな後ろ向きな話題には
微塵も興味ないし。
そんなことより、僕が RubyKaigiの LTという競争率の高い貴重な機会を頂いてみんなに
訴えたかったのは、「 Javaなんてう××!! 」とかそんなんじゃなくて、スライドの一番最後。
Rails派のみんなももっと Ruby 1.9使おうぜ!
っていうこと。
僕の周りだけかもしれないが、なんか仕事で Rails使ってます。みたいな人に限って、
「Ruby 1.9って、まだ Railsまともに動かないんでしょ?
そんなの使えねーよ。正式に対応するようになってから使うわ」
って言ってる人が多くて、
「Rubyってあの Railsを動かすための言語 でしょ?」
とかって、あながちネタじゃなくてけっこう本気で思ってる人も居るような気がしてならない。
みんな Rubyがそこにあることが当たり前になりすぎて忘れちゃってるんじゃないだろうか?
思うに「言語」を作っちゃうなんて、どう考えてもめちゃめちゃ凄すぎると思う。
Ruby-coreの皆さんは日本の宝、いや、人類の宝ですよ、ホントに。
しかも、Ruby 1.9は実に素晴らしい言語ですよ!
言語仕様だって1.8に比べても確実に良くなってるじゃん!
というのを LTではきちんとアピールしようと思ってたんだけど、
当日ギリギリに作ったスライドがかなりの枚数になってしまい、
結果として、その main ideaの部分に辿り着く前に時間切れで終わってしまった。
その後ささださんにも「Ruby 1.9の話が全然出てこなかったじゃーん」と
厳しくダメ出しをされてしまった。
どうやらささださんをはじめ、選考してくださった皆様を大いに失望させてしまったようで、
本当に不甲斐なく、情けない。
そんなわけで、Ruby方面の皆様には、絶対にいずれ僕なりにできる何らかの方法で、
恩返しをさせていただきたいと心の底から思う。
今に見てろよ。
RubyKaigi 2008
June 23rd, 2008
RubyKaigi 2008 が無事終わった。楽しかった。
とりあえずざっくりまとめ。詳細についてはあとで書く。
- 生 Chad Fowler と喋った。名刺ゲット & 漢字でサインしてもらった!
- その他にも色々サイン本収集祭り。
- 0日目、1日目は Rails勉強会@東京ブースのブース番。
刷っていった紙 & 舞波CDもおかげさまで無事完売。
- 1日目ブース番してたらRamazeの人が来て「チケット持ってないから会場入れないんだよー」とか言ってた。
ちょうど xibbarさんがチケットを余らせていたので、xibbarさんにお願いして1枚プレゼントして差し上げた。
翌日も来られていた & Reject Kaigi で発表までしてもらえて、良かった良かった。
- 笹田研 すごいなぁ。おめでとうございます。
- 夜は3日連続で ビール会議 。普通じゃ絶対知り合う機会も無いようなすごい人とか遠い人とかいろんな人と飲んで話せた。
- MacRubyすげぇ
- Rails系セッションの座長をやった。
- Regional RubyKaigi@東京!
What's new SINCE Rails 2.1
June 20th, 2008
さて、今日からいよいよ RubyKaigi 2008 だ。
今回の RubyKaigiで新設された「コミュニティ枠」で Rails勉強会@東京 としてもブースを設けることになり、
せっかくだから何か出し物をやろうよ、という話になって、そのうちの1つとして、
- 各自何か好きな内容で適当に cheat sheet みたいなものを作ってきたのを持ち寄って紙で配ってみる
という企画(?)をやることにした。
そこで、昨日僕が思いつきで作ってみたのがこちら。
Rails 2.1 “以降” にコミットされた新機能たち
自分的にはひょっとして前回の勉強会でやった What’s New in Rails 2.1 のまとめみたいなのをやる役を期待
されてるかな?とも思ったけど、いまさらこのタイミングで「Rails 2.1 の新機能たち」をまとめて直してみても
なんかもうネタの鮮度が悪すぎて全然おいしくないし、そんなの これ 見れば良いじゃん、とか言われそうなので、
敢えて Rails 2.1.0 リリースからわずか2週間強の間に Rails2.1系masterに新しく実装されてコミットされた新機能
をピックアップして1枚の紙にまとめてみた。
もろはしさんには
「ちょwwww」
とか言われた。ひねくれ者ですみませんねぇ(笑
さて、まとめ始めてみてびっくりしたが、たった2週間程度の間に Railsにはものすごい量のコミットが入っている。
実際、今回のまとめも紙1枚に収めるためにかなり内容を削っているが(パフォーマンス周りとかバグ修正とか)、
それでも勉強会が1回開催できちまうくらいの結構なボリュームなんじゃないだろうか。
こういう切り口であらためて見てみると、やっぱり Railsっていうソフトウェアは「安定版」がリリースされた直後
というこんな時期でも全然「安定」する気なんか無くて、常に休まずに前へ前へと進化し続けているフレームワーク
なんだなぁ、という、そんなことを強く実感させられる。
つまり Railsはいつまでも「未完成」で「不安定」で「不定形」なフレームワークなんだな。
だからこそ毎日コード書いてんのにまだまだ毎日のように新しい発見があるし、毎月毎月マニアどもが寄り集まって
「勉強会」なんてものを開催して勉強し続けないとよくわかんないし、という事態になっちゃってるわけなんだし、
こっちとしてもそれでこそウォッチのし甲斐があるというものだ。
本を1冊買ってきて読んだら全部わかっちゃう程度のものだったら逆に面白くない。
だから、僕もよく「Railsを勉強したいんですがどの本を読んだら良いですか?」とか訊かれるけど、そんな
これさえ読めばOK、なんて都合の良い本はあるわけない。本に書いてあることなんか全部 Railsの進化の過程の
ある瞬間を切り取った一部分に過ぎないし、第一、出版されたころには情報はもう古い。
でも「読むな」とは言わない。歴史や過程を知ることも重要な勉強だからね。だから僕の答えは「 全部読め 」。
さて、どうやら僕にとってはそのあたりが Railsを使い続けている最大の理由なわけで、たぶん Railsが「安定」
なんかしちゃったら僕は Railsを使うのをやめてしまうのだろう。
レールが終点に行き着いちゃってそれ以上延びなくなっちゃったら、それはもはやアジャイルではなくなる。
つまり「変化」することを放棄してしまうことになるからだ。
もし仮にそんな「Railsの終点」ができたとしたら、それはその次の瞬間からどんどん古くなっていき、
やがて価値を失っていく。VBやらEJBやらを見ればわかるように、歴史上のある時点で最良と言われた選択肢が
その後にわたってずっと最良であり続けたことなんてないからだ。
いや、とは言ってもやっぱり顧客やエンドユーザからしてみればせめてフレームワークぐらいは
「安定」してて欲しいもんだよなぁ、とか考えてみると、なんだかちょっと面白いジレンマかも?
などなど、RubyKaigiの会場でこの1枚の紙っぺらを手に取ってくださった皆さんも、そんなことを
感じたり考えたりしながら眺めてくださったら良いかもなぁ、と思っております。



