2010/12/07  |  Written by  |  under Blog


Rubyのテスト文化とツール 2010 by @hsbt さん

  • Asakusa.rb & 永和の人
  • 去年と着ているものが同じ
    • 「テストを書かないとRubyistではない!」と言う話し

永和の文化

  • テストを書くと言う文化がある
  • in World Conference
    • Ruby を使うとどんどん書ける
    • Ruby を使うとどんどん書ける
      • 書けるが不安になるので、テストを書く
  • metric_fu
    • 静的解析ツールを一度に実行してくれる
  • のレイヤーごとに使っているツール
    • mock/stub
      • stub -> RSpec の stub
      • mock -> RSpec の should_receive
      • rr
      • webmock
        • stub な Web API 呼び出し
    • fixture replacement
      • factory_girl
      • Machinist
    • intergration test
      • Capybara
        • Selenium Webdriver
    • 動かなにテストを放置しない
      • Hudson による CI
        • 完全テストは CI にまかせている
      • parallel_test
    • バグを再現するテストを書いてから直す
      • テストの実行が遅いのをなんとかする
      • Spork
    • DRY
      • 多段ネストを止める
      • Custom Matchers を使う

私的まとめ

  • Hudson による CI は導入してみようかな
  • Custom Matchers を利用することを念頭に置いてみよう

高速な乗除算の実現と性能評価 by @mrkn さん

  • 計算の話し
  • 速さ == ロマン
  • Rational の計算 -> 通分される

私的まとめ

  • あとで直接聞いてみるか

Rubyの未来 未来のRuby by matz

  • 1993
    • Ruby 生誕
    • 利用者 1人
  • 1995
    • fj.sources で公開
  • 2010
    • TIOBEで10位
  • 「いまだに職業としてチームプログラミングの経験がない」
  • 1993
    • 悩めるプログラマ
    • もっと光を
      • List/Smalltalk/Perl のパワー
    • “光あれ”
      • そこに良いものがあるならば、それを届けよう (自分に)
      • なければ自分で作ろう
  • Ruby が届けた光
    • オブジェクト指向
    • エンコーディング
    • ネットワーク
      • IPv6 とか
    • Webプログランミング
      • メタプログラミング
      • モンキーパッチング
    • TDD
      • DSL/BDD
  • 世界を変えよう
    • 自分を変えよう
    • 世界がそれについてくる
      • それが本当に良いものならば
  • 未来のRuby
    • Ruby 2.0
      • Trais/Refinement/Method Combination/Keyword Arguments
  • Rubyの未来
    • HPC
      • 生産性/オブジェクト指向を届ける
    • 組み込み
      • 環境の制約が強い
      • RiteVM
        • LuaっぽいVM
        • Rubyのサブセット
        • インクリメンタルGC
        • 残念なこと
          • 事業の終わりが見える頃までオープンソースになりません
          • 中途からオフィシャルに参加する方法がありません
        • すばらしいこと
          • HPC/組み込みに光が届く
    • いつも人々に届ける「光」であり続ける
    • 人々が「光」を届けるよう動機づける

質疑応答

  • Module はどこから?
    • lisp の mix-in (flavor)
  • Ruby をセールスする良い方法は?
    • 人は実績を見て判断するからそれか、マーケティングが得意な人(DHHとか)を見つける
      • DHHは論争を恐れない(炎上しているところにガソリン持って飛び込んでいく)
  • 北海道の印象は?
    • 体重的に危険な場所
  • Ruby 2.0 features は?
    • trunk で
  • Module を名前空間として使うことは考えていた?
    • わりと初期のころからそう思ってた
  • HPCのは論文が出ると思うが、無料で読めるようにできる?が
    • 相談します

Rubyの教えてくれたこと by 島田さん

  • たのしいRuby
  • 日本Rubyの会 理事
  • ブロックをキーにして、Rubyの楽しさや良さについて
    • 構造を複雑にせずに、柔軟性をあたえられる
    • YAGNI(You Ain’t Gonna Need It)
      • どうせ必要ないって
  • 変化を抱擁する
    • SOLID Principle
    • Open-Closed Principle in オブジェクト倶楽部
    • 変化を受け入れられるようにしておくことが重要
  • 道具を知ること
    • 道具を知り道具を選ぶこと
  • 読めると分かるは違う
    • 分かるコード -> Why がわかる
    • 良いコード -> わかって使える、修正できる

