2011/12/30  |  Written by  |  under Blog

そろそろ振り返りの時期かな〜と言うことで。

今年やったこと

TokyuRubyKaigi

TokyuRubyKaigiを2回ほど開催してました。詳しくはここなりを参照してください。毎回カオスな感じになるのですが、ある意味、意図してるところはあります。司会的に。ただ敷居が低いということで勉強会初参加の方が来られると、カオスさにいろいろ誤解されるかもしれませんが、まあそれはそれで開眼できていいのではとも思ってます。来年も夏ごろにまたやるので、懲りずにご参加ください。普通のTokyu.rbも目黒でやってるので、こちらも是非に。特に白金台という近場にいる人は来るべきだと、ここで宣言しておきます。

2011でSpeaker

今年もjpmobileネタで発表してきました。スマートフォン全盛時代ですが、まだ残ってるガラケーに対応するためにもいろいろやっていきます。欲しい機能などあったら、github/issuesにでも登録しておいてください。

本を書いた・書いている

Gitによるバージョン管理

  • 著者/訳者:岩松 信洋 上川 純一 まえだこうへい 小川 伸一郎
  • 出版社:オーム社( 2011-10-25 )
  • 単行本(ソフトカバー):320 ページ

結構長い間かけて書いたGitの書籍が発売になりました。主にチーム開発とリモートリポジトリ、あとはツール関係のところとか書いてます。長ったらしい文章を書く技術が身についた気がしてます。気が。

あとはRubyの教科書的なものとかjpmobileの本とかも執筆中です。来年も、まあなんとかそっち方面でも頑張っていきたいなーとか思ってます。

今年買った物など

Kindle 4

やっぱいま話題の電子書籍の流れに乗らないと!というのと、ちゃんと英語読まないと忘れてしまうんで、その防止用ということで買ってみました。液晶に比べて目が疲れにくいのがいいですね。頑張って話せるようになりたいです。

MacBook Air 13.3inc

いまのユニボディ白MacBookを買って2年ちょい経ったんで、えいやっと買ってしまいました。古いのは妻のこたつ用PCになってます。いや軽いですね、そして冷たい。あとSSDの威力か、ほんとにSWAPしても重くならないのがいい感じです。

銀河英雄伝説 Blu-ray BOX

TSUTAYAで次巻が借りられていて、えいやっと買ってしまいました。まあ1年に2回ぐらい観るので、そのうち元は取れるでしょう。

三国志 Three kingdoms DVD-BOX

