Create  FrontPage  Index  Search  Changes  Login

Ruby勉強会@関西-17

第17回 Ruby勉強会@関西(運営:Ruby関西

勉強会

日時
2007 年 7 月 14 日 (土) 13:00〜17:30
場所
京都女子大 J校舎4F J420教室
アクセス
http://www.cs.kyoto-wu.ac.jp/~konami/map/J/
費用
実費(講師の交通費、配布物の印刷代等)の人数割をご負担ください。前回(同じ会場)は500円でした。
定員
定員は設定しません。

プログラム

「あなたのソースコード添削します」 by okkezさん、南木さん、novさん

セッション概要
事前に提出されたRubyプログラムをRubyの達人が添削します。
プロフィール
okkez
社会人三年目。仕事に飽きると、Rubyでツールを作ります。どんなツールかは機会があれば、お話ししたいと思います。Rubyリファレンスマニュアル(るりま)のお手伝いをぼちぼちやっています。また、最近は関数型言語(Erlang,Haskell)を勉強中です。
nov
兼業主夫一年目。主夫業以外では、RubyやRailsでコードを書いています。Javascriptをもっと詳しく知りたい、と思っているとかいないとか。
配布資料(ソースコードのみ、orig/にあるのはこなみせんせいのオリジナル)
code-review-nov.zip

「表題未定」 by 中田さん

台風接近により今回は中止とさせていただきます。

「オープンセッション」

セッション概要
前半南木Rails + rcairo を使った演習
cuzicQ&A セッション
後半氏久関数型言語Ruby (2)
yharaRubyから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をサポートするライブラリとその実装・使い方を紹介します。
プレゼン資料
functional_ruby_presentation.pdf
配布資料 (ソースコードのみ)
functional_ruby.pdf
演習の解答
answers.tgz
プロフィール
氏久
大学院生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で勝負です。
  • lambdaはOOSPL RubyではProcオブジェクトを生成する。
  • 関数呼出の末尾に[ ]が必要。
    • お約束らしい。
    • Procクラスを拡張することで、無理矢理[ ]が無くても動作するようにしてしまう。
    • しかし、1回目(?)の関数(Procオブジェクト)の実行には、[ ]が必要。
  • Haskellのパターンマッチに似たようなことも書ける。
    • OOSPL Rubyの多重代入をパターンマッチに見せかけている。
  • cohi(こひつじ)というライブラリを紹介。
    • HaskellのPreludeモジュールを実装。
    • cohiの各関数(Procオブジェクト)は、全てcohi内で定義された関数にて記述されている。
  • 最後に演習。
    • 「Map関数を実装しよう」という試み。
    • 基本はこんな感じのことをすればよい。
 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://...)を相対パスに書き換えて保存することができる。

コメント

  • 2008-01-10 (Thr) 15:53:34 nrytawh : JUZiwLQZA
(comment plugin is disabled).

反応リンク集

Last modified:2011/08/28 17:02:38
Keyword(s):
References:[Ruby勉強会@関西]
This page is frozen.