rabbit-slide-hasumikin-RubyConf2021 2021.11.08.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (62) hide show
  1. checksums.yaml +7 -0
  2. data/.rabbit +1 -0
  3. data/On-a-Keyboard-Ruby-on-Board--PicoRuby-and-PRK-Firmware.rab +816 -0
  4. data/README.rd +24 -0
  5. data/Rakefile +17 -0
  6. data/config.yaml +25 -0
  7. data/images/Multitasking.png +0 -0
  8. data/images/Multitasking_sandbox.png +0 -0
  9. data/images/Notepad.png +0 -0
  10. data/images/QR_prk_firmware.png +0 -0
  11. data/images/QR_raactivityreport.png +0 -0
  12. data/images/QR_raactivityreport_2.png +0 -0
  13. data/images/RAGrant.png +0 -0
  14. data/images/architecture_1.png +0 -0
  15. data/images/architecture_2.png +0 -0
  16. data/images/architecture_3.png +0 -0
  17. data/images/architecture_4.png +0 -0
  18. data/images/black.png +0 -0
  19. data/images/boot_button_1.png +0 -0
  20. data/images/crkbd.jpg +0 -0
  21. data/images/crkbd_2.jpg +0 -0
  22. data/images/drag_and_drop_1.png +0 -0
  23. data/images/drag_and_drop_2.png +0 -0
  24. data/images/firmware_logos.png +0 -0
  25. data/images/gem.gif +0 -0
  26. data/images/gem_32.gif +0 -0
  27. data/images/gem_40.gif +0 -0
  28. data/images/gem_48.gif +0 -0
  29. data/images/keyboard.rb.png +0 -0
  30. data/images/keycaps.png +0 -0
  31. data/images/kmk.jpg +0 -0
  32. data/images/matrix_claw44.jpg +0 -0
  33. data/images/matrix_helix.jpg +0 -0
  34. data/images/matrix_prk_firmware.jpg +0 -0
  35. data/images/meishi2.jpg +0 -0
  36. data/images/msc.png +0 -0
  37. data/images/picoruby.png +0 -0
  38. data/images/pipi_gherkin.jpg +0 -0
  39. data/images/pipigherkin_2.jpg +0 -0
  40. data/images/prk.png +0 -0
  41. data/images/promicro.jpg +0 -0
  42. data/images/promicro_rp2040.jpg +0 -0
  43. data/images/promicro_rp2040_boot_button.png +0 -0
  44. data/images/qmk.png +0 -0
  45. data/images/qmk_kmk_prk.png +0 -0
  46. data/images/qmk_kmk_prk_2.png +0 -0
  47. data/images/red_pill.png +0 -0
  48. data/images/red_pill_24.png +0 -0
  49. data/images/red_pill_32.png +0 -0
  50. data/images/red_pill_40.png +0 -0
  51. data/images/red_pill_48.png +0 -0
  52. data/images/regex_light.png +0 -0
  53. data/images/release.png +0 -0
  54. data/images/rpi_pico.jpg +0 -0
  55. data/images/shortage.jpg +0 -0
  56. data/images/shortage.png +0 -0
  57. data/images/switches.png +0 -0
  58. data/images/textedit.png +0 -0
  59. data/no_rabbit.rab +209 -0
  60. data/pdf/RubyConf2021-On-a-Keyboard-Ruby-on-Board--PicoRuby-and-PRK-Firmware.pdf +0 -0
  61. data/theme.rb +181 -0
  62. metadata +117 -0
