SlideShare a Scribd company logo
Railsエコシステムの研究
                   松田 明

                @RubyKaigi2009




2009年7月18日土曜日
はじめに



         •今日話すこと
         •今日話さないこと

2009年7月18日土曜日
今日話すこと




2009年7月18日土曜日
今日話すこと




           Ruby on Railsに関する何か



2009年7月18日土曜日
Outline
         1. 発表タイトルについて
         2. Railsについて
         3. Railsの進化の歴史
         4. Railsエコシステム
         5. Contributing to Rails
         6. 私たちにできること
2009年7月18日土曜日
今日話さないこと




2009年7月18日土曜日
今日話さないこと



       RailsでのWebアプリケーション
       の作り方


2009年7月18日土曜日
そういうのが聞きたい方は




           隣の部屋でやってます



2009年7月18日土曜日
自己紹介




2009年7月18日土曜日
% whoami




2009年7月18日土曜日
% whoami


           :name => 松田 明,
           :twitter => @a_matsuda,
           :github => amatsuda

2009年7月18日土曜日
Job




           freelance Railer



2009年7月18日土曜日
フェロー(笑)




2009年7月18日土曜日
来月から社名が変わります




2009年7月18日土曜日
Asakusa.rb




           http://asakusa.rubyist.net/



2009年7月18日土曜日
秋に本が出ます




2009年7月18日土曜日
Head First Rails

         •オライリー社
         •超初学者向け
         •Rails 2.3 Ready!
         •秋発売予定
2009年7月18日土曜日
乞うご期待!




2009年7月18日土曜日
Outline

         1.     発表タイトルについて
         2. Railsについて

         3. Railsの進化の歴史

         4. Railsエコシステム

         5. Contributing to Rails

         6. 私たちにできること

2009年7月18日土曜日
Railsエコシ
      ステムの研究
2009年7月18日土曜日
去年の前田さんの基調講演




           「Rails症候群の研究」


2009年7月18日土曜日
今日話すこと




           「Rails」と「エコシステム」



2009年7月18日土曜日
「Rails」とは?




           ご存知 Ruby on Rails



2009年7月18日土曜日
「Rails」とは?


           Rubyで作られているオープン
           ソースのWebアプリケーション
           フレームワーク

2009年7月18日土曜日
「Rails」とは?




           詳しくはまたあとで



2009年7月18日土曜日
「エコシステム」とは?




2009年7月18日土曜日
「エコシステム」とは?




           「生態系」のこと。



2009年7月18日土曜日
こんなやつ




2009年7月18日土曜日
生態系ピラミッド




2009年7月18日土曜日
「エコシステム」とは?




           転じて、



2009年7月18日土曜日
「エコシステム」とは?
           「オープンソースの分野では、(中略)
           オープンソースソフトウェアをどのように開発、
           改良、利用すれば、オープンソースの世界の健全
           かつ安定的な発展を促進できるかという問題を解
           決しようとする理念のことを意味する。」
                http://ossipedia.ipa.go.jp より

2009年7月18日土曜日
「オープンソース」とは?



           昨今話題ですが、
           今日は深入りはしません


2009年7月18日土曜日
生態系ピラミッド



           オープンソースのエコシステムを
           表現してみる


2009年7月18日土曜日
最も単純なOSSのエコシステムの構造

                   コミッタ




                ユーザー




2009年7月18日土曜日
最も単純なOSSのエコシステムの構造
                作る人
                         コミッタ




                使う人   ユーザー




2009年7月18日土曜日
最も単純なOSSのエコシステムの構造
                作る人
                         コミッタ

           越えられない壁




                使う人   ユーザー




2009年7月18日土曜日
日本のRubyエコシステムの構造
                作る人
                             コミッタ

           越えられない壁




                使う人
                      ユーザー




2009年7月18日土曜日
日本のRubyエコシステムの構造
                作る人
                             コミッタ

           越えられない壁

                      ML参加者

                使う人
                      ユーザー




2009年7月18日土曜日
日本のRubyエコシステムの構造(詳細版)
                作る人

                             コミッタ
           越えられない壁




                使う人

                      ユーザー


2009年7月18日土曜日
日本のRubyエコシステムの構造(詳細版)
                作る人


           越えられない壁




                使う人

                      ユーザー


2009年7月18日土曜日
日本のRubyエコシステムの構造(詳細版)
                作る人

                             ruby-core
           越えられない壁




                使う人

                      ユーザー


2009年7月18日土曜日
日本のRubyエコシステムの構造(詳細版)
                作る人             唯一神

                             ruby-core
           越えられない壁




                使う人

                      ユーザー


2009年7月18日土曜日
日本のRubyエコシステムの構造(詳細版)
                作る人             唯一神

                             ruby-core
           越えられない壁
                      各種ライブラリ作者




                使う人

                      ユーザー


2009年7月18日土曜日
日本のRubyエコシステムの構造(詳細版)
                作る人             唯一神

                             ruby-core
           越えられない壁
                      各種ライブラリ作者

                        ruby-dev

                使う人

                      ユーザー


2009年7月18日土曜日
日本のRubyエコシステムの構造(詳細版)
                作る人                唯一神

                              ruby-core
           越えられない壁
                      各種ライブラリ作者

                        ruby-dev

                使う人    ruby-list

                      ユーザー


2009年7月18日土曜日
日本のRubyエコシステムの構造(詳細版)


         •唯一神「Matz大神」の存在
         •MLの棲み分け
         •「使うだけの人」から上にのぼる道が険しい


2009年7月18日土曜日
上にのぼる道が険しい




           Rubyはそれでいい



2009年7月18日土曜日
日本のRubyエコシステムの構造(詳細版)
                作る人                唯一神

                              ruby-core
           越えられない壁
                      各種ライブラリ作者

                        ruby-dev

                使う人    ruby-list

                      ユーザー


2009年7月18日土曜日
日本のRubyエコシステムの構造(詳細版)
                作る人                唯一神

                              ruby-core
           越えられない壁
                      各種ライブラリ作者

                        ruby-dev
                                          もうひとつの壁
                使う人    ruby-list

                      ユーザー


2009年7月18日土曜日
Railsエコシステム




           では、Railsは?



