Skip to content
muryoimpl edited this page Dec 31, 2011 · 1 revision

第18回 Ruby/Rails勉強会@関西 (運営: Ruby関西 )

プログラム(順不同)

  • 「Rubyの書き方のお作法?(仮題)」 by 中田伸悦さん

    • セッション概要
      • RubyKaigi2007の折、スタッフの無理やりの交渉にご快諾いただき、きていただくことになりました。
        中田さんなりのRubyの書き方の作法等についてお聞かせいただくことにより
        これからRubyをはじめたい人や初心者の方、もしくは普段使ってる方でも
        こんな手法があったのだというのが聞きたい!!という要望を出させていただいたのですが、
        どんなお話をしていただけるのかそれはきてみてのお楽しみです。
  • 「MyGameとゲームプログラミング」 by 山本 団さん

    • セッション概要
      • ゲームプログラミングを題材にしたRuby初心者向け講座です。シンプルなゲームプログラミング用ライブラリであるMyGameの扱い方を紹介しながら、Rubyを使ったゲームプログラミングについて紹介します。
    • 発表資料
  • 「Rails初心者向けレッスン」 by 南木晴雄さん

    • セッション概要
      • OSC2007-Kansaiでやったハンズオンセミナーの長いバージョンの予定です。
  • 「nginxの話」 by Stoyan Zhekovさん

    • セッション概要
      • Rails Deployment with NginX, the quest for the perfect Rails stack
    • 発表資料
  • 「Internationalization in Ruby on Rails」 by 氏久達博さん

    • セッション概要
      • Railsの国際化についての実用的なやり方をお話しします。今回はふつうの話ではなく、普通の話です。普通の話をするのは初めてかもしれないです…。(セッション最後におまけがあるかも...!)
    • 発表資料
      • I35s >> SlideShare
      • アイコンが一杯並んでる行の Download File というリンクからファイルを取得してください。
  • PatchService 紹介」(お名前を失念してしまいましたので link だけ貼っておきます。どなたか修正お願いします。)

懇親会

  • 日時
    • 2007 年 8 月 11 日 (土) 19:00~(予定)
  • 場所
  • 会費
    • およそ社会人:学生 = 2:1 の比率でご負担ください。前回は 3500 円、2500 円でした。
  • 締切
    • 2007 年 8 月 10 日 (金) 17:00 まで