北のRails開発現場から’10 by @tmaeda さん

  • Ruby逆引きレシピ のAmazon レビューを書いてくれる人募集
  • ペアプログラミング導入の経緯など
  • 悩み
    • 技術者間のスキル差が埋まらない
    • 新卒と中途と
      • キャリアパスが見えにくい
      • 時間が解決してくれる?
        • してくれない
    • デスクワークな仕事は仕事っぷりが見えない
      • 見えないからこそ、判断基準がないため、新人さんのキャリアパスや、程度感がわからない
  • ペアプロの効果
    • 考える部分が加速する
      • 普通のプログラミングでのボトルネックは考えること
    • ものすごい集中と良い緊張感
    • コーディングとコードレビューと教育と引き継ぎを一気に
    • 動いたという感動を共有できる
    • 細かいところまで丸みえになる
  • GNU screen / readline などのライブラリなど使う
  • まとめ
    • ペアプロしましょう!
  • 環境は?
    • 環境はドライバー依存
  • ペアプロの難しさ
    • 導入前にはあったが、いまのところは大丈夫
  • 技術力の差は埋まったか?
    • 結構埋まった。しかも仲良くなった。
  • ペアプロしたときの技術力ある人のパフォーマンス低下は?
    • 総合的に見たときには、仕方ない
  • ずっとやってる?
    • 午前と午後に2時間だけやってる
  • ベテラン同士のペアプロは?
    • お互いの刺激になってよい
  • 人月単価とか工数見積りは?
    • コストとの問題は起きていない

(カーリングとRuby)2投目 – Making Ricochet with the Ruby stone into Granites. by はしむかい としかつ(@curler_hashi) さん

  • 妹背牛カーリング協会 強化委員
  • 02で全てをかっさらった、あの人が帰ってきた
  • Geek でも Suits でもない人達のためのUI
    • Markdown + 独自拡張
  • あったらいいなこんなソフト
    • 試合記録どか動画記録込み
      • 日本製のものがない
  • カーリングの石に加速度センサつけて、データを取るといいかも
    • ダメな投擲のときにアラームがあると
  • カーリングをやるのにいくらぐらいかかる?
    • 石に200万円ぐらい
  • 主要なプロダクトは米

Lightning Talk

RVMについて語るときに僕の語ること

  • “ささだメンバー”

文書検索ラングバ

  • “デバッグ力”

Rails 3.1(仮)

  • Isolated Engine

JRubyによるエンタープライズWeb開発

  • “みなさんエンタープライズな方”

HTMLデザインをまったく崩さない、美しいテンプレートエンジンの作り方 パート2

  • 分解して再構築する感じか

たまにはcgi.rbのことでも話してみる

  • “Passenger上でtdiayがそのまま動く”

Perl loves Ruby

  • “Hokkaido.pm”

Rubyでネイティブスマートフォンアプリ開発

  • Rhodesは一回やってみるべきだな

どこでもRubyといっしょ 〜WindowsMobile携帯にRubyを入れて遊んでみた〜

  • “iPhoneではなく、なぜWindowsMobileを選んだか”

Pusherアプリの作り方

  • “会いに行けるプログラマ”

コンサドーレ札幌の情報収集をrubyでやるには

  • “最終節4-0で勝ちました!”

或るWebサービス開発のこれから – “オープンWebサービス”という妄想 -

  • コードも議論も展望も公開する、”オープンWebサービス”

ご自宅用ツール間同期メカニズム兼ストレージのご提案 by @m_seki さん

  • “プロの無職”
  • toRuby
  • 栃木Ruby会議03 at 2011/02/26
  • dRuby本初刷5周年!
  • Drop
    • Rinda の実用的なライブラリ
    • 似ているものは twitter
    • 時刻をキーとするKVS
  • キーの排他制御は?
    • 同じ時刻であれば1単位待って追加する