これも次巻が(ry。

今年の総括と来年への豊富など

今年は書籍の執筆という新しいことができた年でした。またTokyuRubyKaigiを公民館じゃなくIT企業の会議室を借りて開催できました。あとスポンサーがついたのも大きいですね。毎回同じようなことを同じようにするという、ある意味簡単そうでできないことを4回も続けられたのは、スタッフや参加者の協力があったからこそだと思います。いろいろとありがとうございました。

来年もまた新しいことをやってみたいですね。結構な歳だったりするんですが、それにも負けずに何かやりたいですね。まだ具体的には決まっていませんが。ただTokyu.rbについてはいつものようにいつもどおりにやっていきたいと思ってます。来年もよろしくお願いします。

 
このエントリーを含むはてなブックマークはてなブックマーク - 2011年の振り返り この記事をクリップ!Livedoorクリップ - 2011年の振り返り Googleブックマークに追加 Digg This
Tags: , , ,
2011/01/05  |  Written by  |  under Blog

年末年始はまったくと言っていいほど、ネットからは離れていたので、いまさらながらにこの話題を。

in

DebianのRubyパッケージメンテナ辞任で騒動に

まあこういうのはある意味仕方ないことかなと思ってます。だいたいそれぞれのdistributionにはパッケージに関する思惑があるわけで、それと言語自体の考えや開発スピードがうまくマッチすればいいんですが、そうならない場合にはいろいろ問題が起るわけで。あとRubyGemsはパッケージ化してもらわない方がいいと思うんですが、どうなんですかね。頻繁にアップデートできるならともかく、そうではない場合にはaptやyumでインストールしても古いとなると、使わなくなりません?

まあRubyGemsに関しては、インストールディレクトリをlibではなくshareにするとか、いろいろできそうなところはあると思うので、頑張ってもらいたいところです。

Ruby community

日本語と英語と言う言語と文化の差があるのでどうしようもない部分もある。日本人としては、「いままで日本人は歩み寄って行ってたんだから、Rubyのときぐらい、こっちへ来いよ」と思わないでもないんだけどね。一人を除いて、ちょっとでも日本語を読めるようになろうとしている英語圏の人がいないのが寂しいところ。まあそうは言っても日本語は奇怪な言語なので、それを覚えろと言う気にはなれませんが。

で、どうするかというのは、やっぱりmanagerを設置すべきかなぁと思いました。要するにfull timeな@yuguiさんを作り出せばいいんですが、そう簡単ではない。その人がちゃんとmanagementしてくれれば、「ruby-devとruby-core合体させようぜ」とならなくても大丈夫になるのかなと。それが無理なら、いままでやってきたこのスタイルを継続していくしかないんじゃないでしょうかね。

1.8.8

メンテナンスしている方々には申し訳ないのですが、出て欲しくありません。むしろ1.8.8にリソース割くなら、1.9.2に力を入れてくれと思ってます。開発側の思惑がどうなのか知りませんが、「1.8.8のリリース」は「まだ1.9.2へ移行しなくてもいいよ〜」と言う意思表示にしかならないと思うんですよね、やっぱ。1.8.8には1.9.2からのバックポートがあるらしいのですが、いかんせんEncodeが入らないのであれば、実際問題意味がないと思うわけです、jpmobile的には。

「是非1.9.2を使って欲しい!」のであれば、1.8.xはsecurity fixのみにしてしまって、あとは1.9.2 or laterに全力Tokyu投球してもらいたいところです。

 
このエントリーを含むはてなブックマークはてなブックマーク - RubyとDebianとコミュニティとか この記事をクリップ!Livedoorクリップ - RubyとDebianとコミュニティとか Googleブックマークに追加 Digg This
Tags: , ,
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 の実用的なライブラリ
    • 似ているものは
    • 時刻をキーとする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/11/22  |  Written by  |  under Blog

と言うわけで、去る2010/11/20(土)にRailsDevCon2010を開催してきました。今回は実行委員と言いつつ、当日まであまり何もできなかったので、会場係として、明い緑のパーカーと言う季節もへったくれもない格好でいろいろ動きまわってました。

実は企画自体はRubyKaigi2009の直後ぐらいから @ysakaki さんといろいろ妄想を語ってたのですが、当時のスタッフの都合などもあり、なかなか開催に踏み切れませんでした。そんなとき、RubyWorldConference 2010での @a_matsuda さんの講演を聞いて、「これはやらんといかんな!」と思い立ち、急遽開催することになりました。少ない準備期間でこれだけの資料を準備していただいたスピーカーの方々、また当日の設営と撤収作業を手伝っていただいた当日スタッフの方々、そして事前の準備に奔走したスタッフの面々、そして隣で仕事と共に頑張ってくれた副実行委員長、本当にありがとうございました!このRailsDevConは定期的に開催できればいいなーと思ってるので、その時はまたみなさんご参加ください。

そして次は TokyuRubyKaigi 03 の司会へと続きます。

 
このエントリーを含むはてなブックマークはてなブックマーク - RailsDevCon2010を開催しました! この記事をクリップ!Livedoorクリップ - RailsDevCon2010を開催しました! Googleブックマークに追加 Digg This
Tags: ,
2010/11/08  |  Written by  |  under Blog

と言うわけで、先週の11/01に楽天で開催されたNOSQL AFTERNOON JAPANに行ってきました。全体的に、もうRDBMSじゃなくてKVSなんだなぁと感じさせるような賑いでした。以下、当日のログを。

Hibari/NOSQL for BIGDATA @ Gemini Mobile Tech.

  • Function programing world conference will hold at Japan
  • About Gemini
    • Products
      • MMSC for Japanese mobile carriers
    • 2010/07 Hibari open source
  • @geminimobile
  • @hibaridb

Hibari

  • for GB mailbox webmail
  • chain-replication
  • good performance for read big data
  • Linux distribusion supported
  • Erlang/OTP R13B03
  • supports Amazon S3, JSON, native Erlang client API
  • “read-optimized”
  • Admin server
  • Why NoSQL?
    • necessary to support TB data
      • for webmail
    • needs
      • Durability, Strong Consistensy, Low Latency, High Avalilabirity
      • Heavy READ
      • Big DATA
    • Features
      • fsync()
      • Chain Replication
        • Chain order : Head -> Middle -> Tail
      • Keys serves to Multi-servers
      • Automatic rehashing (Fault Tolerance)
  • Benchmarking
    • Hibari Stub
      • 150k ~ 30ms latency
    • Hibari and
      • Hibari : 150k ~ 70ms
      • Cassandra : 100k ~ 70ms
    • Langurage Barrier
  • Roadmap

Q&A

  • Admin server’s availability
    • hot stand-by
  • CAP 定理でどれが重要か
    • いまはいい答えができない
  • Erlang にパッチを当てないといけないのか?
    • ????
  • Chain Replication はどの単位?
    • key-value group
  • Key, Value の最大値は?
    • 特にないが、各値がサーバのメモリで処理できるかどうか

Summary

  • 読み込みに特化した KVS
    • 特に巨大なデータの読み込みに特化している
    • 携帯ウェブメールとかSNSとか
  • オンメモリで動作している模様

CAP 定理について

  • どれに特化するかはもちろん場合によりけりなので、一概に言い答えを出すことはできない

Okuyama @ Kobe Digital Labo

  • Name from Okuyama Drive-way
  • made by Java
  • for small data
  • Persisitence, Network, Replication
    • Master nodes -> Data Notes (x3)
    • Persistence
      • Memory, Disk, Disk+Memory
    • Network
      • Original Protocol, Memcached(not CAS), HTTP(get only)
    • Redundancy / Avalilability
      • Data stored by Multi servers
  • Persisntent Mechanism
    • Memory -> Fastest mode
    • Disk -> Key and Value have saved in separeted files
    • Diska and Memory
      • Type 1 : Save to file
      • Type 2 : Save to file, and keys stored in memory
  • Network
    • Queueing system
  • Original Features
    • Tagged value
      • multi key?
    • JavaScript run in Data Nodes
    • Data locking
      • Locking time

Q&A

  • タグで指定する場合のスピードの差は?
    • キーで指定するよりも倍程度かかる
  • Disk mode の用途は?
    • 低スペックで扱いたい場合に
  • Master / Data Notes のスケーラビリティは
    • Data note を増やせば上昇する
    • Master node は stand-by のみでスケーラビリティはまだない

Summary

  • 小さなデータを扱うことに特化している
  • タグが特徴的で、それで性能劣化が低い状況下であれば良さそう
  • 問題は scalability と availability で、その部分がまだ不十分というか、未検証かなという感じ

Introduction to Apache Cassandra

  • by @zznate
  • Casanndra -> Inbox Search -> Amazon Dynamo’s clustering infrastructure and ’ data model

Cassandra

  • Scaling
    • Scaling up by adding data hosts, and separete keys into added and exist hosts
  • Reliablitiy
    • データはいくつかのホストに分散保存しているので、障害体制がある
    • またホストが落ちたときも、すぐに再生できることができる
  • Tunable Consistency
    • Select consistency level
  • Flexible Data Mode
    • Not a Key/Value store
    • Column famiries like BigTable or Dynamo
    • Super columns
      • column grouping
        • apple -> colA, colFoo, fram in key “a”
  • Supports secondary index in Version 7
  • Analytics
    • Hadoop Data Locality
  • Monitoring
    • Graphical UI interface
  • Community: Clinet Library
    • Pythin/Java//.NET/PHP(new!)
  • Add-ons
    • Lucandra: Lucenne + Cassandra for full text search
    • Munin configuration
    • Chef recipes
  • Riptano
    • Supports and Training
    • Clustering Visualizing Tools
    • Administration Tools

Q&A

  • Compaction Problem : More memory and CPU usage
    • Need to configure and tuning parameters, so resolve such problem
  • ???
  • Range ???(25件取得するために10000件なめる必要があるときがある)
    • 状況にによりけりだが、Secondary index で解決できるのではないだろうか
  • Avro or Slate for searlization format
    • Not Avro, but Slate
  • ノードの障害時に、隣接するノードに対する負荷が上昇して、さらに障害が発生する、と言う連鎖に対する解決方法は?
    • 適切な設計をすればいいのではないだろうか
      • 適切な性能計画、サーバの選定などを行う必要がある
      • Amazon EC2 2台で10万リクエストとか厳しいでしょ?
  • I/O QPS に対応するかどうか
    • Slate Priority in Version 0.7

Summary

  • Hadoop 使うには良さそう
  • 何が特徴かがこのプレゼンでは不明だったので、あとで調べる
  • 書き込み性能重視にしている

– User-Customizable NoSQL Database in Ruby

  • ROMA is development in Rakuten
  • ROMA used by Rakuten services
    • session data, personal page view history
  • ex)
    • Rakuten travel
      • page view history
  • ROMA features
    • High Availability / Scalability
    • Fault-tolerance
    • Better throughput
    • Plugin Architecture
    • DSL
    • Technology
      • Consistency Hashing, Virtual Node, Chain-replication, lamport clock
  • Access to data
    • client -> some nodes
      • returns node ID which stores such data
  • Chain-Replication to N nodes
  • Message Protocol
    • Extended Memcached Protocol
  • Failure Detection
    • heartbeat/1 sec
  • plugin features

