Create  FrontPage  Index  Search  Changes  Login

日本Rubyの会 公式Wiki - KansaiWorkshop14 Diff

  • Added parts are displayed like this.
  • Deleted parts are displayed like this.

! 第14回 [[KansaiWorkshop]](運営:[[RubyKansai]])

{{toc}}

!! 勉強会

:日時:2007 年 2 月 17 日 (土) 13:00〜17:30
:場所:京都女子大 B校舎4F B420教室 (13回と同じくプリンセスライン乗場の脇のキャンパスです)
''当日,奥に隣接する C 校舎で大学院入試が行われています。そちらには立ち入ったり近づいたりしないようにお願いします。 ''
:地図:[[GoogleMaps|http://maps.google.co.jp/maps?f=q&hl=en&ie=UTF8&z=19&ll=34.988594,135.779807&spn=0.002044,0.003583&om=1]]
:費用:実費(講師の交通費、配布物の印刷代等)の人数割をご負担ください。前回(同じ会場)は500円でした。
:定員:定員は設定しません。

!! 懇親会
:日時:2007 年 2 月 17 日 (土) 18:00〜(予定)
:場所:[[酔心 京都駅前店 B1 階|http://www.suishin.co.jp/suishin/b1.htm]]
:会費:およそ社会人:学生 = 2:1 の比率でご負担ください。前回は 3500 円、2000 円でした。
:締切:2006 年 2 月 16 日 (金) 17:00 まで

// !! 参加方法
// # まず [[Rubyist SNS|http://jp.rubyist.net/sns/]]に新規登録
// # 登録されたら Rubyist SNS にログイン
// # Ruby関西コミュニティに参加
// # [[Ruby勉強会@関西-14のイベント|http://jp.rubyist.net/sns/?m=pc&a=page_c_event_detail&target_c_commu_topic_id=38]]に参加登録
// # [[Ruby勉強会@関西-14懇親会のイベント|http://jp.rubyist.net/sns/?m=pc&a=page_c_event_detail&target_c_commu_topic_id=37]]にも参加登録(出たい方のみ)
//
// '''Rubyist SNS への参加や Ruby 関西コミュニティへの参加だけではイベント登録は完了していませんのでご注意ください。''

!! プログラム
!!!「Ruby 実行環境を取り巻く世界」西本さん
:セッション概要:
::本家Ruby,+YARV,JRuby,RubyCLRなど,最近動向が激しい実行環境を中心に,今後のRubyの将来を考えてみます.

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

:配布資料:
::{{attach_anchor("ruby-kansai-14.pdf")}}


!!!! レポート(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|http://plagger.org/trac/wiki/WikiStartJa]]の簡単な紹介と、RubyでPlaggerのプラグインを書いてみよう!という話をします。

:プロフィール:
::[[京大マイコンクラブ|http://www.kmc.gr.jp/]]に所属する大学院生。
::RubyとはC Magazineのスクリプト言語特集で出合って以来6年目の付き合いとなる。
::代表作はたぶん[[Ruby/SDLスターターキット|http://mono.kmc.gr.jp/~yhara/w/?RubySDLStarterKit]]。

::最近[[ゴルフ|http://shinh.org:81/]]に手を出してみたが、上級者のスコアにただただ圧倒されるばかり。Rubyの他に好きな言語はBefunge。

:配布資料:
::http://mono.kmc.gr.jp/~yhara/d/?date=20070220#p01

!!!! レポート(by よしだあつしさん)

:Plaggerのプラグインはrubyで書けるんだよというお話。:

::plaggerは
*入力
*加工
*出力
::をプラグインで実現していてそれぞれデータをPlageerに渡したりもらったりすればいいのでrubyでプラグインを書くことも可能だと言うこと。


::「Plaggerでピザを頼む」
::ネタを散りばめたりPlaggerとPragger(ピュアrubyなPlaggerクローン)の発音の仕方で遊んでみたりプレゼン時間があと3分だと思ったら15分だった(ネタかと思ったけど本当にアクシデントだったらしい)などということもあったけど非常にためになり、面白いプレゼンでした。

!!! ライトニング・トーク「Rubyリファレンスマニュアル刷新計画の進捗報告」by okkezさん
配布資料はありません。スライドのアップもしません。
ライトニングトークはその場限りということでお願いします。(okkez)

!!!! レポート(by youhei)
!!!!!通称『るりま』の刷新計画
*第二段階、1/8終了
*第三段階、まもなく開始
**全てのエントリのドキュメントを書く
**質は後回し

!!!!!手間がかかるので、手伝ってくれる人募集
*あまりオープンソースに関わっていない人も是非
*手伝うと、Ruby会議での青木さんセッションで、Special Thanksとして名前が紹介されます

!!!!!刷新計画第三段階への参加方法
::[[るりまWiki|http://doc.loveruby.net/wiki/]]へ
::興味のある方は、是非!

!!! ライトニング・トーク「letmesee + royal-fpwで超快適フランス語辞書生活」by かずひこさん

* スライド:{{attach_anchor("letmesee_slide.pdf")}}
* 配布資料:{{attach_anchor("letmesee_print.pdf")}}

!!!! レポート(by youhei)
!!!!![[letmesee|http://openlab.jp/edict/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リファレンスマニュアル(るりま)のお手伝いをぼちぼちやっています。

*配布資料: {{attach_anchor(print.pdf)}}
*スライド: {{attach_anchor(slide.pdf)}}
*演習問題解答例: {{attach_anchor(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)
* 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 : すいません。もう少しお待ちください。必ずアップしますので。
{{comment}}

!! 反応リンク集
// {{trackback}}

* trackback : [[Ruby勉強会@関西-14のじゃんけんプログラム (rubyneko(仮設))|http://blog.livedoor.jp/ujihisa/archives/52504057.html]] (2007-02-22 (Thr) 00:16:16)
""日本Rubyの会 公式Wiki - Ruby勉強会@関西-14
""http://jp.rubyist.net/?KansaiWorkshop14
""
""irbを使って動作確認しつつじゃんけんプログラムを作ろうという課題でしたが、
""''irb上で動くじゃんけんプログラム''を作っちゃいました。
""
""時間内に仕上げるためにはきれいな....

* trackback : [[Ruby勉強会@関西-14に行ってきた (不定期な日記)|http://d.hatena.ne.jp/treeham/20070221#1172065406]] (2007-02-21 (Wed) 22:43:34)
"" すごく遅くなりましたが、Ruby勉強会@関西-14にいってきました。2回目です。 Ruby 実行環境の話は、色々と他言語との絡みもあって、興味深かったです。JRubyは試してみたいと思います。GroovyとかRhinoみたいなポジションになる可能性があるのかな?あと、RubyCLRを会社の

* http://cappuccino.jp/keisuken/logbook/20070220.html#p02
* trackback : [[[Ruby]Ruby勉強会@関西14いってきた (はこべにっき#)|http://d.hatena.ne.jp/hakobe932/20070219/1171894738]] (2007-02-19 (Mon) 23:19:22)
"" 2ヶ月に一度、うちが1時間だけRubyistになる時間がやってきましたよ。 詳細は、日本Rubyの会 公式Wiki - Ruby勉強会@関西-14や、このページのトラックバックからとべるページに丸投げ。 毎回、いろんな人がきてRuby勉強会はいつも楽しいです。このレベルのスクリプトオタの

* http://jp.rubyist.net/sns/?m=pc&a=page_fh_diary&target_c_diary_id=435
* http://jp.rubyist.net/sns/?m=pc&a=page_fh_diary&target_c_diary_id=434
* http://jp.rubyist.net/sns/?m=pc&a=page_fh_diary&target_c_diary_id=433
* http://jp.rubyist.net/sns/?m=pc&a=page_fh_diary&target_c_diary_id=432
* http://fullmetal.dip.jp/pukiwiki/index.php?%E6%97%A5%E8%A8%98%2F2007-02-17
* trackback : [[Ruby勉強会@関西-14 (Greenbear Diary)|http://mono.kmc.gr.jp/~yhara/d/?date=20070217#p01]] (2007-02-19 (Mon) 04:30:11)
""行ってきました。昼70人夜50人とか凄いよなぁ。ほんと。
""Ruby 実行環境を取り巻く世界
""#衝撃検知機能を実装したり、スライドいじったりしてて聞いてる余裕がありませんでした^^; ごめんなさい。
""Plagger meets Ruby
""自分の。Plaggerネタもちょっと時期を逃したかなぁ…と思ってるうちにPrhaggerとかPRaggerとかYahoo! Pipesとか
""盛り上がってきてわー..
* trackback : [[Ruby 勉強会@関西-14 (ふぇみにん日記)|http://kazuhiko.tdiary.net/20070217.html#p02]] (2007-02-19 (Mon) 01:34:15)
""やりたいこと実現のために、あらゆる手段を駆使しようと頑張ると、その過程でいろんな知識も身についていいですね、というお話でした。
""Happy Hacking!

* trackback : [[【Ruby関西】IT業界のロールモデルは誰? (プログラマの思索)|http://forza.cocolog-nifty.com/blog/2007/02/ruby_fb72.html]] (2007-02-19 (Mon) 00:32:26)
"" 第14回 Ruby関西に出かけてきた。  午後から雨になり、随分冷え込んだのに

* trackback : [[[Ruby] 第14回Ruby勉強会@関西に参加しました (Scrapcode@はてなダイアリー)|http://d.hatena.ne.jp/khashi/20070218/1171794455]] (2007-02-18 (Sun) 19:28:52)
"" 2月17日、今回も京都女子大で行われたRuby勉強会に参加してきました。 三十三間堂を拝観するために少し早めに行ったけど、拝観に思ったより時間がかかって結局勉強会には少し遅刻してしまいました。 今回の興味は「Plagger meets Ruby」。1週間ほど前にやっとPlaggerを動か

* trackback : [[[ruby]じゃんけんの勝敗判定 (Hirameki Inspiration)|http://d.hatena.ne.jp/samurai20000/20070218/1171780695]] (2007-02-18 (Sun) 15:43:54)
"" ruby勉強会14に行ってきました。 ruby初級者レッスンではじゃんけんプログラムを作るのが課題でした。 はじめじゃんけんの9パターンをべたで書いてたのですがかっこ悪すぎと思って考えた僕の勝敗判定はこれです。 def judge(my_hand, com_hand) case (@@hand[my_hand] - @@h

* trackback : [[ジャンケンの勝ち負け判定 (ふぇみにん日記)|http://kazuhiko.tdiary.net/20070217.html#p01]] (2007-02-18 (Sun) 12:52:33)
""Ruby勉強会の初級者レッスンのお題のジャンケンプログラムについて。グループレッスンでいろんな人の書き方を眺めていたのを、いくつかのパターンで紹介します。

* http://cappuccino.jp/keisuken/logbook/20070218.html#p01
* http://d.hatena.ne.jp/omochist/20070217/rubykws14
* trackback : [[[Ruby][Japan] 14th Ruby Kansai Workshop (ZHlog)|http://d.hatena.ne.jp/zhesto/20070217/1171731440]] (2007-02-18 (Sun) 01:58:26)
"" Today (17-Feb-2007) was the 14th Ruby Kansai meeting in Kyoto. Some notes on Stikipad (and copy on my wiki). For bad luck both Stikipad and JunebugWiki cannot do trackbacks, so I’ll use this diary ..

* http://d.hatena.ne.jp/ha-tan/20070217/1171688063
* http://bingobingobingo.blog49.fc2.com/blog-entry-354.html
* trackback : [[Ruby勉強会@関西-14 (inside of 伊勢的新常識)|http://iseebi.half-done.net/diary/?date=20070217#p01]] (2007-02-18 (Sun) 01:21:29)
""Ruby勉強会@関西-14、あまりの金欠っぷりに参加を見合わせようと思ったけど結局行ってきました。途中昼食に立ち寄ったCoCo壱番屋でなかなか料理が出てこなくてバスを逃す。仕方なくタクシー。というか自費タクシー人生初。
""Ruby実行環境のお話。本来のJRubyとかのお話とか完全スルーでRubyCLRに萌えてた!僕は本来C#の人ですが、C#はあれこれするにはちょっと機動性がないのでどうかなーとか..

// !! 会場設備とノートPCの持ち込みについて
// * 会場の教室には電源とLANコンセントが完備しています。無線はありません。
// * LANケーブルは、忘れず持参してください。
// * LANのDHCPは登録しないと使えません。
// ** 自分のノートPCをネット接続したい人は, konamiアットkyoto-wuドットacドットjp まで 氏名,PCのMACアドレス,OSをメールで知らせてください。(前々日夜まで)
// ** 登録はその回限りですから,毎回新規に申し込んでください。
// *  勉強会の当日にはネット接続が必須というわけではありません。Ruby がインストールされたPCさえあればたいてい大丈夫です。
// * 当日,ファイルの配布をご希望の方は, USB メモリをご持参ください。
//
// !! 名札について
// * 初参加の方々もいっらっしゃいますので、名札をお持ちの方は是非持参してください。もちろん名前を大きく書いて。通称もあり。
//
// !! 帰りのバス
// [[プリンセスライン京都駅前行(土曜日ダイヤ)|http://www.css-c.com/princessline/11_12keitou.html#2]]
//
// [[プリンセスライン河原町行|http://www.css-c.com/princessline/index6.html]]