第29回 Ruby/Rails勉強会@関西

Posted by okkez Tue, 19 Aug 2008 05:31:00 GMT

行ってきました。

ちょっと睡眠不足気味だったので各セッションの記憶はあまりなかったりします。

なので今回は行ったという記録のみ残しておきます。

Posted in | コメントはありません |

第 28 回 Ruby/Rails 勉強会

Posted by okkez Sun, 27 Jul 2008 07:23:00 GMT

日本Rubyの会 公式Wiki - 第28回 Ruby/Rails勉強会@関西

行ってきました。

エラトステネスの嵐—Rubyの集合演算を活用する by こなみさん

いろいろやってたらあまり聞けなかった。残念。

git - 分散バージョン管理システム by 舘野祐一さん a.k. id:secondlife

かわいいよ git かわいいよ。

今、作ってる某課題の管理はこれでやってみようかなぁ。

git-svn の使い方とか調べたい。

Ruby 初級者向けレッスン 第 22 回 by okkez さん

今回は irb について。

演習の後半は irb 関係ない感じでいきました。

演習の解答例は wiki にアップしたのでそちらを参照してください。

とりあえず、うちの ~/.irbrc です。refe2 のところはあまりうまく動かない。 まともに実装しようとすると bitclust を require してごにょごにょする必要があったりなかったりする。

#!/usr/bin/ruby # ri を使えるようにする # 例. # irb> String.ri # irb> ri String # same as above # irb> String.ri ‘reverse’ # irb> ri ‘File.new’ def ri(*args) puts `ri #{args.join( )}` end class Module def ri(meth=nil) if meth if instance_methods(false).include? meth.to_s puts `ri #{self}##{meth}` else super end else puts `ri #{self}` end end end # refe2 も使えるように module Kernel def r(*args) puts `refe2 #{args.join( )}` end private :r end class Module def r(meth = nil) if meth if instance_methods(false).include? meth.to_s puts `refe2 #{self}##{meth}` else super end else puts `refe2 #{self}` end end end IRB.conf[:EVAL_HISTORY] = 1000 # タブ補完を有効にする require irb/completion # simple prompt IRB.conf[:PROMPT_MODE] = :SIMPLE # ヒストリーを有効にする require irb/ext/save-history IRB.conf[:SAVE_HISTORY] = 1000 IRB.conf[:HISTORY_FILE] = "#{ENV[HOME]}/.irb-save-history" # サブ irb の設定 IRB.conf[:IRB_RC] = lambda{|_| IRB.conf[:IRB_RC] = lambda{|conf| conf.prompt_mode = :DEFAULT } } require pp require yaml

Posted in | コメントはありません |

KansaiWorkshop#27

Posted by okkez Sat, 28 Jun 2008 14:02:00 GMT

行ってきた。@京都女子大学

関数型言語 Ruby by keisuken さん

最初ネットワークに全くつながらなくて、ust 配信に失敗してた。 なので、内容の方があまり聞けなかった。

途中から真剣に聞いたけど、わかりやすい説明で非常によかった。

日本 Ruby 会議 2008 参加報告 by いまいさん

Matz のバランスボール写真が素敵だった。多分次のるびまの著者近影はアレになると予想。

あと、あゆさんの営業活動が素晴らしかった。

Ruby 初級者向けレッスン 第 21 回 by okkez さん

オブジェクト指向。

ポリモルフィズムの説明のところが、やっぱり引っかかった。

初級者レッスンに対するアンケートの回答は全部読んでいるので、次回以降改善されるかもしれません。

オープンソースとビジネスの実際 by かずひこさん

京都大学でも聞いたのであとで書く。

Posted in | コメントはありません |

第 26 回 Ruby/Rails 勉強会 初級者レッスン添削

Posted by okkez Sat, 24 May 2008 07:08:00 GMT

添削しようと思って、日本Rubyの会 公式Wiki - 第26回 Ruby/Rails勉強会@関西 にトラックバックをしているサイトを見たけど、みんなそれぞれなりに上手に書いてるなぁと思った。

回答例は 日本Rubyの会 公式Wiki - Ruby勉強会@関西-15 を見てもらうことにしよう。

Posted in | コメントはありません |

第 26 回 Ruby/Rails 勉強会

Posted by okkez Sun, 18 May 2008 13:00:00 GMT

日本Rubyの会 公式Wiki - 第26回 Ruby/Rails勉強会@関西 に行ってきた。

当日の資料とかログとかは wiki に上がってるのでそちらを参照。ここでは個人的な感想とか。

Ruby off Rails by ストヤンさん

Rails 使わなくても web アプリケーションは作れるよねって話。

フレームワークだけでもいっぱいある。

特に nginx + Thin cluster と Rack が気になった。 Rails 2.1 で Rack 対応が入るらしい。