ログ

  • 「Rubyの書き方のお作法?(仮題)」 by 中田伸悦さんロガー: okkez

    • マインドマップでまとめてみました。
    • 自己紹介
      • 流しのプログラマ
      • 日本Rubyの会会員
      • CRubyのコミッタ
      • あまりRailsに縁がない
    • 作法/無作法
      • 作法って?
        • 保守性?
        • 美しく見えること?
          • Rubyが美しいかどうかは置いとく
          • Rubyっぽく見えること
      • 無作法
        • Rubyっぽくない
        • 他の言語に見えるコード
        • Rubyには苦手な書き方
    • Rubyの特徴
      • オブジェクト指向
      • ブロック
      • 動的多態性
        • duck typing
      • メタプログラミングなどなど
    • 無作法
      • プログラマにやさしくない
        • NOT DRY!
      • 相手のクラスによって場合分け
        • C++,Javaではoverloading
          • case when
          • kind_of?
          • 知らない相手には対応できない
      • クラスのためのクラス
        • どこかのデザインパターンの教科書を まるごとコピーしたようなコード
          • REXMLとか
        • デザインパターン(GoFの)自体が対象言語の 特性に依存している
          • GoFがJavaを対象にしている
      • byte単位やbit単位での操作
        • Rubyっぽい書き方はあるよね。
        • 細かい処理が多いと辛い
      • 無作法の極み
        • いっぱい
    • 作法
      • ブロック活用
        • IO, Synclonize
      • メタプログラミング
        • attr_accessor など
      • duck typing
        • each
          • 必要なデータを順番にかえす
      • 既に同じようなクラスやメソッドがないか?
        • 大クラス主義
          • String
          • Array -> キュー, スタック
        • 特異メソッドでもいいんだよ
          • 正規表現
          • StringScanner
    • まとめ
      • eval ば最後の武器
      • 中庸
        • やりすぎるな
          • メソッド名はよく考えよう
    • 質問
      • byte単位、bit単位の処理は普通pack,uppack?
        • 対象領域による
          • 文字列の処理は正規表現
          • バイナリの処理はpack,unpack
      • Rubyは関数型言語だと言っている人がいるけどどうですか?
        • 別にいいんじゃない?
        • そういう使い方をしている人からのフィードバックも大事
        • まつもとさんは関数型言語わからんといっているので そういう方向に進むことはないと思います。
      • リテラルの挙動を変えたいときはどのへんをいじればいい?
        • それは二箇所ある
          • parse.y を弄ってそういうノードを作るようにする
          • eval.c, vm.c のリテラルの挙動をいじる
          • Ruby レベルでは無理
          • リテラルでは initialize は呼ばれない
  • MyGameとゲームプログラミング by だんさんロガー:Tagawa

    • ゲームのデモ
      • ノベルゲームやアクションゲームでも簡単に作成できる。
      • Rubyで書いているとは信じられないほどサクサク動く。
    • MyGameの説明
      • 600行ぐらいの小さいライブラリ。Ruby/SDLのラッパーライブラリ。
      • 簡単で小さく。初心者にも使い易いライブラリを目指している。
      • 凝ったことをしなければ柔軟かつ簡単に書ける。
      • オブジェクト指向に則ったゲームの作成が出来る。
      • 視覚的なフィードバックをかけることが出来る。
      • 公式サイト
    • http://dgames.jp/ja/projects/mygame/
    • インストール手順
      • 必要なもの
          1. Ruby
          1. Ruby/SDL(Rubyのゲーム用ライブラリ)
          1. MyGame
      • Windowsは以下のようにもっと簡単にインストール出来る。
          1. ActiveScriptRuby
          1. MyGame(Ruby/SDL同梱版)
          1. install_mygame.rb
    • ソースコードの紹介
      • とにかくウィンドウを描画するだけのプログラム
    • 以下の一行を書くだけ。

require 'mygame/boot'
- 画像を描画する場合
- Ruby/SDLで書くとなると結構書かないといけない。

require 'mygame/boot'
Image.render('sample.png')
- ESCキーが押されるまで描画
- require 'mygame/boot'
- メインループ 終了はESCを押す

main_loop do
  image.render
end
- 'A'キーが押されると画像を表示する。

require 'mygame/boot'
main_loop do
  if key_pressed?(Key:A)
    image.render
  end
end
- ループの周期は1/60secこの値はコンシューマゲームから来ている値らしい。
    - 画像を移動させる(1ピクセルずつ移動させる)

require 'mygame/boot'
main_loop do
  image.render
  image.x += 1
end
- 画像オブジェクトの使いかたは二つの方法がある。
    - クラスメソッドを使う方法

Image.render('sample.png', :x => 50, :y => 100)
- 画像オブジェクトを作る方法

image = Image.new('sample.png')
image.x = 100
image.y = 50
image.render
- 画像オブジェクトを使った方が良い。
    - キー入力の検出
- インタラクティブ性が得られる
    - 画像をカーソルキーで動かす。

require 'mygame/boot'
main_loop do
  key_pressed?(Key::RIGHT)
  key_pressed?(Key::LEFT)
  key_pressed?(Key::UP)
  key_pressed?(Key::DOWN)
end
image.render
- 押した瞬間だけ処理

if new key_pressed?(Key::A)
  image.render
end
- 質問事項
    - ゲーム向けライブラリではMiyakoがあるが、それとの差別化は?
    - MyGameとMiyakoは対象が違う。MyGameはあくまで初心者向け。