Q&A

  • Ruby の GC は気にならないか?
    • ボトルネックは I/O なので、そこは気にならない
  • 基本的な script は公開されていたりするのか?基本的な script をライブラリとして提供してはどうか?という提案
  • Licence
    • GPL v3
  • Why Ruby ?
    • Matz driven development

Tokyo Tech の Nakamura さん

  • 飛び入り
  • Cassandra = Dynamo + Bigtable
  • Cassandra の SSTable を MySQL のストレージエンジンに変えてみた
  • JDBC 経由で MySQL にアクセスするだけ
  • Future Work
    • MySQL と Cassandra のいいところ取りした NoSQL プラットフォームのようなものを作りたい

@ 10gen

  • @rogerb

MongoDB

  • @mongodb
  • 90000 downloads per month
    • growing
  • production usages
    • forsquare
  • Implemented by C++
  • 32/64bit Windows, Linux, MacOS X, FreeBSD, Solaris
  • Ruby//Java/C#/JavaScript/C/C++/Erlang/Pythin/Perl/etc.
  • NoSQL
    • non-relational, next-generation operational datastores and databases
  • no joins + no complex transcations
    • Horizontally Scalable Architectures
      • New Data Model
    • Terminology
      • Table -> Collection
      • Row -> JSON Document
      • Index -> Index
      • Join -> Embedding & Linking
      • Partition -> Shared
      • Partition key -> Shared key
  • API
    • db.posts.save(JSON Document)
    • db.posts.find #=> JSON Document
      • _id : unique ID
    • Index
      • db.posts.ensureIndex({autho: 1}) # 1 -> ASC, -1 -> DESC
        • db.posts.find({author: ‘roger’}) #=> JSON document
    • Query operators
      • conditional operators : $exists, $size, $type, $lt, $gt, …
      • Regexp search
        • db.posts.find({author: /^k/})
    • Extending the Schema
      • update = {‘$push’ : {comments: comments JSON Document}}
      • db.posts.update(JSON document, update)
          • posts.comments -> Array of comment JSON Document
    • Secondary Index
      • db.posts.ensureIndex({“comments.author” : 1})
        • Generate sub-model’s index
  • Deploying MongoDB
    • 1st step
      • Read/Write <-> Primary
    • 2nd step
      • Primary -> Secondary replication
      • Read <- Secondary
    • 3rd step
      • Secondary -> Secondary for Backup
    • Read/Write Scalability
      • ReplicaSet
        • Primary / Secondary / Secondary for Backup
      • Key Shading on some ReplicaSet
  • Monitoring
    • Munin plugins
  • MongoDB makes building applications easy
    • Map/Reduce, Capped Collections, Tail-able Cursors, Geo indexing