自宅サーバで動かしているアプリの構成を考え直したい。

Ruby on Rails で作られたアプリを動かす5つの方法 by okkez

詳細は、資料とログを参照してください。

とりあえず、あの資料をまとめ直してブログで記事にしようと考え中。

Rubyで快適に連投する11の方法 by ujihisaさん

諸事情であまり聞いてなかったけど、受けてて嫉妬。 lingr のチャットも盛り上がってたし。

Ruby初級者向けレッスン第20回 by okkez

今回は相方にほとんど喋ってもらうようにしたけど、アンケートによるとあまり評判は良くなかったみたい。 まあ、別に一般のお客さんがメインの対象では無いのでこれはこれでアリだと思う。

演習問題の解答例はなんとか一週間以内に出したいところ。

あと、資料をあれ以上詳しくするのは負荷的な意味で無理。無限に時間があるならいくらでも詳しくしてもいいけど。

懇親会

るりまの打ち合わせを前田さん、青木さん、yhara さん、西山さん、sheepman さんと自分の五人でやった。 まわりの人に無理言って配慮してもらったので、ちゃんと実のある話ができた。懇親会の参加者のみなさんありがとうございました。

決まった内容は、後日MLに流れるはずなので議事録担当な yhara さんに期待。

懇親会終了後は、ちょっとカフェでお茶して帰りました。

Posted in | 2 comments |

Gauche and SICP #1

Posted by okkez Sat, 26 Apr 2008 14:15:00 GMT

行ってきた。

Gauche が楽しい。Scheme ってこんなに素敵なものだったなんて!なんでもっと早く勉強しなかったんだろう。

SICP と Gauche を同時に進めるのはいいアイデアだと思うので今後もずっと同日開催を続けてほしい。

以下、個人的なKPT(感想込み)

Keep

  • Gauche と SICP の同時開催
  • yhara さんの参加
  • 他デキる人たちの参加

Problem

  • お菓子多い気が。
  • カンパの目的を明確にして欲しい
    • こっちから聞くまで何も言ってもらえなかったのはちょっとどうかと思った
  • SICP で人数が増えたのに部屋が狭かった
  • まとめの時間が無かったので、議論がし辛かった
  • 遅刻者大杉
  • 範囲だけ決めて制限時間を決めなかったのでぐだぐだ感が。
  • ネットワークにつなげられない人が居た (自分)
  • LT がぐだぐだ。やるならちゃんとやってほしい。

Try

  • 有線LAN をもう少し頑張ってみる
  • 無線LAN の設定方法を勉強しておく
  • 範囲と時間を決めて集中して読むようにする
  • まとめの時間を作る
  • 範囲と時間をきちんとホワイトボード(見える場所)に記述する
  • その日の目標を事前に決めておく
    • 予習できるように。
  • 演習の回答はプロジェクタに映すようにしてみる
  • Lingr などもプロジェクタに映してみる
  • なんとなく休憩に入るのではなく最初に何時から休憩するか決めておく

演習問題の回答

そういえば時間内に演習問題を解いたので回答をさらしとく。 処理系は Gauche。

; 演習 1.3 ; a1 <= a2 <= a3 (define (square2 a1 a2 a3) (define (square x) (* x x)) (cond ((and (<= a1 a2) (<= a1 a3)) (+ (square a2) (square a3))) ((and (<= a3 a2) (<= a3 a1)) (+ (square a1) (square a2))) ((and (<= a2 a1) (<= a2 a3)) (+ (square a1) (square a3))) (else ())) )

もう少し先のコードも書いたけど、それは次回以降の範囲なので自重する。

Posted in | コメントはありません |

第 24 回 Ruby 勉強会 @ 関西 初級者レッスン演習問題添削

Posted by okkez Sun, 23 Mar 2008 01:26:00 GMT

コードを書いて晒してくれていたのは上記の人たち。
# 公式サイトにトラックバックしてくれてた中から抜粋しました

今回はその中から特に添削希望してたっぽい上二つを添削します。
# 例によって趣味が出てます。

ここでは添削後のコードを示しますので、添削前のコードはリンク先を参照してください。

ちなみに今回は時間の都合でログ解析の添削はやりません。あしからずご了承ください。

id:e-kuroda

char_count = 0; word_count = 0; line_count = 0; chars = Hash.new(0) words = Hash.new(0) File.open("text.txt") do |f| f.each do |l| char_count += l.size l.scan(/./m) {|c| chars[c] += 1 } l.strip.scan(/\w+|[^\s\w]+/) do |w| words[w] += 1 word_count += 1 end end line_count = f.lineno end word_max_size = words.map{|w, n| w.size }.max puts "文字数 #{char_count}" puts "単語数 #{word_count}" puts "行数 #{line_count}" puts "文字出現頻度(文字 頻度(%) 回数)" puts chars.sort_by {|c, n| -n }.map{|c, n| sprintf("%-10s %4.2f%% %5d", c.dump, 100 * n/char_count.to_f, n) }.join("\n") puts "単語出現頻度(単語 頻度(%) 回数)" puts words.sort_by {|w, n| -n }.map{|w, n| sprintf("%-*s %4.2f%% %5d", word_max_size, w, 100 * n/word_count.to_f, n) }.join("\n")