data/README.rd ADDED
@@ -0,0 +1,24 @@
1
+ = On a Keyboard Ruby on Board: PicoRuby and PRK Firmware
2
+
3
+ Presentation slide for RubyConf 2021
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-RubyConf2021
20
+
21
+ === Show
22
+
23
+ rabbit rabbit-slide-hasumikin-RubyConf2021.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
data/config.yaml ADDED
@@ -0,0 +1,25 @@
1
+ ---
2
+ id: RubyConf2021
3
+ base_name: On-a-Keyboard-Ruby-on-Board--PicoRuby-and-PRK-Firmware
4
+ source_code_uri: https://github.com/hasumikin/RubyConf2021
5
+ tags:
6
+ - PicoRuby
7
+ - RP2040
8
+ - microcontroller
9
+ presentation_date: '2021-11-08'
10
+ presentation_start_time:
11
+ presentation_end_time:
12
+ version: 2021.11.08.1
13
+ licenses: []
14
+ slideshare_id:
15
+ speaker_deck_id:
16
+ ustream_id:
17
+ vimeo_id:
18
+ youtube_id:
19
+ author:
20
+ markup_language: :rd
21
+ name: HASUMI Hitoshi
22
+ email: hasumikin@gmail.com
23
+ rubygems_user: hasumikin
24
+ slideshare_user:
25
+ speaker_deck_user:
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
data/images/black.png ADDED
Binary file
Binary file
data/images/crkbd.jpg ADDED
Binary file
Binary file
Binary file
Binary file
Binary file
data/images/gem.gif ADDED
Binary file
data/images/gem_32.gif ADDED
Binary file
data/images/gem_40.gif ADDED
Binary file
data/images/gem_48.gif ADDED
Binary file
Binary file
Binary file
data/images/kmk.jpg ADDED
Binary file
Binary file
Binary file
Binary file
Binary file
data/images/msc.png ADDED
Binary file
Binary file
Binary file
Binary file
data/images/prk.png ADDED
Binary file
Binary file
Binary file
data/images/qmk.png ADDED
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
data/no_rabbit.rab ADDED
@@ -0,0 +1,209 @@
1
+ = On a Keyboard Ruby on Board
2
+ : subtitle
3
+ PicoRuby and PRK Firmware
4
+ : author
5
+ hasumikin
6
+ : allotted-time
7
+ 30m
8
+ : theme
9
+ no_rabbit
10
+
11
+ = ((' '))
12
+
13
+ = ((' '))
14
+ W
15
+ = ((' '))
16
+ Wa
17
+ = ((' '))
18
+ Wak
19
+ = ((' '))
20
+ Wake
21
+ = ((' '))
22
+ Wake
23
+ = ((' '))
24
+ Wake u
25
+ = ((' '))
26
+ Wake up
27
+ = ((' '))
28
+ Wake up,
29
+ = ((' '))
30
+ Wake up,
31
+ = ((' '))
32
+ Wake up, R
33
+ = ((' '))
34
+ Wake up, Ru
35
+ = ((' '))
36
+ Wake up, Rub
37
+ = ((' '))
38
+ Wake up, Ruby
39
+ = ((' '))
40
+ Wake up, Ruby.
41
+ = ((' '))
42
+ Wake up, Ruby..
43
+ = ((' '))
44
+ Wake up, Ruby...
45
+
46
+ = ((' '))
47
+
48
+ = ((' '))
49
+ T
50
+ = ((' '))
51
+ Th
52
+ = ((' '))
53
+ The
54
+ = ((' '))
55
+ The
56
+ = ((' '))
57
+ The M
58
+ = ((' '))
59
+ The Ma
60
+ = ((' '))
61
+ The Mat
62
+ = ((' '))
63
+ The Matr
64
+ = ((' '))
65
+ The Matri
66
+ = ((' '))
67
+ The Matr
68
+ = ((' '))
69
+ The Mat
70
+ = ((' '))
71
+ The Ma
72
+ = ((' '))
73
+ The M
74
+ = ((' '))
75
+ The Mi
76
+ = ((' '))
77
+ The Mic
78
+ = ((' '))
79
+ The Mico
80
+ = ((' '))
81
+ The Micon
82
+ = ((' '))
83
+ The Micon
84
+ = ((' '))
85
+ The Micon h
86
+ = ((' '))
87
+ The Micon ha
88
+ = ((' '))
89
+ The Micon has
90
+ = ((' '))
91
+ The Micon has
92
+ = ((' '))
93
+ The Micon has y
94
+ = ((' '))
95
+ The Micon has yo
96
+ = ((' '))
97
+ The Micon has you
98
+ = ((' '))
99
+ The Micon has you.
100
+ = ((' '))
101
+ The Micon has you..
102
+ = ((' '))
103
+ The Micon has you...
104
+
105
+ = ((' '))
106
+
107
+ = ((' '))
108
+ F
109
+ = ((' '))
110
+ Fo
111
+ = ((' '))
112
+ Fol
113
+ = ((' '))
114
+ Foll
115
+ = ((' '))
116
+ Follo
117
+ = ((' '))
118
+ Follow
119
+ = ((' '))
120
+ Follow
121
+ = ((' '))
122
+ Follow t
123
+ = ((' '))
124
+ Follow th
125
+ = ((' '))
126
+ Follow the
127
+ = ((' '))
128
+ Follow the
129
+ = ((' '))
130
+ Follow the w
131
+ = ((' '))
132
+ Follow the wh
133
+ = ((' '))
134
+ Follow the whi
135
+ = ((' '))
136
+ Follow the whit
137
+ = ((' '))
138
+ Follow the white
139
+ = ((' '))
140
+ Follow the white
141
+ = ((' '))
142
+ Follow the white r
143
+ = ((' '))
144
+ Follow the white ra
145
+ = ((' '))
146
+ Follow the white rab
147
+ = ((' '))
148
+ Follow the white rabb
149
+ = ((' '))
150
+ Follow the white rabbi
151
+ = ((' '))
152
+ Follow the white rabbit
153
+ = ((' '))
154
+ Follow the white rabbit.
155
+
156
+ = ((' '))
157
+
158
+
159
+
160
+ = HCENTER VCENTER MONO
161
+ (('tag:x-small:written and presented by'))
162
+ \n
163
+ HASUMIKIN
164
+ == prop
165
+ : background-image
166
+ images/black.png
167
+ : background-image-relative-width
168
+ 110
169
+
170
+ = HCENTER VCENTER MONO
171
+ (('tag:x-small:supported by'))
172
+ \n
173
+ RUBY ASSOCIATION (('tag:x-small:and')) MONSTARLAB
174
+ == prop
175
+ : background-image
176
+ images/black.png
177
+ : background-image-relative-width
178
+ 110
179
+
180
+ = HCENTER VCENTER MONO
181
+ (('tag:x-small:mentor'))
182
+ \n
183
+ MATZ
184
+ == prop
185
+ : background-image
186
+ images/black.png
187
+ : background-image-relative-width
188
+ 110
189
+
190
+ = HCENTER VCENTER MONO
191
+ (('tag:x-small:follow the'))
192
+ # image
193
+ # src = images/picoruby.png
194
+ # relative_width = 20
195
+ == prop
196
+ : background-image
197
+ images/black.png
198
+ : background-image-relative-height
199
+ 120
200
+ : background-image-relative-width
201
+ 120
202
+
203
+ = HCENTER VCENTER MONO
204
+ (('tag:x-small:an')) ESSENTIALLY RUBY (('tag:x-small:production'))
205
+ == prop
206
+ : background-image
207
+ images/black.png
208
+ : background-image-relative-width
209
+ 110
data/theme.rb ADDED
@@ -0,0 +1,181 @@
1
+ # puts font_families.sort
2
+ @xx_large_font_size = screen_size(13 * Pango::SCALE)
3
+ @x_large_font_size = screen_size(8 * Pango::SCALE)
4
+ @large_font_size = screen_size(6 * Pango::SCALE)
5
+ @normal_font_size = screen_size(5 * Pango::SCALE)
6
+ @small_font_size = screen_size(4 * Pango::SCALE)
7
+ @x_small_font_size = screen_size(3.5 * Pango::SCALE)
8
+ @xx_small_font_size = screen_size(3 * Pango::SCALE)
9
+
10
+ #@font_family = find_font_family('Oswald')
11
+ #@font_family = find_font_family('OCR A Extended')
12
+ @font_family = find_font_family('Courier Prime')
13
+ @monospace_font_family = 'OCR A Extended'
14
+ @title_font_family = find_font_family('antimatrix')
15
+
16
+ @default_headline_line_color = '#171714'
17
+ @default_headline_line_width = 0
18
+ @default_headline_line_expand = false
19
+
20
+ matrix_green_terminal = "#a9f9d5"
21
+ matrix_green_title = "#e2ffd6"
22
+ matrix_green_title_2 = "#00FFAF"
23
+ set_graffiti_color matrix_green_title
24
+ set_graffiti_line_width 8
25
+
26
+ #@table_frame_color = "#ffffff"
27
+ #@table_fill_color = "#0f0428"
28
+ #@table_body_frame_color = "#ffffff"
29
+ #@table_body_fill_color = "#3f3468"
30
+ #@table_head_frame_color = "#ffffff"
31
+ #@table_head_fill_color = "#rf0428"
32
+
33
+ @preformatted_fill_color = "#000000"
34
+ @preformatted_frame_color = matrix_green_title
35
+ # @preformatted_centering = true
36
+ @space = screen_y(1)
37
+
38
+ @image_slide_number_show_flag = false
39
+ #@image_slide_number_image = "images/black.png"
40
+ @image_timer_image = "images/black.png"
41
+
42
+ include_theme('default')
43
+
44
+ match Slide, HeadLine do |heads|
45
+ heads.prop_set("size", @large_font_size)
46
+ heads.prop_set("weight", "bold")
47
+ end
48
+ match Slide do |slides|
49
+ #slides.prop_set("foreground", "#171714")
50
+ slides.prop_set "foreground", matrix_green_terminal
51
+ end
52
+
53
+ @slide_headline_hide = true
54
+ match TitleSlide do |slides|
55
+ #slides.margin_left = 900
56
+ slides.vertical_centering = true
57
+ #slides.prop_set "foreground", "#171714"
58
+ slides.prop_set "foreground", matrix_green_title
59
+ slides.prop_set "font-family", "antimatrix"
60
+ slides.prop_set("weight", "bold")
61
+ end
62
+ match TitleSlide, Title do |title|
63
+ title.margin_top = 220
64
+ title.prop_set("size", @xx_large_font_size)
65
+ end
66
+ match TitleSlide, Subtitle do |subtitle|
67
+ subtitle.margin_top = 0
68
+ subtitle.prop_set("size", screen_size(7 * Pango::SCALE))
69
+ end
70
+ match TitleSlide, Author do |author|
71
+ author.margin_top = 150
72
+ author.prop_set("weight", "normal")
73
+ author.prop_set("size", screen_size(6.5 * Pango::SCALE))
74
+ end
75
+ match TitleSlide, Place do |place|
76
+ place.prop_set("size", screen_size(4 * Pango::SCALE))
77
+ end
78
+ #match TitleSlide, "*" do |elems|
79
+ # elems.horizontal_centering = false
80
+ #end
81
+
82
+ # Cites
83
+ #match Slide do |slides|
84
+ # slides.each do |slide|
85
+ # if slide.match?(/Acknowledgement/)
86
+ # slide.horizontal_centering = true
87
+ # end
88
+ # end
89
+ #end
90
+
91
+ @title_slide_background_image = 'images/matrix_prk_firmware.jpg'
92
+ include_theme("title-slide-background-image")
93
+
94
+ @slide_background_image = 'images/black.png'
95
+ include_theme("slide-background-image")
96
+
97
+ #@slide_logo_image = 'images/mark48.png'
98
+ #include_theme('slide-logo')
99
+
100
+ @item_image_1 = 'images/red_pill_48.png'
101
+ @item_image_2 = 'images/red_pill_40.png'
102
+ @item_image_3 = 'images/red_pill_32.png'
103
+
104
+ include_theme("default-item-mark")
105
+
106
+ add_image_path("rabbit-images")
107
+
108
+ slide_body = [Slide, Body]
109
+ item_list_item = [ItemList, ItemListItem]
110
+
111
+ indent = 50
112
+
113
+ match(*(slide_body + (item_list_item * 1))) do |items|
114
+ name = "item1"
115
+ items.delete_pre_draw_proc_by_name(name)
116
+ items.delete_post_draw_proc_by_name(name)
117
+ draw_image_mark(items, @item_image_1, name, indent: indent)
118
+ end
119
+
120
+ match(*(slide_body + (item_list_item * 2))) do |items|
121
+ name = "item2"
122
+ items.delete_pre_draw_proc_by_name(name)
123
+ items.delete_post_draw_proc_by_name(name)
124
+ draw_image_mark(items, @item_image_2, name, indent: indent)
125
+ end
126
+
127
+ match(*(slide_body + (item_list_item * 3))) do |items|
128
+ name = "item3"
129
+ items.delete_pre_draw_proc_by_name(name)
130
+ items.delete_post_draw_proc_by_name(name)
131
+ draw_image_mark(items, @item_image_3, name, indent: indent)
132
+ end
133
+
134
+ enum_list_item = [EnumList, EnumListItem]
135
+
136
+ match(*(slide_body + enum_list_item + item_list_item)) do |items|
137
+ name = "enum-item1"
138
+ items.delete_pre_draw_proc_by_name(name)
139
+ items.delete_post_draw_proc_by_name(name)
140
+ draw_image_mark(items, @item_image_1, name, indent: indent)
141
+ end
142
+
143
+ match(*(slide_body + enum_list_item + (item_list_item * 2))) do |items|
144
+ name = "enum-item2"
145
+ items.delete_pre_draw_proc_by_name(name)
146
+ items.delete_post_draw_proc_by_name(name)
147
+ draw_image_mark(items, @item_image_2, name, indent: indent)
148
+ end
149
+
150
+
151
+ match(Slide) do |slides|
152
+ slides.each do |slide|
153
+ if slide.match? /VCENTER/
154
+ slide.vertical_centering = true
155
+ end
156
+ if slide.match? /HCENTER/
157
+ slide.horizontal_centering = true
158
+ slide.vertical_centering = false
159
+ end
160
+ if slide.match? /XXLARGE/
161
+ slide.prop_set "size", @xx_large_font_size
162
+ elsif slide.match? /XLARGE/
163
+ slide.prop_set "size", @x_large_font_size
164
+ end
165
+ if slide.match? /MONO/
166
+ slide.prop_set "font-family", @monospace_font_family
167
+ slide.prop_set "foreground", matrix_green_title_2
168
+ elsif slide.match? /TITLE/
169
+ slide.prop_set "font-family", @title_font_family
170
+ slide.prop_set "foreground", matrix_green_title_2
171
+ end
172
+ end
173
+ end
174
+
175
+ match(Slide, HeadLine) do |heads|
176
+ heads.each do |head|
177
+ if head.match? /(VCENTER|HCENTER|TITLE|HIDE)/
178
+ head.prop_set "size", 0
179
+ end
180
+ end
181
+ end