2009年7月18日土曜日
Railsエコシステムの構造




2009年7月18日土曜日
Railsエコシステムの構造
                     唯一神




2009年7月18日土曜日
Railsエコシステムの構造
                       唯一神

                   Rails Core




2009年7月18日土曜日
Railsエコシステムの構造
                         唯一神

                     Rails Core

                 コントリビューター




2009年7月18日土曜日
Railsエコシステムの構造
                         唯一神

                     Rails Core

                 コントリビューター

                   報告者




2009年7月18日土曜日
Railsエコシステムの構造
                             唯一神

                        Rails Core

                 コントリビューター

                    報告者

                 Activists




2009年7月18日土曜日
Railsエコシステムの構造
                             唯一神

                        Rails Core

                 コントリビューター

                    報告者

                 Activists

                ユーザー


2009年7月18日土曜日
Railsエコシステムの構造
                作る人               唯一神

                             Rails Core

                      コントリビューター

                         報告者

                      Activists
                使う人
                      ユーザー


2009年7月18日土曜日
Railsエコシステムの構造
                作る人               唯一神

                             Rails Core

                      コントリビューター
           ごく薄い境界
                         報告者

                      Activists
                使う人
                      ユーザー


2009年7月18日土曜日
Railsエコシステムの特徴
         •レイヤー間の垣根が低い。フルスタック
         •作る人多め
         •下のあたりもとっても柔軟な構造
         •コミュニティをうまくドライブして活用するため
           の意図的な工夫

         •Railsの駆動力を支えるための重要な装置
2009年7月18日土曜日
人口分布
                            唯一神

                       Rails Core

                コントリビューター

                   報告者

                Activists

                ユーザー


2009年7月18日土曜日
人口分布
                            唯一神     1
                       Rails Core

                コントリビューター

                   報告者

                Activists

                ユーザー


2009年7月18日土曜日
人口分布
                            唯一神     1
                       Rails Core   6

                コントリビューター

                   報告者

                Activists

                ユーザー


2009年7月18日土曜日
人口分布
                            唯一神      1
                       Rails Core    6

                コントリビューター           1372

                   報告者

                Activists

                ユーザー


2009年7月18日土曜日
人口分布
                            唯一神      1
                       Rails Core    6

                コントリビューター           1372

                   報告者              多数

                Activists

                ユーザー


2009年7月18日土曜日
人口分布
                            唯一神       1
                       Rails Core     6

                コントリビューター            1372

                   報告者               多数

                Activists           もっと多数

                ユーザー


2009年7月18日土曜日
人口分布
                            唯一神       1
                       Rails Core     6

                コントリビューター            1372

                   報告者               多数

                Activists           もっと多数

                ユーザー                星の数ほど


2009年7月18日土曜日
日本における人口分布
                            唯一神        0/1
                       Rails Core      0/6

                コントリビューター            数名 / 1372

                   報告者               数名 / 多数

                Activists           ? / もっと多数

                ユーザー                 やたら多数


2009年7月18日土曜日
いきなり結論


           みんなもっと
           参加しようよ!
2009年7月18日土曜日
でもどうやって?何のために?




           本日のテーマ



2009年7月18日土曜日
まとめでした




           以上、まとめおわり。



2009年7月18日土曜日
Outline
         1. 発表タイトルについて


         2.     Railsについて
         3. Railsの進化の歴史

         4. Railsエコシステム

         5. Contributing to Rails

         6. 私たちにできること

2009年7月18日土曜日
Railsについて




           Railsについてちょっとおさらい



2009年7月18日土曜日
「Rails」とは?(reprise)




2009年7月18日土曜日
「Rails」とは?(reprise)




           開発が始まってからまだ5年



2009年7月18日土曜日
開発が始まってまだ5年




           驚異的な進化のスピード



2009年7月18日土曜日
驚異的な進化のスピード



           AWDwR(日本語版)の表紙
           を見ればわかる


2009年7月18日土曜日
AWDwR(日本語版)の表紙

                2006年     2007年




2009年7月18日土曜日
I18n.t( Rails ) == 線路




           「電車」のメタファー



2009年7月18日土曜日
「電車」のメタファーの持つ意味




           CoC



2009年7月18日土曜日
「電車」のメタファーの持つ意味



         •Rapidity
         •走り続けるフレームワーク

2009年7月18日土曜日
Rapidity




           in another word, Agility



2009年7月18日土曜日
Agile


           アジャイルであれ、という気持ち
           が名前に込められている
                e.g. AWDwR

2009年7月18日土曜日
Agility



           Agile
                => Embrace Change


2009年7月18日土曜日
Ch-ch-ch-ch-Changes


           変わり続けるということ
            =>

           走り続けるということ


2009年7月18日土曜日
走り続けるということ


           線路は続くよ
           どこまでも
2009年7月18日土曜日
「電車」のメタファー(reprise)



         •Rapidity
         •走り続けるフレームワーク

2009年7月18日土曜日
Railsの本質




                変化
2009年7月18日土曜日
変化


           RubyKaigi2009のテーマは、
           「変わる/変える」です。
                http://rubykaigi.org/2009/ja より



2009年7月18日土曜日
変化し続けるということ




           絶え間ない「カイゼン」



2009年7月18日土曜日
最新のRailsが最高のRails



           Railsは永遠に未完成
           であるという宿命


2009年7月18日土曜日
Rails格言

           "edge is more stable than stable,

                so use edge"

           http://groups.google.com/group/rails-i18n/browse_thread/thread/24143dbaff2841bf

           より




2009年7月18日土曜日
「枯れたバージョンのRails」?




           Railsの本質と矛盾



2009年7月18日土曜日
Railsの本質


           Railsは走り続ける電車
                =>

           永久に枯れない。枯れたら死ぬ。

2009年7月18日土曜日
「エンタープライズRails」




           とっても難しい分野



2009年7月18日土曜日
近年のRailsの進化の歴史




           数々の新しい試み



2009年7月18日土曜日
数々の新しい試み

           2.1 Named Scope
           2.2 Rails I18n
           2.3 Engines / Templates / nested
           attributes




2009年7月18日土曜日
数々の新しい試み

           2.1 Named Scope
           2.2 Rails I18n
           2.3 Engines / Templates / nested
           attributes

          3.0 Merb

