2006-06-10 (Saturday) [長年日記]
■ 日本Rubyカンファレンス2006 1日目
行ってきました.
カンファレンスの内容も充実したものだったけど,懇親会の参加者数もすごかった.
- ちょっwwwブーンwww
- ちょっwwwプリキュアwww
詳しくはあとで追記する.
追記.風呂に入りました.ぼちぼち追記してみます. ちなみに,今日はノートパソコンを持ち歩いていなかったので,脳とノートに記録されていることが元になってます.ボクが宇宙人にさらわれ,記憶操作されている場合は全部嘘かもしれません.
追記2.Ruby 2.0のとこまで書いた.今日は寝る. 明日補完するかもね.
追記3.2日目から帰宅. 高橋さんのトラックバックを打つまでがカンファレンスという言葉に誘われ,ホイホイ打ってみたのだ.
追記4.なんかうまくいかなかった.おいおい,もしかして,このサイトもうブラックリストに入ってるのか?www
■ 到着
9:50に会場に到着.少し遅れてしまった.
到着すると,紙に名前を書き,それを胸から下げるように指示されました. とりあえず,Rubyコミュニティの空気を読んで本名をひらがなで書いてみましたwww
まま.遅れての到着なので後ろの方に座る. 後ろの方の席にもプロジェクタと同じ内容が表示されるディスプレイがあったのですが,それが見えない位置に座ってしまい,大変だった. 飛行機みたいに通路に配置してくれればいいのに,両端に配置されていたのですよね.とか日記に書くと誰か読んでくれているかもしれないことを期待してみるテスツ.
■ Rubyの歴史 - 高橋さん
まずは高橋さんの発表です. Rubyの歴史を先史,古代,中世,近代,現代の5時代で分類し,紹介していただきました.
1. 先史
- 神話の時代
- 記録はないが,たまに発掘される
- 1993-03-24
- ruby-dev:5173
- Rubyの命名についての議論のIRCのログ
- coral vs ruby
- 1995-12-21
- ruby-0.95 release
- ニュースグループへの投稿
- google groupで読める
- ruby-listもできた
- いきなりバグでまくり
- 3 versions in 2 days lol
2. 古代
- 1996-12-25
- ruby-1.0 release
- ML分割の提案
- 1997-07-18
- ruby-list:3382
- 1997-07-28
- 実際に分割
- 1997-07-18
- Internet WATCHに掲載される(INTERNET ARCHIVE)
- 1998-05-15
- RAA誕生
- 人力で登録
3. 中世
- 日本での普及
4. 近代
- 世界的な普及
- 2002-02-16
- ruby-talkの流量がruby-listを上回る
- 2000-12-15
- 2001-10-12
- RubyConf 2001
5. 現代
- Rails
- キャズムを越える
■ NaClのオープンソース戦略 - 井上さん
協賛の株式会社ネットワーク応用応用通信研究所についての発表です.
ええと,なんだ. あまりビジネスとか興味ないので,ノートにメモをしていない!(ぶ
業務内容にある,社員とOSSについての話は興味深かったです. 著作権は社員に属しているらしいです.
■ State of the Dominion - まつもとさん
まつもとさんの基調講演です.
- Larry Wallは State of Onion
- これに対抗するには?
- grep 'nion$' /etc/dictionaries-common/words
- lol
- Domi'nion'
- 世界制覇への道www
- キャズムを越える
- 海外での支持
- Dave
- Andy
- Fowler
- DHH
- Brad Cox - Objective-C
- Alan Kay - Smalltalk
- Rubyは素性がいい
- ふつうの○○が普通じゃない件について
- Rubyは普通の人向け
質疑応答
- Rubyの好きな部分は?
- 好き: ブロック,$や@での変数の表現
- 子育てするといいアイデアが生まれるらしい(と歪曲した理解をしてみる
- 今では,ああしておけば...と思うことは?
- yield と ブロック変数
- Rubyでモテるには? - 竹迫さんwww
- pe'a'rlとrubyだったらRubyの方がいいよね? lol
- まつもとさんの奥さんはpe'a'rl派だったらしい
■ Ruby 2.0
昼休み*1をあけて,パネリストの発表にコメンテータが質問するような形でのパネルディスカッション.
司会は高橋さん,コメンテータは以下のとおり.
コメンテータ
- なかむらさん
- わたなべさん
- やまださん
- 青木さん
- 中田さん
- 助田さん
発表は以下のようなものでした.
まつもとさん
- Rubyは2.0になってもRubyのまま*2
- 既存のプログラムはそのまま動けばいい
- ただし,互換よりはデザインを優先
- スコープと多値問題の整理
- 仕様の整理 - http://www.eigenclass.org/
- Ruby 1.9.1
- 2007年のクリスマスを予定
- バージョン規約が変わるかも?
- 1.9.1.1, 1.9.1.2, ...
- major: 1
- minor: 9
- teeny: 1.1, 1.2, ...
- 1.9.1.1, 1.9.1.2, ...
- 1.9に入る予定
- local variable scoping
- M17N
- YARV
- 1.9に入らない
- new GC
- classbox
- selector namespace
- keyword arguments
- method combination
- 1.8と1.9の差異
- Rangeオブジェクト
- 鬼車(正規表現ライブラリ
- クラス変数を継承しなくなった
ささださん
ん?これはどこかでみたような...とゆーわけで,メモしてない.
質疑応答
- JavaVMとか.NETとかではだめなの?
- いいんじゃないのー
- というのは冗談で,RubyとのギャップをなくすためにYARV
- ネイティブスレッドは必要なの?
- 一部のシステムコールなどで必要になる
- YARVで分散環境
- コードのシリアライズは簡単にできるけど,Procは環境を引き継がなければならない.
小迫さん
- 動機
- Rubyの正規表現ライブラリがGPL違反かと勘違い
- 正規表現が嫌いなので,自分で作れば好きになるかも
- 特徴
- Named Group
- Subexp call
卜部さん
Xglのぐりぐりがスゴイ.
- ruby-list: 2462
- M17N
- ruby-list: 5192
- キーワード引数
- finalize
- 新coerce
- やる気あるのか?
- やる気あります - まつもとさん
■ Rubyizeによる言語境界の越え方 - arton
artonさんによるRubyからWindows向けな言語への境界の越え方についての講演です.
- hta
- MicrosoftのIEのようなシェルのようなもの
- 今日の内容
- Win32OLE
- COM
- ActiveScriptRuby
- WSC (Windows Script Component)
- ActiveScriptHost
- rubyize
- rubyize('Arton') -> Stringが返る
- erubyize
- eval + rubyize
- erubyize("'Arton'") -> Stringが返る
- 例: VisualBasicのオブジェクトをRubyのHashに格納する
- RubyのHashとしてrvalを生成
- valはVisualBasicのオブジェクト
- rval['VB']にvalをオブジェクトとして格納
- rval send "[]=" "VB" val
- ActiveScriptHostはスレッド数が多い
- 32: あー,これ経験あるなぁ.COMプログラミングとかするとスレッド数そんなに必要ないだろ!と思うくらい上がるんだよね.なにやってんのかぜんぜんわかんなくてキモイ.
■ 使いやすいライブラリAPIデザイン - 田中哲
ライブラリのAPIデザインについての発表です.
- 怠惰指向設計
- ユーザの望みを推測 -> ユーザを誘導
- 怠惰の利用
- 知っていることで済ます
- 短いコードを好む
- open-uri
- 32: あーあーあー,最後スライド飛ばしすぎwww
- 32: みたよーな話だった.RubyConfの発表はこれだったんだっけか
- 32: でも,これはあまりオブジェクト指向的じゃない気がするんだよなぁ
- 32: Smalltalk的なRubyの世界とUNIX的なRubyの世界があると考えると,これはどちらかというとUNIX的なRubyの世界の話だと思う
■ Rubyプログラミング + モデリングでより楽しくなろう その1 - 石塚圭樹
Rubyとモデリングを組み合わせて使うことについての発表です.
デザインパターンとRuby
Rubyが得意なこと
- 詳細なフロー
Rubyが苦手なこと
- クラス間の関係
- メッセージのやり取り
- 直接コーディングするとアーキテクチャが汚くなりやすい
- でも,オブジェクト指向の本質はクラス間の関係やメッセージのやり取り
- Rubyはこれが苦手
- UMLで手助け
- UML
- 視覚的な表現
- クラス間の関係
- オブジェクト間のメッセージのやり取り
- GoFの本ではOMT(UMLの先祖)の改良版を利用
- 視覚的な表現
- デザインパターン
- クラスの名前などが関係するため,普通の言語ではライブラリ化できない
- RubyではMLFでデザインパターンのライブラリ化ができる
- 実際に23のデザインパターンのうち9を実装
- 32: デザインパターンはアレンジして使うケースが多いので,ライブラリ化してもほとんど意味がないとおもうなぁ
- たとえば不要な部分は使わないとか
- この実装だと関連するパターンをいくつか組み合わせて使う場合なんかおそろしく複雑になりそうな...
- 32: あとこの種を聞くといつも思うんだけど,モデルと実装言語の同期がめんどくさそうよね.モデルってある意味ドキュメント的な側面も持っているので,ちゃんと更新しないといけないし...
メタモデルとRuby
- 前田さんが紹介?
RubyでMDA (model driven architecture)
普通のMDA
- PIM (platform independent model)
- ↓モデル変換
- PSM (platform specific model)
- ↓コード生成
- implements
Rubyでやると
- PIM (platform independent model)
- ↓モデル変換 + コード生成
- implements
- 32: なんとなくまだ夢物語感がある...
■ セキュアアプリケーションプログラミング - なひ
セキュアアプリケーションプログラミング @ Rubyについてなひさんによる講演です.
サンプルプログラムがWebからダウンロードできるようです. URLはメモしてこなかった.(ぶ
- OpenSSL
- OpenPGP(今回はなし
- private keyは秘密鍵ではなく私有鍵と呼ぼう
- ECBではなくCBCを使おう
- AESでデータの暗号化
- RSAでかぎの暗号化
- リプレー攻撃にはサーバ側で生成したランダムな値を使って対処
- まとめ
- SSLを使いましょう
- Rubyを使ってセキュアなプログラムを作りましょう
■ 仕事で使うRuby - 後藤謙太郎
業務でのRubyの使い方を紹介していただきました.
- 業務
- Rubyは支援ツールとして使う
- ユーザは英語のメッセージは読まない
- 名前などのソートはよくわかんない大人の順番
Wiki - Hiki, RWiki
- 決まりごと
- 手順の備忘
- 'バージョンの差異がない'
- メールなどでやり取りすると大量のコピー
- 導入
- まずは自分で大量に書く
- 書き方の規約などについてはある程度淘汰させる
- 淘汰したら一覧ページをつくる
- Rwikiなら参照されていないページをorphanで探せる
- 見栄えをよくする
- ヘッダやフッタに会社のレターヘッドなどを使う
- Corporate Identity
- 印刷用のスタイルシートも作る
- 会議資料などにWikiの内容がそのまま使える
- Wikiに欲しい機能
- タグ(ソーシャル・ブックマーク・サービスなどのタグ)
- テンプレート
- ログイン(署名)
■ Railsによるメタプログラミング入門 - 前田修吾
前田さんによるメタプログラミングについての発表です.
- Rails本監訳
- 監訳はお得らしい
- Rails
- DRY
- CoC
- Javaの10倍の生産性
- ToDoやBlogが10〜15分 -> 練習してるに違いないだろwww
- detect で collect 派拡大か...
- AssociationProxy.classのundef
- よくわからない挙動になることもある
- Symbol#to_proc
- caller binding
オブジェクト指向スクリプト言語 Ruby (ASCII SOFTWARE SCIENCE Language)(まつもと ゆきひろ/石塚 圭樹)
プログラミングRuby―達人プログラマーガイド(デビット トーマス/アンドリュー ハント/まつもと ゆきひろ/David Thomas/Andrew Hunt/田和 勝)







