Hatena::ブログ(Diary)

sshi.Continual このページをアンテナに追加 RSSフィード

プロフィール

sshi

SFと映画と小説とRuby信者(最近はhaskellびいき)です。

 

2008-06-22 Sun

[]RubyKaigi2008 二日目 RubyKaigi2008 二日目 - sshi.Continual を含むブックマーク

yuguiさんにサインもらえて満足。

やるおがJRuby最適化するのは反則。

残りは後で書く。書いた。

一週間遅れだが今も覚えていることを書く。偏見がさらに記憶改変されて内容が無茶苦茶になってたらすみません。


拡張ライブラリの書き方講座(arton)

拡張ライブラリテンプレートを生成してくれるextrails*1は便利そげ。あ、gemにも対応してたのか。

圧巻は拡張ライブラリを使ったメモリイメージ可視化ツール*2。主要なオブジェクトが色わけされた(昔の)windowsデフラグちっくな画面が綺麗だった。GCされるとごそっと書きかわるので楽しげ。

ただ、extrailsをつかったライブコーディングデモで"w"の文字のせいでなかなかバグがとれなくて時間がおしてしまったのは残念。IRCチャットバグが指摘されてたのはおもしろかった。

さらに仕事に使うRuby(後藤 謙太郎(ごとけん))

客先をまきこんで、tracとかRadMainを使ったお仕事の進めかた。客先と情報を共有している時には、客先にみせなくない情報もあるわけで、そういう情報はひとつのシステム内で可視性をいじくるよりも違うシステムを立てちゃったほうが早いし安全という話があってこれはなるほど。

erbを偲んで(関将俊)

『「せき」さんこと「せきさん」』の発表。偲ばない。MVCのViewテンプレートじゃなくて実行環境+テンプレート(View Object)なのだ、という指摘。だめだ大分忘れてるな。

matzを説得する方法(田中哲)

田中さんによるRubyMLでMatzを説得させるための傾向と対策。RubyMLに提案を投げてみたことは一度もないけど、参考になる。perlというと釣りやすい、haskellというと駄目、というのはわかりやすい。haskellに近い書式で書ける遠藤さんの提案が玉砕してたしなあ。

日本Rubyリファレンスマニュアル2008・初夏(青木峰郎)

リファレンスマニュアルの進捗報告。去年聞いた限りだと絶望的な状況ぽかったのに、おもいのほか進んでる。えらすぎる。

The future of Ruby in Mac OS X(Laurent Sansonetti)

噂のMacRuby。これはいろんな意味ですごかった。Mac上のRubyというとRuby Cocoaが既にあるわけだが、RubyCocoaObjective-CオブジェクトRubyオブジェクトをがんばってブリッジしてるのでオーバーヘッドがおおきい。そこでRubyオブジェクトObjective-Cオブジェクトマージしちゃえばいいんじゃないの、というのがMacRubyの思想。

どうがんばっているかというと、RubyのCのソースObjective-Cで書きなおしていて、例えばRubyStringクラスObjective-CStringクラスを改変する形で実装している。ブリッジしてないので早いし、Ruby側のStringオブジェクトからObjective-CStringのメソッドが呼べたりする。でもってほとんど一人でそれをやってるらしい。すげ。ここまでいくとRubyではないよなあ、と思うものの、インパクトは抜群。Macいいな。

んー。どっかに無理がでてるのかどうかは心配。Objective-CモデルRubyモデル親和性が高かったってことなのかな。

REST信者から見たRuby on Rails 2.0(山本陽平)

うわ。これの内容を覚えてない。REST的な思想の説明をしてたんだっけ…。

Real-World Enterprise Ruby(大場光一郎・高井直人)

高井さんはおもしろい。スーツ二人がおりなす漫才。実際のRubyの適用事例を紹介してたはずだが内容をあんまり覚えていない。あー、Java案件と同じようにRuby案件でもテストチーム等々の体勢をしっかり作ってて、そこまでやってしまえば、特にRubyだからどうこう言う話ではない、というのが印象的。


