Skip to content
muryoimpl edited this page Jan 1, 2012 · 2 revisions

第14回 Ruby/Rails勉強会@関西 (運営: Ruby関西 )

  • 日時: 2007 年 2 月 17 日 (土) 13:00~17:30
  • 場所: 京都女子大 B校舎4F B420教室 (13回と同じくプリンセスライン乗場の脇のキャンパスです)
    • *当日,奥に隣接する C 校舎で大学院入試が行われています。そちらには立ち入ったり近づいたりしないようにお願いします。 *
  • 地図
  • 費用
    • 実費(講師の交通費、配布物の印刷代等)の人数割をご負担ください。前回(同じ会場)は500円でした。
  • 定員
    • 定員は設定しません。

懇親会

  • 日時
    • 2007 年 2 月 17 日 (土) 18:00~(予定)
  • 場所
  • 会費
    • およそ社会人:学生 = 2:1 の比率でご負担ください。前回は 3500 円、2000 円でした。
  • 締切
    • 2006 年 2 月 16 日 (金) 17:00 まで

プログラム

  • 「Ruby 実行環境を取り巻く世界」西本さん

    • セッション概要

      • 本家Ruby,+YARV,JRuby,RubyCLRなど,最近動向が激しい実行環境を中心に,今後のRubyの将来を考えてみます.
    • プロフィール

      • Java好きなおちゃらけプログラマ%酸(参)号機.
      • 通称keisuken.
      • 趣味・仕事を問わず少しずつRuby率が増してます.
      • 最近Rails始めました:-)
    • 配布資料

    • レポート(by Yuyaさん)

      • 概要と感想
        • Ruby歴10年以上の西本さんによる、Ruby実行環境(処理系とライブラリ)のお話でした。本家Rubyインタプリタはもちろん、その他の様々なRuby処理系を紹介して頂きました。発表の最初に「ネタなし、お笑いなし」と断りがあったように、真面目&マニアックな発表でした。
        • Ruby処理系の中では、YARVが最も速く、最も安定しているとのことです。Ruby 1.9.1のリリースが楽しみですね。
      • 基礎知識
        • まず、処理系に関する基礎知識の説明がありました。
          • Ruby処理系とは
          • インタプリタ型、コンパイル型、仮想機械型
          • 仮想機械型のインタプリタ型、JIT型、AOT型、ハイブリッド型(インタプリタ+JIT)
          • それぞれの実行形式における長所と短所
      • 各種処理系
        • 続いて、Rubyの各種処理の説明がありました。数あるRuby処理系の中から、互換性と完成度が高いものについて調査しているとのことです。
        • C Ruby
          • Rubyの本家実行環境
          • C言語で記述されている
          • ライセンスはGPL
          • これがないとはじまらない
          • これがすべてのお手本
          • 動作速度は速いとは言えないが、頑張っていると思う
        • YARV
          • 次期Rubyインタプリタ
          • C言語で記述されている
          • ライセンスはC Rubyに準ずる
          • 既に1.9系としてソースコードがリポジトリに取り込まれている
          • Ruby専用のVMであり、内部でワードコードに変換する
          • 最適化が行われる
          • ビルドが簡単になり、安定度も増してきた
        • JRuby
          • Java VM上で動作するインタプリタ
          • Javaで記述されている
          • ライセンスはCPL、GPL、LGPLから選択
          • parse.yを参考に、ほぼスクラッチから作成されている
          • Ruby 1.8互換であり、比較的互換性が高い
          • 作者らがSun Microsystems, Inc.に移籍し、開発速度が増した
          • バイトコードコンパイラを開発中
          • Javaとの連携が可能
          • 起動速度が遅い
        • xruby
          • Java VM上で動作するバイトコードを出力するコンパイラ
          • Javaで記述されている
          • ライセンスはGPL
          • JRubyと同様、スクラッチから作成されている
          • コンパイラとランタイムで構成されている
          • Ruby 1.8互換
          • JRubyより起動速度が速い
        • Rubinius(るびにうす)
          • バイトコードコンパイラとインタプリタ
          • C言語で記述されている
          • ライセンスはBSDライセンス
          • SmalltalkのBulebook的思想を持つ
          • Java VMや、.NETなどのバイトコードへの変換も構想中
        • RubyCLR
          • ごめんなさい、処理系ではありませんでした!
          • 実際は、Windows上で.NETを呼び出すためのライブラリ
          • 作者がMicrosoft Corp.に移籍
      • 評価各種テストプログラムをそれぞれの処理系で動作させた場合の成功可否と処理時間についての説明がありました。
        使用したテストプログラムは、数値のカウント、数値の比較、配列への要素追加、フィボナッチ数列の生成です。また、評価対象とした処理系は、C Ruby、YARV、JRuby、JRuby JIT、xruby、Java SE 6です。結果のチャートと表は、配付資料をご覧下さい。
  • 「Plagger meets Ruby」 by yhara さん

    • セッション概要
      • Plagger の簡単な紹介と、RubyでPlaggerのプラグインを書いてみよう!という話をします。
    • プロフィール
      • 京大マイコンクラブ に所属する大学院生。
      • RubyとはC Magazineのスクリプト言語特集で出合って以来6年目の付き合いとなる。
      • 代表作はたぶんRuby/SDLスターターキット
      • 最近ゴルフ に手を出してみたが、上級者のスコアにただただ圧倒されるばかり。Rubyの他に好きな言語はBefunge。
    • 配布資料
    • レポート(by よしだあつしさん)
      • Plaggerのプラグインはrubyで書けるんだよというお話。
      • plaggerは下記をプラグインで実現していてそれぞれデータをPlageerに渡したりもらったりすればいいのでrubyでプラグインを書くことも可能だと言うこと。
        • 入力
        • 加工
        • 出力
      • 「Plaggerでピザを頼む」
        • ネタを散りばめたりPlaggerとPragger(ピュアrubyなPlaggerクローン)の発音の仕方で遊んでみたりプレゼン時間があと3分だと思ったら15分だった(ネタかと思ったけど本当にアクシデントだったらしい)などということもあったけど非常にためになり、面白いプレゼンでした。
  • ライトニング・トーク「Rubyリファレンスマニュアル刷新計画の進捗報告」by okkezさん

    • 配布資料はありません。スライドのアップもしません。ライトニングトークはその場限りということでお願いします。(okkez)
    • レポート(by youhei)通称『るりま』の刷新計画
      • 第二段階、1/8終了
      • 第三段階、まもなく開始
        • 全てのエントリのドキュメントを書く
        • 質は後回し
    • 手間がかかるので、手伝ってくれる人募集
      • あまりオープンソースに関わっていない人も是非
      • 手伝うと、Ruby会議での青木さんセッションで、Special Thanksとして名前が紹介されます
    • 刷新計画第三段階への参加方法
  • ライトニング・トーク「letmesee + royal-fpwで超快適フランス語辞書生活」by かずひこさん

    • スライド: letmesee_slide.pdf
    • 配布資料: letmesee_print.pdf
    • レポート(by youhei)
      • letmesee ?
        • 辞書を引くためのソフト
        • ウェブアプリケーションなのでブラウザ経由で
        • RubyEBを使う
      • RubyEB
        • EBライブラリをRubyから使えるようにする
      • EBライブラリ
        • 電子辞書を扱う為のライブラリ
        • EPWINGなどの形式に対応
      • EPWING
        • 電子出版のための共通フォーマット
        • 最近はあまり出版されていない
      • royal-fpw
        • FreePWINGを使って辞書付属のCD-ROMデータをEPWING形式に変換するスクリプト
        • ウェブブラウザからの使用のみを想定した形に変換する
      • 辞書引きbookmarklet
        • ブックマークに入れて使うJavaScript
          • 選択した文字列を取得する
          • letmeseeにその文字列を入力して検索した際に生成されるものと等しいURIを作る
          • そのアドレスに飛ばす
      • まとめ
        • 「やりたいこと」のためにはあらゆる手を尽くそう
          • 全部自分の力でやるのではなくて、既にあるものを組み合わせて目的を達成する
          • RubyEB、EPWING、FreePWING、ウェブブラウザ、Bookmarklet…
        • 最初は知らなくても色々やっているうちに知識が増える
  • 「Ruby 初級者向けレッスン 第11回」okkezさん&酒井さん

    • セッション概要
      • irb の簡単な使い方や便利な使い方をご紹介したいと思います。
    • プロフィール
      • 酒井さん
        • 最近、就活なのでスーツの日が増えましたが、まだまだ着慣れていません。
        • もちろんRubyも使いこなせない、初心者です。マイブームはアポロというチョコを上下に分けて食べることです。よろしくお願いします。
      • okkezさん
        • 社会人二年目。仕事に飽きると、Rubyでツールを作ります。どんなツールかは機会があれば、お話ししたいと思います。
        • 最近は、Rubyリファレンスマニュアル(るりま)のお手伝いをぼちぼちやっています。
      • 配布資料: print.pdf
      • スライド: slide.pdf
      • 演習問題解答例: answer.tar.gz
    • レポート(by なんき)
      • Ruby初級者向けレッスン
      • 自己紹介
        • okkez(おっきー)さん
        • 酒井さん@小波ゼミ 睡眠時間がほしい
      • ゴール設定
        • 基本操作
        • 設定ファイル.irbrc
        • デバッグに使う
      • irbの説明
        • InteractiveRubyの略
        • 挙手によるアンケート
          • ユーザー 結構多い
          • マスター いない
          • ビギナー ぽつり
      • 使用例

 >> 987654321 * 9 - 1
 >> def add(x, y)
 >>    x + y
 >> end
 >> exit
    - 実用例
        - オーバーフローしない電卓として
        - shell代わりに#irbsh
        - 動作確認
        - メソッドを探す
    - 実例
        - 電卓として

 >> 2 ** 1000000 # => overflow(というかWarning)がでて笑いを誘う。
    - % でフォーマット

 >> '%03d' % 1
 >> '%*s' % [10, 'aaa']
    - Arrayが何を継承しているか

 >> Array.ancestors
    - コマンドラインオプション
        - --no-readline # irb の不便な使い方
        - --prompt-mode simple
        - --back-trace-limit n
    - プロンプト
        - XMP, DEFAULT...
        - 中身は IRB.conf[:PROMPT]
    - 設定ファイル
        - riやrefeを使える設定に。
        - require 'irb/completion'

 Array.an* # ここでTABを押すと、ancestorsと出る。
        - pp, y メソッドを追加するため。

 require 'pp'
 require 'yaml'
    - 終了
        - exit, quit, irb_exit
        - abort → Kernel#abort(irbサブセッションもすべてさかのぼって終了)

    - load と require
        - require は一度だけ読み込む。
        - load は毎回読み込みなおす。
        - 実行例
    - ri, refe でマニュアルを見る
        - .irbrcで定義した、ri, r メソッドにて。
    - irbの応用例
        - script/console (Ruby on Rails)
        - iar (Interactive [ActiveRecord][12] )
        - irbdb (デバッガ)
    - 質問がないようなのでirbサブセッションのデモ
        - irbの中でirbと打つ。
        - jobs でセッション一覧。
        - fg n
        - kill n