Q&A

  • どのようにRepicaSetを見つけるのか?
    • 各Shadeがキーに対応するshadeを知っている?
  • Shadingを追加したときの負荷は?ベンチマークは?
    • 当初はshadingをしないで実装する
      • shade を追加するのは簡単
  • 日本での展開は?
    • サポート体制を立ち上げる
    • MongoDB Conference を2月に行うかも?
  • Availability について
    • データセンター障害の用無い場合でも Primary が落ちても自動的にどれが Primary に適切かを判断して切り替わる

Summary

  • 後発だけあってかなり負荷とかデータモデルを頑張ってる感じ
  • ReplicaSet の追加で shading が勝手に行われるというのはいい感じ
  • データモデルを設計しなくてもいいので、スタートアップ的に作るのに向いている
  • Ruby/Rails との相性がいい

Kumofs and The Project

  • kumofs and MessagePack

kumofs

  • Distributed key-value store
    • Get, Set, Delete, CAS
  • Dymanic Re-balancing
    • Not automatically, but dynamic
  • Needs
    • Manage heavy random reads and writes
    • Low latency
    • Archtectures
      • kumo-manager : node manager
      • kumo-gateway : installed in application server
      • kumo-server : data-store
        • Local Database : TokyoCabine

MessagePack / MessagePack-RPC

  • MessagePack
    • binary-based object serialization format
  • MessagePack-RPC
    • Cross-langurate RPC format
    • Event-driven I/O
      • server
      • clients
        • shared event loop
          • shared server and client
  • Production users
    • Ameba now
      • Apache SoIr + MessagePack
    • Sedue

Q&A

  • TokyoCabinet のように一つのキーに複数の値を保存するなどは?
    • 厳しいです。用途が違うのかな?
  • どういうきっかけでこういうプロジェクトを始めたのか
    • えとらぼの例のあれで作った

Summary

  • kumo-gateway がサーバ群の構造を隠して分散してくれるのはありがたい
  • バックエンドに TokyoCabinet を使っている

RELAXING WITH COUTHDB

  • for beginner
  • schema-free database management sysytem
  • Erlang
  • Top-level Apache project
  • Robust, concurrent, fault-tolerant
  • RESTful JSON API
  • Bi-directional replication

CouchDB

  • JSON Document
    • MVCC
  • RESTful
    • CRUD
  • Suddenly server restarting does’t affect CouchDB
  • VIEWS
    • Secondary Index
  • INCREMENTAL INDEXES
  • REPLICATION
    • peer-based, bi-directional replication using normal HTTP
    • “ground computing” : offline replication
  • MULTI-COUCH SETUPS
    • Master-slave
    • Master-Master
    • Rubust Multi-Master
  • CONFLICTS
    • リビジョン管理により、コンフリクトが発生したときのデータをすべて保存しておける

BigCouch

  • “Without the clustering, it’s just OuchDB”
  • What is ‘Scaling’
    • Horizontal Scaling
    • Transparent to the application
    • NO SPOF
  • BigCouch -> Couch + Scaling
    • Inspired from Dynamo
    • on github
  • Best Practice for BigCouch
  • Fractral Scaling
  • Paraphasing the crowd
    • Many cons will be improved, improving
  • External Indexers : CouchDB-Lucene
    • ad-hoc query
  • Mobile Couch by CouchOne
  • 2GB free account on cloudant

Q&A

  • Differences between MongoDB and CouchDB
    • CouchDB : MVCC
    • MongoDB : Update
  • How about Ad hoc query in CouchDB ?
    • CouchDB-Lucene
    • Views
      • pre-processing query

Summary

  • RESTful APIであるところが特徴
    • HTTP でアクセスするという点が他と違う
  • “ground computing”が革新的かも
    • BigCouch を使えばクラスタリングができるのかな
      • Clustering はまだまだという感じ
      • RESTful アクセス以外に弱いのかもしれない

Apache Hadoop and HBase @ cloudera

  • Data is everywhere / Data is important
  • Data analytics is important
  • Are you throwing away data?
    • Log/SQL log/etc. are throwed out?

Hadoop

  • HDFS, Map/Reduce
  • A Typical Look
    • 5-4000 comodity servers
      • 8-core, 24GB RAM, 4-12TB, gigabit-E)
  • Cluster nodes
    • Master nodes
      • NameNode for metadata server and database
      • JobTracker for scheduler
    • Slave nodes
  • Saving file -> Nama node splits a file -> Save each of splitted file data to 3 DataNodes

Map/Reduce

  • map, reduce function
  • map
    • (k, v) -> (k’, v’)
  • reduce
    • (k, v1) , (k, v2) -> (k, v1+v2)

Hive

  • Add SQL support to Hadoop

HBase

  • open source, distributed, map
    • like BigTable
  • HBase = HDFS + random read/write
  • MVCC of row/colun
  • Consistency over Availability
  • Great Hadoop integration
  • Ordered range partitions
  • Automatically shareds/scales
  • Sparse column storage

Q&A

  • HBase はリアルタイムウェブで使える?
    • 使える。Facebook でもそのうちリリースされる
  • Switch について
    • ???