2009年7月18日土曜日
近年のRailsの大きな変化



           いずれもコアチームが作った
           ものではない


2009年7月18日土曜日
ここ
                            唯一神

                       Rails Core

                コントリビューター

                   報告者

                Activists

                ユーザー


2009年7月18日土曜日
近年のRailsの大きな変化




           コミュニティの産物



2009年7月18日土曜日
Contributors




                Railsの変化力 / 駆動力の源



2009年7月18日土曜日
Contributors


                Railsの成功の
                    秘訣
2009年7月18日土曜日
人口分布
                            唯一神       1
                       Rails Core     6

                コントリビューター            1372

                 報告者/要望者             多数

                Activists           もっと多数

                ユーザー                星の数ほど


2009年7月18日土曜日
コントリビューター



           コントリビューターの人数が
           すごいことに


2009年7月18日土曜日
Railsの早さの秘密


           今のRailsは
           1400人が同時多発的に開発
           を行っているという恐るべき状況


2009年7月18日土曜日
これを実現している仕組み




           あとで詳しく



2009年7月18日土曜日
コントリビューターの人数がすごい件



           なにも最初からこうだった
           わけではない


2009年7月18日土曜日
Outline
         1. 発表タイトルについて

         2. Railsについて


         3.     Railsの進化の歴史
         4. Railsエコシステム

         5. Contributing to Rails

         6. 私たちにできること

2009年7月18日土曜日
Political Change

           専制君主制(DHH一人プロダクト時代)
                =>
           代表民主制(svn, Trac時代)
                =>
           直接民主制(GitHub, Activists)

2009年7月18日土曜日
独裁時代


           Nobody had keys to the repository
           but me for the first year or so.
           - DHH (http://www.loudthinking.com/posts/36-work-on-
           what-you-use-and-share-the-rest)




2009年7月18日土曜日
その後しばらく




           ふつうのオープンソース



2009年7月18日土曜日
今では、


           DHH != Rails
           - DHH (http://www.loudthinking.com/posts/36-work-on-
           what-you-use-and-share-the-rest)




2009年7月18日土曜日
何がこの状況をもたらしたのか?




2009年7月18日土曜日
何がこの状況をもたらしたのか?




           GitHub


2009年7月18日土曜日
GitHubがもたらしたもの




           直接民主制の始まり



2009年7月18日土曜日
直接民主制?


           ユーザー == コミッタ
           (使う人)    (作る人)
                という理想

2009年7月18日土曜日
誰もがコミット権を持つ社会


           全てのユーザーが自分の持つ
           オレオレforkに好きなだけ
           コミットする自由

2009年7月18日土曜日
オレオレRails



           コミットの価値が認められれば
           本家に取り込まれる


2009年7月18日土曜日
社会の変革


           GitHubの登場はコミッタを
           特権階級から追い落とす革命だった
                http://blog.s21g.com/articles/1341




2009年7月18日土曜日
Railsらしいところ


           Railsの社会に革命をもたらした
           GHもまたRailsで作られている、
           というメタ革命


2009年7月18日土曜日
The 3rd Impact


         •Dave ThomasによるRubyの発見
         •DHHによるRubyの発見
         •RubyistによるGitの発見

2009年7月18日土曜日
viva GitHub!




           Thank you Scott!



2009年7月18日土曜日
Outline
         1. 発表タイトルについて

         2. Railsについて

         3. Railsの進化の歴史

         4.     Railsエコシステム
         5. Contributing to Rails

         6. 私たちにできること


2009年7月18日土曜日
Railsエコシステム




           話は戻って、



2009年7月18日土曜日
あらためてエコシステムを上から
                              唯一神

                         Rails Core

                  コントリビューター

                     報告者

                  Activists

                  ユーザー


2009年7月18日土曜日
唯一神



           What does he actually
           do?


2009年7月18日土曜日
唯一神


           DHHがどこかで言ってた
           「みんなのパッチを判断してコミットするだけの
           簡単なお仕事」
                ソース not found




2009年7月18日土曜日
あらためてエコシステムを上から
                              唯一神

                         Rails Core

                  コントリビューター

                     報告者

                  Activists

                  ユーザー


2009年7月18日土曜日
コアチーム



           メンバー紹介
           http://rubyonrails.org/core




2009年7月18日土曜日
メンバー




           日本人は居ません



2009年7月18日土曜日
会社の存在



         •37signals
         •Engine Yard

2009年7月18日土曜日
会社の存在




           日本ではMatzぐらいなのに



2009年7月18日土曜日
あらためてエコシステムを上から
                              唯一神

                         Rails Core

                  コントリビューター

                     報告者

                  Activists

                  ユーザー


2009年7月18日土曜日
コントリビューター



           Railsはコアチームのみにて
           作られるにあらず


2009年7月18日土曜日
コントリビューター




           ここからは僕らでもなれる



2009年7月18日土曜日
ランキング



           Rails Contributors
                http://contributors.rubyonrails.org/




2009年7月18日土曜日
集計方法


         •GitのcommitのAuthorを
            gritで抜き出して集計

         •Git便利
         •微妙に集計誤差もあるから参考程度に

2009年7月18日土曜日
Contributors



         •1372 people!
         •実際は 1400+ とも言われている

2009年7月18日土曜日
Contributors




           ちなみにオレオレ



2009年7月18日土曜日
Japanese




           でも日本人超少ない><



2009年7月18日土曜日
条件


           Railsのバグfixや
           enhancementのパッチを
           なんかコミットすること

2009年7月18日土曜日
必要スキル / 必要なもの
         •Ruby(公用語)
         •英語(公用語)
         •Railsのソースを読み書きできること
                (特にテストが大変)

         •LHのアカウント
         •Git
2009年7月18日土曜日
実際にやること




           あとで



2009年7月18日土曜日
あらためてエコシステムを上から
                              唯一神

                         Rails Core

                  コントリビューター

                     報告者

                  Activists

                  ユーザー


2009年7月18日土曜日
報告者




           LHでバグ報告



2009年7月18日土曜日
LightHouse


           RubyでいうところのRedmine
                http://rails.lighthouseapp.com

                    (LH使いづらい・・・よね?)




