第11回Ruby勉強会@関西

いつもと会場が違うので迷いました。というかこの建物に入っていいのだろうかとどきどきしました。ノートPCの電源ケーブル忘れました。だめだめです。
Ruby初級者レッスン(8)前半 by かずひこさん、コウザイさん

  • イテレータを作ってみよう。
  • Enumerableモジュール。
  • <<は「クク」と読む。by コウザイさん
  • <<は引数がひとつだけ。pushは複数とれる。

Exerb入門 by Yuyaさん

  • 神戸在住。飲み仲間募集中。
  • rb→ExerbWindows実行形式。
  • デモ1。Hello, world!!。レシピがいらない(単体のファイルのみ可能)。
  • デモ2。WIN32APIを使った場合。mkexy foo.rb。
  • デモ3。tkを使ったGUIアプリの場合。現状、終了時にゴミプロセスが残る。
  • デモ4。Down!!(原さん@京大マイコンクラブ)作のゲーム。
  • 動機。利用者からすればどんな言語が用いられているかは関係ない(利用者にしてみれ開発者のわがままでしかない)。→でもRubyを使いたい。
  • データファイル。StringIOで読める。
  • 欠点。正常に動作しないライブラリがある。実行ファイルが大きい。リバースエンジニアリングが容易。MSVCRT版なので使用できない機能がある。
  • レシピファイル。YAMLフォーマット。アイコンが書ける。コメントは日本語OK(UTF8)。
  • コアファイル。インタプリタ+ロード用モジュール。CUIGUIスタンドアローン⇔ランタイム版。
  • 3.3.1→4.0.0への差分。Ruby1.8.4対応。1ステップ生成機能。レシピファイルのフォーマット変更。
  • 類似プロジェクト。RubyScript2Exe。rb2exe。rb2bat。

RRSE - Ruby Reference Seeker for Emacsen by 大林さん

  • haskel-modeをヒントにしている。
  • ワンタッチでマニュアルを読める。
  • rdocでマニュアルを書けば表示できる。rdocのドキュメントを何も書かなくてもAPIの引数くらいは表示できる。
  • 内部構造。~/.rrseにDB(?)を保存。post-command-hook。カーソル下のメソッド名抽出はadhoc。
  • 今後。補完機能。Debianパッケージ。んー、補完機能は便利かも(でもRubyって基本的にメソッド名が短かいからあまりいらんかも)。

Rubyクイズ第一回 by cuzicさん

  • <<は「クク」と読みましょう。
  • 破壊的⇔非破壊的ネタ。

ライトニングトーク アジャイルドー えっくすぴーの森 by 川端さん

  • 40時間労働。僕はこのプラクティスを聞くといつも溜息ついちゃいます。
  • 姿勢が大事。いやとにかく。変化を受け入れる。

Ruby初級者レッスン(8)後半 by かずひこさん、コウザイさん

  • グループわけして演習 + 発表。僕の参加したチームは、こんな感じでいったんハードコーディングなメソッドを書いておいて、その一部をyieldで置き換えてみました。Rubyでは頻出のリファクタリングパターンです。
#!/usr/bin/env ruby

class Array
  def find3
    each do |n|
      return true if n == 3
    end
    false
  end

  def myfind
    each do |elem|
      return elem if yield(elem)
    end
    nil
  end
end

p [1, 2, 3].find3                # => true
p [1, 2, 3].myfind {|n| n == 3}  # => 3
p [1, 2].myfind {|n| n == 3}     # => nil
  • 今回からグループわけが導入されたのですが、よかったと思います。発表があるので真剣に課題に取り組めました。グループのメンバと会話もしやすかったです。レッスンが双方向になったような気がしました。

二次会