RubyKaigi2011 2日目参加してきた

今日も一日大ホール。少し遅れて最初のセッションの途中から参加

安全なプログラムの作り方 / 西山和広氏

  • 脆弱性があってもパーミッションによって被害を抑えられる

正規表現の^ $と\A \z(\Z)を使い分ける

  • ^ : 行頭
  • $ : 行末
  • \A : 文字列の先頭
  • \z : 文字列の末尾
  • \Z : 文字列の末尾か末尾の改行の直前
  • 1.8と1.9での扱いの違いに注意すること。文字コードのところ変わったので\wのところとかかわってる
  • エスケープは適切に
    • HTMLの属性値なら""でくくる

jpmobileのベストプラクティス / 小川伸一郎氏

  • How to use jpmobile
  • Tokyu.rb しゃぶしゃぶ食べてます
  • jpmobileとgitとRubyシルバー、ゴールドの本を書いてます

githubの現在のブランチ

  • Rails 2.3
    • rails-2-3
  • Rails 3.0
    • master
  • Rails 3.1
    • NONE

Rails3.1用はバージョンをわけjpmobile2.0として作成する

文字列変換

  • view utf8
  • docomo sjis
  • softbank utf8

自動的に変換する

session_id

  • post/getのパラメータに自動的に追加している
  • docomoのクッキーが使えない端末用に対策として使っている

session_idの設定はアプリケーションコントローラとかに書きましょう。デフォルト値はmobile

  • trans_sid
    • :modile クッキー対応していない端末のみセッションID追加
    • :always PCを含めた全ての端末で付与する

Viewの切り替え

  • 最新バージョンでは自動的にわかれませんよ
  • viewセレクタ
    • include Jomobile::ViewSelector
    • インクルードしたコントローラだけだよ

フィーチャーフォンめんどくさいですぅ

たのしいRails / 松田明氏

  • Seattle.rb / Asakusa.rb
  • EricHodelのトーク聞きに行かないおまえらなんなの。Rubygemsの作者が話してんだぞ
  • Rails(レール)の開発をしていくっていうのは本当の開発
  • のるより作るほうが楽しいじゃないですか
  • 相手はコンピュータの先にいる人間なんですね
  • そことコミュニケーションとるんすよ

Read Rails

  • Read git log every morning
  1. git clone
  2. git pull
  3. git log
  • 毎日やる!
  • もっといいやり方あると思うけどパソコンよくわかんないんでこんなやりかたをw(松田氏)
  • テストのやり方、コミットコメント参考になる
  • 活発な人はすかさずストーキングしましょう
  • コミットコメントはコミットオブジェクトがなんであるかを1行で説明しなくちゃいけないだろう
  • 英語で書く練習とかするといいんじゃないですか

English

  • Rubyで毎日しゃべっていたら英語なんてできないわけないんですよ
  • 26文字おぼえりゃいいだけなんですよ

Edge Railsを使う

  • bundleを使うとらくちん。Gemfileに書くだけ
  • gem 'rails', :path => cloneした場所
  • github lifo/docrails
  • ドキュメントを書くリポジトリ

Railsは基本的に壊れている

  • モンキーパッチで直してる。それどうしてる?
  • 公開してよ
  • RailsのEdgeが厳しければGemから最新にしてみるのもいいんじゃないですか
  • RailsConfいきましょう
  • BDD
    • BookDrivenDevelopment
    • 本を出筆すると開発がはかどる

Rubyマスターへの道 / 原悠氏

  • HTML5のタグRubyistは使わないといけないんじゃないですかね。るびふれる

Rubyを上達するためには

  • 準備編
    • Rubyならだいたいなんでも作れる
    • 時間をかければ何でも上手くなる
    • 気長に行きましょう
    • 実践しないとうまくならないこと
    • 料理と似てる
    • プログラマにできないことは何も無い!
    • RubyがだめでもCで、Cがダメでもアセンブラが
    • 勉強すれば何でも作れるという自信
    • 自信をつけるにはたくさんつくる
  • 初級編
    • 組み込みライブラリ、標準添付ライブラリを知ろう
    • 身近な問題を解決しよう
    • アウトプットしよう
    • ブログを書こう
    • githubにおこう
    • gemのソースを読むようにみやすい位置においておける
    • gem pristineでもとに戻せる。安心していじれますね
    • 他の言語をしるとRubyの特徴がみえる
  • マスター編
    • 人と違うことをする
    • やる気がでない
    • 諦める
    • とりあえず始めるとやる気が出る
    • 嬉しいことがあるとやる気が保たれる
    • チケット駆動
    • テスト駆動
    • やらざるを得ない環境(喫茶店とか)

一番大事なことは

  • 動いたときの喜びが一番大きなたのしみ
  • 目の前のコードを楽しもう

BDD style Unit Testing / Wen-Tien Chang氏

  • alias_method :context, :describe されておる
  • nested before

  • テストを簡略化しない
  • BDDは必須ではない

5 years know-how of RSpec driven Rails app. development. / 諸橋恭介氏

  • テストのコンテキストの設定の難しさ
  • ModelのUnitTestを最初に書く
  • スキニーコントローラ、ファットモデル
  • データのセットアップが大変

データの種類

  • マスターデータ
    • ほとんど追加更新がされない
  • リソースデータ
    • ユーザーデータとか主に扱う物
  • イベントデータ
    • イベントがおこったときに記録しているところ(中間テーブルとか?)

データの作り方 / データを作成する時に適した物

  • マスターデータ / Fixture
    • メリット:はやい
    • デメリット:メンテナンス辛い
  • リソースデータ / Fixture replacement[Fabrication*1,factory_girl*2]
    • メリット:フレキシブル高機能
    • デメリット:使い方が難しい、はやくはない
  • イベントデータ / before/setup
    • メリット:はやい
    • デメリット:メンテナンス辛くなる

数を増やすとDRYじゃなくて辛くなってくる

  • naming each
    • let(:symbol) { 1 }
    • 呼ばれたら定義される
  • naming team
    • shared_context
    • include_contextで呼び出せるにょ

FactoryGirlは使ったことあるけどFabricationは使ったことないからあとで試す

Efficient JavaScript integration testing with Ruby and V8 engine. / Chris Kowalik氏

Advancing Net::HTTP / Yehuda Katz

  • Net::HTTPはとてもよくできている
  • Net::HTTPはローレベルのリソースを取り扱うのが得意
  • Net::HTTPをフォークしてNet2::HTTPを作る。パッチではなく大きな改良をしたくなった

ローレベルなHTTPの話とか

The Gate / 角谷信太郎氏

  • Ruby Evangelist
  • Dave Thomasの紹介
  • 角谷氏の紹介
  • 訳がわるいだけの本があった。
  • 日本語でまともな本を。翻訳をはじめた
  • The Island of Ruby
  • Ruby is not an island
  • Rubyは会社を買えるのではありません。
  • Rubyが変えるのは人なのです。
  • それが業務や業界を変えるのです。
  • 生産性を上げるためにはたのしくすればいい
  • 楽しさは国も時間も超える

daveの宿題

  1. 自分じゃないだれかにインスピレーションを与えなさい
  2. 個人個人が多様性を持ちなさい
  3. たまにはレールからおりろ

3つのことを楽しくやりなさい

  • 多様性は善
  • 全部をRubyKaigiで受け止めるのは難しい
  • 一般社団法人日本Rubyの会を作ります
  • /Ruby(Kaigi|Conf)mix/
  • 圧倒的受託開発

2013年はRuby誕生20周年!!!!

Lightning talks1

メモできてないですが楽しかった


明日も行く予定・・・