ここからサブセッションへ。


net-ircというモジュールの実装紹介(cho45)

cho45さんを個人的に会ったことある人かと勝手におもっていたら違ったのがショックだった。えーと内容はircをインターフェイスにいろいろやろうというお話rubyでircというとささださんが作ったnadokaというのがあるのだが、それとの関係がちょっと気になった。

Rubyプログラム型推論(松本宗太郎)

型推論お話。やっぱり難しそうだなあ。ML流のがちがちな型推論をするなら、Ruby側になんらかの制約なりアノテーションをつけることにするなり、Ruby側に制約をかけないんだったら、緩めの型推論(わかんねーって型を残すとか)しないと厳しそうという印象。フロー解析はまだやってないのでそれをすれば…という話もあったけど、あんまり良くわかってないのでなんともいえず。ああでも僕の思ってるようなことはどっちかいうとフロー解析なんかな。

PROで発表した時の別刷を配ってたので貰ってきた。別刷メソッド。あたらしい。

RubyGCをどけんかせんといかん(authorNari)

soutaroさんとしゃべってたのでこれはあんまり聞いてなかった。なんかアクションゲームをつくってGCが走ることによる不定期な速度低下をデモしてたらしい。


もういちどメインセッション


Rails症候群研究(前田修吾)

Railsでは黒魔術がいっぱいつかわれているせいで、それを見たRuby使いが次々(不必要な)黒魔術を駆使するようになってしまうわけだが、それは実はRubyのせいなんであるよ、という話だったような気がする。おもしろ。

で、最後のあたりは"Rubyの標準化"的な話になったわけだが、標準化に関してRubyの楽しさを排除する方向への動きがでればそれには表にたって断固反対します、的な発言がでた。政治的な話はよくわからないが、Matzの近くにこういう人がいるのは頼もしい。とはいえ、ちょっとこの部分、デリケートな話の気もするし、既に記憶があまり確かじゃないので後で動画みて確認しとかないと駄目だな。



そして怒涛のRejectKaigi二本立て

RubyKaigi終了後は好例のRejectKaigiが行われたわけだが、これがすごかった。件数が多くなったので、Reject KaigiをRejectされたReject Reject Kaigiもできて、同一会場で、二つのスクリーンを立てて一本3分半程度で二本立てで同時進行。マイクないので片方の声がでかいともう片方の声が聞こえないというカオスっぷり。

最初は真ん中くらいにいて、見るのがつらくなったらおもしろそうな方に移動する、という見方をしてたのだがいろいろ見おとした気がする。ネタ満載で結構笑った。Reject KaigiとRejectReject のプログラム一覧どっかにないかな。

中でも、「やる夫で学ぶJRuby最適化」が反則。高速化されたはずだしエンタープライズJRubyだ!と調子にのったやるおがオプションを駆使して最適化を試みるもCRubyより遅い結果に終わる、というのがやる夫AAで繰り広げられる。

これをスーツ姿の高井さんがたんたんと進めるもんだから無茶苦茶おもしろかった。資料(というかAA)が公開されてる*3けどこれは生で見たほうが断然おもしろいな。

あとは遠くにいたので聞けなかったけど、RubyのRejectKaigiなのにGauche on Railsとかやってる人がいたり無茶苦茶。そして最後の角谷さんのRegional(地域) Ruby Kaigiの御提案*4がまたしても感動的なのでありました。


休日を2日つぶしてつくばまで行くのはつらかったけど、おもしろかった。

番外編 「初めてのRuby

二日目の昼休みに買ったYuguiさんの本(サインありがとうございます)、まだ全部読めてないけどよい。特に一章は、「Ruby Way」とか「Rubyらしさ」とか言われているものを一生懸命文章で説明している(ように見える)のでかなり良い。特に、言語内DSLのことがいきなり一章に書いてあるのは結構すごい気がする。