Summary

  • Hadoop は大量のデータ処理に向いている
    • Hive は Map/Reduce をSQLでやる試み
  • HBase は BigTable のような NoSQL
 
このエントリーを含むはてなブックマークはてなブックマーク - NOSQL AFTERNOON JAPAN in Rakuten この記事をクリップ!Livedoorクリップ - NOSQL AFTERNOON JAPAN in Rakuten Googleブックマークに追加 Digg This
Tags: , , , , , , , , , , ,
2010/09/04  |  Written by  |  under Blog


はじめに注意

個人的にはいままで参加したRubyKaigiには非常に満足しています。またスタッフやスポンサーの方々には言葉では言い尽くせない感謝の気持ちで一杯です。その上で、今後のRubyKaigiやRuby界を考えたときに、これだけは言っておきたいことをつらつらと書いてみます。スルー力を持たない人は読まない方がいいかもしれません。

RubyKaigiの問題点

一番の問題は目的を見いだせないこと。いや「開催すること」が目的になってしまっていることか。なんせRubyKaigiは大人が開催する有料「学園祭」になっているので、「やって楽しいこと、来て楽しいこと」を考えて構成されていると感じるとれる。「おもてなしの心」なんて言っている時点で、そっちがメインになってしまうのだろう。でもそれって参加者も含めて自己満足でしかなくて、それ以外の人たちになんら影響を与えられていない可能性がある。

とはそもそもなんのために?

そこで今一度考え直さないといけないと思うのが、開催する目的。開催趣意書には目的が書いてある。しかし、それ以前に、一体なんのために開催するのか。Rubyist の交流にためと言うのもあるかもしれないが、@tdtdsさんも言うように、もうそのステージは卒業しているはずだし、それならそもそも東京でやる意味が大きいとは思えない。交流のためなら地方に大物Rubyis を連れて行った方がいい。Rubyistにとって心地いい場所の提供ばかりしていても、もう仕方ない時を迎えたんだと思う。むしろ日々Pで始まりPで終わる言語やお茶みたいな言語を扱って疲れていたりするRubyistの癒しの場になっている。つまり逃げ場になって現実逃避しているだけじゃないだろうか。

スタッフのやり遂げた感がやばいと感じること

これはスタッフにも言えて、「来年もスタッフとして頑張ろう」なんて思ってるとしたら、それも逃避に近い。みんながみんなそうだとは言わないが、高橋会長やかくたにさん、島田さんや設楽さんなんかは、スタッフとして走り回ってる場合じゃないんだよ。あなた達にはもっとやるべきことがあるはずだ。Rubyの将来やRubyistのことを考えるなら、学園祭で盛り上がって参加者におもてなしなんてしててはいけないはずだ。その辺にいるRubyist達が勝手に盛り上がって開催しているならそれでもいいのだが、日本Rubyの会として開催していることがもうダメなんだと感じる。

組織としての日本Rubyの会

日本Rubyの会はその公式サイトにあるように支援やイベント開催をその目的にしていると言うことだが、こちらもそろそろ次の段階へ行くべきなんじゃないだろうか。振興という意味ではエンジニアの中では浸透してきたのだから、それを仕事へつなげやすい環境を作るべきだろうと思う。そういう意味では、いまの組織体制だときついのだろう。だいたい全員が別に仕事を持っていてボランティアベースと言うところからして限界があるのは当然のこと。ならば組織として法人化するなりしてはどうかと思う。たぶん内部的にはこの話は出てるんだろうが、じゃあ誰がそこに所属する?となったときに答えが出ないのだろう。そりゃみんな自分の会社や生活があるわけで、そこはどうしようもない。かといって誰だかわからない人に任せるわけにもいかないので、辛いところ何だろうなと思う。でもやはり何かしら痛みを伴ってでもやってしまうべきだと思う。

エンジニアを幸せにする会議へ

で、そうやって日本Rubyの会を法人化したとして、どういうRuby会議をやるべきか。それはRubyistを幸せにする会議。「いやー、楽しかったねー」と言うだけでは、仕事上がりの宴会と変わらない。そりゃその場の楽しさはあった方がいいだろけど、じゃあそれで仕事でもRubyを使えるようになり、アジャイルに仕事が進められるとは限らない。何というか、「瞬発力のあるその場の楽しさを胸に抱きながら、仕事の辛さに耐える」ような人が少なくなればいいかなと思う。

そのために自分ができること

では自分には何ができるのか。まずはRubyを使って仕事をし、さらにRailsやjpmobileなどで貢献していくこと。そうすることでRubyを使える場所や仕事が増えるようになればなと思う。あとは可能であれば日本Rubyの会の運営に関わること。外から意見を言うだけでもいいし、中の人になるのでもいいけど、とにかく何かにつけて意見を言っておきたい。と言うかみんなも「RubyKaigi楽しかったです!」じゃなくて、言いたいことはちゃんと言うべきだと思う。あとは地域Ruby会議へもっと参加していこうと思う。いろんな地域のいろんな意見を聞くことは、今後の自分のためにもなるし、Ruby界隈のためにも繋がる。

まとめにならないまとめ

つらつら書いたので全然まとまってないですが、いまの状況に対して漠然とした危機感というのを感じています。こういう話をいろんな人としたいですね。そういう場所として地域Ruby会議の懇親会とかいいんじゃないだろうかとか思います。とりあえず、まだまだ頑張ろうと思います。

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


2010 3日目