Railsアプリ開発 野生のカン by 社長(エア的な)

  • マイペースにやりたいがスライドがが
  • コードレビューの前に設計資料を見る
    • rspec は設計資料とは見ない
  • 具体的に文章として書かれているかどうか
    • 機能の紹介やターゲットの記述など
  • 複雑なところに図を書いているかどうか
    • Class/Object
    • ベン図意外といい
    • URL設計がコードの外でされているかどうか
      • コード書くまえに Wiki に書く
      • 最初に書く
      • 目で見て美しいかどうか重要
    • RESTful I/F
      • CRUD
      • “みなさんもっと少女マンガを読まないといけないと思います”
      • ガラスの仮面を読んで REST 脳に
        • 4つの動詞だけで会話できるようになるために
      • 本を借りる
        • 「本を借りること」を作る、と言う考えかた
  • filters on controller
    • 多すぎても少なすぎてもダメ
    • filter には前提条件
    • :except, :only はどっちを使う?
      • :only のみを使う
      • 指定されて「ない」ものは把握しづらい
      • :except だと追加で実装するときにわかりづらい
  • private/protected/public
  • 例外処理
    • Javaから来るとやりすぎる
  • パラメータの加工とか
    • accessor でやれということ
  • transactions
    • コントローラの中で使うことはないはず
    • それコールバックで
  • controller の継承
    • アクション共有は難易度が高い
    • Mix-in とか partial で
  • attr_protected / attr_accessible
    • 前者が保護する、後者が指定した方を通す
    • attr_protected を使う方がいい
  • save/save!
    • save で false を見ないのなら save! で例外出す方がいい
  • validation はまたの機械に
  • routes.rb
    • コントローラ別にまとめよう
  • コメント
    • コードが不自然なところに理由を書く
  • 英語を入れるのは、世界と繋っているということを考えて
  • future
    • 未来に制約を残さない
    • あとから来た人が足を取られないようにしよう

私的まとめ

  • RESTful I/F は勉強になったので、実践してみよう
  • filters には :only を使う
  • ガラスの仮面を読みます
  • attr_protected を使うようにしましょう

私のプロフィール by @takahashim さん

  • 国内外に煽るだけ煽ってしまった感じがある
  • 2010/06/02 株式会社達人出版会
  • オーム社よりも早かった
  • これまでの「征義」の話をしよう
    • 個人的すぎるかもしれないので構成変えました
  • 達人出版会のサービス
    • 著者に原稿を書いてもらい、編集・組版して出版する
      • EPUB/PDF で
    • 近代的な書籍制作環境の構築
  • 執筆支援環境
    • Redmine + git
      • gitosis と Redmine を連携できるプラグインがある
  • 組版システム
    • ReVIEW

There Is No Spoon:Revisited by @kakutani さん

  • オーム社の電子出版サイトの制作している
  • もう感極まってしまったので、何も書けなかった。

クロージング

  • 遅れているのでさっさと懇親会へ

懇親会

  • 名古屋のあれがかなりあれであることがわかったので、名古屋Ruby会議に参加することになりました。
  • いろんな人とお話しできたのがよかった。

