2006-07-15 [長年日記]

_ [ruby] Ruby勉強会@関西-11

何とか参加。

Ruby 初級者向けレッスン第8回(前半)

かずひこさん・コウザイさん。息もピッタリ。 yield を詳しく、ということで。オレオレ Enumerable を実装とか。 この辺は何度やっても楽しいね!

いくつか解答を見たけど、partition は「くくくっく」一回でよくないすかね?

def partition
  t = []
  f = []
  each do |elem|
    (yield(elem) ? t : f) << elem
  end
  return t, f
end

とか。これは Kernel#returning があればもうちょっとすっきり書けそう。

def partition
  returning([[], []]) do |t, f|
    each do |elem|
     (yield(elem) ? t : f) << elem
    end
  end
end

あんま変わらんか。

あと、inject の初期値が省略されたときを実装しようとすると、 nil が渡されたのか、何も渡されなかったのかを識別できないような気が。

def inject(memo = nil)
  each do |elem|
    memo = memo.nil? ? elem : yield(memo, elem)
  end
  return memo
end

毎回分岐するのもなぁ。でも最初の要素を汎用的に取り出す方法がないのでしょうがない?Array だけなら shift でいいんだけど、 初期値に nil を渡す場面があんまり想像できないからいいや。

Exerb入門

Yuya さん。その場でダウンロードして、説明を横耳で聞きながら、やってみるとあっさり動きました。素晴らしいです。 今回はすでにインストールしてあった InstantRails のプロンプトから Exerb をインストールしたので、 何やら c:\rails\... なところに入ってしまった感じなので、ASR も含めてもう一度環境を整えよう。

RRSE

大林さん。これまたその場でインストール(つかコピー)して試してみる。

$ rrse-make-table --refe
/(snip)/bin/rrse-refe-listdescs:32:in `descs': invalid information (RuntimeError)
        from /(snip)/bin/rrse-refe-listdescs:26:in `descs'
        from /(snip)/bin/rrse-refe-listdescs:46:in `display_info'
        from /(snip)/bin/rrse-refe-listdescs:87

ってのが 2 回出るので、rrse-refe-listdescs にある、 ReFeInfo#descs が出す例外をコメントアウトしてみる。

あとで気づいたけど、例外が出るのは spec が

StringScanner#self.pos=

のときなので、

-      when /^[A-Za-z0-9_:]+(#|\.)[^#.]+$/
+      when /^[A-Za-z0-9_:]+(#(self\.)?|\.)[^#.]+$/

かなぁ。

あと、アンケートにも書いたけど、 [f1] とか押したときに、カーソルが移動して、

  • SPC でスクロール
  • b で逆スクロール
  • q でバッファを消す

ぐらいはできるとうれしそう。 そして、そっちのバッファでもカーソル位置のメソッドをミニバッファに表示とか、[f1] で(今度は同じバッファに)ヘルプを表示とか。

Ruby クイズ

cuzic さん。中級者向けでマニアック。なんとなく知ってるつもりでも、 irb をたたかないと確信が持てないような問題をいくつか。 というか、何をするにもまず irb を使うなぁ、script/console を含めて。

ライトニングトーク: アジャイルドー えっくすぴーの森

川端光義さん。聞き覚えがある名前だと思ったら、 RubyKaigi2006 の懇親会で名刺交換したんだった。 スライドの再利用がうまい。ぴったり 5 分で終了。これ重要。 今日一番の大ウケ。XP 祭り行こうかなぁ(←と言ってる時点で XP はムリポ)。

Ruby 初級者向けレッスン第8回(後半)

前半の解答編とグループレッスン。 グループレッスンではリーダーだったりしたんだけど(←前日に任命された)、 全然まとめきれなかったなぁ。役に立たないリーダーでごめんなさい。 チャンスがあれば是非また。

懇親会

あぁ、またはしっこに座ってるよ。でも今日はずーっと面白かったのでよし。

  • 蒸留酒をロックで。
    • ロックは Mutex か Monitor で。
  • 男女比率が偏っている出会い系サイト同士を出会わせる出会い系サイトの話。
    • 出会い系(サイトのシステムで)は INSERT が重要。でも CREATE はダメよ。えー。
    • 某所に babie さん(の名札)が晒されている……(←いまここ)

お茶

回を追うごとにえらい人数になってます。 オーダーとりに来てもらうまで 40 分程かかってます。 15 分程で飲み終わって、そのまま解散であります。 脱出には地下道がおすすめであります。

本日のツッコミ(全5件) [ツッコミを入れる]
_ サイロス誠 (2006-07-17 11:05)

Ruby勉強会でpartitionのコード書いた人です。<br>>partitionの例<br>なるほど、参照元も振り分けできるんですね・・・<br>恥ずかしながら、初めて知りました。まだ昔ながらのコーディングで凝り固まっているところがあるなぁ・・・。<br>こういう形で知識が増えるのも良いですね。

_ あゆ (2006-07-18 20:30)

次は地下道をつかってみますです。でも、みんなついてきたりして…(笑)

_ かずひこ (2006-07-18 22:39)

へー、地下道ね。メモメモ φ(..)

_ nov (2006-07-19 01:56)

コードが短くなってるので正解に近づいてるはずです。>> サイロスさん<br><br>むむむ。もうネタばれだ……(わら >> あゆさん、かずひこさん

_ あゆ (2006-07-19 12:47)

うぉっ。ばれてしまいました。…また別の方法を考えねばです(笑)

[]

«前の日記(2006-06-30) 最新 次の日記(2006-08-01)»