地域 会議 Kaigi

  • Commit するまえに Conflict 解消しようぜ
  • チェックイン
    • かくたにさん
    • 島田さん (Sapporo)
    • (島根の人)
    • 小川
    • 河野さん
    • 三浦さん
    • 武田さん
    • 小柴さん
    • 高井さん
    • 川上さん (松江の人)
    • BECK さん (東京の人)
    • 米沢さん (toRuby)
    • okkez (関西の人)
    • 松本 (名古屋の人)
    • かたぎりさん (名古屋の人)
    • 片平さん (仙台の人)
    • 永井さん (Rubyist 九州の人)
    • 藤岡さん (福島の人)
    • ひがきさん (関西の人)
    • てらしまさん (鳥取の人)
    • 池沢さん (toRuby)
    • せきさん (toRuby)
  • RubyKaigi 歴 2010 のふりかえり
    • 名古屋01
      • リソース不足で告知が遅れて、諸処にご迷惑をおかけした。
        • 作業者がいない
      • 話者がいない
      • 80人参加
      • 懇親会が濃かった
    • 東京03
      • 完璧な運営
      • 半年前から月一でMTG
      • 事前議題 -> 議論 -> TODO といういいサイクル
      • クオリティを上げすぎないように
      • 懇親会ができなかった
        • ドタキャンに備えて開催できなかった
      • お金の問題
        • スタッフ有料イベント
        • 儲からないのに誰かが負担しなければならない
          • えにしテックが札幌Ruby会議に投資するのはどうなのか
      • 「俺のやりたいことをやらせろ」ということで高井さんが頑張った
        • The RubyKaigi ではないことをやりたかった
          • Talker や Workshop など
    • Tokyu 01
    • 札幌 02
      • 懇親会はしなかった
        • 途中で時間を設けて、お酒のない懇親会をやった
      • お金の問題
        • やりたいと思ってる人がお金を出している状態
      • 01 よりも規模を大きくしてみた。手にのる範囲で。
        • 期待と思う人が増えれば話者に困ることはないんじゃないか
      • タレント不足
        • 札幌の人たちが話すのをメインに据えた
    • 関西 02
      • KOF にのっかって
        • 会場の心配はしなくてもいいがスケジュールを握られる
        • 考えるまもなく進めなくてはいけない
          • 他とは制約事項が違う
      • 毎月やる勉強会でお金を貯めて講師を呼ぶ
        • okkez さんが RubyKaigi で営業してその人を呼ぶ
        • 今年は福井さんがやっている
      • リソースが足りない
        • スタッフが KOF の参加者なのでいろいろ大変
    • 松江 02
      • 01 が島根大学の野田先生が主導で
      • 02 は Matsue.rb の高尾さんが主催で
        • 場所は行政が確保している
        • 地元の発表がしっかりしていて、80人ぐらいの参加者が
        • 高尾さんが一人でやっている
    • 仙台 02
      • いっぱいいっぱい
      • 片平さんが過囲え込みすぎていて、周りの人がいろいろ助けてくれた
      • ネタがない
        • 01 は東北の Rubyist を呼んだ
        • 02 は田舎親方 Ruby 会議をやった
      • 有料にした
        • 発表する人も
      • 01 は OSC に乗っかってみたが、いろいろ大変だったので、次回はやらないでおこうと思った
    • (できなかった) 九州 02
      • 01 は行政との共催
        • RBC から当日のヘルプがもらえなかった
        • 200 人規模
      • 02 は軽くやろうと思ってた
        • Rubyist 九州の年齢層が上がった
          • コミュニティ世代の問題
          • 代表の意気込みが薄れているところがある
        • 地理的に集まらない
          • スタッフになる人がいない
        • コミュニティの問題
          • 永井さんが代表でもないので判断できない
          • 入りづらい雰囲気があった
          • 運営でいろいろ問題や悩みがあるので、地域 Ruby 会議をすることができない感じ
          • 同じ地域にコミュニティが2つある
          • 長い歴史があるということが問題になっている
    • とちぎ 02
      • もともと toRuby 拡大版
    • Tokyu 02
      • スタッフを 10 人に
      • 合計 20k ですんだ
      • ゆるくやった
  • 参加者でいくと凄くいい
  • 中央から地域にという流れは必ず来るという問題意識
    • 社会を回すためのコミュニティとして Ruby コミュニティが成長していく
  • 来年まで地域 Ruby 会議 Kaigi ができないのが辛い
    • 複数地域での共催
      • タレント不足の問題を解消したい
      • 地域 Ruby 会議をやる以上の問題があるので、先に延ばしたい (かくたに)
  • 地域にタレントはいる
  • 東京 03 には Workshop がいる
  • “Ruby 会議が町にやってきた!”
    • Ruby 会議は呼び込むための名前として使ってもらいたい
    • ビッグネームもそういう風に使ってもらいたい
    • 仙台は matz でも人は来ない
  • メリハリをつける
    • 札幌では勉強会はだらだら、会議はしっかり
  • 勉強会の運営や開催方法について
  • 他の地域の Ruby 会議に参加して欲しい
  • こういう話をしたい
  • RubyKaigi 歴 2011 にむけて
    • 関西03
      • 11/5, 11/6
    • 札幌03
      • 12/4
    • 松江.rb
      • 1/末 〜 2/頭
    • Tokyu
      • 1/末
    • 名古屋
      • 1/末

Termtter Kaigi

  • ちょっとうるさい人がいる
    • 別にいいが
  • Termtter の紹介から
    • なぜか の紹介が

