rabbit-slide-hasumikin-OsakaRubyKaigi04 2024.08.24.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
+ SHA256:
3
+ metadata.gz: a64a793d81d2f10f94563526a239ceb00bf0c4d925b7a9f48b7aca5e3871a358
4
+ data.tar.gz: 2281a2c283a6ada6ed1d083ef9ccd146e0285cacc45ed0e3965892c1f8e4614f
5
+ SHA512:
6
+ metadata.gz: 1e1cff33914b22b4e42335f75a24dde1875c9104e60b5908291a6d49fdc66841ca463af4cffe3bf911e391c313565e826ebae5806fe3b2cfa83fe64366a97255
7
+ data.tar.gz: 9f3221fc4c817d111905511ff7d46d96d9acd42acb2854a793a460739bac8ffd5a8fa9cbd76143f52a277c7960b22fdde56dec876f7af43c018052a207e190c2
data/.rabbit ADDED
@@ -0,0 +1,2 @@
1
+ --size 1920,1080
2
+ WhereIsPicoRubyGoing.md
data/README.rd ADDED
@@ -0,0 +1,24 @@
1
+ = A Beginner's Complete Guide to Microcontroller Programming with Ruby
2
+
3
+ Presentation slide for Euruko 2023
4
+
5
+ == For author
6
+
7
+ === Show
8
+
9
+ rake
10
+
11
+ === Publish
12
+
13
+ rake publish
14
+
15
+ == For viewers
16
+
17
+ === Install
18
+
19
+ gem install rabbit-slide-hasumikin-Euruko2023
20
+
21
+ === Show
22
+
23
+ rabbit rabbit-slide-hasumikin-Euruko2023.gem
24
+
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("doc/**/*.*")
9
+ # spec.files -= Dir.glob("private/**/*.*")
10
+ # spec.add_runtime_dependency("rabbit-theme-YOUR-THEME")
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,652 @@
1
+ # 令和の隙間産業
2
+
3
+ subtitle
4
+ : PicoRubyはどこから来て、\\nどこへ行くのか
5
+
6
+ author
7
+ : hasumikin
8
+
9
+ date
10
+ : 令和6年8月24日
11
+
12
+ allotted-time
13
+ : 45m
14
+
15
+ theme
16
+ : theme
17
+
18
+ # Slide
19
+ キーノート
20
+
21
+ # Slide
22
+ キーノート!!!
23
+
24
+ # Slide
25
+ だからきょうのRabbitスライドは
26
+
27
+ # Slide
28
+ Matzスタイル
29
+
30
+ # Slide
31
+ ヘッドラインなし
32
+
33
+ # Slide
34
+ ![](images/headline.png){:
35
+ relative_height="100"
36
+ }
37
+
38
+ # Slide
39
+ 天地左右センタソロエ
40
+
41
+ # Slide
42
+ キーノートとは?
43
+
44
+ # Slide
45
+ カンファレンストークとは?
46
+
47
+ # Slide
48
+ (たしか)台湾にて、
49
+
50
+ # Slide
51
+ ![](images/kaneko.jpg){:
52
+ relative-height="35"
53
+ relative_margin_top="-2"
54
+ }
55
+
56
+ > はすみさんて、誰の役にも立たない話を
57
+ > 楽しそうにしますよね(意訳)
58
+
59
+ # Slide
60
+ ![](images/kaneko.jpg){:
61
+ relative-height="35"
62
+ relative_margin_top="-2"
63
+ }
64
+
65
+ > 前田修吾さんも
66
+ > 誰の役にも立たない話しますよね
67
+
68
+ # Slide
69
+ 役に立たない話😣
70
+
71
+ # Slide
72
+ そうは言っても
73
+ RubyKaigiトークの80%くらいは
74
+ 誰の役にも立ってない(個人の感想です)
75
+
76
+ # Slide
77
+ 役に立たない👈これにも種類がある
78
+
79
+ # Slide
80
+ CRubyの内部実装を改善
81
+ 👉(直接には)役に立たない
82
+
83
+ # Slide
84
+ 型の書き方に新提案
85
+ 👉(すぐには)役に立たない
86
+
87
+ # Slide
88
+ メガドライブでRubyを動かす
89
+ 👉(1ミリも)役に立たない
90
+
91
+ # Slide
92
+ 自作のエディタのために新メソッドを提案
93
+ 👉意味がわからない
94
+
95
+ # Slide
96
+ 尊敬する「世界のshugomaeda」と
97
+ 同じカテゴリー(光栄)
98
+
99
+ # Slide
100
+ きょうはせっかくのキーノートなので、
101
+ 堂々と誰の役にも立たない話をします
102
+
103
+ # Slide
104
+ 【ご報告】ところで、最近転職しました
105
+
106
+ # Slide
107
+ 株式会社アンドパッド
108
+
109
+ # Slide
110
+ 暑い夏、水分補給してますか?
111
+
112
+ # Slide
113
+ ![](images/water.jpg){:
114
+ relative-height="100"
115
+ }
116
+
117
+ # Slide
118
+ ![](images/water2.jpg){:
119
+ relative-height="100"
120
+ }
121
+
122
+ # Slide
123
+ 【ご報告】RubyConf Africa 2024
124
+
125
+ # Slide
126
+ ![](images/SDIM2250.JPG){:
127
+ relative_height="130"
128
+ relative_margin_top="-15"
129
+ }
130
+
131
+ # Slide
132
+ ブログ読んでください
133
+
134
+ # Slide
135
+ 【ご案内】2024年10月5日
136
+ 松江Ruby会議11
137
+
138
+ # Slide
139
+ ![](images/matsue.png){:
140
+ relative-height="100"
141
+ }
142
+
143
+ # Slide
144
+ ![](images/suitouro.png){:
145
+ relative-height="100"
146
+ }
147
+
148
+ # Slide
149
+ (たぶん)
150
+ きょうは質問タイムがあります
151
+
152
+ # Slide
153
+ いちばんよい質問をしてくれた人に
154
+
155
+ # Slide
156
+ ![](images/goshuin.jpg){:
157
+ relative_height="100"
158
+ }
159
+
160
+ # Slide
161
+ mruby/c御朱印帳をプレゼント!
162
+
163
+ # Slide
164
+ みんなでつくるキーノート
165
+
166
+ # Slide
167
+ あしたはあなたがキーノート
168
+
169
+ # Slide
170
+ 令和の隙間産業
171
+
172
+ # Slide
173
+ 隙間産業 =ちょっとしたプロダクト
174
+
175
+ # Slide
176
+ ちょっとしたプロダクトを持つと楽しい
177
+
178
+ # Slide
179
+ ちょっとしたプロダクトを持つに至った経緯
180
+
181
+ # Slide
182
+ PicoRubyはどこから来て、どこへ行くのか
183
+
184
+ # Slide
185
+ PicoRuby知ってる人🙋
186
+
187
+ # Slide
188
+ (デモ)
189
+
190
+ # Slide
191
+ PicoRubyのすごいところ
192
+
193
+ # Slide
194
+ 名前がよい
195
+
196
+ # Slide
197
+ mruby/c
198
+ スラッシュって
199
+ PL/I?
200
+
201
+ # Slide
202
+ mruby|MRuby|mRuby
203
+
204
+ # Slide
205
+ PicoRuby
206
+ 名前がよい
207
+
208
+ # Slide
209
+ マイコンがコンパイルしてくれる
210
+
211
+ # Slide
212
+ ファイルシステムがある
213
+
214
+ # Slide
215
+ Rubyの生産性
216
+
217
+ # Slide
218
+ Cだと千行、Rubyだと数百行
219
+ みたいなこと、昔はよく言いました
220
+
221
+ # Slide
222
+ きょうび、CとRubyは比較しない
223
+
224
+ # Slide
225
+ Cではふつう、
226
+ ウェッブアプリを書きませんが、
227
+
228
+ # Slide
229
+ マイコンは今でもC/C++が主流
230
+
231
+ # Slide
232
+ (仮定)Cだと千行、Rubyだと数百行
233
+ のマイコンアプリケーション
234
+
235
+ # Slide
236
+ 数百行なら型は要らない
237
+ (あればあったでべんりな日もある)
238
+
239
+ # Slide
240
+ マイコンアプリだと動的型付けの
241
+ メリットが最大化される(当社比)
242
+
243
+ # Slide
244
+ REPL(IRB)による漸進的開発
245
+
246
+ # Slide
247
+ ペリフェラルgemsが揃っている
248
+
249
+ # Slide
250
+ GPIO、ADC、I2C、SPI、UART、PWM
251
+
252
+ # Slide
253
+ GPIO:汎用入出力。Lチカ
254
+ ソフト制御でプロトコルをしゃべらせてもいい
255
+
256
+ # Slide
257
+ ADC:アナログ値(電圧)をデジタル値に変換
258
+ 温度センサ、マイク、ジョイスティックなど
259
+
260
+ # Slide
261
+ I2C:シリアル通信
262
+ 2本の配線で複数機器がつながる
263
+ 各種センサ、小型ディスプレイなど
264
+
265
+ # Slide
266
+ SPI:シリアル通信。I2Cより速い
267
+ 各種センサ、LCD、メモリ
268
+
269
+ # Slide
270
+ UART:非同期のシリアル通信
271
+ コンソール、通信モジュールなど
272
+
273
+ # Slide
274
+ PWM:
275
+ こまかなデジタル出力制御でアナログっぽい波形
276
+ モータ制御、LED明滅、ブザーを鳴らすなど
277
+
278
+ # Slide
279
+ よくある質問
280
+ 「ピコルビーはGPS対応してますか?」
281
+
282
+ # Slide
283
+ よくある質問
284
+ 「PRKはトラックボールつかえますか?」
285
+
286
+ # Slide
287
+ ![](images/gps1.png){:
288
+ relative-height="100"
289
+ }
290
+
291
+ # Slide
292
+ ![](images/gps2.png){:
293
+ relative-height="100"
294
+ }
295
+
296
+ # Slide
297
+ ![](images/gps3.png){:
298
+ relative-height="100"
299
+ }
300
+
301
+ # Slide
302
+ ペリフェラルgemsがあれば、
303
+ たいていのことはできる
304
+
305
+ # Slide
306
+ つまり、PicoRubyはすでに
307
+ たいていのことができます
308
+
309
+ # Slide
310
+ ちなみに
311
+ ビット演算の知識は必須
312
+
313
+ # Slide
314
+ WiFiもComing soon!
315
+
316
+ # Slide
317
+ PicoRubyの歴史
318
+
319
+ # Slide
320
+ 2017年1月、mruby/c 1.0
321
+ mruby準拠VMだけの軽量実装
322
+
323
+ # Slide
324
+ 作者:
325
+ 田中教授(九州工業大学)
326
+ 東研究員(ITOC)
327
+
328
+ # Slide
329
+ コンパイラは別途開発せず、
330
+ mrubyのものを使用
331
+
332
+ # Slide
333
+ mrubyコンパイラはメモリ消費が大きく、
334
+ ワンチップマイコンには載らなかった
335
+
336
+ # Slide
337
+ マイコンに載せるのはVMとVMコード
338
+
339
+ # Slide
340
+ そのころのhasumikin
341
+ 👦🏻「IoTやりたい」
342
+
343
+ # Slide
344
+ 島根県職員
345
+
346
+ # Slide
347
+ ![](images/sugihara2.jpg){:
348
+ relative-height="75"
349
+ relative_margin_top="0"
350
+ }
351
+
352
+ > いいのがあるよ!
353
+
354
+ # Slide
355
+ 2017年にmruby/cを触り始める
356
+
357
+ # Slide
358
+ Version1.0だったけど
359
+
360
+ # Slide
361
+ バグあり
362
+ (誰にも)ノウハウなし
363
+
364
+ # Slide
365
+ そもそものC言語力不足
366
+ (私の問題)
367
+
368
+ # Slide
369
+ (真の意味での)モンキーパッチ
370
+
371
+ # Slide
372
+ コンパイルして書き込んで実行(無限ループ)
373
+
374
+ # Slide
375
+ 辛い日々
376
+
377
+ # Slide
378
+ 麹の温度管理システム完成
379
+ (旭日酒造)
380
+
381
+ # Slide
382
+ 2018年、仙台
383
+ RubyKaigi初登壇
384
+
385
+ # Slide
386
+ ![](images/rubykaigi2018.png){:
387
+ relative-height="100"
388
+ }
389
+
390
+ # Slide
391
+ 角谷さんと松田さんがザワついたプロポーザル
392
+
393
+ # Slide
394
+ 「mrubyで酒を造っています」
395
+
396
+ # Slide
397
+ 2020年
398
+ フクオカRuby大賞🎉
399
+
400
+ # Slide
401
+ ![](images/fukuoka2020.jpg){:
402
+ relative-height="100"
403
+ }
404
+
405
+ # Slide
406
+ PicoRubyはまだ陰も形もない
407
+
408
+ # Slide
409
+ (話は2019年に戻ります)
410
+ 富山Ruby会議01
411
+
412
+ # Slide
413
+ ![](images/toyama01.png){:
414
+ relative-height="100"
415
+ }
416
+
417
+ # Slide
418
+ Rubyで書くmrubyコンパイラ
419
+
420
+ # Slide
421
+ `puts "Hello World!"`だけできる
422
+ (正確には、関数呼び出し+Stringリテラル)
423
+
424
+ # Slide
425
+ パーサジェネレータはLemon
426
+ (SQLiteプロジェクトの一部。隙間産業)
427
+
428
+ # Slide
429
+ オレオレparse.cをFFIでRubyにリンク
430
+
431
+ # Slide
432
+ トークナイザとコードジェネレータはRuby
433
+ わりと簡単にできた
434
+
435
+ # Slide
436
+ 2020年
437
+ 「全部Cで書けるのでは?」🤔
438
+
439
+ # Slide
440
+ トークナイザをCで書く苦行
441
+
442
+ # Slide
443
+ コンパイラがなんとなく完成
444
+
445
+ # Slide
446
+ マイコン上でRubyをコンパイルする
447
+ という隙間産業
448
+
449
+ # Slide
450
+ mruby/c + mini mruby compiler
451
+
452
+ # Slide
453
+ 名前がよくない
454
+
455
+ # Slide
456
+ ![](images/rubykaigi2020.png){:
457
+ relative-height="100"
458
+ }
459
+
460
+ # Slide
461
+ その後のR2P2につながるアイデアではあったが
462
+ コロナ禍のやる気減退もあって消化不良
463
+
464
+ # Slide
465
+ 2021年1月
466
+ ラズパイ財団、ラズパイピコを発表
467
+
468
+ # Slide
469
+ Raspberry Pi Pico(隙間産業)
470
+
471
+ # Slide
472
+ 264KB RAM
473
+ 2MB Flash ROM
474
+ 五百円
475
+
476
+ # Slide
477
+ ゲームチェンジャーでは?
478
+
479
+ # Slide
480
+ 「キーボードファームウェアつくれそう」
481
+
482
+ # Slide
483
+ PRK Firmware(隙間産業)
484
+
485
+ # Slide
486
+ RubyKaigi Takeout 2021
487
+
488
+ # Slide
489
+ "DIYキーボードは実質Ruby"
490
+
491
+ # Slide
492
+ ![](images/rubykaigi2021.png){:
493
+ relative-height="100"
494
+ }
495
+
496
+ # Slide
497
+ (オレ史上)最高傑作
498
+
499
+ # Slide
500
+ 2021年
501
+ PicoRubyと命名
502
+
503
+ # Slide
504
+ Ruby Prize最終ノミネート🎉
505
+
506
+ # Slide
507
+ ![](images/rubyprize.png){:
508
+ relative-height="100"
509
+ }
510
+
511
+ # Slide
512
+ Matzによる偉業認定
513
+
514
+ # Slide
515
+ 2022年
516
+ フクオカRuby大賞おかわり🎉
517
+
518
+ # Slide
519
+ ![](images/fukuoka2022.jpg){:
520
+ relative-height="100"
521
+ }
522
+
523
+ # Slide
524
+ RubyKaigi 2023
525
+
526
+ # Slide
527
+ "Build Your Own SQLite3"
528
+
529
+ # Slide
530
+ ![](images/rubykaigi2023.png){:
531
+ relative-height="100"
532
+ }
533
+
534
+ # Slide
535
+ マイコンで動かすSQLite3(隙間産業)
536
+
537
+ # Slide
538
+ (オレ史上)最苦労作品
539
+
540
+ # Slide
541
+ (オレ史上)最も世界のshugomaeda的トーク
542
+
543
+ # Slide
544
+ 最近のうごき
545
+
546
+ # Slide
547
+ パーサのPrism化
548
+
549
+ # Slide
550
+ からのLrama-gen化(?)
551
+
552
+ # Slide
553
+ 詳しくは来週(RubyKaigi 2024 followup)
554
+
555
+ # Slide
556
+ 今後やりたいこと
557
+
558
+ # Slide
559
+ パーサがCRubyとコンパチになると
560
+
561
+ # Slide
562
+ CRubyと相互運用しやすくなる
563
+ (クレームが減る)
564
+
565
+ # Slide
566
+ ぺん!さんのTRICKyなコードが動く
567
+ (かもしれない)
568
+
569
+ # Slide
570
+ Kernel.#eval
571
+
572
+ # Slide
573
+ エラー箇所をわかりやすくする
574
+
575
+ # Slide
576
+ PC(Unix)への歩み寄り
577
+
578
+ # Slide
579
+ Socketクラス、Kernel.#system
580
+
581
+ # Slide
582
+ クロスプラットフォームなワンバイナリツール
583
+ picoruby-cli(?)
584
+
585
+ # Slide
586
+ ペリフェラルシミュレータ
587
+ PCでGPIOなどの操作を"仮組み"してからマイコンへ
588
+
589
+ # Slide
590
+ 教育コンテンツ化
591
+ (セットアップが簡単、再現性が高い)
592
+
593
+ # Slide
594
+ ラズパイピコだけでは弱いので
595
+
596
+ # Slide
597
+ ポーティングを進めたい
598
+ ESP32、nRF52、STM32
599
+
600
+ # Slide
601
+ やるべきことは大きく2つ:
602
+
603
+ # Slide
604
+ ①それぞれのマイコンごとのビルド方法に
605
+ 対応したR2P2プロジェクトをつくる
606
+
607
+ # Slide
608
+ ②ペリフェラルgemsのマイコン依存部分を書く
609
+
610
+ # Slide
611
+ ぜんぶ隙間産業
612
+
613
+ # Slide
614
+ 協力者大募集中
615
+
616
+ # Slide
617
+ PicoRuby(隙間産業)
618
+
619
+ # Slide
620
+ JRuby(隙間産業)
621
+
622
+ # Slide
623
+ mruby(隙間産業)
624
+
625
+ # Slide
626
+ mruby/c(隙間産業)
627
+
628
+ # Slide
629
+ Ruby(隙間産業)
630
+
631
+ # Slide
632
+ 隙間産業<->負けず嫌い
633
+
634
+ # Slide
635
+ ITはつまらなくなんかない
636
+
637
+ # Slide
638
+ 隙間はもう無いのか?
639
+
640
+ # Slide
641
+ あなたのすぐとなりに在る
642
+
643
+ # Slide
644
+ ぼくらにはそれぞれ
645
+ 旅に出る理由がある
646
+
647
+ # Slide
648
+ きょうのわたくしの話が
649
+ 役に立ちそうな人🙋
650
+
651
+ # Slide
652
+ 質問タイム
data/config.yaml ADDED
@@ -0,0 +1,23 @@
1
+ ---
2
+ id: OsakaRubyKaigi04
3
+ base_name: WhereIsPicoRubyGoing.md
4
+ tags:
5
+ - PicoRuby
6
+ - "niche industry"
7
+ presentation_date: '2024-08-24'
8
+ presentation_start_time:
9
+ presentation_end_time:
10
+ version: 2024.08.24.0
11
+ licenses: ["MIT License"]
12
+ slideshare_id:
13
+ speaker_deck_id:
14
+ ustream_id:
15
+ vimeo_id:
16
+ youtube_id:
17
+ author:
18
+ markup_language: :md
19
+ name: HASUMI Hitoshi
20
+ email: hasumikin@gmail.com
21
+ rubygems_user: hasumikin
22
+ slideshare_user:
23
+ speaker_deck_user:
Binary file
Binary file
Binary file
data/images/gps1.png ADDED
Binary file
data/images/gps2.png ADDED
Binary file
data/images/gps3.png ADDED
Binary file
Binary file
data/images/kaneko.jpg ADDED
Binary file
data/images/matsue.png ADDED
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
data/images/water.jpg ADDED
Binary file
data/images/water2.jpg ADDED
Binary file
data/theme.rb ADDED
@@ -0,0 +1,189 @@
1
+ # puts font_families.sort
2
+ @xxx_large_font_size = screen_size(10 * Pango::SCALE)
3
+ @xx_large_font_size = screen_size(8 * Pango::SCALE)
4
+ @x_large_font_size = screen_size(7 * Pango::SCALE)
5
+ @large_font_size = screen_size(5.5 * Pango::SCALE)
6
+ @normal_font_size = screen_size(5 * Pango::SCALE)
7
+ @small_font_size = screen_size(4 * Pango::SCALE)
8
+ @x_small_font_size = screen_size(3.5 * Pango::SCALE)
9
+ @xx_small_font_size = screen_size(2.5 * Pango::SCALE)
10
+
11
+ @font_family = find_font_family('Kiwi Maru')
12
+ @monospace_font_family = 'Courier Prime'
13
+ @title_font_family = find_font_family('Kiwi Maru')
14
+
15
+ # colors
16
+ foreground = "#111111"
17
+ red = "#8f3230"
18
+ blue = "#5b9bbb"
19
+ black = "#000000"
20
+ dark_gray = "#333333"
21
+ light_gray = "#a9a7ad"
22
+ preformatted_foreground = "#00ffc2"
23
+
24
+ @default_headline_line_color = light_gray
25
+ @default_headline_line_width = 2
26
+ @default_headline_line_expand = true
27
+
28
+ @default_emphasis_color = red
29
+ @default_emphasis_level2_color = "#ffffff"
30
+
31
+ set_graffiti_color red
32
+ set_graffiti_line_width 5
33
+
34
+ #@table_frame_color = "#ffffff"
35
+ #@table_fill_color = "#0f0428"
36
+ #@table_body_frame_color = "#ffffff"
37
+ #@table_body_fill_color = "#3f3468"
38
+ #@table_head_frame_color = "#ffffff"
39
+ #@table_head_fill_color = "#rf0428"
40
+
41
+ @preformatted_fill_color = black
42
+ @preformatted_frame_color = red
43
+ @preformatted_frame_width = 5
44
+ # @preformatted_centering = true
45
+
46
+ @space = screen_y(1)
47
+
48
+ @image_slide_number_start_flag_color = blue
49
+ @image_slide_number_goal_flag_color = red
50
+
51
+ #@slide_headline_hide = true
52
+
53
+ @slide_background_image = 'images/keynote_template_osaka_rubykaigi04/keynote_template_osaka_rubykaigi04.003.png'
54
+ include_theme("slide-background-image")
55
+
56
+ @title_slide_background_image = 'images/keynote_template_osaka_rubykaigi04/keynote_template_osaka_rubykaigi04.002.png'
57
+ include_theme("title-slide-background-image")
58
+
59
+ include_theme('default')
60
+
61
+ match(Slide, HeadLine) do |heads|
62
+ heads.hide
63
+ heads.margin_top = -120
64
+ end
65
+ match(Slide) do |slides|
66
+ slides.horizontal_centering = true
67
+ slides.margin_left = 100
68
+ slides.margin_right = 100
69
+ slides.prop_set("foreground", foreground)
70
+ end
71
+
72
+ match TitleSlide do |slides|
73
+ slides.margin_right = 550
74
+ slides.prop_set("foreground", foreground)
75
+ slides.prop_set "style", "normal"
76
+ end
77
+ match TitleSlide, Title do |title|
78
+ title.margin_top = 10
79
+ title.prop_set "size", @xxx_large_font_size
80
+ title.prop_set "font-family", @title_font_family
81
+ title.prop_set "weight", "normal"
82
+ end
83
+ match TitleSlide, Subtitle do |subtitle|
84
+ subtitle.margin_left = 50
85
+ subtitle.prop_set "size", @large_font_size
86
+ subtitle.prop_set "font-family", @title_font_family
87
+ subtitle.prop_set "weight", "bold"
88
+ end
89
+ match TitleSlide, Author do |authors|
90
+ authors.margin_top = 70
91
+ authors.prop_set "size", @large_font_size
92
+ end
93
+ match TitleSlide, ContentSource do |cs|
94
+ cs.margin_top = 20
95
+ cs.prop_set "size", @small_font_size
96
+ cs.prop_set "weight", "bold"
97
+ cs.prop_set "foreground", red
98
+ end
99
+ match TitleSlide, Place do |cs|
100
+ cs.margin_top = 20
101
+ cs.prop_set "size", @x_small_font_size
102
+ end
103
+ match TitleSlide, Date do |date|
104
+ date.prop_set "size", @x_small_font_size
105
+ date.prop_set "weight", "bold"
106
+ date.prop_set "foreground", red
107
+ end
108
+ match TitleSlide, Institution do |i|
109
+ i.prop_set "size", @x_small_font_size
110
+ end
111
+
112
+ #@slide_logo_image = 'images/mark_g.png'
113
+ #include_theme('slide-logo')
114
+
115
+ @item_image_1 = 'images/assets/bullet-point-36.png'
116
+ @item_image_2 = 'images/assets/bullet-point-36.png'
117
+ @item_image_3 = 'images/assets/bullet-point-24.png'
118
+
119
+ include_theme("default-item-mark")
120
+
121
+ add_image_path("rabbit-images")
122
+
123
+ slide_body = [Slide, Body]
124
+ item_list_item = [ItemList, ItemListItem]
125
+
126
+ indent = 50
127
+
128
+ match(*(slide_body + (item_list_item * 1))) do |items|
129
+ name = "item1"
130
+ items.delete_pre_draw_proc_by_name(name)
131
+ items.delete_post_draw_proc_by_name(name)
132
+ draw_image_mark(items, @item_image_1, name, indent: indent)
133
+ end
134
+
135
+ match(*(slide_body + (item_list_item * 2))) do |items|
136
+ name = "item2"
137
+ items.delete_pre_draw_proc_by_name(name)
138
+ items.delete_post_draw_proc_by_name(name)
139
+ draw_image_mark(items, @item_image_2, name, indent: indent)
140
+ end
141
+
142
+ match(*(slide_body + (item_list_item * 3))) do |items|
143
+ name = "item3"
144
+ items.delete_pre_draw_proc_by_name(name)
145
+ items.delete_post_draw_proc_by_name(name)
146
+ draw_image_mark(items, @item_image_3, name, indent: indent)
147
+ end
148
+
149
+ enum_list_item = [EnumList, EnumListItem]
150
+
151
+ match(*(slide_body + enum_list_item + item_list_item)) do |items|
152
+ name = "enum-item1"
153
+ items.delete_pre_draw_proc_by_name(name)
154
+ items.delete_post_draw_proc_by_name(name)
155
+ draw_image_mark(items, @item_image_1, name, indent: indent)
156
+ end
157
+
158
+ match(*(slide_body + enum_list_item + (item_list_item * 2))) do |items|
159
+ name = "enum-item2"
160
+ items.delete_pre_draw_proc_by_name(name)
161
+ items.delete_post_draw_proc_by_name(name)
162
+ draw_image_mark(items, @item_image_2, name, indent: indent)
163
+ end
164
+
165
+ # table
166
+ all_table = ["**", Table]
167
+ match(*(all_table + [TableBody, TableRow, TableCell])) do |cells|
168
+ set_font_family(cells, @monospace_font_family)
169
+ end
170
+ match(*(all_table + [TableHead, TableRow, TableHeader])) do |headers|
171
+ set_font_family(headers, @monospace_font_family)
172
+ end
173
+
174
+ match("**", Emphasis) do |texts|
175
+ texts.prop_set("foreground", "#ff0000")
176
+ texts.prop_set("weight", "normal")
177
+ end
178
+
179
+ match("**", PreformattedBlock) do |block|
180
+ # assume console
181
+ block.prop_set("foreground", preformatted_foreground)
182
+ # block.prop_set("background", dark_gray)
183
+ end
184
+ # ↑↓ the order matters
185
+ match("**", SyntaxHighlightingBlock) do |block|
186
+ # assume ruby
187
+ block.prop_set("foreground", black)
188
+ end
189
+
metadata ADDED
@@ -0,0 +1,89 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: rabbit-slide-hasumikin-OsakaRubyKaigi04
3
+ version: !ruby/object:Gem::Version
4
+ version: 2024.08.24.0
5
+ platform: ruby
6
+ authors:
7
+ - HASUMI Hitoshi
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2024-08-28 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
+ description: Presentation slide for Euruko 2023
28
+ email:
29
+ - hasumikin@gmail.com
30
+ executables: []
31
+ extensions: []
32
+ extra_rdoc_files: []
33
+ files:
34
+ - ".rabbit"
35
+ - README.rd
36
+ - Rakefile
37
+ - WhereIsPicoRubyGoing.md
38
+ - config.yaml
39
+ - images/fukuoka2020.jpg
40
+ - images/fukuoka2022.jpg
41
+ - images/goshuin.jpg
42
+ - images/gps1.png
43
+ - images/gps2.png
44
+ - images/gps3.png
45
+ - images/headline.png
46
+ - images/kaneko.jpg
47
+ - images/keynote_template_osaka_rubykaigi04/keynote_template_osaka_rubykaigi04.001.png
48
+ - images/keynote_template_osaka_rubykaigi04/keynote_template_osaka_rubykaigi04.002.png
49
+ - images/keynote_template_osaka_rubykaigi04/keynote_template_osaka_rubykaigi04.003.png
50
+ - images/keynote_template_osaka_rubykaigi04/keynote_template_osaka_rubykaigi04.004.png
51
+ - images/keynote_template_osaka_rubykaigi04/keynote_template_osaka_rubykaigi04.005.png
52
+ - images/matsue.png
53
+ - images/rubykaigi2018.png
54
+ - images/rubykaigi2020.png
55
+ - images/rubykaigi2021.png
56
+ - images/rubykaigi2023.png
57
+ - images/rubyprize.png
58
+ - images/sugihara.jpg
59
+ - images/sugihara2.jpg
60
+ - images/suitouro.png
61
+ - images/toyama01.png
62
+ - images/water.jpg
63
+ - images/water2.jpg
64
+ - pdf/OsakaRubyKaigi04-WhereIsPicoRubyGoing.md.pdf
65
+ - theme.rb
66
+ homepage: https://slide.rabbit-shocker.org/authors/hasumikin/OsakaRubyKaigi04/
67
+ licenses:
68
+ - MIT License
69
+ metadata: {}
70
+ post_install_message:
71
+ rdoc_options: []
72
+ require_paths:
73
+ - lib
74
+ required_ruby_version: !ruby/object:Gem::Requirement
75
+ requirements:
76
+ - - ">="
77
+ - !ruby/object:Gem::Version
78
+ version: '0'
79
+ required_rubygems_version: !ruby/object:Gem::Requirement
80
+ requirements:
81
+ - - ">="
82
+ - !ruby/object:Gem::Version
83
+ version: '0'
84
+ requirements: []
85
+ rubygems_version: 3.5.11
86
+ signing_key:
87
+ specification_version: 4
88
+ summary: A Beginner's Complete Guide to Microcontroller Programming with Ruby
89
+ test_files: []