2009年7月18日土曜日
必要なもの



         •英語(公用語)
         •LHのアカウント



2009年7月18日土曜日
あらためてエコシステムを上から
                              唯一神

                         Rails Core

                  コントリビューター

                     報告者

                  Activists

                  ユーザー


2009年7月18日土曜日
Activists




           ちょっといったん置いといて、



2009年7月18日土曜日
おまけ




           ちょっと毛色は違うけど、



2009年7月18日土曜日
プラギン/gemライブラリ作者


         •独自路線
         •我が道を行ってください
         •運が良ければコアに取り込まれるという
            出世コースも


2009年7月18日土曜日
必要なもの


         •Githubのアカウント
         •Ruby
         •Git


2009年7月18日土曜日
プラギンとかgemとか



           きょうびGithub以外で
           開発とかないよね?


2009年7月18日土曜日
Activists



           上記以外のなにかしらの形で
           Rails社会に参加/貢献したい人


2009年7月18日土曜日
例えば、


           Ruby on Rails Wiki
           プロジェクト
                http://groups.google.com/group/rubyonrails-wiki




2009年7月18日土曜日
Rails Wiki プロジェクト

         •コンテンツの充実
         •各国語に翻訳
         •既に成果が反映され始めている
                http://wiki.rubyonrails.org/

         •... no Japanese?

2009年7月18日土曜日
Rails Feedback Forum



           Rails 3に今後実装してほしいもの
           などについて要望を出す


2009年7月18日土曜日
Rails Feedback Forum



           uservoice.com
                http://rails.uservoice.com




2009年7月18日土曜日
... and much more!


2009年7月18日土曜日
ML


           the Rails Activism
           mailing list
                http://groups.google.com/group/rails-activism




2009年7月18日土曜日
必要なもの



         •英語(公用語)
         •情熱



2009年7月18日土曜日
あらためてエコシステムを上から
                              唯一神

                         Rails Core

                  コントリビューター

                     報告者

                  Activists

                  ユーザー


2009年7月18日土曜日
ユーザー




           いわゆる「お客さん」




2009年7月18日土曜日
ユーザー



           このトークが終わったあとで
           ここの人口が変わらなかったら失敗・・・?




2009年7月18日土曜日
日本人にとっての最大の障壁




           英語


2009年7月18日土曜日
英語




           Rubyに次ぐ公用語




2009年7月18日土曜日
英語




           何をするにも必要



2009年7月18日土曜日
Railsはもともと英語のフレームワーク



           Designed for
           English use only


2009年7月18日土曜日
Rails I18n以降




           最近は状況が変化



2009年7月18日土曜日
Rails I18nがもたらしたもの




           Railsが世界のフレームワークに



2009年7月18日土曜日
Rails I18nがもたらしたもの



           Railsコミュニティが
           世界規模に拡大


2009年7月18日土曜日
非英語圏のみなさんの英語




           かなりひどい



2009年7月18日土曜日
英語



           かなりひどい英語でも大丈夫。
           みんな優しい。


2009年7月18日土曜日
日本人でもOK




           今がチャンス?



2009年7月18日土曜日
Outline
         1. 発表タイトルについて

         2. Railsについて

         3. Railsの進化の歴史

         4. Railsエコシステム

         5.     Contributing to Rails
         6. 私たちにできること


2009年7月18日土曜日
モチベーション




           もちろん「義務」とかではない



2009年7月18日土曜日
モチベーション


         •自分の好みに合わせてRailsを改変する権利
         •純粋に楽しい
         •成り行き上


2009年7月18日土曜日
成り行き?



           偶然ではなく、
           巧妙に仕組まれた罠


2009年7月18日土曜日
Railsに仕組まれた罠


         1. Railsは永遠に未完成なフレームワーク
         2. 続々と新機能
         3. 新機能に関してはそれなりに実装できたら出す



2009年7月18日土曜日
開発者が罠にはまるパターン

         1. 続々と新機能

         2. ワクワクするから使いたくなる

         3. ドキュメントないし、ソース読まないと危なくて使えない

         4. 使ってみたら壊れてるし、ソース読んでるうちに直したくなる

         5. GitHubという誰でも開発に参加できる仕組み

         6. 自然にパッチができている


2009年7月18日土曜日
Railsの本質




           「完成していないこと」



2009年7月18日土曜日
The Rails Way


           コントリビューターへの信頼を
           前提としているからこその
           攻めのプロダクト

2009年7月18日土曜日
非常にうまく機能している



           とてつもない進化のスピード
           を実現


2009年7月18日土曜日
これを踏まえて、




           Railsの正しい使い方



2009年7月18日土曜日
Railsの正しい使い方


           完成してないところは
           自分が完成させながら
           使えばいいじゃん。

2009年7月18日土曜日
「Rails開発」の2つの意味



           Railsで作りながら
           Railsを作る


2009年7月18日土曜日
手元のRailsが直ったとして、



           何故パッチをコミットするのか?
           モンキーパッチで充分なのでは?


2009年7月18日土曜日
Railsのモットー




           Don t Repeat Yourself



2009年7月18日土曜日
Railsのモットー

           Don t
           Repeat
           Yourself
2009年7月18日土曜日
Don t Repeat Yourself

         •あなたが踏んだバグを他の誰かにも
                踏ませてはならない
         •あなたが書いたモンキーパッチを
                他の誰かも書く必要はない

2009年7月18日土曜日
究極のDRY感覚



           世界中のRailerたちの間で
           DRYを共有


2009年7月18日土曜日
世界をDRYに



           あなたが手元のパッチを
           コミットするべき理由


2009年7月18日土曜日
Outline
         1. 発表タイトルについて

         2. Railsについて

         3. Railsの進化の歴史

         4. Railsエコシステム

         5. Contributing to Rails

         6.     私たちにできること
2009年7月18日土曜日
Practices


         •Railsのバグを発見するコツ
         •LHの使い方
         •GHの使い方


2009年7月18日土曜日
Railsのバグを発見するコツ


         •常に先っちょのRailsを使う
         •新機能を積極的に使う
         •フレームワークを疑う
         •フレームワークのコードをとにかく読む

