rabbit-slide-hasumikin-OsakaRubyKaigi04 2024.08.24.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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: []