rabbit-slide-kou-kansai-rubykaigi-2017 2017.5.27.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 66482ba48e1802090fae1149bb6fe0357731e5c0
4
+ data.tar.gz: 31ea06b764d5f9e1fa86c01a3fdc3f89ddc34357
5
+ SHA512:
6
+ metadata.gz: 045a3c0f243966045b7fed8b7e64210c439833721076967935621e1d21b435394fe388188705d601b3cdc436eb836429e1b4ffd3422cf2090e578380f862b044
7
+ data.tar.gz: 9e6dc6ba2fe1a45cc77101ebc156d6119b4d673f65b4d37654e4a3ed9e3932fdc362aaf590645cddd261b1dbe9539bc2e20c73ce125d9968805b96c28bf62a19
data/.rabbit ADDED
@@ -0,0 +1 @@
1
+ clear-code-inc.rab
data/README.rd ADDED
@@ -0,0 +1,46 @@
1
+ = 株式会社クリアコード
2
+
3
+ 関西Ruby会議2017のテーマは「Ruby Community and Ruby Business」なので、創業当時からRuby関連の人たちと関わりながらRubyを活かしたビジネスをしてきた私たちの会社「株式会社クリアコード」の話をします。
4
+
5
+ == ライセンス
6
+
7
+ === スライド
8
+
9
+ CC BY-SA 4.0
10
+
11
+ 原著作者名は以下の通りです。
12
+
13
+ * 須藤功平(またはKouhei Sutou)
14
+
15
+ ==== クリアコード関連の画像
16
+
17
+ 以下の画像がクリアコード関連の画像です。
18
+
19
+ * images/clear-code.svg
20
+
21
+ CC BY-SA 4.0
22
+
23
+ 原著作者名は以下の通りです。
24
+
25
+ * クリアコード
26
+
27
+ == 作者向け
28
+
29
+ === 表示
30
+
31
+ rake
32
+
33
+ === 公開
34
+
35
+ rake publish
36
+
37
+ == 閲覧者向け
38
+
39
+ === インストール
40
+
41
+ gem install rabbit-slide-kou-kansai-rubykaigi-2017
42
+
43
+ === 表示
44
+
45
+ rabbit rabbit-slide-kou-kansai-rubykaigi-2017.gem
46
+
data/Rakefile ADDED
@@ -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("images/**/*.*")
9
+ # spec.files -= Dir.glob("private/**/*.*")
10
+ spec.add_runtime_dependency("rabbit-theme-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,498 @@
1
+ = 株式会社クリアコード
2
+
3
+ : author
4
+ 須藤功平
5
+ : content-source
6
+ 関西Ruby会議2017
7
+ : date
8
+ 2017-05-27
9
+ : allotted-time
10
+ 60m
11
+ : theme
12
+ clear-code
13
+
14
+ = 内容
15
+
16
+ * ストーリーはあまりない
17
+ * テーマに関係する話を集めた
18
+ * 聞く人それぞれへの期待:
19
+ * 参考になる何かが見つかるといいな
20
+
21
+ = テーマ
22
+
23
+ コミュニティー\n
24
+ と\n
25
+ ビジネス
26
+
27
+ = 題材
28
+
29
+ # image
30
+ # src = images/clear-code.svg
31
+ # relative_width = 100
32
+ # reflect_ratio = 0.5
33
+
34
+ == スライドプロパティー
35
+
36
+ : enable-title-on-image
37
+ false
38
+
39
+ = クリアコード
40
+
41
+ * 設立11年目の会社
42
+ * 業務:受託開発と技術サポート
43
+ * 小さな会社:9人(('note:(募集してはいる)'))
44
+
45
+ = 大事にしていること
46
+
47
+ (('tag:center'))
48
+ (('tag:large'))
49
+ フリーソフトウェアの推進
50
+
51
+ (('tag:center'))
52
+
53
+
54
+ (('tag:center'))
55
+ (('tag:large'))
56
+ 稼ぐこと
57
+
58
+ (('tag:center'))
59
+
60
+
61
+ (('tag:center'))
62
+ (('tag:x-large'))
63
+ 両立
64
+
65
+ = 推進するだけだとダメ
66
+
67
+ * 稼がないと継続できない
68
+ * そうなると推進し続けられない
69
+
70
+ = 稼ぐだけだとダメ
71
+
72
+ * クリアコードをやっている\n
73
+ 意味がない
74
+ * 他の開発会社でいいよね
75
+
76
+ = 両立の実現に向けて
77
+
78
+ * クリアコードが活用するもの
79
+ * フリーソフトウェア開発で学んだ事\n
80
+ (('note:理念:https://www.clear-code.com/philosophy/'))
81
+ * コミュニティーで学んだことを\n
82
+ ビジネスに活かしている\n
83
+ (('note:関西Ruby会議2017のテーマにあっていそう!'))
84
+
85
+ = 学んだこと1
86
+
87
+ 問題は\n
88
+ upstreamで直す
89
+
90
+ = 考えてみよう
91
+
92
+ (('tag:center'))
93
+ (('tag:margin-bottom * 2'))
94
+ 使用ライブラリーに問題発見!\n
95
+ (('note:(たとえばRailsとかActiveなんとかとか)'))\n
96
+ あなたならどうする!?
97
+
98
+ (1) 手元で回避
99
+ (2) 別のライブラリーを探す
100
+ (3) そのライブラリーを直す
101
+
102
+ = クリアコードのスタイル
103
+
104
+ (('tag:center'))
105
+ 3. そのライブラリーを直す\n
106
+ (('note:(そうじゃないときもあるけど基本的にはそう)'))
107
+
108
+ * 自コードのメンテ性アップ
109
+ * 回避コードの独自メンテが不要
110
+ * 回避コードの共有が不要\n
111
+ (('note:(使っているプロジェクト全部で回避が必要)'))
112
+ * 他の人も困らなくなる
113
+
114
+ = フリーソフトウェア開発の世界
115
+
116
+ * そのライブラリーを直すのは\n
117
+ 当たり前
118
+ * フリーソフトウェアが大事にしていることの1つは「直せること」!
119
+ * クリアコードはここで学んだ\n
120
+ ことを実践しているだけ
121
+
122
+ = コミュニティーとビジネス
123
+
124
+ * ビジネスでの知見を\n
125
+ コミュニティーへ
126
+ * ユースケースを元に改良・修正
127
+ * なぜやるの?
128
+ * クリアコードのポリシーだし!
129
+ * 「メンテしやすい」は普通に\n
130
+ ビジネス的に割に合う
131
+
132
+ = クリアコードでの実例
133
+
134
+ (('tag:center'))
135
+ Rubyにメモリーリークあり
136
+
137
+ * Ruby製のデーモンで問題に
138
+ * 調査→パッチ作成→Rubyを修正
139
+ * 定期的に再起動という回避策もあるだろうけど、本家で修正
140
+
141
+ (('note:これで社員がコミット権をもらっていた'))
142
+
143
+ (('note:技術的な詳細:デバッグ力: よく知らないプログラムの直し方'))\n
144
+ (('note:http://www.clear-code.com/blog/2011/12/6.html'))
145
+
146
+ = 学んだこと2
147
+
148
+ 開発を\n
149
+ 続けられる\n
150
+ コードを書く
151
+
152
+ = 考えてみよう
153
+
154
+ (('tag:center'))
155
+ (('tag:margin-bottom * 2'))
156
+ ファーストリリース完了!\n
157
+ その後は?
158
+
159
+ (1) 納品して終わり
160
+ (2) 運用チームにバトンタッチ
161
+ (3) 継続的に開発
162
+
163
+ = クリアコードのスタイル
164
+
165
+ (('tag:center'))
166
+ (('tag:margin-bottom * 2'))
167
+ 3. 継続的に開発
168
+
169
+ * フリーソフトウェア開発では\n
170
+ リリースを重ねつつ改良が普通\n
171
+ (('note:(クリアコードはここで学んだことを実践しているだけ)'))
172
+ * 最初から完璧な状態はわからない
173
+ * 使ってフィードバックを得て\n
174
+ よりよい状態を探していく
175
+ * よい状態の維持にも継続は必要\n
176
+ (('note:(よい状態は時間が経つと変わる)'))
177
+
178
+ = 継続的に開発とビジネス
179
+
180
+ * 長期間一緒にやれる仕事を優先
181
+ * ビジネス的にもよい:
182
+ * 安定収入
183
+ * 知識が増えてよりうまく開発できる
184
+
185
+ = うまく開発
186
+
187
+ (('tag:center'))
188
+ (('tag:x-large'))
189
+ (('tag:margin-bottom * 5'))
190
+ 開発効率が\n
191
+ 上がる
192
+
193
+ (('wait'))
194
+ (('tag:center'))
195
+ (('tag:x-large'))
196
+ だけじゃない!
197
+
198
+ = クリアコードのうまく開発
199
+
200
+ * よりよい提案をできる
201
+ * お客さんもうれしいし\n
202
+ クリアコードもうれしい、そんな案
203
+ * お客さんのうれしい
204
+ * よりよい成果(儲かるとか)
205
+ * クリアコードのうれしい
206
+ * フリーソフトウェアの推進
207
+
208
+ = クリアコードと提案
209
+
210
+ * 既存の実現方法は\n
211
+ フリーソフトウェアの推進が\n
212
+ 弱いことが多い
213
+ * それはしょうがない
214
+ * 推進も加えるところが\n
215
+ クリアコードの存在意義
216
+ * 両立する提案に必要なもの
217
+ * お客さんの目的の理解
218
+
219
+ = フリーソフトウェア開発の世界
220
+
221
+ * ユーザーがパッチ提供
222
+ * 開発者:目的(ユースケース)確認
223
+ * 開発者:提供されたパッチ以外の\n
224
+ 方法での実現もありえる
225
+ * ユーザーとプロジェクトで\n
226
+ メリットの両立を目指す
227
+ * クリアコードも同様にしているだけ
228
+
229
+ = クリアコードでの実例
230
+
231
+ (('tag:center'))
232
+ Groongaサポート\n
233
+ (('note:(商用パッケージに組み込み)'))
234
+
235
+ * 改良はGroonga本体に組み込む\n
236
+ →フリーソフトウェアに\n
237
+ (('note:(クリアコードのメリット)'))
238
+ * 専用ブランチは作らない
239
+ * メンテナンスコストが下がる\n
240
+ →サポート費用を抑えられる\n
241
+ (('note:(お客さんにもクリアコードにもメリット)'))
242
+
243
+ = 学んだこと3
244
+
245
+ 相手が\n
246
+ 想像しなくても\n
247
+ わかるように\n
248
+ 説明する
249
+
250
+ = 学んだこと4
251
+
252
+ 楽しく開発する
253
+
254
+ = 学んだこと5
255
+
256
+ 非難するよりも\n
257
+ 手を動かす
258
+
259
+ = 学んだこと6
260
+
261
+ 回避策よりも\n
262
+ 根本解決
263
+
264
+ = 主な業務内容
265
+
266
+ * 受託開発
267
+ * FLOSSサポート\n
268
+ (('note:歴史的な経緯でFLOSSのまま'))\n
269
+ (('note:昔は「フリーソフトウェア」か「OSS」かで迷っていた'))
270
+ * OSS開発支援\n
271
+ (('note:サービス名ではフリーソフトウェアではなくOSSにしている'))
272
+
273
+ = 受託開発
274
+
275
+ * 優先度
276
+ (1) フリーソフトウェアを\n
277
+ 直接的に推進できる仕事\n
278
+ (('note:例:成果をフリーソフトウェアにできる仕事'))
279
+ (2) フリーソフトウェアを\n
280
+ 間接的に推進できる仕事\n
281
+ (('note:例:開発中に見つけた利用フリーソフトウェアのバグの修正も含む仕事'))
282
+ (3) いずれ推進につながりそうな仕事
283
+
284
+ = FLOSSサポート
285
+
286
+ 導入支援と\n
287
+ 障害調査\n
288
+ (('note:よくあるやつ'))
289
+
290
+ = 導入支援
291
+
292
+ * 事例:Firefox/Thunderbirdの\n
293
+ 企業導入
294
+ * インストーラー作成キット開発\n
295
+ (('note:https://github.com/clear-code/fx-meta-installer'))
296
+ * アドオン開発(('note:(機能制限・一括設定)'))\n
297
+ (('note:https://github.com/clear-code/'))
298
+ * ↑はフリーソフトウェアとして公開
299
+ * ノウハウはFAQとして公開\n
300
+ (('note:https://github.com/mozilla-japan/enterprise/blob/master/FAQ.md'))
301
+
302
+ = 障害調査
303
+
304
+ * "ソースがあればなんとかなる"
305
+ * フリーソフトウェアが大事にしていることの1つは「調べられること」!
306
+ * 調査対象のバグとわかったら\n
307
+ upstreamにフィードバック
308
+ * フリーソフトウェアの推進
309
+
310
+ = OSS開発支援
311
+
312
+ * お客さんのOSSの開発に参加
313
+ * 例1:Fluentd関連
314
+ * 例2:Groonga(('note:(今は自主的に開発)'))
315
+ * お客さんのOSS開発を支援
316
+ * 例:Speeeさん
317
+
318
+ = お客さんのOSSの開発に参加
319
+
320
+ ダイレクトに大事なことを両立
321
+
322
+ (('tag:margin-top * 2'))
323
+ クリアコードの大事なこと:
324
+
325
+ * フリーソフトウェアの推進
326
+ * 稼ぐこと
327
+
328
+ = どうして仕事になるか
329
+
330
+ * OSSで稼いでいる企業が増えた
331
+ * ちゃんとOSSを開発できることを\n
332
+ OSSを開発することで示せている
333
+ * OSSの開発が営業活動になっている
334
+ * コミュニティー活動がビジネスへ
335
+
336
+ = お客さんのOSS開発を支援
337
+
338
+ ダイレクトに大事なことを両立
339
+
340
+ (('tag:margin-top * 2'))
341
+ クリアコードの大事なこと:
342
+
343
+ * フリーソフトウェアの推進
344
+ * 稼ぐこと
345
+
346
+ = どうして仕事になるか
347
+
348
+ * OSSの活用が当たり前になった
349
+ * OSSのエコシステムに参加する\n
350
+ メリットが認知されつつある
351
+ * 支援してくれそう感が出ている
352
+ * OSSの開発や発表などが営業活動
353
+ * コミュニティー活動がビジネスへ
354
+
355
+ = OSSのエコシステムに参加
356
+
357
+ どういうこと\n
358
+ だろう?
359
+
360
+ = OSSのエコシステムに参加
361
+
362
+ # blockquote
363
+
364
+ 自分たちのソフトウェアと\n
365
+ OSSを同じように扱う
366
+
367
+ (('tag:right'))
368
+ (('note:須藤功平'))
369
+
370
+ = 同じように扱う
371
+
372
+ * 問題があれば直す
373
+ * 気になるところがあれば共有
374
+
375
+ (('wait'))
376
+ (('tag:center'))
377
+ いつも通りでいい!\n
378
+ OSSは身近なもの
379
+
380
+ = 仕事の作り方
381
+
382
+ お客さんに\n
383
+ 見つけてもらう
384
+
385
+ = お客さん探しを頑張らない
386
+
387
+ * クリアコードは大衆受けする\n
388
+ ことをやっていない
389
+ * マッチするお客さんは少ない
390
+ * 少ないお客さんを探し回る\n
391
+ パワーはない
392
+ * そこに力を入れるよりも\n
393
+ 得意なことを伸ばしたい
394
+
395
+ = 諦めることは大事
396
+
397
+ * クリアコードは小さな会社
398
+ * すべてに全力投球はできない
399
+ * なにを諦めるかを決断
400
+ * なにかに力を入れるということは\n
401
+ なにかを諦めるということでもある
402
+
403
+ = 決断
404
+
405
+ * 社長職の面白いところでもあり難しいところでもある
406
+ * 決断する基準があると楽しめる\n
407
+ (('note:(自分の中で基準がはっきりしていないうちは大変だった)'))
408
+ * クリアコードの基準
409
+ * フリーソフトウェアの推進と
410
+ * 稼ぐことの両立
411
+
412
+ = お客さん探しと稼ぐこと
413
+
414
+ * 単に探す事をやめては稼げない
415
+ * 探さないで稼げないか考える
416
+ * 基本的にまずは両取りを狙う
417
+ * さっきは諦めるっていったけどさー
418
+ * 探す事は諦めるが稼ぐ事は諦めない
419
+ * トレードオフっぽく見えるやつでも\n
420
+ トレードオフじゃないかも!?\n
421
+ と考えてみる
422
+
423
+ = 推進と稼ぐことの両取り
424
+
425
+ * フリーソフトウェアの推進を\n
426
+ がんばる
427
+ * 開発・パッチ提供・レビュー
428
+ * 情報公開:ブログ・発表
429
+ * ↑で見つけてもらいやすくなる
430
+ * 見つけてもらう→仕事→稼げる!
431
+ * 両取り!
432
+
433
+ = 推進→見つけてもらった例
434
+
435
+ * ブログでGStreamerの情報公開
436
+ * →問い合わせ→技術サポート
437
+ * →今は一緒に組み込みGeckoを開発
438
+ * milter manager開発・発表
439
+ * →問い合わせ
440
+ * →大規模システムへの導入支援
441
+
442
+ = 推進→見つけてもらう
443
+
444
+ * フリーソフトウェア推進自体が\n
445
+ 営業活動
446
+ * 推進と稼ぐの両取りの一例
447
+ * コミュニティー活動が\n
448
+ ビジネスにつながる例
449
+
450
+ = 最近の推進兼営業活動
451
+
452
+ Apache Arrow
453
+
454
+ = Apache Arrow
455
+
456
+ * データ分析システム用\n
457
+ 次世代データフォーマット
458
+ * RubyもApache Arrowを扱えると\n
459
+ データ分析できそう!
460
+ * なので扱えるように開発に参加
461
+ * Rubyでデータ分析する仕事に\n
462
+ つながるといいな
463
+
464
+ = おしらせ
465
+
466
+ * Apache Arrow勉強会開催!
467
+ * (('note:Apache Arrowが早くデファクトになるとRubyでデータ分析しやすくなる日も近づくはずなので普及活動中'))
468
+ * 明日の午前に大阪で
469
+
470
+ (('tag:center'))
471
+ (('tag:small'))
472
+ https://classmethod.connpass.com/event/56478/
473
+
474
+ = 採用
475
+
476
+ * マッチする人は少なそう\n
477
+ (('note:(仕事と同じ傾向な気がしている)'))
478
+ * RailsでWebアプリ!とか\n
479
+ 自社プロダクト○○を開発!とか\n
480
+ とは違いそう
481
+ * 業務内容ではなくポリシーでマッチ
482
+
483
+ = 採用活動
484
+
485
+ * フリーソフトウェアの推進
486
+ * 見つけてもらう
487
+ * 一緒にフリーソフトウェアを開発\n
488
+ →よさそうな人を誘う
489
+ * RubyKaigiにスポンサー
490
+ * Rubyを応援したいので始めた
491
+ * 採用は期待していなかった
492
+
493
+ = さいごに
494
+
495
+ * ストーリーはあまりない
496
+ * テーマに関係する話を集めた
497
+ * 参考になるなにかがあったなら\n
498
+ いいな
data/config.yaml ADDED
@@ -0,0 +1,23 @@
1
+ ---
2
+ id: kansai-rubykaigi-2017
3
+ base_name: clear-code-inc
4
+ tags:
5
+ - rabbit
6
+ - clear_code
7
+ - kanrk2017
8
+ presentation_date: 2017-05-27
9
+ version: 2017.5.27.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: 須藤功平
20
+ email: kou@clear-code.com
21
+ rubygems_user: kou
22
+ slideshare_user: kou
23
+ speaker_deck_user:
@@ -0,0 +1,161 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <!-- Generator: Adobe Illustrator 12.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 51448) -->
3
+ <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" [
4
+ <!ENTITY ns_svg "http://www.w3.org/2000/svg">
5
+ <!ENTITY ns_xlink "http://www.w3.org/1999/xlink">
6
+ ]>
7
+ <svg version="1.1" id="レイヤー_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="393.746" height="64.625"
8
+ viewBox="0 0 393.746 64.625" overflow="visible" enable-background="new 0 0 393.746 64.625" xml:space="preserve">
9
+ <g>
10
+ <linearGradient id="XMLID_20_" gradientUnits="userSpaceOnUse" x1="179.6377" y1="37.624" x2="179.6377" y2="108.6575">
11
+ <stop offset="0" style="stop-color:#008CFF"/>
12
+ <stop offset="1" style="stop-color:#FFFFFF"/>
13
+ </linearGradient>
14
+ <path fill="url(#XMLID_20_)" d="M175.268,37.465c-0.168-3.205,0.662-6.361,2.492-9.469c1.828-3.107,5.662-4.773,11.498-4.996v-5.25
15
+ c-4.145,0.057-7.289,0.893-9.43,2.508c-2.143,1.615-3.787,3.773-4.936,6.473v-7.855h-4.875V63h5.25V37.465z"/>
16
+ <linearGradient id="XMLID_21_" gradientUnits="userSpaceOnUse" x1="142.4102" y1="37.626" x2="142.4102" y2="108.6586">
17
+ <stop offset="0" style="stop-color:#008CFF"/>
18
+ <stop offset="1" style="stop-color:#FFFFFF"/>
19
+ </linearGradient>
20
+ <path fill="url(#XMLID_21_)" d="M152.643,33.941c-0.07,0.672-0.242,1.188-0.52,1.551c-1.15,0.84-3.303,1.391-6.459,1.656
21
+ s-6.563,0.699-10.223,1.301c-3.66,0.602-6.808,1.859-9.445,3.773c-2.637,1.916-4.012,4.957-4.123,9.121
22
+ c0.027,3.66,1.287,6.678,3.779,9.053s6.076,3.615,10.751,3.729c4.389-0.168,7.918-1.063,10.588-2.682
23
+ c2.668-1.619,4.688-3.211,6.059-4.775c-0.168,2.195,0.285,3.854,1.361,4.979s2.719,1.701,4.928,1.729
24
+ c1.033-0.057,1.844-0.141,2.432-0.25c0.586-0.111,0.979-0.166,1.174-0.166V59.25c-0.225,0-0.49,0.021-0.797,0.063
25
+ c-0.309,0.043-0.588,0.063-0.838,0.063c-1.326-0.027-2.217-0.246-2.672-0.656c-0.457-0.41-0.67-0.883-0.641-1.422V29.791
26
+ c0.027-3.232-1.27-6.02-3.891-8.361c-2.621-2.34-6.775-3.566-12.463-3.68c-6.094,0.168-10.542,1.693-13.351,4.58
27
+ s-4.197,6.127-4.17,9.725h5c0.082-2.602,1.074-4.865,2.973-6.791c1.899-1.926,5.166-2.93,9.8-3.014
28
+ c5.592,0.277,8.869,1.607,9.83,3.986c0.961,2.381,1.301,4.082,1.021,5.105C152.748,32.404,152.713,33.271,152.643,33.941z
29
+ M152.748,47.568c-0.168,3.727-1.793,6.66-4.875,8.801c-3.082,2.143-6.682,3.229-10.799,3.256
30
+ c-3.358-0.084-5.859-0.918-7.496-2.502c-1.637-1.582-2.455-3.467-2.455-5.654c0.055-2.766,0.986-4.807,2.793-6.121
31
+ s4.077-2.23,6.806-2.748c2.73-0.516,5.537-0.928,8.422-1.236c2.883-0.307,5.418-0.781,7.604-1.426V47.568z"/>
32
+ <linearGradient id="XMLID_22_" gradientUnits="userSpaceOnUse" x1="25.689" y1="37.625" x2="25.689" y2="108.6543">
33
+ <stop offset="0" style="stop-color:#008CFF"/>
34
+ <stop offset="1" style="stop-color:#FFFFFF"/>
35
+ </linearGradient>
36
+ <path fill="url(#XMLID_22_)" d="M27.327,64.625c8.059-0.309,14.08-2.654,18.068-7.041s5.982-9.234,5.982-14.543h-5.5
37
+ c-0.057,4.674-1.707,8.613-4.953,11.818s-7.695,4.877-13.348,5.016c-8.227-0.363-13.957-3.355-17.188-8.979
38
+ c-3.232-5.623-4.777-11.764-4.637-18.422c0.055-8.557,1.924-15.254,5.604-20.092S20.288,5.084,27.116,5
39
+ c6.338,0.254,10.953,1.969,13.844,5.148s4.32,6.34,4.293,9.477h5.625c0.027-4.51-1.855-8.838-5.646-12.984
40
+ C41.438,2.494,35.499,0.281,27.411,0C18.862,0.084,12.178,2.959,7.358,8.623s-7.271,13.531-7.355,23.6
41
+ c-0.086,8.748,2.023,16.252,6.326,22.51C10.629,60.992,17.629,64.289,27.327,64.625z"/>
42
+ <linearGradient id="XMLID_23_" gradientUnits="userSpaceOnUse" x1="64.1553" y1="37.624" x2="64.1553" y2="108.6556">
43
+ <stop offset="0" style="stop-color:#008CFF"/>
44
+ <stop offset="1" style="stop-color:#FFFFFF"/>
45
+ </linearGradient>
46
+ <rect x="61.655" y="1.75" fill="url(#XMLID_23_)" width="5" height="61.25"/>
47
+ <linearGradient id="XMLID_24_" gradientUnits="userSpaceOnUse" x1="95.7114" y1="37.626" x2="95.7114" y2="108.6586">
48
+ <stop offset="0" style="stop-color:#008CFF"/>
49
+ <stop offset="1" style="stop-color:#FFFFFF"/>
50
+ </linearGradient>
51
+ <path fill="url(#XMLID_24_)" d="M95.96,64.125c6.076-0.281,10.648-1.998,13.715-5.154s4.6-6.301,4.6-9.43h-5.125
52
+ c-0.029,2.445-1.174,4.744-3.436,6.896s-5.373,3.299-9.334,3.438c-5.107-0.168-8.846-2.002-11.217-5.504s-3.541-7.668-3.514-12.496
53
+ h33.25c0-4.883-0.453-8.795-1.359-11.74c-0.906-2.943-2.279-5.281-4.119-7.012c-1.063-1.166-2.678-2.332-4.844-3.498
54
+ c-2.168-1.166-4.984-1.791-8.449-1.875c-5.988,0.027-10.732,2.037-14.23,6.029c-3.5,3.992-5.291,9.783-5.373,17.375
55
+ c-0.057,6.094,1.434,11.383,4.471,15.867C84.031,61.506,89.019,63.873,95.96,64.125z M85.708,26.959
56
+ c2.482-3,5.871-4.568,10.168-4.709c4.451,0.084,7.832,1.578,10.141,4.48s3.479,6.617,3.508,11.145H81.9
57
+ C81.955,33.598,83.224,29.959,85.708,26.959z"/>
58
+ <linearGradient id="XMLID_25_" gradientUnits="userSpaceOnUse" x1="374.5576" y1="37.626" x2="374.5576" y2="108.6586">
59
+ <stop offset="0" style="stop-color:#008CFF"/>
60
+ <stop offset="1" style="stop-color:#FFFFFF"/>
61
+ </linearGradient>
62
+ <path fill="url(#XMLID_25_)" d="M392.387,30.135c-0.906-2.943-2.279-5.281-4.119-7.012c-1.063-1.166-2.678-2.332-4.844-3.498
63
+ c-2.168-1.166-4.984-1.791-8.449-1.875c-5.988,0.027-10.732,2.037-14.23,6.029c-3.5,3.992-5.291,9.783-5.373,17.375
64
+ c-0.057,6.094,1.434,11.383,4.471,15.867c3.035,4.484,8.023,6.852,14.965,7.104c6.076-0.281,10.648-1.998,13.715-5.154
65
+ s4.6-6.301,4.6-9.43h-5.125c-0.029,2.445-1.174,4.744-3.436,6.896s-5.373,3.299-9.334,3.438c-5.107-0.168-8.846-2.002-11.217-5.504
66
+ s-3.541-7.668-3.514-12.496h33.25C393.746,36.992,393.293,33.08,392.387,30.135z M360.746,37.875
67
+ c0.055-4.277,1.324-7.916,3.809-10.916c2.482-3,5.871-4.568,10.168-4.709c4.451,0.084,7.832,1.578,10.141,4.48
68
+ s3.479,6.617,3.508,11.145H360.746z"/>
69
+ <linearGradient id="XMLID_26_" gradientUnits="userSpaceOnUse" x1="325.7422" y1="37.6221" x2="325.7422" y2="108.6547">
70
+ <stop offset="0" style="stop-color:#008CFF"/>
71
+ <stop offset="1" style="stop-color:#FFFFFF"/>
72
+ </linearGradient>
73
+ <path fill="url(#XMLID_26_)" d="M340.742,26.563c-1.004-2.145-2.74-4.121-5.209-5.93s-5.654-2.77-9.557-2.883
74
+ c-6.898,0.141-12.004,2.381-15.313,6.721s-4.949,9.846-4.922,16.516c0.055,7.127,1.773,12.736,5.152,16.83s8.07,6.195,14.074,6.309
75
+ c4.238-0.113,7.621-1.014,10.145-2.701c2.523-1.689,4.4-3.666,5.629-5.93V63h5V1.75h-5V26.563z M336.967,55.227
76
+ c-2.711,3.043-6.375,4.551-10.99,4.523c-5.527-0.223-9.428-2.24-11.701-6.053c-2.273-3.811-3.369-8.02-3.283-12.627
77
+ c-0.057-5.34,1.107-9.777,3.492-13.311s6.342-5.369,11.869-5.51c4.754,0.057,8.395,1.727,10.926,5.008
78
+ c2.531,3.283,3.811,7.916,3.838,13.896C341.061,47.494,339.678,52.184,336.967,55.227z"/>
79
+ <linearGradient id="XMLID_27_" gradientUnits="userSpaceOnUse" x1="278.2129" y1="37.626" x2="278.2129" y2="108.6586">
80
+ <stop offset="0" style="stop-color:#008CFF"/>
81
+ <stop offset="1" style="stop-color:#FFFFFF"/>
82
+ </linearGradient>
83
+ <path fill="url(#XMLID_27_)" d="M278.195,17.75c-7.473,0.223-12.756,2.609-15.848,7.16s-4.596,9.881-4.512,15.992
84
+ c-0.111,6.094,1.371,11.424,4.449,15.992c3.078,4.57,8.381,6.979,15.91,7.23c7.803-0.309,13.188-2.807,16.152-7.502
85
+ s4.377-9.936,4.238-15.721c0.082-6.363-1.455-11.764-4.615-16.201S285.551,17.945,278.195,17.75z M289.791,54.326
86
+ c-2.391,3.504-6.256,5.313-11.596,5.424c-5.289-0.111-9.135-1.926-11.541-5.445c-2.406-3.518-3.596-8.014-3.568-13.486
87
+ c-0.027-5.367,1.203-9.777,3.693-13.227s6.379-5.23,11.668-5.342c5.367,0.168,9.205,2.039,11.512,5.613s3.432,7.949,3.377,13.123
88
+ C293.363,46.377,292.182,50.822,289.791,54.326z"/>
89
+ <g>
90
+ <linearGradient id="XMLID_28_" gradientUnits="userSpaceOnUse" x1="223.7988" y1="37.6279" x2="223.7988" y2="108.6677">
91
+ <stop offset="0" style="stop-color:#008CFF"/>
92
+ <stop offset="1" style="stop-color:#FFFFFF"/>
93
+ </linearGradient>
94
+ <path fill="url(#XMLID_28_)" d="M224.074,0.081c-7.198,0.132-13.027,1.608-17.498,4.417h34.445
95
+ C236.807,1.706,231.174,0.219,224.074,0.081z"/>
96
+ <linearGradient id="XMLID_29_" gradientUnits="userSpaceOnUse" x1="223.5742" y1="37.624" x2="223.5742" y2="108.6555">
97
+ <stop offset="0" style="stop-color:#008CFF"/>
98
+ <stop offset="1" style="stop-color:#FFFFFF"/>
99
+ </linearGradient>
100
+ <path fill="url(#XMLID_29_)" d="M224.074,11.206c2.342,0.06,4.392,0.409,6.167,1.032h17.711c-1.063-2.07-2.484-3.979-4.31-5.706
101
+ c-0.344-0.325-0.725-0.616-1.095-0.917h-37.586c-1.46,1.111-2.755,2.385-3.874,3.831c-0.688,0.889-1.308,1.827-1.893,2.792h18.388
102
+ C219.465,11.614,221.628,11.27,224.074,11.206z"/>
103
+ <linearGradient id="XMLID_30_" gradientUnits="userSpaceOnUse" x1="205.4512" y1="37.624" x2="205.4512" y2="108.6555">
104
+ <stop offset="0" style="stop-color:#008CFF"/>
105
+ <stop offset="1" style="stop-color:#FFFFFF"/>
106
+ </linearGradient>
107
+ <path fill="url(#XMLID_30_)" d="M210.559,17.624c1.113-1.815,2.637-3.224,4.523-4.27h-16.517
108
+ c-1.128,2.052-2.058,4.249-2.746,6.623h13.511C209.701,19.163,210.101,18.371,210.559,17.624z"/>
109
+ <linearGradient id="XMLID_31_" gradientUnits="userSpaceOnUse" x1="241.376" y1="37.624" x2="241.376" y2="108.6555">
110
+ <stop offset="0" style="stop-color:#008CFF"/>
111
+ <stop offset="1" style="stop-color:#FFFFFF"/>
112
+ </linearGradient>
113
+ <path fill="url(#XMLID_31_)" d="M234.299,14.542c1.841,1.619,2.979,3.432,3.426,5.436h12.385
114
+ c-0.186-2.364-0.716-4.574-1.607-6.623h-15.859C233.235,13.709,233.795,14.099,234.299,14.542z"/>
115
+ <linearGradient id="XMLID_32_" gradientUnits="userSpaceOnUse" x1="201.6338" y1="37.624" x2="201.6338" y2="108.6555">
116
+ <stop offset="0" style="stop-color:#008CFF"/>
117
+ <stop offset="1" style="stop-color:#FFFFFF"/>
118
+ </linearGradient>
119
+ <path fill="url(#XMLID_32_)" d="M208.844,21.094h-13.303c-0.535,2.088-0.907,4.297-1.117,6.623h12.797
120
+ C207.518,25.32,208.053,23.107,208.844,21.094z"/>
121
+ <linearGradient id="XMLID_33_" gradientUnits="userSpaceOnUse" x1="200.6426" y1="37.623" x2="200.6426" y2="108.6546">
122
+ <stop offset="0" style="stop-color:#008CFF"/>
123
+ <stop offset="1" style="stop-color:#FFFFFF"/>
124
+ </linearGradient>
125
+ <path fill="url(#XMLID_33_)" d="M206.945,33.017c-0.026-1.452,0.026-2.843,0.146-4.183h-12.77
126
+ c-0.087,1.306-0.139,2.637-0.127,4.015c-0.006,0.89,0.031,1.751,0.07,2.608h12.757C206.972,34.664,206.941,33.854,206.945,33.017z
127
+ "/>
128
+ <linearGradient id="XMLID_34_" gradientUnits="userSpaceOnUse" x1="201.4766" y1="37.623" x2="201.4766" y2="108.6546">
129
+ <stop offset="0" style="stop-color:#008CFF"/>
130
+ <stop offset="1" style="stop-color:#FFFFFF"/>
131
+ </linearGradient>
132
+ <path fill="url(#XMLID_34_)" d="M207.121,36.574h-12.798c0.164,2.328,0.509,4.531,1.017,6.623h13.29
133
+ C207.859,41.203,207.36,38.992,207.121,36.574z"/>
134
+ <linearGradient id="XMLID_35_" gradientUnits="userSpaceOnUse" x1="205.0684" y1="37.624" x2="205.0684" y2="108.6555">
135
+ <stop offset="0" style="stop-color:#008CFF"/>
136
+ <stop offset="1" style="stop-color:#FFFFFF"/>
137
+ </linearGradient>
138
+ <path fill="url(#XMLID_35_)" d="M211.018,47.634c-0.744-1.022-1.377-2.134-1.917-3.319h-13.467
139
+ c0.655,2.361,1.525,4.574,2.636,6.623h16.233C213.156,50.062,211.988,48.969,211.018,47.634z"/>
140
+ <linearGradient id="XMLID_36_" gradientUnits="userSpaceOnUse" x1="241.373" y1="37.624" x2="241.373" y2="108.6555">
141
+ <stop offset="0" style="stop-color:#008CFF"/>
142
+ <stop offset="1" style="stop-color:#FFFFFF"/>
143
+ </linearGradient>
144
+ <path fill="url(#XMLID_36_)" d="M234.182,49.733c-0.498,0.445-1.038,0.839-1.598,1.204h15.771c0.94-2.024,1.542-4.232,1.808-6.623
145
+ h-12.31C237.302,46.224,236.084,48.031,234.182,49.733z"/>
146
+ <linearGradient id="XMLID_37_" gradientUnits="userSpaceOnUse" x1="223.3477" y1="37.624" x2="223.3477" y2="108.6555">
147
+ <stop offset="0" style="stop-color:#008CFF"/>
148
+ <stop offset="1" style="stop-color:#FFFFFF"/>
149
+ </linearGradient>
150
+ <path fill="url(#XMLID_37_)" d="M242.689,58.161c2.159-1.782,3.833-3.827,5.077-6.106h-17.263
151
+ c-1.959,0.846-4.209,1.32-6.766,1.401c-2.716-0.053-5.084-0.53-7.129-1.401h-17.682c0.683,1.137,1.413,2.241,2.244,3.276
152
+ c1,1.245,2.135,2.355,3.39,3.347H242C242.228,58.502,242.468,58.344,242.689,58.161z"/>
153
+ <linearGradient id="XMLID_38_" gradientUnits="userSpaceOnUse" x1="223.2773" y1="37.627" x2="223.2773" y2="108.6514">
154
+ <stop offset="0" style="stop-color:#008CFF"/>
155
+ <stop offset="1" style="stop-color:#FFFFFF"/>
156
+ </linearGradient>
157
+ <path fill="url(#XMLID_38_)" d="M240.446,59.795h-34.339c4.486,2.947,10.359,4.504,17.631,4.661
158
+ C230.331,64.336,235.895,62.775,240.446,59.795z"/>
159
+ </g>
160
+ </g>
161
+ </svg>
metadata ADDED
@@ -0,0 +1,79 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: rabbit-slide-kou-kansai-rubykaigi-2017
3
+ version: !ruby/object:Gem::Version
4
+ version: 2017.5.27.0
5
+ platform: ruby
6
+ authors:
7
+ - 須藤功平
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2017-05-26 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: rabbit-theme-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会議2017のテーマは「Ruby Community and Ruby Business」なので、創業当時から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
+ - clear-code-inc.rab
52
+ - config.yaml
53
+ - images/clear-code.svg
54
+ - pdf/kansai-rubykaigi-2017-clear-code-inc.pdf
55
+ homepage: http://slide.rabbit-shocker.org/authors/kou/kansai-rubykaigi-2017/
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.5.2
76
+ signing_key:
77
+ specification_version: 4
78
+ summary: 株式会社クリアコード
79
+ test_files: []