2009年7月18日土曜日
Edge


           常に先っちょが最良で最高の
           Railsなんだから、
           ここまでは必然

2009年7月18日土曜日
Railsのバグをうまく踏むコツ




           「新機能」を積極的に使う



2009年7月18日土曜日
新機能

           RESTとかBDDとか、
           新しいトレンドの実装は
           Ruby/Rails界からどんどん
           産まれてきている
2009年7月18日土曜日
昔はJavaだった



         "今のRubyは10年前のJavaだ。
                -- EngineYardのひと




2009年7月18日土曜日
新しい技術



           せっかくRuby/Railsを使ってて
           これを使わないなんて勿体ない!


2009年7月18日土曜日
Practices




           フレームワークを疑う



2009年7月18日土曜日
フレームワークを疑う



         •フレームワークのデザインを疑う
         •フレームワークの実装を疑う

2009年7月18日土曜日
フレームワークのデザインを疑う


         •Rubyはキメると気持ちいい
         •Railsもキメると気持ちいい
         •Ruby/Railsは開発者が自然に気持ちよく
            書けるようにデザインされているはず


2009年7月18日土曜日
自然に気持ちよく書けなかったら




           デザインが間違っているはず



2009年7月18日土曜日
フレームワークの実装を疑う


           Railsは、ユーザーに叩いてもらう
           ことを見越して、そこそこの完成度
           で早めに出してくる

2009年7月18日土曜日
特に新機能は




           大抵どっか壊れてる



2009年7月18日土曜日
特に日本人は


           欧米の開発者が想定してなかった
           ようなレアケースを踏んでしまう
           ことが多いような気がする

2009年7月18日土曜日
フレームワークのコードを読む


         •同じRubyで書かれているから抵抗なく読める
         •頭から読む必要はない。
            自分が引っかかったところから

         •毎日の差分をGitで読む(後述)

2009年7月18日土曜日
LHの使い方


         •チケットは検索しにくい
         •投稿時にプレビューがなくて
                はまる

2009年7月18日土曜日
僕の場合


           とりあえずチケットには全て目を通す。
           気になったチケットはwatchしまくって、
           あとはメールで追う。



2009年7月18日土曜日
GHの使い方




           コミットは全部目を通す



2009年7月18日土曜日
僕の場合




           % git log



2009年7月18日土曜日
git log



           % git log -p --stat --reverse
           で数日に一回差分を読むぐらいで。




2009年7月18日土曜日
Contributing through your job




           ケーススタディ



2009年7月18日土曜日
実際のお仕事の開発案件



         •永和システムマネジメントさん
         •リクルートMTLさん

2009年7月18日土曜日
2009年2月開発スタート


           nested attributesとか
           どうしても使いたくて
           Rails 2.3.0(beta1)系Edgeを採用


2009年7月18日土曜日
新機能



           かなり早い段階から
           Rails 2.3の新機能が使えた


2009年7月18日土曜日
会社にとってはリスク



           「責任はオレが取る」
                    - @kakutani




2009年7月18日土曜日
Edge時代



           FWの挙動が怪しいと
           ソースを読む日々


2009年7月18日土曜日
成果



           問題の報告をしたり、
           パッチがいくつか採用されたり


2009年7月18日土曜日
というわけで、


           永和システムマネジメントと
           メディアテクノロジーラボは
           Railsの開発に貢献しています!

2009年7月18日土曜日
2009年7月18日土曜日
こんな会社がもっと増えるといいな


           これもまた、会社として
           オープンソースを支援する
           一つの手段ではないでしょうか?

2009年7月18日土曜日
そろそろ結論


2009年7月18日土曜日
みんなもっとRailsの
                 開発に参加しよう

2009年7月18日土曜日
でもどうやって?
                 何のために?

2009年7月18日土曜日
どうやって?



         •Edge Railsで暮らす
         •そしてcontributeする

2009年7月18日土曜日
何のために?



           よりよい(Railsの)世界を
           作るために


2009年7月18日土曜日
Outline
         1. 発表タイトルについて

         2. Railsについて

         3. Railsの進化の歴史

         4. Railsエコシステム

         5. Contributing to Rails

         6.     私たちにできること
2009年7月18日土曜日
日本に居てRailsを使うということ



           日本のRailsは遅れているが、
           日本のRubyは進んでいる


2009年7月18日土曜日
ガイジンどもにはできないこと

           Rubyの母国という強みを
           生かした貢献
           e.g. Ruby 1.9
                 M17n
2009年7月18日土曜日
M17n


           なるせさんをお招きしてRailsのM17N関連に
           ダメ出しする会 @ Asakusa.rb
           http://qwik.jp/asakusarb/56.html




2009年7月18日土曜日
Asakusa.rb #11




           3本のパッチをコミット



2009年7月18日土曜日
宣伝



           Asakusa.rbではこんな活動を行っております。

           続きはAsakusa.rbで!


2009年7月18日土曜日
end




2009年7月18日土曜日
Thank You!
2009年7月18日土曜日

More Related Content

Viewers also liked (17)

Rails 3のはなし
Rails 3のはなしRails 3のはなし
Rails 3のはなし
Akira Matsuda
 
Asakusa.rb Rocks!
Asakusa.rb Rocks!Asakusa.rb Rocks!
Asakusa.rb Rocks!
Akira Matsuda
 
Asakusa.rb設立のお知らせ
Asakusa.rb設立のお知らせAsakusa.rb設立のお知らせ
Asakusa.rb設立のお知らせ
Akira Matsuda
 
100.times { Asakusa.rb.meetup! }
100.times { Asakusa.rb.meetup! }100.times { Asakusa.rb.meetup! }
100.times { Asakusa.rb.meetup! }
Akira Matsuda
 
New Wave of Database Programming with Ruby 1.9 on Rails 2.1
New Wave of Database Programming  with Ruby 1.9 on Rails 2.1New Wave of Database Programming  with Ruby 1.9 on Rails 2.1
New Wave of Database Programming with Ruby 1.9 on Rails 2.1
Akira Matsuda
 
マネーフォワードの考えるプラットフォーム
マネーフォワードの考えるプラットフォームマネーフォワードの考えるプラットフォーム
マネーフォワードの考えるプラットフォーム
Keisuke Izumiya
 
