第14回Ruby勉強会

参加してます。遅刻せずに到着できました。
Ruby実行環境を取り巻く世界 by 西本さん

  • おちゃらけプログラマ%酸(参)号機
  • Ruby実行環境とは? Rubyソースコードをなんらかの形に変換して、実行できる、ソフトウェアのこと。インタプリタ、仮想機械、コンパイル型。明確にわかれていない。
  • 仮想機械。インタプリタと仮想機械(JIT)のハイブリッドが主流。AOT(Ahead of Time Compiler)型。
  • Rubyの場合は?
  • C Ruby。ライセンスはGPL(ビルド環境による)。すべてのお手本。文法などが複雑で移植しにくいとも…
  • YARV(Yet Another RubyVM)。ライセンスはC Rubyに準ずる。もうYet Anotherじゃないかも。次期実行環境。ビルドも簡単になった。かなり速い。
  • JRuby。ライセンスはCPL/GPL/LGPL。JavaVM上。parse.yを参考にほとんどスクラッチから書かれている。互換性はRuby1.8相当。開発者がSUNに移籍し開発速度が増した。起動は遅い。Javaと連携できて、かなり面白い環境。
  • xruby。ライセンスはGPL。JavaVM上。コンパイラとランタイムで構成。互換性はRuby1.8相当(だけどあまり動いてくれないみたい)。起動はJRubyより速い。実行もそこそこ速い。コンパイラ型なのでちょっと面倒かも。
  • Rubinius。ライセンスはBSDC言語バイトコードコンパイラ + インタプリタSmalltalk bluebook的思想を持つ。自分でいじれるシンプルな実行環境が開発の発端。まだ開発途中。
  • RubyCLR。ライセンスはMIT。Ruby実行環境じゃなかった。C++で書かれた.NETブリッジ。Rubyから.NET環境を呼び出せる(らしい)。開発者がMSに移籍した。
  • その他。いくつかあるらしい… けど略。
  • 評価。ベンチマーク。基本的なアルゴリズムを使って計測。数を数える。数値の比較。配列に値を代入。フィボナッチ数列の計算。YARVは速い。C Rubyもそこそこ。C RubyよりもJRubyJITの方が速そう。Java SE SDK6は速い(Rubyの100倍。たぶん固定長の数値を使ったプログラムだからうまく最適化が動いたんじゃ?)。ベンチマークが偏っているので参考程度にとのこと。うーむ。YARVはよさそう。
  • 番外編。ライブラリの話。最近は使い易くてCoolなものが揃ってきた。必要最低限のものはあると思う(標準添付)。テキスト、ネットワーク、IO、数学、Web関係。
  • しかしいくつか足りない。GUI関連。マルチメディア。
  • 探せばたくさんある。けど、そろそろ再整理する時期なんじゃないか。
  • 質問コーナー。今あるC言語で書かれた拡張ライブラリはどうなるの? 今後は増えていくんじゃないかな? Parrotはどうなってるの? わかりません。

Plagger meets Ruby by yharaさん

  • 京大マイコンクラブ。Ruby/SDLスターターキット。インストールいらずのゲーム開発環境。世界的には… Down!! 2chアメリカ→ドイツ→チェコポーランドポーランド語は読めない。
  • Plagger? ピザ頼むのに必要なやつでしょ?
  • とは? 自動情報収集ソフト。RSSなどのフィードを扱う。
  • 入力→加工→出力。それぞれがプラグイン。Goobleの検索履歴に、はらへったがあれば、ピザを頼む。
  • デモ。Ruby公式サイトの更新情報をGmailで読む。
  • config.yaml。global: ... plugins: ... ← ここに入力、加工、出力を書く。
  • 普通は、cronとかで動かす。
  • Plaggerの面白さ。1つプラグインを作れば、組合せでいろいろできる。
  • Rubyプラグインを書きたい。基本はパイプで通信。テキストデータ→Rubyスクリプト→テキストデータなど。
  • 実際に使った例。CSVのコミットログをIRCに通知する。RubyMan。String#stringとかにリファレンスマニュアルのリンクを張る。Publish::Ruby/SDL。フィードがRuby/SDLで読める。
  • 傾きセンサでスクロールできる。満員電車の中でもキーボードを使わずに読める。問題は…止めるのが難しい。
  • おまけ。インストールについて。Plaggerのインストールは大変? 最近はだいぶ楽になっている。Windowsは、ppmでいける。cpanシェルは、install plagger 駄目ならforceを付ける。実はMac OS Xが一番楽。解凍するだけ。Windowsでもできないか? 手元では動いている。"instant-plagger" 来週あたりにはリリースしたいなぁとのこと。素晴しいです。ぜひぜひ。
  • 質問コーナー。LじゃないRのPRaggerは? 長所。フルRuby。欠点。機能が少ない。発音が難しい。plagger.rb。Plaggerを呼び出すプラグイン。L ← R。ただしPlaggerのインストールが必要。

Rubyリファレンスマニュアル刷新計画進捗報告 by okkezさん

  • 1/8に第二段階が終了。冬休みの宿題。
  • 成績。440ファイル。ランキング。sheepmanさんがダントツ。
  • 第三段階。まもなく開始予定。すべてのエントリのドキュメントを記述します。質については(あまり)考えなくて構いません。
  • とはいえ。第二段階よりかなり大変。メソッド数。数え切れない。だからみんな手伝って。
  • 青木さんからメッセージ。
  • るりまを手伝うと特典が。Ruby会議で感謝されます。

letmesee + royal+fpwで超快適フランス語辞書生活 by かずひこさん

  • いきなりデモ。電子辞書のインターフェース。
  • フランス語。時制がものすごく多い。活用が多い。活用表へのリンクがある。活用した表記で引ける。
  • 単語を目で見て手で打つのはやってられない。bookmarkletで引ける。
  • RubyEB。EPWING。電子出版の共通フォーマット。最近はEPWINGでの出版があまりない。あまりはやっていない? 使える文字はJIS X 0208だけ。他は外字。V1〜V6まであるけど、V1のみJIS規格になっている。規格は公開して自由に使えるようにして欲しい。
  • letmesee。RubyEBの機能をほぼ全て使ている。CGI
  • royal-fpw。FreePWINGを使って「ロワイヤル仏和中辞典」付属のCD-ROMをEPWING互換形式に変換するスクリプトPerlで書かれている。PDF図版もBMPに変換して収録。アクサン付きの文字は発音記号は外字にせずHTMLの実体参照で実装。
  • 辞書引きbookmarkletJavascriptで書かれている。フレーム内のページやテキスト入力エリアの選択文字列を取得するのは複雑。
  • 「やりたいこと」実現のためには、あらゆる手を尽そう。

Ruby初級者向けレッスン第11回 by okkezさん、酒井さん

  • okkezさん、おっきーさん。酒井さん。睡眠時間が欲しい。
  • irbの設定方法。などなど。
  • irbとは。Rubyをインストールするともれなくついてくる。Rubyの式を標準入力から簡単に入力・実行することができる。
  • 簡単な使用例。デモ。
  • irbでよく使うパターン。オーバーフローしない電卓として。shell代わりに。irbshというものがある。メソッドの動作確認。正規表現のマッチング確認。フォーマット文字列の表示確認。メソッドを探す。あのクラスにあるはずのメソッドを探したい。クラスの継承関係を調べたい。あのモジュールはincludeされているのか。
  • うーむ。盛り沢山でメモできませんでした…

懇親会(+ 三次会の喫茶店)