二次会

  • 同上
  • もうなんか感極まっ(ry

五丈源

  • matz と深夜ラーメンというまれに見る状況に感極ま(ry)

まとめ

  • いろいろと会場や懇親会のことを伝えたいんだけど、やっぱり参加しないことにはこの雰囲気や熱意は伝わならないのではないかなと思う。この気持ちを味わいたいのなら、是非とも地域Ruby会議に、特に地方のは行くべき。そして懇親会で話をすべき。そうすると自分が何をしたかったのか、何をすべきかとかがわかるかもしれないと思う。少なくとも私はわかったので、これからも参加し続けるつもり。次は西側かな。
  • 二晩ぐらい経ってみて、「一度終わってみるべき10の理由」的なのが思い浮んだが、もうちょい練れるまで表には出さないことにする。
  • 二次会での「月曜から砂漠に戻るんですよ、みんな」的な話が印象に残ったな。それを打破するための RailsDevCon だったりするので、もうちょい頑張りたい。
  • 滞在ホテルがえにしテックの最寄りだったらしい。エアを名乗ってもいいだろうか。
 
このエントリーを含むはてなブックマークはてなブックマーク - 札幌Ruby会議03に参加してきた この記事をクリップ!Livedoorクリップ - 札幌Ruby会議03に参加してきた Googleブックマークに追加 Digg This
Tags: , , ,
2010/08/31  |  Written by  |  under Blog

  • softbank 回線は絶望的
  • wifi も人数が多いせいか絶望的
  • ここで emobile も絶望的っぽいので、回線はあきらめることにした

2010 2日目

  • 昨日疲れたからか、かなりよく寝れたっぽいのが功を奏している気がした。

会議

  • 参加者の皆さんにより、いい情報交換ができました。
  • 後ほど別にまとめよう

基調講演: Matz

  • 2.0
    • Ruby 1.9.2
      • Ruby 1.9.2 Award
        • 遠藤さん( @mametter )
  • キーノートの苦悩
  • Ruby 2.0 (笑)
  • 完璧に近い言語が、ある種限界
  • Ruby は十分に良い言語
  • つくばくんだり
  • Matz’s Goal: To Make Ruby nearly perfect
  • “珍しくRubyのプログラムが書かれている”
  • 積み残しがある
    • Local variable propagation
      • 使われていたら自動的にブロックの外側へ伝播させる
        • 「でも重箱の隅をつつくようなことは気にしないよ!」と言われる
    • Mix-in defect
      • インクルード時の構造が取り込まれるので、後で追加しても反映されない
    • No private method
    • Global monkey patching
      • Classbox
    • Integer division
      • 5 / 2 #=> 2
      • mathn ?
        • mathn + Classbox
  • Mix-in defect
    • Inheritance : 継承
    • LSP : Liscov Substitution Princible
      • Liscov 置換原理
    • undef があるので LSP じゃない
    • Ruby の継承は方としての整合性などは重要視されていない
      • 多重継承もないし
    • そこで Mix-in
      • 多重継承の使い方の一つの方法
    • Non primary class == Module
    • Problem
      • 名前の衝突を検出できない
        • 解決法もない
      • 継承関係の変更に追従できない、とか
    • 名前の衝突の検出
      • 意図的か?事故なのか?
      • alias を使った解決法は泥臭い
      • alias もコンフリクトする
  • mix
    • Traits-like ( from smalltalk )
    • 本当に”混ぜ”る
    • mix
      • モジュールのメソッドをすべてコピーする
      • 名前が重なるとエラー
      • mix だと定数が取り込まれない
      • mix 時に名前をどうするかを指定できる
      • 明示的に取り込む定数を指定できたりする
      • 定数も被らないように変更することができる
    • include よりも mix が短い
    • まだ真の private method が無いことが問題になる
      • そこで classbox
  • Ruby 2.0
    • もうすぐ始まる
    • 1.9 からはそれほど変更ないかも
    • Traits
    • Classbox
    • キーワード変数
    • 互換性に問題のない些細な問題
  • mix は順番によって違わないことが重要
  • “kind_of? とかくそ食らえ”

KSP

  • つつがなく終了
  • “あなたが想像していたかくたにさんでしたか?”

M-x ruby-and--workshop

  • iknow の zev さん主催
  • 裏番組が JRubyKaigi 2010 と Vim とペアプロという、これまた熾烈な戦い
  • すべて emacs の中で実行しています。
  • emacs 24 では ELPA がデフォルトになるらしい
  • irbsh
  • M-x occur
  • M-x で複数のスペースが一つになる

UNIX 修正主義

  • akr さん
  • ちゃんと聞けてなかったので他の人のを見ることにしよう

Lightning Talks

 
このエントリーを含むはてなブックマークはてなブックマーク - RubyKaigi 2010 2nd day この記事をクリップ!Livedoorクリップ - RubyKaigi 2010 2nd day Googleブックマークに追加 Digg This
Tags: , , , , , ,
2010/08/09  |  Written by  |  under Blog


仕事で使うJRuby! そこが知りたい技術・開発・案件の最新情報

  • 2010/08/05 19:00-
  • ジュンク堂 池袋本店
  • 抽象エア社員として参戦

はじめに

  • 自己紹介
    • 大場夫妻
    • 橋本さん
    • 中村さん(nahiさん)
      • OpenSSLとかの人

本を出した経緯

  • 大場さん
    • 原書は2007年に発刊
    • @takai さん経由で知らせてもらった
    • だいたい3部構成
      • を使いアプリを開発しながら、それとは気づかずにEEにはまる感じ
      • Java -> / -> Java の章がある
        • 黒魔術から白魔術まで
    • 原著作者に推薦文を書いてもらった!
    • みどころ
      • のリファレンスがある
  • 橋本さん
    • DB Magazineでの連載
    • 2部構成
      • 後半にエンタープライズでRailsを使う上で注意すること
        • Javaシステムとの連携
    • Thomas Enebo に推薦文もらった!
  • 結論
    • 両方買うといいよ!
  • 総括 by nahi さん
    • Olavini の本は入門として買うとかなりつらい
      • ただし細かい部分も書いてあるので、さらに進むにはいいのではないか。
    • 橋本さんの方が入門としては良い

JRuby の魅力

  • 大場さん
    • 好きなメソッド : to_java
      • Ruby のオブジェクトを Java のオブジェクトにいい案配に変えてくれる黒魔術
  • 橋本さん
    • 聞き逃したorz
  • nahi さん
    • JRuby の JIT コンパイラ

仕事で使えるか

  • 橋本さん
    • 沖縄に幽閉されて地方自治体向けのシステムを作っていた
      • Thomas らに用賀でたまたますれ違って、「使ってみてよ〜」と言われたので
    • Ruby でもあるから危なくなったら切り替えられる
    • 1.2 のころだったので、かなりもっさりしていた
      • 1.4, 1.5 で早くなった
    • Java の利点
      • SOAP のライブラリの運用などで便利だった

最近の Java の動向

  • Java EE6 がでました
    • アプリケーションサーバ用のAPI
      • WebLogic とか
    • SOAP が大ブーム
      • Java のアプリケーションサーバがちゃんと SOAP 喋れるようになってきた
      • REST 厨的には SOAP は滅んだと思ってたのに….

Rails の魅力

  • 最初に Rails が動くのを見たときは感動した
    • Olavini が YAML の parser を書いて去っていった….
      • 4回もあったらしい
    • String を実装してあった
    • 鬼車を Java で実装しある
    • CRuby に忠実
      • バグさえも
    • Rails 3.0 も対応している

JRuby を採用するには

  • いつも JRuby と言い続けたので
    • 変更に強い部分とそうでない部分を切り分けてみたり
      • Java で書く部分と Ruby で書く部分を分ける
    • インフラでは JRuby がいいんじゃないか
      • Windows サーバでは Java の方が有利
      • クラスタリングなどやりやすいんじゃないか
    • ただしすべての利点を活用できる訳じゃないので、そこは注意すべき
    • 地雷は根本的に避ける

XML & Webサービス

  • 他社とつなぐのに堅くやるには Java の XML でやるのが利点

JMS

  • 非同期通信のためにメッセージングキューの、標準化されたAPI

JRuby Kaigi 2010

  • 2010/08/28 に Ruby Kaigi 2010 内で開催
    • JRuby Pony Show
      • JRuby の現状と今後を JRuby の開発者が話します
      • 9月に1.6が出るらしい
      • Android / GAE
    • RedBridge で Java -> Ruby を
      • 原田さん
        • Java アプリで Ruby を活用したい
    • JRuby on GAE/J のノウハウ
      • 13個の TIPS
    • JRuby on Rails の力を JavaEE 技術を使ってさらに高める 10 の方法
      • 本に書けなかったことを書きます
    • Ruby と DSL で MapReduce – Hadoop-papyrus
      • JRuby 上で Ruby で書いてしまえ
    • JRuby ソースコード詳説
      • JRuby のソースコードのどこに何があるかを示して、デバッグしやすいように解説します
    • LT募集
    • Tシャツ購入募集
      • ファイナンシャルサポートも混みで 4000 円

最後に

  • JRuby 1.5 on Rails 2.3.x という安定していく環境の入門本を是非買いましょう
 
このエントリーを含むはてなブックマークはてなブックマーク - JRubyKaigi前夜祭に行ってきた この記事をクリップ!Livedoorクリップ - JRubyKaigi前夜祭に行ってきた Googleブックマークに追加 Digg This
Tags: , , ,