にしても、言語を自由に改変できるLisp流のマクロを否定しているRubyにおいて、「言語内DSLが作りやすい」といわれるのはおもしろい。Matz言語デザインの取捨選択が成功した結果なのか、偶然はまっただけなのか、あるいは、言語関係なく「DSLを使おう」という風潮が盛り上ってきている中で、文法の制約の中でがんばった人達の成果がDSLとしての使いかたを結実させたのか、興味深い。

さらにもうひとついうと、この言語内DSLの思想もやっぱりLispの後追いに過ぎない、とも言えるわけで…、あんまり考えまとまってないけど、RubyっていうのはMatzLispであり、Lisp on Railsなのかもしれないな。

2008-06-21 Sat

[]RubyKaigi2008 一日目 RubyKaigi2008 一日目 - sshi.Continual を含むブックマーク

案の定、起きたら朝ではなかった。YARVJRubyやRubiniusの話、さらにMatz基調講演もまるごと聞きのがした。16:00からのセッションとLTだけ見て、懇親会のチケットも買ってなかったのでそこで終了。例によって偏見と思い違いも込みでメモ代わりになぐりがき。

Ruby《を》教えてるんじゃない、Ruby《で》教えてるんだってば(増原英彦)

東大でのRubyを使ったプログラム教育のおはなし。irb上で、eachじゃなくてforを使わせて、クラスを使わないで短いプログラム記述させるそうな。一発目としてはありかもなあ。

ところで、Ruby教育言語として選択したのは増原さん個人の判断ではなくて、何人かの先生の合議だった、とのことだけど、そのメンツがすごかった。直接名前を紹介しないで、各先生のかかわった書籍(論文もあった?)の表紙がざっと表示されただけだったので全員はわからなかったけど、竹内郁雄先生や武市先生は確認できた。多分湯浅先生もはいってた。関数型プログラミング界の御大達がrubyを押すっていうのはちょっとおもしろい。RubyはやっぱりMatzLispなんだな。あー、てことは成功したDylanでもあるのか?

成功するRuby教育プラクティス(吉田裕美)

請け負ったRuby教育の事例紹介、ということでいいのかなこれは。実習の時に、普通にサンプルを書かせるんじゃなくて、テストケースをこちらで与えてそれに通るコードを書かせるのはよさげ。次のステップとして「じゃあ次は仕様からテストケースを自分で作れるようになりましょう」というのに自然に移行できそうだし。

妄想ひとつめ。そういえば「プログラミングの基礎 ((Computer Science Library))」でも、コードを書く時には、外部仕様を決めて、入出力の型を決めて、それに合うように本体の実装を書かせる、という方向に誘導していた。このへんの思考の流れを強制するように仕様に取りこんだ言語はできんもんかな。

さらに妄想topcoderでは、与えられたお題を満たすコードを書いて得点を得るフェイズの後に、他人のコードを見て、バグを指摘(仕様と異なる動作をするような入力を送りこんでバグを表面化させる)して成功したら加点、っていうフェイズがある。これも教育に取りこめないかな?

例えば、実習でコードを書かせた後、いきなり講師が採点とかアドバイスするんじゃなくて、このシステム上に全部コードをのっけて受講者みんなに他人のコードの穴をつつきまくらせる。バグの指摘が成功すると結構気持ちいいからそれなりにインセンティブもありそうだし、どれくらいのバグを指摘できたかはその受講者の評価材料にもなりそう。さらにその後に、バグを指摘された人と指摘した人を組ませてペアプロコードを改良させれば講師の手をわずらわせずに教育効果があがるやもしれない。

RSpecによるRailsアプリケーションBDD事例(Yugui)

今日僕が見たなかでは一番おもしろかった話。危機的なプロジェクトに、subversiontracを導入し、さらにBDDを基本にすることで、結構スムーズRailsへのリプレースが進んだ、という事例の紹介。結果的には、本体コード3割、テストコード7割くらいの比率になったらしい。参考になったのは、不慣れな人が多い環境でBDDを推進する時に、まず慣れてる人がお手本となるテストケースを量産しておいて、後から不慣れな人にもそれをお手本にして書いてもらう、という手順。なるほど。