There is No Spoon

  • かくたにさん
  • Asakusa.rb のインターフォン係
  • Ruby has “Quality”
  • 主観と客観の前の、直感的に感じるもの #=> クオリティ
  • Ruby is the Red Pill.
  • 少数精鋭でやるほうが良い
  • 人とコンピュータの間に価値を置いていくのが Ruby
    • Regional Ruby Kaigi
    • コミュニティはツリーではない
    • 大事なのは個人が活動を続けるというプロセス
    • いまできることから始めてみる
  • かくたにさんの気持ちを、みんなに伝えるためのプレゼンだったのではないでしょうか

基調講演

  • The PASSIONATE PROGRAMER
  • Chad Fawler
  • これもあとで別に感想を書こう
 
このエントリーを含むはてなブックマークはてなブックマーク - RubyKaigi 2010 3rd day この記事をクリップ!Livedoorクリップ - RubyKaigi 2010 3rd day Googleブックマークに追加 Digg This
Tags: , , , ,
 |  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: , , , , , ,
 |  Written by  |  under Blog


2010 1日目

Opening

  • Theme
    • Conflicts and Resolutions
  • Good Timing
    • 1.9.2 Released!
    • 3.0 coming soon!
  • Start!

諸注意

  • 名札忘れないように
    • モバイルルータもダメそうだ
  • フィードバックもしよう
  • 大ホールは飲食禁止
  • 各種諸注意
  • ・ナイト
    • 自分の分を持っていろいろ集まれー

Conflicts and Resolutions

  • 漫談形式らしい
    • @takahashim
    • @a_matsuda
    • @wycats
    • @tenderlove
      • translator
        • @matz
        • @lchin

質問など

  • Different Rails 2 and Rails 3
    • Rails 3 は 2 の上位互換
    • いろんなところを書き換えているが、APIはそれほど変わっていない
    • コアな部分を切り離したので、各パーツを独立で使うことができる
  • merb と rails の統合で、当初描いていたゴールにたどり着いた?
    • たどり着いている!見返してみてもその通りだと感じる。
    • AR の代替物を簡単に使えるようになった
  • Ruby 1.9 のいいところと、はまったところを紹介してほしい
    • Python 3 と違って 1.8 と互換性のあるプログラムを書くことができるところ
    • エンコーディングについてが問題だった
      • 良かった点は、エンコードについてちゃんと考えるようになった
    • Rails が依存するライブラリは同時に 1.9 に対応した
      • ライブラリは早急に 1.9 で動くようにするべきだ
    • ruby-trunk でテストしていたので問題なくリリースできた
    • Rails 3.0 は来週リリースされるが、Ruby 1.9.2 で問題なく動くことを信じている
  • Ruby と Rails のコアコミッターになったのはなぜだと思う?
    • たくさん文句を言ったから
    • たくさんバグレポートを出してたくさんパッチを書いたから
      • Rails に関して言えば、熱意を出せばコミッターになれるよ
      • ただしパッチにはテストを書いてくれ
  • tenderlove は Rails 3 についてどう思う?
    • ActiveRecord については独立したコンポーネントとして利用できる状態ではないことが残念な点
      • ActiveRelation(Arel) を入れることで抽象化できるようになった
        • でもまだ作業が必要
    • 心配しないでも Rails 3.1 がでるから
  • Ruby と Rails のコアチームの違いをどう感じる?
    • 日本語と英語の間の壁が大きいようだ
  • 言い残したこと
    • お互いの言語を学ぶのがいいと思う
    • Ruby と Rails が共通の CI をも持てばいろいろいいんじゃないだろうか
    • 1.9 に移行しようぜ!

on Rails 3.0

  • いろいろ疲れました…
  • sub-class 化する方が alias_method_chain するよりも良かったらしい by @wycats
    • Rails 3.0 Release して Mail を理解したら変更してみようかな

Ruby 親方会議 2010

  • 親方会議の紹介
    • 「Ruby を使って仕事をしているエンジニア社長や個人事業者の情報交換をする」を公開で。
  • RubyKaigi 2009 -> Sapporo RubyKaigi #02 -> toRuby Kaigi 02 -> Sendai RubyKaigi 02
  • rake:money があるので、社員を雇用している社長をパネラーに迎えて情報交換
  • なぜ親方会議をやるのか
    • 社長は孤独
      • 仲間がほしい!
      • エンジニア仲間が欲しい
  • オフレコの話もあるので気をつけて!

自己紹介

  • 新井さん
    • もぐらの CTO
    • ビジネスの勉強をする勉強会を開催している
      • プログラムを価値あるものにするために
  • 山崎さん
    • スケールアウト CEO
    • 強力なメンツががっ!
  • 和田さん
    • ホームページがないことで有名な会社「タワーズ・クエスト」の社長です
    • 起業20年目で二代目社長
  • 大場さん
    • 万葉の社長様
    • 17:30 から Hyper Everyleaf Time!