10.times{irb}
jobs
fg 0 # で元のスレッドに戻ると、また起動する。
        - コンテキストを指定できる。

 >> irb Array
    - 質問
        - Q.機能がたくさんあるけど、初心者にはどれが特にオススメ?
            - require 'irb/completion'
        - Q.ri, r メソッド、どいういうこと?
            - .irbrcで定義されている
            - ri, refe などの外部コマンドに依存している。
            - 環境や、(Linuxの)ディストリビューションによっては、インストールされていないかも。
    - 演習 じゃんけん
        - F グループ (by ひがき)
            - irb/completion が非常に便利。
            - 予約語、クラス名、メソッド名、変数名などを補完してくれる。
            - irb から ri や refe を呼べば更に便利。
            - .irbrc に def ri(keywd='') print `ri #{keywd}` end とか書いておく。
            - F グループでは、ふたりずつに別れて実習に取り組んだので、パートナーとじっくり話せたのが良かった。
            - パートナー以外とはまったく会話できませんでしたが。
            - irb でプログラミングしようとすると cat> で C のコードを書くような状態になってしまって使い辛い。
            - プログラムはエディタで書いて、ちょっとした確認を irb でやるとよい。

コメント

  • 2007-02-19 (月) 05:55:04 a : 「Ruby 初級者向けレッスン 第11回」の配布資料はアップされないんですか?
  • 2007-02-19 (月) 05:55:35 a : 「Ruby 初級者向けレッスン 第11回」の配布資料はアップされないんですか?欲しいのでしてください。
  • 2007-02-19 (月) 21:12:50 okkez : すいません。もう少しお待ちください。必ずアップしますので。

反応リンク集

Clone this wiki locally