- Wiiリモコンを直接処理できるか?
    - Wiiは直接には処理できない。あくまでRuby/SDLの範囲でのみ動かすことが出来る。
  • 「nginxの話」 by Stoyan Zhekovさんロガー: 氏久達博

    • 自己紹介

      • ブルガリア人。
      • 子供は男三人。かわいい!
    • Deploying Rails

      • 最近は難しい
        • 自分でdeployしないとmoney matters...
      1. Apache+CGI
      2. Apache+FastCGI
      3. Lighttpd+FastCGI
      4. Lighttpd+SCGI
      5. Lighttpd
      6. Mongrel...
      • Mongrel
        • Server and Library, by Zed Shaw
        • FastCGIは落ちてるか分かりにくい
        • MonrelはRails専用というわけではない。Merbとか
        • mongrel_cluster + load balancerしなあかん
      • load balancers
        • pen, pound, balance, HAproxy, LiteSpeed Load Balancer($1299)
        • Static Requests (jsとか)
        • Mongrelだけじゃなくて、Frntend Web Server要るよね。
        • Apache入れるとVPSでメモリ死亡
        • Lighttpdはメモリリークの問題
        • Litespeedは良いけど300リクエストのlimit
      • NginX
        • キタ━━━━(゚∀゚)━━━━ッ!!
        • ロシアの20%はNginXでできてる。
        • bad
          • 一人プロジェクトなので作者が病気になったら終わり
          • しかもmailing listがロシア語!
        • good
          • Good performance, small memory footprint, no memory leaks!
          • FLV stremingもできる
        • 各OSに最適化されてる
        • kill -USR2でbinary reload! これはすごい
        • nginxのsampleのconfig fileを作るgemがある
      • おもろいもの
        • Merb instead of Rails
      • Q&A
        • Windowsサーバ用は?
          • そもそもVPS用にできてる。メモリ問題とか。
          • lightyに対して作られたようなもの
          • もしお金あったらlitespeed
        • Keepaliveを切るとかhttp0にするとかサーバ応答時間死亡判定設定とか、設定項目
          • お金があったらlitespeedのバランサ買って! 全部できるよ
          • NginXのバランサはそんなに良くない。けど、落ちない!
  • 「Internationalization in Ruby on Rails」 by 氏久さんロガー:

    • これを使えば、日本語化、英語化は簡単ですよ
    • Ruby-getText
      • author: Masao Mutoh
      • install:
        • sudo gem install gettext
    • 作業手順は簡単
      1. vim config/environment.rb
      2. vim app/controllers/application.rb
      3. vim Rakefile
      4. rake updatepo
      5. (make po files from pot)
      6. rake makemo
    • app(触る)→pot file(自動生成) →po files(ja,en...触る)→mo file(自動生成)
    • デモは分かりやすかったけれど、途中で中断。。

コメント

  • 2007-08-19 (日) 20:12:36 ひがき : なんきさんがハンズオンの前にやった Ruby 言語の紹介はコンパクトにまとまっていて良かったですね。あれを志村さんの豆本にして配ったら喜ばれないかなぁ。

反応リンク集

会場設備とノートPCの持ち込みについて

  • 各座席にはPCが1台ずつありますので、ノートPCは持ってこなくても大丈夫ですが、持ってきていただいてももちろんOKです。
  • 持ち込みPCのネット接続にはLANケーブル持参必須ですが、当日ネット接続が必須というわけではありません。
  • 当日,ファイルの配布、レッスン内容の持ち帰りをご希望の方は, USB メモリをご持参ください。
  • ケーブルタップ。二股等。(PCを持ってこられる方は積極的にお持ち下さい。電源コンセントは大量に足りないと予想されるので、多めに持ってきて下さい)

名札について

  • 初参加の方々もいらっしゃいますので、名札をお持ちの方は是非/持参してください。もちろん名前を大きく書いて。通称もあり。

バス運行ダイヤ

長尾駅からは徒歩でも行けます (約15分、上り坂)。学内駐車場も利用できるので、車でお越しいただいても大丈夫です。

Clone this wiki locally