起業したきっかけ

  • 藤岡さん
    • 何かやりたかったので起業してみた
  • 新井さん
    • 言われたものをつくるのではなくて、自分で考えたものを作りたかったので起業した
  • 山崎さん
    • 将来的に窓際っぽくなる気がしたので辞めた
  • 和田さん
    • プログラム書きすぎて留年しました
    • エンジニアとしての知名度が上がったので
  • 大場さん
    • 最初はIMEの大手でキャリアプランが見えなくなったので
  • 最初に採用するのって大変じゃないですか?
    • まあその場のフィーリングっぽい感じで決まったっぽい (万葉)
  • 解雇するのって大変
  • 何を聞きたくてやってきましたか?
    • 社員として企業の利益に貢献できるようになるにはどうすればいいのか?
      • 新井さん
        • 社長と同じ目線で同じ感覚で話をできるといいんじゃないかと思う
        • どうすれば利益が出るのかを考えているのかはいいことです
      • 山崎さん
        • ソフトウェアのコピーはただであるということを、ビジネスに生かせればいいのではないか?
      • 大場さん
        • 利益を出すことと、生きていくことは必ずしも一致しない
      • 山崎さん
        • 会社は4番バッターだけじゃなくて、職人が欲しいときもある
  • 人を獲得していくために取り組んでいること
    • 和田さん
      • どういう人かわからないので採用にはリスクがある
      • 素をさらすことに気をつけている
    • 大場さん
      • 露出を増やす
      • 法律を守る
      • 嫌なことをしない
    • 山崎さん
      • ゲリラ戦法しかない
      • 人と会わないとどういう人か、どういうスキルかわかならない
      • 面白い仕事を準備している
    • 新井さん
      • 勉強会を主催している
      • ハードル高めの内容だといいんじゃないかと思われる
    • 藤岡さん
      • いきなり応募してきたりして困ることがある
      • で応募してくるのが、いまのところあたりっぽい
  • 会社の目標と個人の目標
    • 藤岡さん
      • 会社: 自分がいなくても回る会社にする
      • 個人: 何か違うことをしたい
    • 新井さん
      • 会社: 会社として大きくしたい
      • 個人: 勉強して社会貢献したい
    • 山崎さん
      • 会社: 会社を大きくする
      • 個人: 技術が省力化に繋がっていないのがちょっとあれだなと思う。自分の本当にやりたいことができるようになることを目指している。
    • 和田さん
      • 会社: 会社を大きくする
      • 個人: 自分が書いたソフトウェアで働き過ぎを防げるようになることが大義。ゆとりを作れるようなソフトウェアを作って社会貢献にしたい。
    • 久保さん
      • 会社: 会社を大きくする
      • 個人: 個人の時間を作れるような環境を社員に提供したい
  • GIGAZINE 問題ではどう?
  • 他にもチョイスがあるにもかかわらず、弱小企業を選んでくれた人材にどう報いるのか?
    • 山崎さん
      • ストックオプションなどはないのでどうすればいいのか?いまは給料を高めにすることで報いようとしている。
    • 藤岡さん
      • 地元の雇用を守ること
    • 新井さん
      • 高い給与を出すことで報いようとしている
    • 和田さん
      • 経済的に報いるのは中長期的にやらなければいけないので、やっていく。
      • ソフトウェア産業の儲け方は特殊なので、いろいろ考えていきたい。
      • 人それぞれの報い方をやっていきたい。
  • 起業するときのパートナーはどう?
    • 藤岡さん
      • 欲しかったけどいなかった
    • 新井さん
      • 一人ではいろいろわからないことがあったので、パートナーを見つけて起業した
    • 山崎さん
      • 二人だとそれはコストになる。営業とか
      • アメリカだとスタートアップ資金が入ることがあるが、日本はない
      • 追い込まれると、お金に関していろいろある
    • 新井さん
      • 営業の人だとそれまでフリーでやってもらうとか
      • パートナーにするなら、フリーや起業したことある人の方がいい
    • 和田さん
      • 血縁は入れない方がいい
    • 久保さん
      • 長年の友人で、仕事も共にやっていた
      • 何で言い合おうと思ってやっています。

参考文献

  • ネットワーク経済の法則
  • スティグリッツミクロ経済学
  • Eric Sink on the Business of Software 革新的ソフトウェア企業の作り方 [単行本(ソフトカバー)]
    • http://www.amazon.co.jp/Eric-Sink-Business-Software-%E9%9D%A9%E6%96%B0%E7%9A%84%E3%82%BD%E3%83%95%E3%83%88%E3%82%A6%E3%82%A7%E3%82%A2%E4%BC%81%E6%A5%AD%E3%81%AE%E4%BD%9C%E3%82%8A%E6%96%B9/dp/4798117501
 
このエントリーを含むはてなブックマークはてなブックマーク - RubyKaigi 2010 1st day この記事をクリップ!Livedoorクリップ - RubyKaigi 2010 1st day Googleブックマークに追加 Digg This
Tags: , , , , , , , , ,
2010/08/28  |  Written by  |  under Blog

と言うわけで準基調講演とかいろんな冷やかしを受けながらもなんとか発表終わりました。いやー、緊張しましたがなんとか発表できて良かったです。あとは今日のjpmobie Kaigi 2010が終われば、ようやく楽しめるようになるんじゃないかと思っています。

ところで、・ナイトのあとに懇親会行ったのですが、外国からの参加者が7割以上を占めるという、ある意味過酷な環境でした。英語慣れしてないのでかなり疲れましたが、それはそれで楽しかったです。さて、今日の懇親会はどうなることやら。

 
このエントリーを含むはてなブックマークはてなブックマーク - jpmobile on Rails 3.0 in RubyKaigi 2010 この記事をクリップ!Livedoorクリップ - jpmobile on Rails 3.0 in RubyKaigi 2010 Googleブックマークに追加 Digg This
Tags: , ,