p2pネットワーク
p2pネットワークp2pネットワーク
p2pネットワーク
Yoshiki TAKADA
 
実録Blue-Green Deployment導入記
実録Blue-Green Deployment導入記実録Blue-Green Deployment導入記
実録Blue-Green Deployment導入記
Hiroyuki Ohnaka
 
JJUG CCC 2014 fall 「私がTDD出来ないのはどう考えてもお前らが悪い!」~エンタープライズJava開発でのTDD適用の勘所~
JJUG CCC 2014 fall  「私がTDD出来ないのはどう考えてもお前らが悪い!」~エンタープライズJava開発でのTDD適用の勘所~JJUG CCC 2014 fall  「私がTDD出来ないのはどう考えてもお前らが悪い!」~エンタープライズJava開発でのTDD適用の勘所~
JJUG CCC 2014 fall 「私がTDD出来ないのはどう考えてもお前らが悪い!」~エンタープライズJava開発でのTDD適用の勘所~
Hiroyuki Ohnaka
 
Deep Learningの基礎と応用
Deep Learningの基礎と応用Deep Learningの基礎と応用
Deep Learningの基礎と応用
Seiya Tokui
 
NIPS 2016 Overview and Deep Learning Topics
NIPS 2016 Overview and Deep Learning Topics  NIPS 2016 Overview and Deep Learning Topics
NIPS 2016 Overview and Deep Learning Topics
Koichi Hamada
 
Optcarrot: A Pure-Ruby NES Emulator
Optcarrot: A Pure-Ruby NES EmulatorOptcarrot: A Pure-Ruby NES Emulator
Optcarrot: A Pure-Ruby NES Emulator
mametter
 
Uncertainty Awareness in Integrating Machine Learning and Game Theory
Uncertainty Awareness in Integrating Machine Learning and Game TheoryUncertainty Awareness in Integrating Machine Learning and Game Theory
Uncertainty Awareness in Integrating Machine Learning and Game Theory
Rikiya Takahashi
 
拡がるディープラーニングの活用
拡がるディープラーニングの活用拡がるディープラーニングの活用
拡がるディープラーニングの活用
NVIDIA Japan
 
Developing the fastest HTTP/2 server
Developing the fastest HTTP/2 serverDeveloping the fastest HTTP/2 server
Developing the fastest HTTP/2 server
Kazuho Oku
 
ゲームエンジンとMVC
ゲームエンジンとMVCゲームエンジンとMVC
ゲームエンジンとMVC
AimingStudy
 
Ruby で高速なプログラムを書く
Ruby で高速なプログラムを書くRuby で高速なプログラムを書く
Ruby で高速なプログラムを書く
mametter
 
Asakusa.rb設立のお知らせ
Asakusa.rb設立のお知らせAsakusa.rb設立のお知らせ
Asakusa.rb設立のお知らせ
Akira Matsuda
 
100.times { Asakusa.rb.meetup! }
100.times { Asakusa.rb.meetup! }100.times { Asakusa.rb.meetup! }
100.times { Asakusa.rb.meetup! }
Akira Matsuda
 
New Wave of Database Programming with Ruby 1.9 on Rails 2.1
New Wave of Database Programming  with Ruby 1.9 on Rails 2.1New Wave of Database Programming  with Ruby 1.9 on Rails 2.1
New Wave of Database Programming with Ruby 1.9 on Rails 2.1
Akira Matsuda
 
マネーフォワードの考えるプラットフォーム
マネーフォワードの考えるプラットフォームマネーフォワードの考えるプラットフォーム
マネーフォワードの考えるプラットフォーム
Keisuke Izumiya
 
実録Blue-Green Deployment導入記
実録Blue-Green Deployment導入記実録Blue-Green Deployment導入記
実録Blue-Green Deployment導入記
Hiroyuki Ohnaka
 
JJUG CCC 2014 fall 「私がTDD出来ないのはどう考えてもお前らが悪い!」~エンタープライズJava開発でのTDD適用の勘所~
JJUG CCC 2014 fall  「私がTDD出来ないのはどう考えてもお前らが悪い!」~エンタープライズJava開発でのTDD適用の勘所~JJUG CCC 2014 fall  「私がTDD出来ないのはどう考えてもお前らが悪い!」~エンタープライズJava開発でのTDD適用の勘所~
JJUG CCC 2014 fall 「私がTDD出来ないのはどう考えてもお前らが悪い!」~エンタープライズJava開発でのTDD適用の勘所~
Hiroyuki Ohnaka
 
Deep Learningの基礎と応用
Deep Learningの基礎と応用Deep Learningの基礎と応用
Deep Learningの基礎と応用
Seiya Tokui
 
NIPS 2016 Overview and Deep Learning Topics
NIPS 2016 Overview and Deep Learning Topics  NIPS 2016 Overview and Deep Learning Topics
NIPS 2016 Overview and Deep Learning Topics
Koichi Hamada
 
Optcarrot: A Pure-Ruby NES Emulator
Optcarrot: A Pure-Ruby NES EmulatorOptcarrot: A Pure-Ruby NES Emulator
Optcarrot: A Pure-Ruby NES Emulator
mametter
 
Uncertainty Awareness in Integrating Machine Learning and Game Theory
Uncertainty Awareness in Integrating Machine Learning and Game TheoryUncertainty Awareness in Integrating Machine Learning and Game Theory
Uncertainty Awareness in Integrating Machine Learning and Game Theory
Rikiya Takahashi
 
拡がるディープラーニングの活用
拡がるディープラーニングの活用拡がるディープラーニングの活用
拡がるディープラーニングの活用
NVIDIA Japan
 
Developing the fastest HTTP/2 server
Developing the fastest HTTP/2 serverDeveloping the fastest HTTP/2 server
Developing the fastest HTTP/2 server
Kazuho Oku
 
ゲームエンジンとMVC
ゲームエンジンとMVCゲームエンジンとMVC
ゲームエンジンとMVC
AimingStudy
 
Ruby で高速なプログラムを書く
Ruby で高速なプログラムを書くRuby で高速なプログラムを書く
Ruby で高速なプログラムを書く
mametter
 