内容とは関係ないけど、このプレゼンWiiリモコンスライドを操作しつつ、ステージの中央あたりで大きめの身振り手振りをまじえてしゃべってたので、たまに踊っているように見えた。生「踊るプログラマ*1」が見れて満足。

一番格好よかったのは、「そんなにテストが多くなると、上のほうからテストじゃなくて新規機能を実装しろよ、という話はでてこないのか?」という質問に対して「『わかってない人は余計なこといわないで黙っててください』で押しとおします(ました?)」と言い切る姿。しびれる。明日本買うのでサインください。

(仮)Ruby技術者認定試験 模擬問題解説(松田慎弥)

Ruby技術者認定試験の傾向と対策、のようなお話。ざっくりまとめると、組込みや標準ライブラリ仕様を暗記するのが重要、らしい。個人的にはrubyを書く時にはirbとリファレンスマニュアルは必須なので、この試験には絶対受からない気がした。ちゅうか、irbやマニュアルくらい使わせてくれてもいい気がするんだけど。ころころ仕様変わるんだしさー。

現に(半分はネタだけど)この発表中に紹介されていた問題の答えを変えちゃうような仕様変更の企みがIRCチャットのほうで高速で進行していた。問題作るほうも受けるほうも大変だな。


以下、Lightning Talksの気になったやつだけ。やっぱこれ書くの疲れるなあ。

RubyとODEでピタゴラ装置 (佐々木竹充)

これはおもしろかった。物理シミュレーションエンジンであるODEをRubyからあやつって、仮想空間上でのプレゼンキューブに文章がはりつけてあるので、スライドを送る代わりに空間内をWiiリモコンで移動してキューブに注目することでプレゼンがすすむ。さらに空間自体がひとつのピタゴラ装置になっていて、最後に「どーん」と崩壊するキューブ群の中に最後のまとめ文章がしこんである、という趣向。実際には最後にまとめのキューブを探せなくてちゃんと終われなかったのもいい感じ。

欲をいえばこれは、去年のLL Spiritでの「君ならどうかく」(プレゼンテーションソフト編)のセッション*2で見たかった!もうちょっとプレゼン向きの操作*3がそろってれば十分新たなプレゼン手法として確立すると思う。…あーでも物理シミュレーションにする意味はあんまりないかな…。

Rubyで楽しむフォークプログラミング (Webアプリじゃないよ蝙) (高山征大 (mootoh))

個人的に楽しみにしていたLTふたつのうちのひとつ。

デスクトップ上でRubyを使うと結構簡単にリッチなUIをいじれるのでかなり楽しい最近はWebアプリを書いて楽しむ人が多いみたいだけど、もうWebアプリいっぱいあるし、こういう楽しみ方はどうですか的なお話

MacOS上でRubyでいろんなスクリプトを書いていろんなサービスのUIを拡張してる事例が紹介されてなかなか楽しめた。でも画像が動くのを想像するのは無理!残念。あと、WindowsユーザーとしてはMac固有の話がどれくらいだったのかが気になるところ。Mac買えってことかなあ。

toRubyでみつけた Rubyist人生再出発 (池澤一廣)

どうにも越えられないRubyの壁に悩んでいたところ、近場に住んでると判明した咳さんにおもいきって出してみたメールがきっかけでtoRuby(勉強会)の企画が持ちあがり、irbを通したオブジェクトの視覚化等々を教えてもらうことによってRubyの見方が変わって壁を越えられたというお話

わかんない話をわかんないまま諦めないで、駄目元でやってみた行動が次の理解へ繋がった、といういい話だった。

にしても、こういう人に敷居が高いとおもわれてしまうMLというシステムはすこし哀しい。もうちょい緩い場の提供はできないものか。