添削ポイント

  • printf を使う意味が少ないところでは使わないようにした
    • puts の方が短いため
  • 出現頻度のところで一つずつ printf してたのをやめた
    • リストを作ったならできるだけリストのまま処理した方がわかりやすいため
  • 単語出現頻度の方でレイアウトが崩れていたのを修正した
  • 正規表現も直そうかと思ったけどやめておいた(\Wを使えば済んだ?)

id:mas-higa

def words(str) str.join.sub(/^\W+/, "").split(/\W+/) end str = ARGF.readlines puts "#{str.size} lines." puts "#{words(str).size} words." puts "#{str.join.size} characters." ### words = Hash.new(0) str.join.sub(/^\W+/, "").split(/\W+/).each do |i| words[i] += 1 end puts words.sort_by{|k, v| v}.map{|k, v| sprintf("%8d: %s", v, k) }.join("\n") ### chars = Hash.new(0) (0x00..0x7e).each{|c| chars[c.chr] = 0 } str.join.split(//).each do |c| chars[c] += 1 end chars.sort_by{|c| c[0][0] }.each_with_index{|c, idx| printf("%6d %6s", c[1], c[0].dump) puts if (idx + 1) % 8 == 0 }

添削ポイント

  • 分けて実行するのが面倒だったので一つのファイルにまとめました
  • 直す所が少なくて困りました
  • 比較的スコープが長い一文字変数はやめた
    • ゴルフしてた?
  • 文字別の所で登場回数ゼロの見えない文字も結果に表示する様にした
    • printf を使わずにやりたかったけど面倒だったのでやめた

今後のこと

  • 添削希望者は自分のブログに「添削希望」と書いて公式wikiにトラックバック
  • 希望者が多い場合は「添削しやすい」コードを添削します
  • 約一週間かかります
  • 忙しいときはできないかもしれません

Posted in | コメントはありません |

第 24 回 Ruby 勉強会 @ 関西 初級者レッスン演習問題添削

Posted by okkez Sun, 23 Mar 2008 01:26:00 GMT

Posted in | コメントはありません |

Kanasan.JS prototype.js CodeReading#4 に行ってきた

Posted by okkez Sat, 22 Mar 2008 14:25:00 GMT
  • line. 1654 - 1806
  • line. 1808 - 1892
  • line. 1894 - 2027
  • line. 2029 - 2155
  • line. 2157 - 2215
  • line. 2217 - 2375
  • line. 2377 - 2443
  • line. 2445 - 2518

こんな感じで進みました。

正直、まだ javascript は全然分かりませんが、雰囲気は理解できたようです。

そろそろ、この成果を活かしてコードを書いてみたいものです。

Posted in | コメントはありません |

第23回 Ruby勉強会@関西に行ってきた

Posted by okkez Sun, 17 Feb 2008 13:56:00 GMT

いつも通りみんなの集合時間より早く行って簡単な打ち合わせ。

日本Rubyの会 公式Wiki - 第23回 Ruby/Rails勉強会@関西

Ruby1.9 の仕様 − Array 関連の新しい機能 by こなみ さん

よくも悪くも講義?って感じだった。 最後の方の内容が面白かっただけに尻切れとんぼっぽくなったのが残念。

純粋関数型言語Ruby(3) 30分でわかるMonad by 氏久(ujihisa)さん

やっぱり 30min ではわからなかった Monad

参加者大半おいてけぼり??

Rails以外のWebアプリケーションフレームワーク」 by yhara さん

merb, capmping, ramaze の紹介。前二つはストヤン経由で聞いてたけど結局試してなくてごめんなさい。

今度、試す。

Rubyのリフレクション by 大林さん

おもしろかった。久しぶりに燃えるセッションだった。 # って自分こんなにリフレクション好きだったっけ?

すごく勉強になった。要復習。

これくらいの濃さのセッションが毎回あるといいのだけど。

Ruby初級者向けレッスン第17回 by okkezさん

自分のセッション。

初級者レッスンと言いつつ、るりまの宣伝乙。 演習問題もリファレンスを見てやってもらう前提だったのでこんなものかと。

演習問題の最後に、使うかもしれないメソッド一覧を載せたのは良かったらしい。Keep

そう言えば、自分が発表する場合の時間の読み方がかなり正確になってきた気がする。

Posted in | コメントはありません |

Older posts: 1 2