rabbit-slide-kou-rubykaigi-2013 2013.6.1.0 → 2013.6.1.1

Sign up to get free protection for your applications and to get access to all the features.
data/README.rd CHANGED
@@ -20,12 +20,42 @@ developers".
20
20
 
21
21
  == License
22
22
 
23
+ === Slide
24
+
23
25
  CC BY-SA 3.0
24
26
 
25
27
  Use the followings for notation of the author:
26
28
 
27
29
  * Kouhei Sutou
28
30
 
31
+ === Images
32
+
33
+ * ClearCode Inc. logo
34
+
35
+ ==== ClearCode Inc. logo
36
+
37
+ CC BY-SA 3.0
38
+
39
+ Author: ClearCode Inc.
40
+
41
+ === Fonts
42
+
43
+ * Andika
44
+ * Larabie Fonts
45
+
46
+ ==== Andika
47
+
48
+ SIL Open Font License 1.1
49
+
50
+ Copyright: 2004-2011 SIL International (http://www.sil.org/), with
51
+ Reserved Font Names "Andika" and "SIL".
52
+
53
+ ==== Larabie
54
+
55
+ Author: Ray Larabie
56
+
57
+ Copyright: See larabie-copyright.txt
58
+
29
59
  == For author
30
60
 
31
61
  === Show
@@ -31,16 +31,14 @@
31
31
  = This talk's goal
32
32
 
33
33
  (('tag:as-large-as-possible'))
34
- You know how to develope more better softwares
34
+ You know\nhow to develop more better softwares
35
35
 
36
36
  = More better?
37
37
 
38
- By example
38
+ Show\nby example
39
39
 
40
40
  = API
41
41
 
42
- = API: 1
43
-
44
42
  # coderay ruby
45
43
  context.save
46
44
  context.circle(50, 50, 10)
@@ -49,7 +47,7 @@ By example
49
47
 
50
48
  (('tag:center'))(('note:from cairo gem'))
51
49
 
52
- = API: 1 (better)
50
+ = API: Better
53
51
 
54
52
  # coderay ruby
55
53
  context.save do
@@ -59,148 +57,70 @@ By example
59
57
 
60
58
  (('tag:center'))(('note:from cairo gem'))
61
59
 
62
- = API: 1 (better)
63
-
64
- # coderay ruby
65
- context.save do
66
- context.circle(50, 50, 10)
67
- context.stroke
68
- end
69
-
70
- (('tag:center'))(('note:from cairo gem'))
71
-
72
- = API: 2
73
-
74
- # coderay ruby
75
- # low level
76
- window.get_property("opacity")
77
- # better
78
- window.opacity
79
-
80
- (('tag:center'))(('note:from gtk2 gem'))
60
+ = API: Why
81
61
 
82
- = API: 3 (better?)
62
+ Why is it\nmore better?
83
63
 
84
- # coderay ruby
85
- # low level
86
- window.get_property("visible")
87
- # better
88
- # ???: hint: "visible" is bool
64
+ = API: Because
89
65
 
90
- (('tag:center'))(('note:from gtk2 gem'))
66
+ Because it's more Ruby-ish
91
67
 
92
- = API: 3 (better)
93
-
94
- # coderay ruby
95
- # low level
96
- window.get_property("visible")
97
- # better
98
- window.visible?
99
-
100
- (('tag:center'))(('note:from gtk2 gem'))
68
+ = Ruby-ish?
101
69
 
102
- = API: 4
70
+ -ish ==\n
71
+ Similar to others
103
72
 
104
- # coderay ruby
105
- # better for record as collection
106
- record["name"]
107
- # better for record as object
108
- record.name
109
-
110
- (('tag:center'))(('note:from groonga gem'))
111
-
112
- = API: 5
113
-
114
- # coderay ruby
115
- require "gst"
116
- # ???
117
- Gst.init # <- What?
118
- Gst::ElementFactory.make("playbin")
73
+ = Remember
119
74
 
120
- (('tag:center'))(('note:from gstreamer gem'))
75
+ File
121
76
 
122
- = API: 5
77
+ = Remember: File
123
78
 
124
79
  # coderay ruby
125
- require "gst"
126
- # For advanced use
127
- Gst.init("--gst-debug=*:9")
128
- Gst::ElementFactory.make("playbin")
129
80
 
130
- (('tag:center'))(('note:from gstreamer gem'))
81
+ # Setup
82
+ file = File.open(path)
83
+ file.read
84
+ # Teardown
85
+ file.close
131
86
 
132
- = API: 5 (better)
87
+ = Remember: File
133
88
 
134
89
  # coderay ruby
135
- require "gst"
136
- # Make optional
137
- # Gst.init
138
- Gst::ElementFactory.make("playbin")
139
-
140
- (('tag:center'))(('note:from gstreamer gem'))
90
+ # Setup
91
+ File.open(path) do |file|
92
+ file.read
93
+ end # Teardown
141
94
 
142
- = Implementation
95
+ = API: Better (reprise)
143
96
 
144
97
  # coderay ruby
145
- class << Gst
146
- def const_missing(name)
147
- init; const_get(name); end
148
- def init(*argv)
149
- # ...initialize library...
150
- class << self
151
- remove_method(:init)
152
- remove_method(:const_missing)
153
- end; end; end
154
-
155
- = Docuemnt
156
-
157
- = Document: 1
158
-
159
- Install:
160
-
161
- For Debian GNU/Linux:
162
- % sudo apt-get install libgtk2.0-dev
163
- % gem install gtk2
164
- For OS X:
165
- ...
166
-
167
- = Document: 1 (better)
168
-
169
- Install:
170
-
171
- % gem install gtk2
172
-
173
- = Release
174
-
175
- = Release: 1
176
-
177
- Announce:
178
-
179
- Ruby 1.8.7 was released on June 1st, 2008. In commemoration
180
- of the thrid anniversary of Ruby 1.8.7, we have a new
181
- patchlevel release today. It includes several bug fixes.
182
- For the detail please read the ChangeLog.
98
+ context.save do # Setup
99
+ context.circle(50, 50, 10)
100
+ context.stroke
101
+ end # Teardown
183
102
 
184
- = Release: 1: not good
103
+ (('tag:center'))(('note:from cairo gem'))
185
104
 
186
- ((*read the ChangeLog*))
105
+ = More better
187
106
 
188
- = Release: 1: better
107
+ Ruby-ish
189
108
 
190
- How?\nLet's think later
109
+ = In other words
191
110
 
192
- = Confirmation
111
+ Similar to others
193
112
 
194
- = This talk's goal
113
+ = The goal (reprise)
195
114
 
196
115
  (('tag:as-large-as-possible'))
197
- You know how to develope more better softwares
116
+ You know\nhow to develop more better softwares
198
117
 
199
- = More better
118
+ = In other words
200
119
 
201
- Showed\nby examples
120
+ (('tag:as-large-as-possible'))
121
+ You know\nwhat is "similar" and do similarly
202
122
 
203
- = Table of contents
123
+ = Describe key idea
204
124
 
205
125
  * Share this talk's goal
206
126
  * ((*Describe key idea*))
@@ -209,6 +129,8 @@ Showed\nby examples
209
129
 
210
130
  = Key idea
211
131
 
132
+ (('tag:left'))
133
+ (('tag:margin-left * 10'))
212
134
  ((*R*))emember\n((*t*))han\n((*I*))magine
213
135
 
214
136
  = Imagine
@@ -231,26 +153,16 @@ Showed\nby examples
231
153
 
232
154
  = Experience!
233
155
 
234
- * ((*Experience*))
156
+ * ((*Experience*)) ← Do this first!
235
157
  * Ask
236
158
  * Observe
237
159
 
238
- = What should you experience?
239
-
240
- = What
241
-
242
- Library user
243
-
244
- = Library user?
245
-
246
- You experienced!
247
-
248
160
  = Key idea
249
161
 
162
+ (('tag:left'))
163
+ (('tag:margin-left * 10'))
250
164
  ((*R*))emember\n((*t*))han\n((*I*))magine
251
165
 
252
- = Remember
253
-
254
166
  = Apply the key idea
255
167
 
256
168
  * Share this talk's goal
@@ -258,200 +170,144 @@ You experienced!
258
170
  * ((*Apply the key idea*))
259
171
  * Wrap up & The next step
260
172
 
261
- = API
173
+ = The goal (reprise)
262
174
 
263
- = API: 1
175
+ (('tag:as-large-as-possible'))
176
+ You know\nhow to develop more better softwares
264
177
 
265
- # coderay ruby
266
- context.save
267
- context.circle(50, 50, 10)
268
- context.stroke
269
- context.restore
178
+ = To archive the goal
270
179
 
271
- (('tag:center'))(('note:from cairo gem'))
180
+ What should you experience?
272
181
 
273
- = API: 1: Point
182
+ = What
274
183
 
275
- # coderay ruby
276
- context.save # Setup
277
- context.circle(50, 50, 10)
278
- context.stroke
279
- context.restore # Teardown
184
+ Ruby user
280
185
 
281
- (('tag:center'))(('note:from cairo gem'))
186
+ = Ruby user?
282
187
 
283
- = Remember
188
+ You experienced!
284
189
 
285
- File
190
+ = Try
286
191
 
287
- = Remember: File
192
+ = API: Getter
288
193
 
289
194
  # coderay ruby
195
+ window.get_property("opacity")
196
+ # What is better API???
290
197
 
291
- # Setup
292
- file = File.open(path)
293
- file.read
294
- # Teardown
295
- file.close
198
+ (('tag:center'))(('note:from gtk2 gem'))
296
199
 
297
- = Remember: File
200
+ = API: Getter (better)
298
201
 
299
202
  # coderay ruby
300
- # Ensure teardown
301
- File.open(path) do |file|
302
- file.read
303
- raise "error!"
304
- end
203
+ window.get_property("opacity")
204
+ window.opacity # Better
305
205
 
306
- = do ... end style
206
+ (('tag:center'))(('note:from gtk2 gem'))
307
207
 
308
- Merit:\n
309
- Ensure close
208
+ = Now,
310
209
 
311
- = API: 1
210
+ (('tag:as-large-as-possible'))
211
+ You will find "remember" is "difficult"
312
212
 
313
- # coderay ruby
314
- context.save # Setup
315
- context.circle(50, 50, 10)
316
- context.stroke
317
- context.restore # Teardown
213
+ = Difficult!
318
214
 
319
- (('tag:center'))(('note:from cairo gem'))
215
+ Remember!?\n
216
+ What is\n"Ruby-ish"!?
320
217
 
321
- = API: 1 (better)
218
+ = Difficult?
322
219
 
323
- # coderay ruby
324
- # Ensure teardown
325
- context.save do
326
- context.circle(50, 50, 10)
327
- context.stroke
328
- end
220
+ * Imagine
221
+ * Difficult because you didn't know
222
+ * Remember
223
+ * Easy because you know ← ((*???*))
329
224
 
330
- (('tag:center'))(('note:from cairo gem'))
225
+ = Because
331
226
 
332
- = API: 2
227
+ (('tag:as-large-as-possible'))
228
+ You don't have experience about\n
229
+ "((*R*))emember ((*t*))han ((*I*))magine"
333
230
 
334
- # coderay ruby
335
- # low level
336
- window.get_property("opacity")
337
- # better
338
- window.opacity
231
+ = Your status
339
232
 
340
- (('tag:center'))(('note:from gtk2 gem'))
233
+ * Experience
234
+ * ((*Ask*)) (Heard) ← You are here!
235
+ * Observe
341
236
 
342
- = API: 2: Point
237
+ = To archive the goal
343
238
 
344
- property\n==\nattribute
239
+ What should you experience?
345
240
 
346
- = Remember
241
+ = What
242
+
243
+ Library developer
244
+
245
+ = Library developer
246
+
247
+ Considers about
248
+ * easy to use API
249
+ * as Ruby user
250
+ * easy to understand document
251
+ * as library user
252
+
253
+ = Library developer
347
254
 
348
- Normal object
255
+ Considers them ((*many times*))
349
256
 
350
- = API: 2
257
+ = "Many times"
258
+
259
+ It's very good exercise
260
+
261
+ = Examples
262
+
263
+ * API
264
+ * Document
265
+
266
+ = API
267
+
268
+ = API: Getter (reprise)
351
269
 
352
270
  # coderay ruby
353
- # low level
271
+ # Low level
354
272
  window.get_property("opacity")
355
- # better
273
+ # Better
356
274
  window.opacity
357
275
 
358
276
  (('tag:center'))(('note:from gtk2 gem'))
359
277
 
360
- = API: 3 (better?)
278
+ = API: Better?
361
279
 
362
280
  # coderay ruby
363
- # low level
281
+ # Low level
364
282
  window.get_property("visible")
365
- # better
283
+ # Better
366
284
  # ???: hint: "visible" is bool
367
285
 
368
286
  (('tag:center'))(('note:from gtk2 gem'))
369
287
 
370
- = Remember
371
-
372
- Predicate
373
-
374
- = Remember: Predicate
375
-
376
- # coderay ruby
377
- [].empty?
378
- 0.zero?
379
-
380
- = API: 3 (better)
288
+ = API: Better
381
289
 
382
290
  # coderay ruby
383
- # low level
291
+ # Low level
384
292
  window.get_property("visible")
385
- # better: "?" suffix
293
+ # Better
386
294
  window.visible?
387
295
 
388
296
  (('tag:center'))(('note:from gtk2 gem'))
389
297
 
390
- = API: 4
298
+ = API: Getter
391
299
 
392
300
  # coderay ruby
393
- # better for record as collection
301
+ # Better for record as collection
394
302
  record["name"]
395
- # better for record as object
303
+ # Better for record as object
396
304
  record.name
397
305
 
398
- (('tag:center'))(('note:from groonga gem'))
399
-
400
- = API: 5
401
-
402
- # coderay ruby
403
- require "gst"
404
- # ???
405
- Gst.init # <- What?
406
- Gst::ElementFactory.make("playbin")
407
-
408
- (('tag:center'))(('note:from gstreamer gem'))
409
-
410
- = API: 5
411
-
412
- # coderay ruby
413
- require "gst"
414
- # For advanced use
415
- Gst.init("--gst-debug=*:9")
416
- Gst::ElementFactory.make("playbin")
417
-
418
- (('tag:center'))(('note:from gstreamer gem'))
419
-
420
- = Remember
421
-
422
- Socket
423
-
424
- = Socket in C
425
-
426
- # coderay c
427
- int fd;
428
- struct sockaddr *address;
429
- fd = socket(PF_INET, SOCK_STREAM, 0);
430
- /* address.sa_family = ...; */
431
- connect(fd, address, address_size);
432
-
433
- = Socket in Ruby
434
-
435
- # coderay ruby
436
- TCPSocket.new("www.ruby-lang.org", 80)
437
-
438
- = Point
439
-
440
- Provide defaults
441
-
442
- = API: 5 (better)
443
-
444
- # coderay ruby
445
- require "gst"
446
- # Make optional
447
- # Gst.init
448
- Gst::ElementFactory.make("playbin")
449
-
450
- (('tag:center'))(('note:from gstreamer gem'))
306
+ (('tag:center'))(('note:from rroonga gem'))
451
307
 
452
308
  = Docuemnt
453
309
 
454
- = Document: 1
310
+ = Document: Install
455
311
 
456
312
  Install:
457
313
 
@@ -461,57 +317,15 @@ Install:
461
317
  For OS X:
462
318
  ...
463
319
 
464
- = Remember
465
-
466
- You installed Nokogiri
467
-
468
- = Remember: Nokogiri
469
-
470
- % gem install nokogiri
471
- ...
472
- libxml2 is missing. ...
473
- ...
474
- *** extconf.rb failed ***
475
-
476
- = Remember: Nokogiri
477
-
478
- % sudo apt-get install libxml2-dev
479
-
480
- = Remember: Nokogiri
481
-
482
- % gem install nokogiri
483
- ...
484
- libxslt is missing. ...
485
- ...
486
- *** extconf.rb failed ***
487
-
488
- = Document: 1 (better)
320
+ = Document: Better
489
321
 
490
322
  Install:
491
323
 
492
324
  % gem install gtk2
493
- (with auto "apt-get install")
494
-
495
- = Release
496
-
497
- = Release: 1
498
-
499
- Announce:
500
-
501
- Ruby 1.8.7 was released on June 1st, 2008. In commemoration
502
- of the thrid anniversary of Ruby 1.8.7, we have a new
503
- patchlevel release today. It includes several bug fixes.
504
- For the detail please read the ChangeLog.
505
-
506
- = Release: 1: not good
507
-
508
- ((*read the ChangeLog*))
509
-
510
- = Release: 1: better
511
325
 
512
- How?\nLet's think later
326
+ (('tag:center'))(('note:libgtk2-0-dev is installed automatically'))
513
327
 
514
- TODO
328
+ (('tag:center'))(('note:"gem install GEM_NAME" is popular install way'))
515
329
 
516
330
  = Wrap up
517
331
 
@@ -523,24 +337,37 @@ TODO
523
337
  = This talk's goal
524
338
 
525
339
  (('tag:as-large-as-possible'))
526
- You know how to develope more better softwares
340
+ You know\nhow to develop more better softwares
341
+
342
+ = More better
343
+
344
+ Ruby-ish\n
345
+ Similar to others
527
346
 
528
347
  = Key idea
529
348
 
349
+ (('tag:left'))
350
+ (('tag:margin-left * 10'))
530
351
  ((*R*))emember\n((*t*))han\n((*I*))magine
531
352
 
532
353
  = Remember than Imagine
533
354
 
534
355
  * Imagine
535
- * Difficult
356
+ * Difficult because you didn't know
536
357
  * Remember
537
- * Easy
358
+ * Easy because you know
538
359
 
539
360
  = For development
540
361
 
541
362
  * Experience library user
542
363
  * You must done!
543
364
  * Then ((*remember*)) the experience
365
+ * But it is difficult becuase
366
+ you don't have experience about "((*remember*))"
367
+
368
+ = Experience lib developer
369
+
370
+ It's very good exercise
544
371
 
545
372
  = The next step
546
373
 
@@ -549,14 +376,31 @@ You know how to develope more better softwares
549
376
  * Apply the key idea
550
377
  * Wrap up & ((*The next step*))
551
378
 
552
- = Be a library developer
379
+ = The next step
380
+
381
+ Use "library developer" experiense to other things
382
+
383
+ = For example,
384
+
385
+ Use it to develop other softwares
553
386
 
554
- = Why?
387
+ = Develope other softwares
555
388
 
556
- * It is good experience for "remember than imagine"
557
- * "library developer" experience is useful to
558
- develope other softwares such as Ruby
389
+ You can remember about
390
+ * a better bug report
391
+ * How to reproduce?
392
+ * a better patch
393
+ * How to commit?
559
394
 
560
395
  = Conclusion
561
396
 
562
- TODO
397
+ Be a library developer!
398
+
399
+ = FYI
400
+
401
+ # image
402
+ # src = clear-code.svg
403
+ # relative_height = 20
404
+
405
+ * We accept applications about our internship
406
+ * You can develop a library with us
@@ -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>
@@ -6,10 +6,10 @@ tags:
6
6
  - rubykaigi
7
7
  - library
8
8
  presentation_date: 2013/06/01
9
- version: 2013.6.1.0
9
+ version: 2013.6.1.1
10
10
  licenses:
11
11
  - CC BY-SA 3.0
12
- slideshare_id:
12
+ slideshare_id: rubykaigi-2013
13
13
  speaker_deck_id:
14
14
  ustream_id:
15
15
  vimeo_id:
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rabbit-slide-kou-rubykaigi-2013
3
3
  version: !ruby/object:Gem::Version
4
- version: 2013.6.1.0
4
+ version: 2013.6.1.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-05-23 00:00:00.000000000 Z
12
+ date: 2013-05-28 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rabbit
@@ -83,6 +83,7 @@ files:
83
83
  - config.yaml
84
84
  - Rakefile
85
85
  - README.rd
86
+ - clear-code.svg
86
87
  - be-a-library-developer.rab
87
88
  - pdf/rubykaigi-2013-be-a-library-developer.pdf
88
89
  homepage: http://slide.rabbit-shocker.org/authors/kou/rubykaigi-2013/