Recently uploaded (13)

IoT Devices Compliant with JC-STAR Using Linux as a Container OS
IoT Devices Compliant with JC-STAR Using Linux as a Container OSIoT Devices Compliant with JC-STAR Using Linux as a Container OS
IoT Devices Compliant with JC-STAR Using Linux as a Container OS
Tomohiro Saneyoshi
 
ドメインモデリング基本編①~全体の流れ2025_02_27社内向け開催.pptx
ドメインモデリング基本編①~全体の流れ2025_02_27社内向け開催.pptxドメインモデリング基本編①~全体の流れ2025_02_27社内向け開催.pptx
ドメインモデリング基本編①~全体の流れ2025_02_27社内向け開催.pptx
ssuserfcafd1
 
Apache Sparkに対するKubernetesのNUMAノードを意識したリソース割り当ての性能効果 (Open Source Conference ...
Apache Sparkに対するKubernetesのNUMAノードを意識したリソース割り当ての性能効果 (Open Source Conference ...Apache Sparkに対するKubernetesのNUMAノードを意識したリソース割り当ての性能効果 (Open Source Conference ...
Apache Sparkに対するKubernetesのNUMAノードを意識したリソース割り当ての性能効果 (Open Source Conference ...
NTT DATA Technology & Innovation
 
【卒業論文】LLMを用いたMulti-Agent-Debateにおける反論の効果に関する研究
【卒業論文】LLMを用いたMulti-Agent-Debateにおける反論の効果に関する研究【卒業論文】LLMを用いたMulti-Agent-Debateにおける反論の効果に関する研究
【卒業論文】LLMを用いたMulti-Agent-Debateにおける反論の効果に関する研究
harmonylab
 
実はアナタの身近にある!? Linux のチェックポイント/レストア機能 (NTT Tech Conference 2025 発表資料)
実はアナタの身近にある!? Linux のチェックポイント/レストア機能 (NTT Tech Conference 2025 発表資料)実はアナタの身近にある!? Linux のチェックポイント/レストア機能 (NTT Tech Conference 2025 発表資料)
実はアナタの身近にある!? Linux のチェックポイント/レストア機能 (NTT Tech Conference 2025 発表資料)
NTT DATA Technology & Innovation
 
第1回日本理学療法推論学会学術大会での発表資料(2025年3月2日 高橋可奈恵)
第1回日本理学療法推論学会学術大会での発表資料(2025年3月2日 高橋可奈恵)第1回日本理学療法推論学会学術大会での発表資料(2025年3月2日 高橋可奈恵)
第1回日本理学療法推論学会学術大会での発表資料(2025年3月2日 高橋可奈恵)
Matsushita Laboratory
 
ElasticsearchでSPLADEする [Search Engineering Tech Talk 2025 Winter]
ElasticsearchでSPLADEする [Search Engineering Tech Talk 2025 Winter]ElasticsearchでSPLADEする [Search Engineering Tech Talk 2025 Winter]
ElasticsearchでSPLADEする [Search Engineering Tech Talk 2025 Winter]
kota usuha
 
PostgreSQL最新動向 ~カラムナストアから生成AI連携まで~ (Open Source Conference 2025 Tokyo/Spring ...
PostgreSQL最新動向 ~カラムナストアから生成AI連携まで~ (Open Source Conference 2025 Tokyo/Spring ...PostgreSQL最新動向 ~カラムナストアから生成AI連携まで~ (Open Source Conference 2025 Tokyo/Spring ...
PostgreSQL最新動向 ~カラムナストアから生成AI連携まで~ (Open Source Conference 2025 Tokyo/Spring ...
NTT DATA Technology & Innovation
 
Matching_Program_for_Quantum_Challenge_Overview.pdf
Matching_Program_for_Quantum_Challenge_Overview.pdfMatching_Program_for_Quantum_Challenge_Overview.pdf
Matching_Program_for_Quantum_Challenge_Overview.pdf
hirokiokuda2
 
ビットコインテストネットでの送金体験付きビットコイン・ブロックチェーン勉強会資料
ビットコインテストネットでの送金体験付きビットコイン・ブロックチェーン勉強会資料ビットコインテストネットでの送金体験付きビットコイン・ブロックチェーン勉強会資料
ビットコインテストネットでの送金体験付きビットコイン・ブロックチェーン勉強会資料
周 小渕
 
ラズパイを使って作品を作ったらラズパイコンテストでKSY賞を貰って、さらに、文化庁メディア芸術祭で審査員推薦作品に選ばれてしまった件〜自作チップでラズパイ...
ラズパイを使って作品を作ったらラズパイコンテストでKSY賞を貰って、さらに、文化庁メディア芸術祭で審査員推薦作品に選ばれてしまった件〜自作チップでラズパイ...ラズパイを使って作品を作ったらラズパイコンテストでKSY賞を貰って、さらに、文化庁メディア芸術祭で審査員推薦作品に選ばれてしまった件〜自作チップでラズパイ...
ラズパイを使って作品を作ったらラズパイコンテストでKSY賞を貰って、さらに、文化庁メディア芸術祭で審査員推薦作品に選ばれてしまった件〜自作チップでラズパイ...
Industrial Technology Research Institute (ITRI)(工業技術研究院, 工研院)
 
【卒業論文】深層学習によるログ異常検知モデルを用いたサイバー攻撃検知に関する研究
【卒業論文】深層学習によるログ異常検知モデルを用いたサイバー攻撃検知に関する研究【卒業論文】深層学習によるログ異常検知モデルを用いたサイバー攻撃検知に関する研究
【卒業論文】深層学習によるログ異常検知モデルを用いたサイバー攻撃検知に関する研究
harmonylab
 
2025フードテックWeek大阪展示会 - LoRaWANを使った複数ポイント温度管理 by AVNET玉井部長
2025フードテックWeek大阪展示会 - LoRaWANを使った複数ポイント温度管理 by AVNET玉井部長2025フードテックWeek大阪展示会 - LoRaWANを使った複数ポイント温度管理 by AVNET玉井部長
2025フードテックWeek大阪展示会 - LoRaWANを使った複数ポイント温度管理 by AVNET玉井部長
CRI Japan, Inc.
 
IoT Devices Compliant with JC-STAR Using Linux as a Container OS
IoT Devices Compliant with JC-STAR Using Linux as a Container OSIoT Devices Compliant with JC-STAR Using Linux as a Container OS
IoT Devices Compliant with JC-STAR Using Linux as a Container OS
Tomohiro Saneyoshi
 
ドメインモデリング基本編①~全体の流れ2025_02_27社内向け開催.pptx
ドメインモデリング基本編①~全体の流れ2025_02_27社内向け開催.pptxドメインモデリング基本編①~全体の流れ2025_02_27社内向け開催.pptx
ドメインモデリング基本編①~全体の流れ2025_02_27社内向け開催.pptx
ssuserfcafd1
 
Apache Sparkに対するKubernetesのNUMAノードを意識したリソース割り当ての性能効果 (Open Source Conference ...
Apache Sparkに対するKubernetesのNUMAノードを意識したリソース割り当ての性能効果 (Open Source Conference ...Apache Sparkに対するKubernetesのNUMAノードを意識したリソース割り当ての性能効果 (Open Source Conference ...
Apache Sparkに対するKubernetesのNUMAノードを意識したリソース割り当ての性能効果 (Open Source Conference ...
NTT DATA Technology & Innovation
 
【卒業論文】LLMを用いたMulti-Agent-Debateにおける反論の効果に関する研究
【卒業論文】LLMを用いたMulti-Agent-Debateにおける反論の効果に関する研究【卒業論文】LLMを用いたMulti-Agent-Debateにおける反論の効果に関する研究
【卒業論文】LLMを用いたMulti-Agent-Debateにおける反論の効果に関する研究
harmonylab
 
実はアナタの身近にある!? Linux のチェックポイント/レストア機能 (NTT Tech Conference 2025 発表資料)
実はアナタの身近にある!? Linux のチェックポイント/レストア機能 (NTT Tech Conference 2025 発表資料)実はアナタの身近にある!? Linux のチェックポイント/レストア機能 (NTT Tech Conference 2025 発表資料)
実はアナタの身近にある!? Linux のチェックポイント/レストア機能 (NTT Tech Conference 2025 発表資料)
NTT DATA Technology & Innovation
 
第1回日本理学療法推論学会学術大会での発表資料(2025年3月2日 高橋可奈恵)
第1回日本理学療法推論学会学術大会での発表資料(2025年3月2日 高橋可奈恵)第1回日本理学療法推論学会学術大会での発表資料(2025年3月2日 高橋可奈恵)
第1回日本理学療法推論学会学術大会での発表資料(2025年3月2日 高橋可奈恵)
Matsushita Laboratory
 
ElasticsearchでSPLADEする [Search Engineering Tech Talk 2025 Winter]
ElasticsearchでSPLADEする [Search Engineering Tech Talk 2025 Winter]ElasticsearchでSPLADEする [Search Engineering Tech Talk 2025 Winter]
ElasticsearchでSPLADEする [Search Engineering Tech Talk 2025 Winter]
kota usuha
 
PostgreSQL最新動向 ~カラムナストアから生成AI連携まで~ (Open Source Conference 2025 Tokyo/Spring ...
PostgreSQL最新動向 ~カラムナストアから生成AI連携まで~ (Open Source Conference 2025 Tokyo/Spring ...PostgreSQL最新動向 ~カラムナストアから生成AI連携まで~ (Open Source Conference 2025 Tokyo/Spring ...
PostgreSQL最新動向 ~カラムナストアから生成AI連携まで~ (Open Source Conference 2025 Tokyo/Spring ...
NTT DATA Technology & Innovation
 
Matching_Program_for_Quantum_Challenge_Overview.pdf
Matching_Program_for_Quantum_Challenge_Overview.pdfMatching_Program_for_Quantum_Challenge_Overview.pdf
Matching_Program_for_Quantum_Challenge_Overview.pdf
hirokiokuda2
 
ビットコインテストネットでの送金体験付きビットコイン・ブロックチェーン勉強会資料
ビットコインテストネットでの送金体験付きビットコイン・ブロックチェーン勉強会資料ビットコインテストネットでの送金体験付きビットコイン・ブロックチェーン勉強会資料
ビットコインテストネットでの送金体験付きビットコイン・ブロックチェーン勉強会資料
周 小渕
 
ラズパイを使って作品を作ったらラズパイコンテストでKSY賞を貰って、さらに、文化庁メディア芸術祭で審査員推薦作品に選ばれてしまった件〜自作チップでラズパイ...
ラズパイを使って作品を作ったらラズパイコンテストでKSY賞を貰って、さらに、文化庁メディア芸術祭で審査員推薦作品に選ばれてしまった件〜自作チップでラズパイ...ラズパイを使って作品を作ったらラズパイコンテストでKSY賞を貰って、さらに、文化庁メディア芸術祭で審査員推薦作品に選ばれてしまった件〜自作チップでラズパイ...
ラズパイを使って作品を作ったらラズパイコンテストでKSY賞を貰って、さらに、文化庁メディア芸術祭で審査員推薦作品に選ばれてしまった件〜自作チップでラズパイ...
Industrial Technology Research Institute (ITRI)(工業技術研究院, 工研院)
 
【卒業論文】深層学習によるログ異常検知モデルを用いたサイバー攻撃検知に関する研究
【卒業論文】深層学習によるログ異常検知モデルを用いたサイバー攻撃検知に関する研究【卒業論文】深層学習によるログ異常検知モデルを用いたサイバー攻撃検知に関する研究
【卒業論文】深層学習によるログ異常検知モデルを用いたサイバー攻撃検知に関する研究
harmonylab
 
2025フードテックWeek大阪展示会 - LoRaWANを使った複数ポイント温度管理 by AVNET玉井部長
2025フードテックWeek大阪展示会 - LoRaWANを使った複数ポイント温度管理 by AVNET玉井部長2025フードテックWeek大阪展示会 - LoRaWANを使った複数ポイント温度管理 by AVNET玉井部長
2025フードテックWeek大阪展示会 - LoRaWANを使った複数ポイント温度管理 by AVNET玉井部長
CRI Japan, Inc.
 

Railsエコシステムの研究