rabbit-slide-kou-rwc-2014 2014.11.13.2 → 2014.11.13.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Rakefile +1 -1
- data/config.yaml +1 -1
- data/distributed-full-text-search-middleware-in-ruby.rab +201 -74
- data/images/droonga-model.svg +299 -0
- data/images/serverengine-model.svg +366 -0
- data/pdf/rwc-2014-distributed-full-text-search-middleware-in-ruby.pdf +0 -0
- data/theme.rb +3 -0
- metadata +4 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 296b8ed62cc21faccced4aa6d04fec2224bad386
|
4
|
+
data.tar.gz: 9ed7e1b4b05fee30d35520dc9c4ae3f057692721
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2724073566b910b1672501133f99bfa9a941df855451911ba2c5ee29d55f8887b0d207bbb12e3f53cc987c91f663b872f0a2d70c965d4ebec3d18464eef6c829
|
7
|
+
data.tar.gz: c130fe7bb55b105c7cb22c508eeb30f57bd940a0b27157feafd1324f483cb048c49c1056b135268726103ecc8ef88e260fd92ee599b1683b1ff788c97650819b
|
data/Rakefile
CHANGED
@@ -5,7 +5,7 @@ require "rabbit/task/slide"
|
|
5
5
|
spec = nil
|
6
6
|
Rabbit::Task::Slide.new do |task|
|
7
7
|
spec = task.spec
|
8
|
-
|
8
|
+
spec.files += Dir.glob("images/**/*.*")
|
9
9
|
# spec.files -= Dir.glob("private/**/*.*")
|
10
10
|
spec.add_runtime_dependency("clear-code")
|
11
11
|
end
|
data/config.yaml
CHANGED
@@ -9,31 +9,11 @@
|
|
9
9
|
: date
|
10
10
|
2014/11/13
|
11
11
|
: allotted-time
|
12
|
-
|
12
|
+
25m
|
13
13
|
: theme
|
14
14
|
.
|
15
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
|
-
= 趣意書 - まとめ
|
16
|
+
= 趣意書
|
37
17
|
|
38
18
|
Rubyを\n
|
39
19
|
普通の人々に\n
|
@@ -42,62 +22,32 @@ Rubyを\n
|
|
42
22
|
= この発表の内容
|
43
23
|
|
44
24
|
浸透促進案の\n
|
45
|
-
|
46
|
-
|
47
|
-
= 浸透の定義
|
25
|
+
提案
|
48
26
|
|
49
|
-
|
50
|
-
驚かない
|
27
|
+
= 浸透対象の普通の人々
|
51
28
|
|
52
|
-
|
29
|
+
* よくプログラムを書く人
|
30
|
+
* ただしRubyとは縁遠い
|
31
|
+
* たまにプログラムを書く人
|
32
|
+
* インフラの人とか
|
53
33
|
|
54
|
-
|
55
|
-
* いつもプログラムを書いている人
|
56
|
-
* たまにプログラムを書く人
|
57
|
-
* プログラムを使う人
|
58
|
-
* 非IT系
|
59
|
-
* こども
|
34
|
+
= 浸透方法
|
60
35
|
|
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
36
|
* 技術的な攻め方
|
90
37
|
* 多機能・高機能・高性能
|
38
|
+
* 他よりいいですよ
|
91
39
|
* 心理的・政治的な攻め方
|
92
|
-
* 流行り
|
40
|
+
* 流行り
|
41
|
+
* 「みんな」使っていますよ
|
93
42
|
|
94
|
-
=
|
43
|
+
= 提案方針
|
95
44
|
|
96
|
-
* 他の言語からの移行を促す
|
97
45
|
* 技術的な攻め方
|
98
46
|
* 多機能・高機能・高性能
|
47
|
+
* 他よりいいですよ
|
99
48
|
* 心理的・政治的な攻め方
|
100
|
-
* ((*流行り*))
|
49
|
+
* ((*流行り*))
|
50
|
+
* 「みんな」使っていますよ
|
101
51
|
|
102
52
|
= 流行っている状態
|
103
53
|
|
@@ -126,25 +76,29 @@ Rubyを使っても\n
|
|
126
76
|
* Ruby製アプリを優先して選ぶ
|
127
77
|
* 使っていることを広くアピール
|
128
78
|
|
129
|
-
= Ruby
|
79
|
+
= Ruby製アプリ作りを促す
|
130
80
|
|
131
81
|
* 成功事例
|
132
82
|
* 後続が真似したくなればよい
|
133
83
|
* そんなに流行らなくてもよい
|
134
84
|
* 開発ノウハウ
|
135
85
|
* 後続が開発しやすくなる
|
86
|
+
* ライブラリー化されていると尚よし
|
136
87
|
|
137
|
-
=
|
88
|
+
= どんなアプリがよいか
|
138
89
|
|
139
90
|
ミドルウェア\n
|
140
91
|
↓\n
|
141
|
-
|
142
|
-
|
92
|
+
自作のアプリは\n
|
93
|
+
好きな言語で書ける\n
|
94
|
+
(('note:(言語による採用障壁が低め)'))\n
|
95
|
+
(('note:(例:RabbitMQはErlang製だがアプリはErlang以外が多い)'))
|
143
96
|
|
144
97
|
= ミドルウェア
|
145
98
|
|
146
99
|
* データストア(RDBMSやKVS)
|
147
100
|
* 検索システム
|
101
|
+
* メールシステム
|
148
102
|
* メッセージキュー
|
149
103
|
* ログ活用(分析や監視)
|
150
104
|
|
@@ -160,6 +114,8 @@ Rubyを使っても\n
|
|
160
114
|
= 開発ノウハウ
|
161
115
|
|
162
116
|
* トレードオフと向き合う
|
117
|
+
* どこを強みにするか
|
118
|
+
* どこは競合と戦わないか
|
163
119
|
* 全方位で勝つことはできない
|
164
120
|
* Rubyだって速さじゃCに勝てない
|
165
121
|
* でも楽しさならCに勝てる
|
@@ -191,20 +147,186 @@ Rubyを使っても\n
|
|
191
147
|
|
192
148
|
* ((*処理を減らす*))
|
193
149
|
* マルチプロセス
|
194
|
-
*
|
150
|
+
* 後述
|
195
151
|
* Cで拡張ライブラリーを書く
|
196
152
|
* Fluentd: MessagePack
|
197
153
|
* Droonga: MessagePack, Groonga
|
198
154
|
|
155
|
+
= マルチプロセス実装
|
156
|
+
|
157
|
+
* ServerEngine(ライブラリー)
|
158
|
+
* nスレッド+シグナル+fork(('note:(spawn)'))
|
159
|
+
* Droonga
|
160
|
+
* 1スレッド+パイプ+spawn(('note: +イベントループ'))
|
161
|
+
* ↑の方がオススメ
|
162
|
+
|
163
|
+
= ServerEngine
|
164
|
+
|
165
|
+
# image
|
166
|
+
# src = images/serverengine-model.svg
|
167
|
+
# relative_height = 100
|
168
|
+
|
169
|
+
== スライドプロパティー
|
170
|
+
|
171
|
+
: enable-title-on-image
|
172
|
+
false
|
173
|
+
|
174
|
+
= ServerEngineモデル1
|
175
|
+
|
176
|
+
* 基本はSupervisor→Worker
|
177
|
+
* gracefulな再起動をしにくい
|
178
|
+
* 新Workerの準備完了を知れない
|
179
|
+
* Worker→Supervisorがない
|
180
|
+
* 無停止更新ができない
|
181
|
+
|
182
|
+
= ServerEngineモデル2
|
183
|
+
|
184
|
+
* スレッドは難しい
|
185
|
+
* エラーに気づいている?
|
186
|
+
* rescueしてる?joinしてる?
|
187
|
+
* シグナルは難しい
|
188
|
+
* 終了中に何度でもSIGINT
|
189
|
+
* 終了フラグを立てるくらいしか\n
|
190
|
+
できない
|
191
|
+
|
192
|
+
= ServerEngineモデル3
|
193
|
+
|
194
|
+
* ライブラリー化していてえらい
|
195
|
+
|
196
|
+
= Droonga
|
197
|
+
|
198
|
+
# image
|
199
|
+
# src = images/droonga-model.svg
|
200
|
+
# relative_height = 100
|
201
|
+
|
202
|
+
== スライドプロパティー
|
203
|
+
|
204
|
+
: enable-title-on-image
|
205
|
+
false
|
206
|
+
|
207
|
+
= Droongaモデル1
|
208
|
+
|
209
|
+
* 通信はSupervisor↔Worker
|
210
|
+
* gracefulな再起動をしやすい
|
211
|
+
* 新Workerが準備完了\n
|
212
|
+
→Supervisorに通知\n
|
213
|
+
→旧Workerをgracefulに終了
|
214
|
+
* 無停止更新ができる
|
215
|
+
|
216
|
+
= Droongaモデル2
|
217
|
+
|
218
|
+
* シンプルになる
|
219
|
+
* 1スレッド・シグナルなし
|
220
|
+
* stop中にn回stopがこない
|
221
|
+
* 終了処理中に割り込まれない
|
222
|
+
* イベント駆動は複雑
|
223
|
+
|
199
224
|
= ネットワークネック
|
200
225
|
|
201
226
|
* ノンブロッキングI/Oと多重化
|
202
227
|
* 拡張ライブラリー必須
|
203
228
|
* →Cool.io, nio4r, EventMachine
|
229
|
+
* イベント駆動なコードは複雑
|
204
230
|
* 通信量を減らす
|
205
231
|
* ((*データを減らす*))
|
206
232
|
* ムリなら圧縮(zlib, LZ4)
|
207
233
|
|
234
|
+
= イベント駆動なコード
|
235
|
+
|
236
|
+
# coderay ruby
|
237
|
+
|
238
|
+
Coolio::TCPServer.new(HOST, PORT) do |client|
|
239
|
+
n_reads = 0
|
240
|
+
client.on_read do |data|
|
241
|
+
p data
|
242
|
+
client.write(data)
|
243
|
+
n_reads += 1
|
244
|
+
if n_reads == 2
|
245
|
+
client.on_write_complete {client.close}
|
246
|
+
end
|
247
|
+
end
|
248
|
+
end
|
249
|
+
|
250
|
+
= 同期っぽく書けるAPI
|
251
|
+
|
252
|
+
# coderay ruby
|
253
|
+
|
254
|
+
Coolio::TCPServer.new(HOST, PORT) do |client|
|
255
|
+
Fiber.run do # <- 並行にしたい処理を明示
|
256
|
+
client.extend(Synchronizable) # <- 42行
|
257
|
+
2.times do
|
258
|
+
data = client.read
|
259
|
+
p data
|
260
|
+
client.write(data)
|
261
|
+
end
|
262
|
+
client.close
|
263
|
+
end
|
264
|
+
end
|
265
|
+
|
266
|
+
= 同期っぽく書けるAPI
|
267
|
+
|
268
|
+
* ユーザーがFiberを書くのが\n
|
269
|
+
カッコ悪い
|
270
|
+
* 同期っぽい中で\n
|
271
|
+
並行に処理したくなったら?
|
272
|
+
* pubsubっぽいことをしたいとか
|
273
|
+
|
274
|
+
= Promiseな世界
|
275
|
+
|
276
|
+
# coderay ruby
|
277
|
+
|
278
|
+
server.accept.then do |client|
|
279
|
+
client.read.then do |data|
|
280
|
+
p data
|
281
|
+
client.write(data)
|
282
|
+
end.then do
|
283
|
+
client.close
|
284
|
+
end
|
285
|
+
end.catch do |error|
|
286
|
+
end
|
287
|
+
|
288
|
+
= Promiseな世界
|
289
|
+
|
290
|
+
* 繰り返しを書きにくい
|
291
|
+
* メソッドチェーンがカッコ悪い
|
292
|
+
* catchがカッコ悪い
|
293
|
+
|
294
|
+
= API案:基本
|
295
|
+
|
296
|
+
# coderay ruby
|
297
|
+
|
298
|
+
# 同期っぽいAPI
|
299
|
+
clinet = server.accept
|
300
|
+
# 非同期API
|
301
|
+
server.accept do |request|
|
302
|
+
begin
|
303
|
+
client = request.socket
|
304
|
+
rescue
|
305
|
+
end
|
306
|
+
end
|
307
|
+
|
308
|
+
= API案:組み合わせ
|
309
|
+
|
310
|
+
# coderay ruby
|
311
|
+
|
312
|
+
server.accept do |request|
|
313
|
+
client = request.socket
|
314
|
+
2.times do
|
315
|
+
data = client.read
|
316
|
+
p data
|
317
|
+
client.write(data)
|
318
|
+
end
|
319
|
+
client.close
|
320
|
+
end
|
321
|
+
|
322
|
+
= API案
|
323
|
+
|
324
|
+
* Fiberが見えない
|
325
|
+
* 書き方の組み合わせが自然
|
326
|
+
* ブロックなし→同期っぽいAPI
|
327
|
+
* ブロックあり→非同期API
|
328
|
+
* 実装していない😜
|
329
|
+
|
208
330
|
= I/Oとメモリーネック
|
209
331
|
|
210
332
|
* データストアをCで書く
|
@@ -295,7 +417,6 @@ Rubyを使っても\n
|
|
295
417
|
= まとめ2:促進案
|
296
418
|
|
297
419
|
* たくさん作る
|
298
|
-
* ノウハウを広める
|
299
420
|
* たくさんの人が使う
|
300
421
|
* 他の方がよさそうでも\n
|
301
422
|
Ruby製を優先して使う
|
@@ -304,7 +425,9 @@ Rubyを使っても\n
|
|
304
425
|
= まとめ3:作るノウハウ
|
305
426
|
|
306
427
|
* 最高速で勝負しない
|
428
|
+
* ボトルネックにならなければよい
|
307
429
|
* 多機能で勝負しない
|
430
|
+
* 組込機能より拡張性
|
308
431
|
* 使いやすさで勝負する
|
309
432
|
|
310
433
|
= おまけ
|
@@ -324,7 +447,7 @@ Droongaの紹介
|
|
324
447
|
* 処理はプラグイン可能
|
325
448
|
* Rubyで簡単に(('note:(予定)'))書ける
|
326
449
|
* Groonga互換API提供
|
327
|
-
* Groonga =
|
450
|
+
* Groonga = 既存全文検索エンジン
|
328
451
|
|
329
452
|
= Droongaの実装:性能
|
330
453
|
|
@@ -353,4 +476,8 @@ Droongaの紹介
|
|
353
476
|
|
354
477
|
= Droonga
|
355
478
|
|
356
|
-
http://droonga.org
|
479
|
+
http://droonga.org/\n
|
480
|
+
\n
|
481
|
+
11/29(いい肉の日)\n
|
482
|
+
Groongaイベント開催(('note:(東京)'))\n
|
483
|
+
(('note:http://groonga.doorkeeper.jp/events/15816'))
|
@@ -0,0 +1,299 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
2
|
+
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
3
|
+
|
4
|
+
<svg
|
5
|
+
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
6
|
+
xmlns:cc="http://creativecommons.org/ns#"
|
7
|
+
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
8
|
+
xmlns:svg="http://www.w3.org/2000/svg"
|
9
|
+
xmlns="http://www.w3.org/2000/svg"
|
10
|
+
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
11
|
+
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
12
|
+
width="595.30145"
|
13
|
+
height="392.28558"
|
14
|
+
id="svg2"
|
15
|
+
version="1.1"
|
16
|
+
inkscape:version="0.48.5 r10040"
|
17
|
+
sodipodi:docname="droonga-model.svg">
|
18
|
+
<defs
|
19
|
+
id="defs4">
|
20
|
+
<marker
|
21
|
+
inkscape:stockid="Arrow1Mstart"
|
22
|
+
orient="auto"
|
23
|
+
refY="0.0"
|
24
|
+
refX="0.0"
|
25
|
+
id="Arrow1Mstart"
|
26
|
+
style="overflow:visible">
|
27
|
+
<path
|
28
|
+
id="path4214"
|
29
|
+
d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
|
30
|
+
style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt"
|
31
|
+
transform="scale(0.4) translate(10,0)" />
|
32
|
+
</marker>
|
33
|
+
<marker
|
34
|
+
inkscape:stockid="Arrow1Mend"
|
35
|
+
orient="auto"
|
36
|
+
refY="0"
|
37
|
+
refX="0"
|
38
|
+
id="Arrow1Mend"
|
39
|
+
style="overflow:visible">
|
40
|
+
<path
|
41
|
+
id="path3859"
|
42
|
+
d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
|
43
|
+
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt"
|
44
|
+
transform="matrix(-0.4,0,0,-0.4,-4,0)"
|
45
|
+
inkscape:connector-curvature="0" />
|
46
|
+
</marker>
|
47
|
+
</defs>
|
48
|
+
<sodipodi:namedview
|
49
|
+
id="base"
|
50
|
+
pagecolor="#ffffff"
|
51
|
+
bordercolor="#666666"
|
52
|
+
borderopacity="1.0"
|
53
|
+
inkscape:pageopacity="0.0"
|
54
|
+
inkscape:pageshadow="2"
|
55
|
+
inkscape:zoom="0.70710678"
|
56
|
+
inkscape:cx="662.27779"
|
57
|
+
inkscape:cy="403.43322"
|
58
|
+
inkscape:document-units="px"
|
59
|
+
inkscape:current-layer="layer1"
|
60
|
+
showgrid="false"
|
61
|
+
inkscape:window-width="1282"
|
62
|
+
inkscape:window-height="906"
|
63
|
+
inkscape:window-x="2444"
|
64
|
+
inkscape:window-y="29"
|
65
|
+
inkscape:window-maximized="0"
|
66
|
+
fit-margin-top="10"
|
67
|
+
fit-margin-left="10"
|
68
|
+
fit-margin-right="10"
|
69
|
+
fit-margin-bottom="10" />
|
70
|
+
<metadata
|
71
|
+
id="metadata7">
|
72
|
+
<rdf:RDF>
|
73
|
+
<cc:Work
|
74
|
+
rdf:about="">
|
75
|
+
<dc:format>image/svg+xml</dc:format>
|
76
|
+
<dc:type
|
77
|
+
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
78
|
+
<dc:title />
|
79
|
+
</cc:Work>
|
80
|
+
</rdf:RDF>
|
81
|
+
</metadata>
|
82
|
+
<g
|
83
|
+
inkscape:label="レイヤー 1"
|
84
|
+
inkscape:groupmode="layer"
|
85
|
+
id="layer1"
|
86
|
+
transform="translate(-23.285713,-74.344803)">
|
87
|
+
<rect
|
88
|
+
style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#204a87;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
|
89
|
+
id="rect2985"
|
90
|
+
width="220"
|
91
|
+
height="237.14285"
|
92
|
+
x="34.285713"
|
93
|
+
y="206.6479"
|
94
|
+
rx="5" />
|
95
|
+
<text
|
96
|
+
xml:space="preserve"
|
97
|
+
style="font-size:32px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
|
98
|
+
x="59.999996"
|
99
|
+
y="283.67981"
|
100
|
+
id="text2987"
|
101
|
+
sodipodi:linespacing="125%"><tspan
|
102
|
+
sodipodi:role="line"
|
103
|
+
id="tspan2989"
|
104
|
+
x="59.999996"
|
105
|
+
y="283.67981">Supervisor</tspan></text>
|
106
|
+
<rect
|
107
|
+
rx="5"
|
108
|
+
y="172.54739"
|
109
|
+
x="420.8837"
|
110
|
+
height="163.08299"
|
111
|
+
width="130.70349"
|
112
|
+
id="rect3063"
|
113
|
+
style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#204a87;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
|
114
|
+
<text
|
115
|
+
xml:space="preserve"
|
116
|
+
style="font-size:32px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
|
117
|
+
x="439.74088"
|
118
|
+
y="206.99771"
|
119
|
+
id="text2993"
|
120
|
+
sodipodi:linespacing="125%"><tspan
|
121
|
+
sodipodi:role="line"
|
122
|
+
id="tspan2995"
|
123
|
+
x="439.74088"
|
124
|
+
y="206.99771">Worker</tspan></text>
|
125
|
+
<text
|
126
|
+
xml:space="preserve"
|
127
|
+
style="font-size:32px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
|
128
|
+
x="290.98492"
|
129
|
+
y="221.79292"
|
130
|
+
id="text2997"
|
131
|
+
sodipodi:linespacing="125%"><tspan
|
132
|
+
sodipodi:role="line"
|
133
|
+
id="tspan2999"
|
134
|
+
x="290.98492"
|
135
|
+
y="221.79292">spawn</tspan></text>
|
136
|
+
<rect
|
137
|
+
style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#204a87;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
|
138
|
+
id="rect3022"
|
139
|
+
width="55.142883"
|
140
|
+
height="50"
|
141
|
+
x="189.85652"
|
142
|
+
y="85.344803"
|
143
|
+
rx="5" />
|
144
|
+
<text
|
145
|
+
sodipodi:linespacing="125%"
|
146
|
+
id="text3024"
|
147
|
+
y="121.05922"
|
148
|
+
x="66.999336"
|
149
|
+
style="font-size:32px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
|
150
|
+
xml:space="preserve"><tspan
|
151
|
+
y="121.05922"
|
152
|
+
x="66.999336"
|
153
|
+
id="tspan3026"
|
154
|
+
sodipodi:role="line">Process</tspan></text>
|
155
|
+
<text
|
156
|
+
xml:space="preserve"
|
157
|
+
style="font-size:32px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
|
158
|
+
x="299.87509"
|
159
|
+
y="122.60308"
|
160
|
+
id="text3028"
|
161
|
+
sodipodi:linespacing="125%"><tspan
|
162
|
+
sodipodi:role="line"
|
163
|
+
x="299.87509"
|
164
|
+
y="122.60308"
|
165
|
+
id="tspan4658">Event loop</tspan></text>
|
166
|
+
<text
|
167
|
+
sodipodi:linespacing="125%"
|
168
|
+
id="text4294"
|
169
|
+
y="359.75641"
|
170
|
+
x="277.13925"
|
171
|
+
style="font-size:32px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
|
172
|
+
xml:space="preserve"><tspan
|
173
|
+
y="359.75641"
|
174
|
+
x="277.13925"
|
175
|
+
id="tspan4296"
|
176
|
+
sodipodi:role="line">command</tspan></text>
|
177
|
+
<rect
|
178
|
+
rx="5"
|
179
|
+
y="218.89105"
|
180
|
+
x="461.40274"
|
181
|
+
height="50"
|
182
|
+
width="55.142883"
|
183
|
+
id="rect4668"
|
184
|
+
style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#a40000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
|
185
|
+
<rect
|
186
|
+
style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#204a87;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
|
187
|
+
id="rect4298"
|
188
|
+
width="130.70349"
|
189
|
+
height="163.08299"
|
190
|
+
x="448.8837"
|
191
|
+
y="232.54739"
|
192
|
+
rx="5" />
|
193
|
+
<text
|
194
|
+
sodipodi:linespacing="125%"
|
195
|
+
id="text4300"
|
196
|
+
y="266.99771"
|
197
|
+
x="467.74088"
|
198
|
+
style="font-size:32px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
|
199
|
+
xml:space="preserve"><tspan
|
200
|
+
y="266.99771"
|
201
|
+
x="467.74088"
|
202
|
+
id="tspan4302"
|
203
|
+
sodipodi:role="line">Worker</tspan></text>
|
204
|
+
<rect
|
205
|
+
style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#a40000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
|
206
|
+
id="rect4666"
|
207
|
+
width="55.142883"
|
208
|
+
height="50"
|
209
|
+
x="483.40274"
|
210
|
+
y="280.89105"
|
211
|
+
rx="5" />
|
212
|
+
<rect
|
213
|
+
rx="5"
|
214
|
+
y="292.54739"
|
215
|
+
x="476.8837"
|
216
|
+
height="163.08299"
|
217
|
+
width="130.70349"
|
218
|
+
id="rect4310"
|
219
|
+
style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#204a87;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
|
220
|
+
<text
|
221
|
+
xml:space="preserve"
|
222
|
+
style="font-size:32px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
|
223
|
+
x="495.74084"
|
224
|
+
y="326.99771"
|
225
|
+
id="text4312"
|
226
|
+
sodipodi:linespacing="125%"><tspan
|
227
|
+
sodipodi:role="line"
|
228
|
+
id="tspan4314"
|
229
|
+
x="495.74084"
|
230
|
+
y="326.99771">Worker</tspan></text>
|
231
|
+
<path
|
232
|
+
style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow1Mend)"
|
233
|
+
d="m 265,231.36218 139,0"
|
234
|
+
id="path4361"
|
235
|
+
inkscape:connector-curvature="0" />
|
236
|
+
<path
|
237
|
+
inkscape:connector-curvature="0"
|
238
|
+
id="path4545"
|
239
|
+
d="m 405.5,371.36218 -139,0"
|
240
|
+
style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow1Mend);marker-start:url(#Arrow1Mstart)" />
|
241
|
+
<rect
|
242
|
+
rx="5"
|
243
|
+
y="85.344803"
|
244
|
+
x="472.08905"
|
245
|
+
height="50"
|
246
|
+
width="55.142883"
|
247
|
+
id="rect4560"
|
248
|
+
style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#a40000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
|
249
|
+
<text
|
250
|
+
xml:space="preserve"
|
251
|
+
style="font-size:32px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
|
252
|
+
x="299.56345"
|
253
|
+
y="262.96283"
|
254
|
+
id="text3219"
|
255
|
+
sodipodi:linespacing="125%"><tspan
|
256
|
+
sodipodi:role="line"
|
257
|
+
id="tspan3221"
|
258
|
+
x="299.56345"
|
259
|
+
y="262.96283">pipe</tspan></text>
|
260
|
+
<text
|
261
|
+
sodipodi:linespacing="125%"
|
262
|
+
id="text4650"
|
263
|
+
y="402.96283"
|
264
|
+
x="279.56345"
|
265
|
+
style="font-size:32px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
|
266
|
+
xml:space="preserve"><tspan
|
267
|
+
y="402.96283"
|
268
|
+
x="279.56345"
|
269
|
+
id="tspan4652"
|
270
|
+
sodipodi:role="line">(ready)</tspan></text>
|
271
|
+
<text
|
272
|
+
xml:space="preserve"
|
273
|
+
style="font-size:32px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
|
274
|
+
x="287.56345"
|
275
|
+
y="436.96283"
|
276
|
+
id="text4654"
|
277
|
+
sodipodi:linespacing="125%"><tspan
|
278
|
+
sodipodi:role="line"
|
279
|
+
id="tspan4656"
|
280
|
+
x="287.56345"
|
281
|
+
y="436.96283">(stop)</tspan></text>
|
282
|
+
<rect
|
283
|
+
style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#a40000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
|
284
|
+
id="rect4662"
|
285
|
+
width="55.142883"
|
286
|
+
height="50"
|
287
|
+
x="117.12144"
|
288
|
+
y="317.27582"
|
289
|
+
rx="5" />
|
290
|
+
<rect
|
291
|
+
rx="5"
|
292
|
+
y="348.63116"
|
293
|
+
x="514.51544"
|
294
|
+
height="50"
|
295
|
+
width="55.142883"
|
296
|
+
id="rect4664"
|
297
|
+
style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#a40000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
|
298
|
+
</g>
|
299
|
+
</svg>
|
@@ -0,0 +1,366 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
2
|
+
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
3
|
+
|
4
|
+
<svg
|
5
|
+
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
6
|
+
xmlns:cc="http://creativecommons.org/ns#"
|
7
|
+
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
8
|
+
xmlns:svg="http://www.w3.org/2000/svg"
|
9
|
+
xmlns="http://www.w3.org/2000/svg"
|
10
|
+
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
11
|
+
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
12
|
+
width="595.30145"
|
13
|
+
height="392.28558"
|
14
|
+
id="svg2"
|
15
|
+
version="1.1"
|
16
|
+
inkscape:version="0.48.5 r10040"
|
17
|
+
sodipodi:docname="fluentd-model.svg">
|
18
|
+
<defs
|
19
|
+
id="defs4">
|
20
|
+
<marker
|
21
|
+
inkscape:stockid="Arrow1Mend"
|
22
|
+
orient="auto"
|
23
|
+
refY="0"
|
24
|
+
refX="0"
|
25
|
+
id="Arrow1Mend"
|
26
|
+
style="overflow:visible">
|
27
|
+
<path
|
28
|
+
id="path3859"
|
29
|
+
d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
|
30
|
+
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt"
|
31
|
+
transform="matrix(-0.4,0,0,-0.4,-4,0)"
|
32
|
+
inkscape:connector-curvature="0" />
|
33
|
+
</marker>
|
34
|
+
</defs>
|
35
|
+
<sodipodi:namedview
|
36
|
+
id="base"
|
37
|
+
pagecolor="#ffffff"
|
38
|
+
bordercolor="#666666"
|
39
|
+
borderopacity="1.0"
|
40
|
+
inkscape:pageopacity="0.0"
|
41
|
+
inkscape:pageshadow="2"
|
42
|
+
inkscape:zoom="0.70710678"
|
43
|
+
inkscape:cx="607.13933"
|
44
|
+
inkscape:cy="237.28517"
|
45
|
+
inkscape:document-units="px"
|
46
|
+
inkscape:current-layer="layer1"
|
47
|
+
showgrid="false"
|
48
|
+
inkscape:window-width="1282"
|
49
|
+
inkscape:window-height="906"
|
50
|
+
inkscape:window-x="2444"
|
51
|
+
inkscape:window-y="29"
|
52
|
+
inkscape:window-maximized="0"
|
53
|
+
fit-margin-top="10"
|
54
|
+
fit-margin-left="10"
|
55
|
+
fit-margin-right="10"
|
56
|
+
fit-margin-bottom="10" />
|
57
|
+
<metadata
|
58
|
+
id="metadata7">
|
59
|
+
<rdf:RDF>
|
60
|
+
<cc:Work
|
61
|
+
rdf:about="">
|
62
|
+
<dc:format>image/svg+xml</dc:format>
|
63
|
+
<dc:type
|
64
|
+
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
65
|
+
<dc:title></dc:title>
|
66
|
+
</cc:Work>
|
67
|
+
</rdf:RDF>
|
68
|
+
</metadata>
|
69
|
+
<g
|
70
|
+
inkscape:label="レイヤー 1"
|
71
|
+
inkscape:groupmode="layer"
|
72
|
+
id="layer1"
|
73
|
+
transform="translate(-23.285713,-74.344803)">
|
74
|
+
<rect
|
75
|
+
style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#204a87;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
|
76
|
+
id="rect2985"
|
77
|
+
width="220"
|
78
|
+
height="237.14285"
|
79
|
+
x="34.285713"
|
80
|
+
y="206.6479"
|
81
|
+
rx="5" />
|
82
|
+
<text
|
83
|
+
xml:space="preserve"
|
84
|
+
style="font-size:32px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
|
85
|
+
x="59.999996"
|
86
|
+
y="245.67981"
|
87
|
+
id="text2987"
|
88
|
+
sodipodi:linespacing="125%"><tspan
|
89
|
+
sodipodi:role="line"
|
90
|
+
id="tspan2989"
|
91
|
+
x="59.999996"
|
92
|
+
y="245.67981">Supervisor</tspan></text>
|
93
|
+
<rect
|
94
|
+
rx="5"
|
95
|
+
y="172.54739"
|
96
|
+
x="420.8837"
|
97
|
+
height="163.08299"
|
98
|
+
width="130.70349"
|
99
|
+
id="rect3063"
|
100
|
+
style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#204a87;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
|
101
|
+
<text
|
102
|
+
xml:space="preserve"
|
103
|
+
style="font-size:32px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
|
104
|
+
x="439.74088"
|
105
|
+
y="206.99771"
|
106
|
+
id="text2993"
|
107
|
+
sodipodi:linespacing="125%"><tspan
|
108
|
+
sodipodi:role="line"
|
109
|
+
id="tspan2995"
|
110
|
+
x="439.74088"
|
111
|
+
y="206.99771">Worker</tspan></text>
|
112
|
+
<text
|
113
|
+
xml:space="preserve"
|
114
|
+
style="font-size:32px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
|
115
|
+
x="304.98492"
|
116
|
+
y="221.79292"
|
117
|
+
id="text2997"
|
118
|
+
sodipodi:linespacing="125%"><tspan
|
119
|
+
sodipodi:role="line"
|
120
|
+
id="tspan2999"
|
121
|
+
x="304.98492"
|
122
|
+
y="221.79292">fork</tspan></text>
|
123
|
+
<text
|
124
|
+
xml:space="preserve"
|
125
|
+
style="font-size:32px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
|
126
|
+
x="287.45297"
|
127
|
+
y="401.95447"
|
128
|
+
id="text3001"
|
129
|
+
sodipodi:linespacing="125%"><tspan
|
130
|
+
sodipodi:role="line"
|
131
|
+
id="tspan3003"
|
132
|
+
x="287.45297"
|
133
|
+
y="401.95447">signal</tspan></text>
|
134
|
+
<rect
|
135
|
+
style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#4e9a06;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
|
136
|
+
id="rect3005"
|
137
|
+
width="167.14285"
|
138
|
+
height="50"
|
139
|
+
x="57.142857"
|
140
|
+
y="264.88501"
|
141
|
+
rx="5" />
|
142
|
+
<rect
|
143
|
+
style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#204a87;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
|
144
|
+
id="rect3022"
|
145
|
+
width="55.142883"
|
146
|
+
height="50"
|
147
|
+
x="249.85652"
|
148
|
+
y="85.344803"
|
149
|
+
rx="5" />
|
150
|
+
<text
|
151
|
+
sodipodi:linespacing="125%"
|
152
|
+
id="text3024"
|
153
|
+
y="121.05922"
|
154
|
+
x="126.99934"
|
155
|
+
style="font-size:32px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
|
156
|
+
xml:space="preserve"><tspan
|
157
|
+
y="121.05922"
|
158
|
+
x="126.99934"
|
159
|
+
id="tspan3026"
|
160
|
+
sodipodi:role="line">Process</tspan></text>
|
161
|
+
<text
|
162
|
+
xml:space="preserve"
|
163
|
+
style="font-size:32px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
|
164
|
+
x="343.87509"
|
165
|
+
y="122.60308"
|
166
|
+
id="text3028"
|
167
|
+
sodipodi:linespacing="125%"><tspan
|
168
|
+
sodipodi:role="line"
|
169
|
+
id="tspan3030"
|
170
|
+
x="343.87509"
|
171
|
+
y="122.60308">Thread</tspan></text>
|
172
|
+
<text
|
173
|
+
xml:space="preserve"
|
174
|
+
style="font-size:32px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
|
175
|
+
x="85.984802"
|
176
|
+
y="300.8696"
|
177
|
+
id="text3032"
|
178
|
+
sodipodi:linespacing="125%"><tspan
|
179
|
+
sodipodi:role="line"
|
180
|
+
id="tspan3034"
|
181
|
+
x="85.984802"
|
182
|
+
y="300.8696">Logging</tspan></text>
|
183
|
+
<rect
|
184
|
+
rx="5"
|
185
|
+
y="324.88501"
|
186
|
+
x="57.142857"
|
187
|
+
height="50"
|
188
|
+
width="167.14285"
|
189
|
+
id="rect3036"
|
190
|
+
style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#4e9a06;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
|
191
|
+
<rect
|
192
|
+
style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#4e9a06;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
|
193
|
+
id="rect3038"
|
194
|
+
width="167.14285"
|
195
|
+
height="50"
|
196
|
+
x="57.142857"
|
197
|
+
y="384.88501"
|
198
|
+
rx="5" />
|
199
|
+
<text
|
200
|
+
sodipodi:linespacing="125%"
|
201
|
+
id="text3040"
|
202
|
+
y="361.83914"
|
203
|
+
x="70.832512"
|
204
|
+
style="font-size:32px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
|
205
|
+
xml:space="preserve"><tspan
|
206
|
+
y="361.83914"
|
207
|
+
x="70.832512"
|
208
|
+
id="tspan3042"
|
209
|
+
sodipodi:role="line">Heartbeat</tspan></text>
|
210
|
+
<text
|
211
|
+
xml:space="preserve"
|
212
|
+
style="font-size:32px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
|
213
|
+
x="96.974648"
|
214
|
+
y="420.00665"
|
215
|
+
id="text3044"
|
216
|
+
sodipodi:linespacing="125%"><tspan
|
217
|
+
sodipodi:role="line"
|
218
|
+
x="96.974648"
|
219
|
+
y="420.00665"
|
220
|
+
id="tspan3048">Signal</tspan></text>
|
221
|
+
<rect
|
222
|
+
style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#4e9a06;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
|
223
|
+
id="rect3067"
|
224
|
+
width="102.35905"
|
225
|
+
height="30.620224"
|
226
|
+
x="434.74088"
|
227
|
+
y="216.54738"
|
228
|
+
rx="5" />
|
229
|
+
<rect
|
230
|
+
rx="5"
|
231
|
+
y="254.54738"
|
232
|
+
x="434.74088"
|
233
|
+
height="30.620224"
|
234
|
+
width="102.35905"
|
235
|
+
id="rect3072"
|
236
|
+
style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#4e9a06;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
|
237
|
+
<rect
|
238
|
+
style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#4e9a06;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
|
239
|
+
id="rect3074"
|
240
|
+
width="102.35905"
|
241
|
+
height="30.620224"
|
242
|
+
x="434.74088"
|
243
|
+
y="292.54739"
|
244
|
+
rx="5" />
|
245
|
+
<text
|
246
|
+
sodipodi:linespacing="125%"
|
247
|
+
id="text4294"
|
248
|
+
y="309.75641"
|
249
|
+
x="267.13925"
|
250
|
+
style="font-size:32px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
|
251
|
+
xml:space="preserve"><tspan
|
252
|
+
y="309.75641"
|
253
|
+
x="267.13925"
|
254
|
+
id="tspan4296"
|
255
|
+
sodipodi:role="line">heartbeat</tspan></text>
|
256
|
+
<rect
|
257
|
+
style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#204a87;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
|
258
|
+
id="rect4298"
|
259
|
+
width="130.70349"
|
260
|
+
height="163.08299"
|
261
|
+
x="448.8837"
|
262
|
+
y="232.54739"
|
263
|
+
rx="5" />
|
264
|
+
<text
|
265
|
+
sodipodi:linespacing="125%"
|
266
|
+
id="text4300"
|
267
|
+
y="266.99771"
|
268
|
+
x="467.74088"
|
269
|
+
style="font-size:32px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
|
270
|
+
xml:space="preserve"><tspan
|
271
|
+
y="266.99771"
|
272
|
+
x="467.74088"
|
273
|
+
id="tspan4302"
|
274
|
+
sodipodi:role="line">Worker</tspan></text>
|
275
|
+
<rect
|
276
|
+
rx="5"
|
277
|
+
y="276.54736"
|
278
|
+
x="462.74088"
|
279
|
+
height="30.620224"
|
280
|
+
width="102.35905"
|
281
|
+
id="rect4304"
|
282
|
+
style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#4e9a06;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
|
283
|
+
<rect
|
284
|
+
style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#4e9a06;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
|
285
|
+
id="rect4306"
|
286
|
+
width="102.35905"
|
287
|
+
height="30.620224"
|
288
|
+
x="462.74088"
|
289
|
+
y="314.54736"
|
290
|
+
rx="5" />
|
291
|
+
<rect
|
292
|
+
rx="5"
|
293
|
+
y="352.54739"
|
294
|
+
x="462.74088"
|
295
|
+
height="30.620224"
|
296
|
+
width="102.35905"
|
297
|
+
id="rect4308"
|
298
|
+
style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#4e9a06;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
|
299
|
+
<rect
|
300
|
+
rx="5"
|
301
|
+
y="292.54739"
|
302
|
+
x="476.8837"
|
303
|
+
height="163.08299"
|
304
|
+
width="130.70349"
|
305
|
+
id="rect4310"
|
306
|
+
style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#204a87;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
|
307
|
+
<text
|
308
|
+
xml:space="preserve"
|
309
|
+
style="font-size:32px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
|
310
|
+
x="495.74084"
|
311
|
+
y="326.99771"
|
312
|
+
id="text4312"
|
313
|
+
sodipodi:linespacing="125%"><tspan
|
314
|
+
sodipodi:role="line"
|
315
|
+
id="tspan4314"
|
316
|
+
x="495.74084"
|
317
|
+
y="326.99771">Worker</tspan></text>
|
318
|
+
<rect
|
319
|
+
style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#4e9a06;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
|
320
|
+
id="rect4316"
|
321
|
+
width="102.35905"
|
322
|
+
height="30.620224"
|
323
|
+
x="490.74084"
|
324
|
+
y="336.54736"
|
325
|
+
rx="5" />
|
326
|
+
<rect
|
327
|
+
rx="5"
|
328
|
+
y="374.54736"
|
329
|
+
x="490.74084"
|
330
|
+
height="30.620224"
|
331
|
+
width="102.35905"
|
332
|
+
id="rect4318"
|
333
|
+
style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#4e9a06;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
|
334
|
+
<rect
|
335
|
+
style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#4e9a06;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
|
336
|
+
id="rect4320"
|
337
|
+
width="102.35905"
|
338
|
+
height="30.620224"
|
339
|
+
x="490.74084"
|
340
|
+
y="412.54739"
|
341
|
+
rx="5" />
|
342
|
+
<path
|
343
|
+
style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow1Mend)"
|
344
|
+
d="m 265,231.36218 139,0"
|
345
|
+
id="path4361"
|
346
|
+
inkscape:connector-curvature="0" />
|
347
|
+
<path
|
348
|
+
inkscape:connector-curvature="0"
|
349
|
+
id="path4545"
|
350
|
+
d="m 405.5,331.36218 -139,0"
|
351
|
+
style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow1Mend)" />
|
352
|
+
<path
|
353
|
+
style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow1Mend)"
|
354
|
+
d="m 265,419.36218 139,0"
|
355
|
+
id="path4547"
|
356
|
+
inkscape:connector-curvature="0" />
|
357
|
+
<rect
|
358
|
+
rx="5"
|
359
|
+
y="85.344803"
|
360
|
+
x="452.08905"
|
361
|
+
height="50"
|
362
|
+
width="55.142883"
|
363
|
+
id="rect4560"
|
364
|
+
style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#4e9a06;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
|
365
|
+
</g>
|
366
|
+
</svg>
|
Binary file
|
data/theme.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rabbit-slide-kou-rwc-2014
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2014.11.13.
|
4
|
+
version: 2014.11.13.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Kouhei Sutou
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-11-
|
11
|
+
date: 2014-11-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rabbit
|
@@ -50,6 +50,8 @@ files:
|
|
50
50
|
- Rakefile
|
51
51
|
- config.yaml
|
52
52
|
- distributed-full-text-search-middleware-in-ruby.rab
|
53
|
+
- images/droonga-model.svg
|
54
|
+
- images/serverengine-model.svg
|
53
55
|
- pdf/rwc-2014-distributed-full-text-search-middleware-in-ruby.pdf
|
54
56
|
- theme.rb
|
55
57
|
homepage: http://slide.rabbit-shocker.org/authors/kou/rwc-2014/
|