rabbit-slide-kou-rwc-2014 2014.11.13.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 742a538b994cd09f825032c041d41a003d798c5c
4
+ data.tar.gz: 81006a0af0963b369090ffb3729d5cf673ff998b
5
+ SHA512:
6
+ metadata.gz: 4ebb9b24d6dcac468f7f6ee38eee854ab1e391219a6da91744b5752c16bfd869d0ca6b0fe87b69f9cebc2b3c51d22d75b1e8e69b52bb68c340e6cd07a3c71366
7
+ data.tar.gz: 6256de9c022d74c5c20da7a2c1d0673e55c9d5d3a91a88742a7948b2b2ddd084017352a2ecd568a690e0538db4cf466bead62c0ae37cedc63a12d5d092dfe468
data/.rabbit ADDED
@@ -0,0 +1 @@
1
+ distributed-full-text-search-middleware-in-ruby.rab
@@ -0,0 +1,33 @@
1
+ = Rubyを使った分散全文検索ミドルウェア
2
+
3
+ この発表はミドルウェアの分野でもRubyの普及を促進することを目指します。Rubyで分散全文検索エンジンというミドルウェアを開発している経験から、Rubyで開発したミドルウェアを他の言語でのプロダクトと差別化するために気をつけるべきことを紹介します。この知見を使って、Rubyを活かしたミドルウェアがより多く開発されることを期待します。
4
+
5
+ == ライセンス
6
+
7
+ CC BY-SA 4.0
8
+
9
+ 原著作者名には以下のどちらかを使ってください。
10
+
11
+ * 須藤功平
12
+ * Kouhei Sutou
13
+
14
+ == 作者向け
15
+
16
+ === 表示
17
+
18
+ rake
19
+
20
+ === 公開
21
+
22
+ rake publish
23
+
24
+ == 閲覧者向け
25
+
26
+ === インストール
27
+
28
+ gem install rabbit-slide-kou-rwc-2014
29
+
30
+ === 表示
31
+
32
+ rabbit rabbit-slide-kou-rwc-2014.gem
33
+
@@ -0,0 +1,17 @@
1
+ require "rabbit/task/slide"
2
+
3
+ # Edit ./config.yaml to customize meta data
4
+
5
+ spec = nil
6
+ Rabbit::Task::Slide.new do |task|
7
+ spec = task.spec
8
+ # spec.files += Dir.glob("doc/**/*.*")
9
+ # spec.files -= Dir.glob("private/**/*.*")
10
+ spec.add_runtime_dependency("clear-code")
11
+ end
12
+
13
+ desc "Tag #{spec.version}"
14
+ task :tag do
15
+ sh("git", "tag", "-a", spec.version.to_s, "-m", "Publish #{spec.version}")
16
+ sh("git", "push", "--tags")
17
+ end
@@ -0,0 +1,23 @@
1
+ ---
2
+ id: rwc-2014
3
+ base_name: distributed-full-text-search-middleware-in-ruby
4
+ tags:
5
+ - rabbit
6
+ - ruby
7
+ - full-text-search
8
+ presentation_date: 2014-11-13
9
+ version: 2014.11.13.0
10
+ licenses:
11
+ - CC BY-SA 4.0
12
+ slideshare_id:
13
+ speaker_deck_id:
14
+ ustream_id:
15
+ vimeo_id:
16
+ youtube_id:
17
+ author:
18
+ markup_language: :rd
19
+ name: Kouhei Sutou
20
+ email: kou@clear-code.com
21
+ rubygems_user: kou
22
+ slideshare_user: kou
23
+ speaker_deck_user: kou
@@ -0,0 +1,269 @@
1
+ = Rubyを使った\n分散全文検索ミドルウェア
2
+
3
+ : author
4
+ 須藤功平
5
+ : institution
6
+ 株式会社クリアコード
7
+ : content-source
8
+ RubyWorld Conference 2014
9
+ : date
10
+ 2014/11/13
11
+ : allotted-time
12
+ 30m
13
+ : theme
14
+ .
15
+
16
+ = 趣意書 - 今
17
+
18
+ * 今ではRubyは「当たり前」
19
+ * Rubyはキャズム理論の段階を\n
20
+ 順当に進んできている
21
+ * Rubyは「レートマジョリティ」\n
22
+ にも到達しつつある
23
+ * 「レートマジョリティ」 =\n
24
+ 「普通の人々」
25
+
26
+ = 趣意書 - これから
27
+
28
+ * 「レートマジョリティ」に\n
29
+ 浸透させるには?
30
+ * 技術だけを追求するのではなく、\n
31
+ 心理的、経済的、政治的な障害なども考慮する必要がある
32
+ * Ruby普及における重要なテーマ
33
+ * これらの障害を乗り越えた\n
34
+ 「浸透(penetration)」
35
+
36
+ = 趣意書 - まとめ
37
+
38
+ Rubyを\n
39
+ 普通の人々に\n
40
+ 浸透させたい!
41
+
42
+ = この発表の内容
43
+
44
+ 浸透促進案の\n
45
+ ご提案
46
+
47
+ = 浸透の定義
48
+
49
+ Rubyを使っても\n
50
+ 驚かない
51
+
52
+ = 普通の人々
53
+
54
+ * IT系
55
+ * いつもプログラムを書いている人
56
+ * たまにプログラムを書く人
57
+ * プログラムを使う人
58
+ * 非IT系
59
+ * こども
60
+
61
+ = 領域拡大な浸透方法
62
+
63
+ * IT系
64
+ * ((*いつもプログラムを書いている人*))
65
+ * ((*たまにプログラムを書く人*))
66
+ * プログラムを使う人
67
+ * 非IT系
68
+ * こども
69
+
70
+ = 新規開拓な浸透方法
71
+
72
+ * IT系
73
+ * いつもプログラムを書いている人
74
+ * たまにプログラムを書く人
75
+ * ((*プログラムを使う人*))
76
+ * 非IT系
77
+ * ((*こども*))
78
+
79
+ = 提案方針
80
+
81
+ * 領域拡大にフォーカス
82
+ * 新規開拓は考えない
83
+ * おんがえしさんのofrubyは\n
84
+ 1つのやり方のように思える
85
+
86
+ = 領域拡大
87
+
88
+ * 他の言語からの移行を促す
89
+ * 技術的な攻め方
90
+ * 多機能・高機能・高性能
91
+ * 心理的・政治的な攻め方
92
+ * 流行り(('note:(「みんな」使っていますよ)'))
93
+
94
+ = 領域拡大 - 提案方針
95
+
96
+ * 他の言語からの移行を促す
97
+ * 技術的な攻め方
98
+ * 多機能・高機能・高性能
99
+ * 心理的・政治的な攻め方
100
+ * ((*流行り*))(('note:(「みんな」使っていますよ)'))
101
+
102
+ = 流行っている状態
103
+
104
+ (('tag:center'))シェアを独占している
105
+
106
+ * キラーアプリがある
107
+ * 例:Ruby on Rails
108
+ * 有用アプリの多くがRuby製
109
+ * 例:Chef, Puppet, Vagrant, Serverspec
110
+
111
+ = キラーアプリは難しい
112
+
113
+ (('tag:center'))シェアを独占している
114
+
115
+ * (('del:キラーアプリがある'))
116
+ * 例:Ruby on Rails
117
+ * 有用アプリの多くがRuby製
118
+ * 例:Chef, Puppet, Vagrant, Serverspec
119
+
120
+ = 多有用アプリ状況を目指す
121
+
122
+ * 成功事例
123
+ * 後続が真似したくなればよい
124
+ * そんなに流行らなくてもよい
125
+ * 開発ノウハウ
126
+ * 後続が開発しやすくなる
127
+
128
+ = 領域拡大の対象分野案
129
+
130
+ (('tag:center'))ミドルウェア
131
+
132
+ * データストア(RDBMSやKVS)
133
+ * 検索システム
134
+ * メッセージキュー
135
+ * ログ活用(分析や監視)
136
+
137
+ = Rubyでミドルウェア
138
+
139
+ * 成功事例
140
+ * Fluentd
141
+ * 分散全文検索エンジンを開発中\n
142
+ (('note:(Droonga)'))
143
+ * 開発ノウハウ
144
+ * これから紹介
145
+ * Rubyで新規に開発しようという人の\n
146
+ 役に立てばよい
147
+
148
+ = 強みの選び方
149
+
150
+ * 最高速で勝負しない
151
+ * 多機能で勝負しない
152
+ * 使いやすさで勝負する
153
+
154
+ = 性能
155
+
156
+ * 最高速は目指さない
157
+ * C/C++とかJavaに負ける
158
+ * 十分な速度は目指す
159
+
160
+ = 高速化方法
161
+
162
+ * ボトルネックを確認!
163
+ * ボトルネックになりやすい箇所
164
+ * CPU
165
+ * ネットワーク
166
+ * なるかもしれない箇所
167
+ * I/Oとメモリー
168
+
169
+ = CPUネック
170
+
171
+ * マルチプロセス
172
+ * 1スレッド・パイプ・spawn
173
+ * Cで拡張ライブラリーを書く
174
+ * Fluentd: MessagePack
175
+ * Droonga: MessagePack, Groonga
176
+ * ヒント:JSONはとても重い
177
+
178
+ = ネットワークネック
179
+
180
+ * ノンブロッキングI/Oと多重化
181
+ * 拡張ライブラリー必須
182
+ * →Cool.io, nio4r, EventMachine
183
+ * 通信量を減らす
184
+ * データを減らす
185
+ * ムリなら圧縮(zlib, LZ4)
186
+
187
+ = I/Oとメモリーネック
188
+
189
+ * データストアをCで書く
190
+ * Droonga: Groonga
191
+ * ROMA: Tokyo Cabinet, SQLite3
192
+ * コアの機能もCで書く
193
+ * データコピーも減らしたいとき
194
+
195
+ = 強みの選び方 - 性能
196
+
197
+ * 最高速で勝負しない
198
+ * でも、十分な速度は目指す
199
+ * 使いものになればよい
200
+ * 多機能で勝負しない
201
+ * 使いやすさで勝負する
202
+
203
+ = 機能
204
+
205
+ * 多機能をウリにしない
206
+ * 多機能だと遅くなる(('note:ことが多い'))
207
+ * 組み込みの機能より拡張性
208
+ * →プラグイン機能
209
+ * Fluentd, ROMA, Droonga
210
+
211
+ = プラグイン機能のポイント
212
+
213
+ * 開発者向け
214
+ * 作りやすい
215
+ * テストしやすい
216
+ * リリースしやすい
217
+ * ユーザー向け
218
+ * インストールしやすい
219
+ * 設定しやすい
220
+
221
+ = 開発者向け
222
+
223
+ * 作りやすさ
224
+ * scaffoldいらずのAPI
225
+ * テストしやすさ
226
+ * ドライバー・スタブを提供
227
+ * リリースしやすさ
228
+ * gem
229
+
230
+ = ユーザー向け
231
+
232
+ * インストールのしやすさ
233
+ * Rubyをそんなに知らない前提なのに\n
234
+ 直接gemを使ってもらうのってアリ?
235
+ * 設定のしやすさ
236
+ * できるだけ少なく
237
+ * できればno configuration
238
+
239
+ = 強みの選び方 - 機能
240
+
241
+ * 最高速で勝負しない
242
+ * 多機能で勝負しない
243
+ * 組込機能よりも簡単拡張で勝負
244
+ * Ruby初心者でも開発できる簡単さ
245
+ * →プラグイン開発でRubyデビュー\n
246
+ (('note:(tDiaryスタイルのRuby浸透方法)'))
247
+ * 使いやすさで勝負する
248
+
249
+ = 使いやすさ
250
+
251
+ * 設定は少ないほうがよい
252
+ * 適切なデフォルト値
253
+ * 自動調整
254
+ * 起動するだけなら設定なしで
255
+ * 起動するまでが一番くじけやすい
256
+
257
+ = まとめ1
258
+
259
+ * 趣意書
260
+ * Rubyを浸透させたい!
261
+ * この発表
262
+ * 浸透促進案の提案
263
+ * ミドルウェア分野での促進案
264
+
265
+ = まとめ2
266
+
267
+ * 最高速で勝負しない
268
+ * 多機能で勝負しない
269
+ * 使いやすさで勝負する
@@ -0,0 +1,4 @@
1
+ @x_large_font_size *= 0.8
2
+ @title_slide_title_font_size = @x_large_font_size
3
+
4
+ include_theme("clear-code")
metadata ADDED
@@ -0,0 +1,79 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: rabbit-slide-kou-rwc-2014
3
+ version: !ruby/object:Gem::Version
4
+ version: 2014.11.13.0
5
+ platform: ruby
6
+ authors:
7
+ - Kouhei Sutou
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2014-10-30 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: rabbit
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: 2.0.2
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: 2.0.2
27
+ - !ruby/object:Gem::Dependency
28
+ name: clear-code
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ description: "この発表はミドルウェアの分野でもRubyの普及を促進することを目指します。Rubyで分散全文検索エンジンというミドルウェアを開発している経験から、Rubyで開発したミドルウェアを他の言語でのプロダクトと差別化するために気をつけるべきことを紹介します。この知見を使って、Rubyを活かしたミドルウェアがより多く開発されることを期待します。"
42
+ email:
43
+ - kou@clear-code.com
44
+ executables: []
45
+ extensions: []
46
+ extra_rdoc_files: []
47
+ files:
48
+ - ".rabbit"
49
+ - README.rd
50
+ - Rakefile
51
+ - config.yaml
52
+ - distributed-full-text-search-middleware-in-ruby.rab
53
+ - pdf/rwc-2014-distributed-full-text-search-middleware-in-ruby.pdf
54
+ - theme.rb
55
+ homepage: http://slide.rabbit-shocker.org/authors/kou/rwc-2014/
56
+ licenses:
57
+ - CC BY-SA 4.0
58
+ metadata: {}
59
+ post_install_message:
60
+ rdoc_options: []
61
+ require_paths:
62
+ - lib
63
+ required_ruby_version: !ruby/object:Gem::Requirement
64
+ requirements:
65
+ - - ">="
66
+ - !ruby/object:Gem::Version
67
+ version: '0'
68
+ required_rubygems_version: !ruby/object:Gem::Requirement
69
+ requirements:
70
+ - - ">="
71
+ - !ruby/object:Gem::Version
72
+ version: '0'
73
+ requirements: []
74
+ rubyforge_project:
75
+ rubygems_version: 2.2.2
76
+ signing_key:
77
+ specification_version: 4
78
+ summary: Rubyを使った分散全文検索ミドルウェア
79
+ test_files: []