Ruby 1.9 on Rails 2.1による新時代DBプログラミング (松田明)

えーと、結局DBからデータをひっぱってくるのは集合演算にすぎなくて、SQLはそれを表現するにはちょっとつらい。Rails2.1では集合演算抽象化して自由に組みあわせられるなんとかいうメソッド(name_scopeでしたっけ?)があるのでそれを使いましょう、という話。

RDBへのクエリはもともと(思想的には)集合演算だろう、とか思ってしまったけど、今頃こんな話がけっこう評判よく紹介されるのは、今迄はSQLの制約がそれを許さなかった、ということなんだろうか。SQLあんまり詳しくないのでよくわからない。


テストベースコードリーディングのすすめ (遠藤侑介)

楽しみにしていたLTふたつのうちのふたつ目。テストカバレッジを上げる、というのを目的ソースコードを読みすすめる手法の紹介。カバレッジをあげるにはどうしてもコードをちゃんと読まざるをえず、しかも読んだ結果としてテストコードが書ければカバレッジのパーセンテージが上昇するのでやってて達成感がある、とのこと。

たしかに。正直なところ真面目なのかネタなのかわからなかったが、がしがしバグ発見してテストを量産して結果的にRubyのコミッタになった遠藤さんが言うと説得力があるなあ。でもそんな簡単にテストコード書けるもん?「テストカバレッジを上げる」ってさらっと言ってたけど、それ自体の敷居が結構高いような気がしてならない…。PHPで試してみるべきなのか…。


Industrial-Designed Language: Ruby (斎藤ただし)

最初からの予定だったのか、突然のトラブルだったのか、スライドなしのLT。つまりしゃべくるだけ。しゃべくるだけなのに時間にきっちりおさめたのはすごい。


ふー。疲れた。あさいちがartonさんの話なので明日は遅刻するわけにはいかないのだが、何時に起きればいいのかな…。つくば遠いよー。

*1http://idm.s9.xrea.com/ratio/2007/05/13/000621.html

*2http://d.hatena.ne.jp/sshi/20070805/p1を参照のこと

*3:選択したキューブ自動的にずずっとよっていって文章が読みやすい位置に勝手にあわせるとか、あるいはプレゼンのための移動コースをあらかじめしこんでおけるとか、何階層かのレイヤースムーズズーミングとか

moiramoira 2008/06/23 03:40 LTしてたmootoh といいます。楽しみにしていただいててありがとうございます ><

例で話した 1-3 は Macのはなしで、4番目のVim+Refe2 はプラットフォーム問わないです。
クライアントアプリをささっとハックするにはMacおすすめです。ぜひぜひ!

sshisshi 2008/06/24 00:29 emacs派なので、これはもうやっぱりMacを買うしかないのでしょうか。MacRubyも気になるし。

2008-06-20 Fri

[]RubyKaigi2008 RubyKaigi2008 - sshi.Continual を含むブックマーク

超狭い範囲の観測によると0th Dayからかなり盛り上ってるみたいですね。起きられたら明日から行く予定。

2008-05-11 Sun

[]RubyKaigi2008 RubyKaigi2008 - sshi.Continual を含むブックマーク

http://jp.rubyist.net/RubyKaigi2008/

チケット買ってみた。今年はキャパ何人くらいなんだろ。

2008-02-07 Thu

[]cgi.rbの改良 cgi.rbの改良 - sshi.Continual を含むブックマーク

ruby-devでcgi.rbの改良の話がもりあがりつつあるみたい。cgi.rbっていうといろいろ文句も多い気がすんだけど、どうせならAPIの再設計もしてみてはどうだろう。

特に現状のに不満があるわけじゃない(そんなに使ってないだけかもしれない)ので変更点のアイデアはないんだけど、例えば他の言語のcgiライブラリで評判のいいやつはどういうAPIになってんのか気になるところ。

 

あわせて読みたい
sshi.Continual 930245 なかのひと RSS feed meter for http://d.hatena.ne.jp/sshi/