-
Notifications
You must be signed in to change notification settings - Fork 2
KansaiWorkshop017
muryoimpl edited this page Dec 31, 2011
·
1 revision
第17回 Ruby/Rails勉強会@関西 (運営: Ruby関西 )
- 日時: 2007 年 7 月 14 日 (土) 13:00~17:30
- 場所: 京都女子大 J校舎4F J420教室
- アクセス
- 費用
- 実費(講師の交通費、配布物の印刷代等)の人数割をご負担ください。前回(同じ会場)は500円でした。
- 定員
- 定員は設定しません。
-
「あなたのソースコード添削します」 by okkezさん、南木さん、novさん
- セッション概要
- 事前に提出されたRubyプログラムをRubyの達人が添削します。
- プロフィール
- okkez
- 社会人三年目。仕事に飽きると、Rubyでツールを作ります。どんなツールかは機会があれば、お話ししたいと思います。Rubyリファレンスマニュアル(るりま)のお手伝いをぼちぼちやっています。また、最近は関数型言語(Erlang,Haskell)を勉強中です。
- okkez
- nov
- 兼業主夫一年目。主夫業以外では、RubyやRailsでコードを書いています。Javascriptをもっと詳しく知りたい、と思っているとかいないとか。
- 配布資料(ソースコードのみ、orig/にあるのはこなみせんせいのオリジナル)
- セッション概要
-
**「表題未定」 by 中田さん **
- 台風接近により今回は中止とさせていただきます。
-
「オープンセッション」
-
セッション概要
- 前半
- 南木 Rails + rcairo を使った演習
- cuzic Q&A セッション
- 後半
- 氏久 関数型言語Ruby (2)
- yhara RubyからHTMLを扱うためのライブラリ、Hpricotの紹介
- 前半
-
「Rails + rcairo を使った演習」 by 南木さん
- セッション概要
- rcairo は cairo という2DグラフィックライブラリのRubyバインディングです。
- 参考:るびまの紹介記事
- http://jp.rubyist.net/magazine/?0019-cairo
- セッション概要
-
「Q&A セッション」 by cuzicさん
- セッション概要
- 具体的な~~をしたいのだけれどどうすればいいのか、といった内容の質問に答えるコーナーにしようと思っています。
- セッション概要
-
「関数型言語Ruby (2)」 by 氏久さん
- セッション概要
- Rubyは純粋な関数型言語です。今回はha-tanさん作成の関数型言語Rubyのライブラリcohiの紹介、その他関数型言語としてのRubyをサポートするライブラリとその実装・使い方を紹介します。
- プレゼン資料
- 配布資料 (ソースコードのみ)
- 演習の解答
- プロフィール
- 氏久
- 大学院生2年目。研究に疲れると、Rubyで黒魔術します。どんな黒魔術かは機会があれば、お話ししたいと思います。Rubyリファレンスマニュアル(るりま)のお手伝いをぼちぼちやっています。また、最近は関数型言語(Erlang,Haskell, Ruby)を勉強中です。Lispに手を出さない勇気を振り絞っていたのですが、最近誘惑に負けて勉強を開始したようです。
- セッション概要
-
RubyからHTMLを扱うためのライブラリ、Hpricotの紹介 by yharaさん
- セッション概要
- 参考:rubyでする Web scrapping - Hpricot と mechanize そして scRubyt (朴 芝印)
- http://jp.rubyist.net/RubyKaigi2007/Log0609-S4-01.html
- プロフィール
- yhara
- セッション概要
-
- 日時
- 2007 年 7 月 14 日 (土) 18:00~(予定)
- 場所
- 会費
- およそ社会人:学生 = 2:1 の比率でご負担ください。前回は 3500 円、2000 円でした。
- 締切
- 2007 年 7 月 13 日 (金) 17:00 まで
- オープンセッション
- 「関数型言語Ruby (2)」 by 氏久さん (ロガー: Raito)
-
純粋関数型言語Ruby
- オブジェクト指向スクリプト言語Ruby(OOSPL Ruby)とは区別する。
- 関数型言語の中でも、Haskellの影響を強く受けている。
- よって、Lisp系言語とは少し雰囲気が違い、ついて行けない参加者続出。
- 普通は、car,cdrで勝負です。
-
純粋関数型言語Ruby
- lambdaはOOSPL RubyではProcオブジェクトを生成する。
- 関数呼出の末尾に[ ]が必要。
- お約束らしい。
- Procクラスを拡張することで、無理矢理[ ]が無くても動作するようにしてしまう。
- しかし、1回目(?)の関数(Procオブジェクト)の実行には、[ ]が必要。
- Haskellのパターンマッチに似たようなことも書ける。
- OOSPL Rubyの多重代入をパターンマッチに見せかけている。
- cohi(こひつじ)というライブラリを紹介。
- HaskellのPreludeモジュールを実装。
- cohiの各関数(Procオブジェクト)は、全てcohi内で定義された関数にて記述されている。
- 最後に演習。
- 「Map関数を実装しよう」という試み。
- 基本はこんな感じのことをすればよい。
- 「関数型言語Ruby (2)」 by 氏久さん (ロガー: Raito)
map(f, ary) #=> ary.map{|i| f(i)}
- ポイントはfをOOSPL Rubyのメソッドではなく、関数型言語Rubyの関数として、定義しなくてはならないこと。
- cohiを使うともっと簡単に実装できるはずだが、1問目は *cohi使用禁止* という理不尽な演習だった。
- 「RubyからHTMLを扱うためのライブラリ、Hpricotの紹介」 by yharaさん (ロガー: Raito)
- プレゼンツールと irb を交互に使ってプレゼン。
- HpricotはHTMLを解析するためのライブラリ
- HTMLをそのまま解析するとなると、複雑な正規表現を書きまくらないといけない。
- Perlでmixiを解析することに特化したライブラリがあるが、mixi自体が数ヶ月毎に表示方法を変更していくため、その煽りを受けて変更が続いている。
- Hpricotの作者は、whytheluckystiff氏
- YAMLの作者でもある。
- 使い方はこんな感じ。
require 'rubygems'
require 'hpricot'
doc = Hpricot(filepath) ;0 #=> 0 # ;0を付けないと解析結果オブジェクトがコンソールを埋め尽くす
doc.class #=> Hpricot::Doc
- Hpricotが関数として定義されてしまう、という変な実装。
- initializeメソッドを使わない記法が流行?
- Hpricot::Doc#%(html_class) にて、HTML内からhtml_classに該当するデータを抽出可能
- html_class="td.main table": CSS流儀の書式
- html_classはXPathも使用可能。
- XPathはFirefoxのプラグインFirebugにて簡単に抽出可能。
- (脱線) Set#divide{|i| cond} を使うと、Setオブジェクトの中でcondが一致する値同士でグルーピングする。
- HTMLを解析し、取り出したファイル名(URL)を全てダウンロードする場合、1件ダウンロードするたびに、少し待つこと
sleep 0.5
- これをやり忘れると、サーバー側からはDoS攻撃とみなされるので、要注意。
- この他にHpricotを使うと、HTMLを書き換えることも可能。
- 例)読み込んだHTMLの中にある画像ファイルのURL([http://...][8] )を相対パスに書き換えて保存することができる。