rabbit-slide-hasumikin-RubyKaigi2023 2022.05.13.0

Sign up to get free protection for your applications and to get access to all the features.
data/README.rd ADDED
@@ -0,0 +1,24 @@
1
+ = Build Your Own SQLite3
2
+
3
+ Presentation slide for RubyKaigi 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-RubyKaigi2023
20
+
21
+ === Show
22
+
23
+ rabbit rabbit-slide-hasumikin-RubyKaigi2023.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,24 @@
1
+ ---
2
+ id: RubyKaigi2023
3
+ base_name: BuildYourOwnSQLite3
4
+ tags:
5
+ - PicoRuby
6
+ - SQLite3
7
+ - RP2040
8
+ presentation_date: '2023-05-13'
9
+ presentation_start_time:
10
+ presentation_end_time:
11
+ version: 2022.05.13.0
12
+ licenses: ["MIT License"]
13
+ slideshare_id:
14
+ speaker_deck_id:
15
+ ustream_id:
16
+ vimeo_id:
17
+ youtube_id:
18
+ author:
19
+ markup_language: :rd
20
+ name: HASUMI Hitoshi
21
+ email: hasumikin@gmail.com
22
+ rubygems_user: hasumikin
23
+ slideshare_user:
24
+ speaker_deck_user:
data/demo.md ADDED
@@ -0,0 +1,14 @@
1
+ # Demo
2
+
3
+ * gtkterm
4
+ * connect demo micon
5
+ * cd /sd
6
+ * pwd
7
+ * date
8
+ * irb
9
+
10
+ sudo fdisk -l | grep FAT
11
+ sudo umount -f /dev/sdb1
12
+ sudo mount -t vfat /dev/sdb1 /media/sd -w -o umask=0
13
+
14
+ (sdb1 may differ)
Binary file
Binary file
Binary file
data/images/R2P2.jpg ADDED
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
data/images/hasumi.jpg ADDED
Binary file
Binary file
data/images/kosaki.png ADDED
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
data/images/vfs1.gif ADDED
Binary file
@@ -0,0 +1,115 @@
1
+ 以下すべて、スライドに書かれるとは限りませんが、発表の中で言う可能性があります
2
+
3
+ ## 一見すると一般名詞だが、ソフトウェア用語(固有名詞)であるもの
4
+
5
+ - Lemon
6
+ - Bison
7
+ - Rails
8
+ - gem
9
+ - library
10
+ - steep
11
+ - terminal
12
+ - shell
13
+ - thread
14
+ - fiber
15
+ - task
16
+ - builtin
17
+ - executable(実行ファイルのこと)
18
+ - null
19
+ - nil
20
+ - true
21
+ - false
22
+ - array
23
+ - string
24
+ - hash
25
+
26
+ たとえば「レイルズ」と言った場合にはそのまま「Rails」と訳せばOKです
27
+ これらは他のセッションでも頻出すると思います。
28
+ 英→日の通訳時は、すべてそのまま発声すればよいです。
29
+ たとえば「gem」を「宝石」と訳すのはNGで、たんに「ジェム」と言えばよいです
30
+
31
+ ## そのほか登場する可能性のある専門用語
32
+
33
+ カッコ内は発音。書いていない場合は単にアルファベット読みすればOK
34
+
35
+ ### ハードウェア用語
36
+
37
+ - MCU(CPUの仲間)
38
+ - RP2040 -> RP-twenty-forty。MCUの一種
39
+ - Cortex m0+ (コーテクスエムゼロプラス。Cortex m4などのバリエーションあり)
40
+ - LED(発光ダイオード)
41
+ - 以下をまとめてperipheralと言うことがあります。マイコン用語です
42
+ - GPIO
43
+ - ADC(アナログ→デジタルコンバータのこと)
44
+ - DAC(↑の逆)
45
+ - SPI
46
+ - I2C(アイスクエアドスィー)
47
+
48
+ ### ソフトウェア用語
49
+
50
+ - VFS(たんにヴィーエフエスと言えばよい。Virtual File Systemのこと)
51
+ - GUI(ジーユーアイ。グイでも通じます。Graphical User Interface)
52
+ - CUI(Character User Interface)
53
+ - IREP(アイレップ。internal representation = 内部表現)
54
+ - VM(たんにヴィーエムと言っても通じますが、virtual machineと言い換える方がいいかもしれません)
55
+ - VM code
56
+ - RVALUE(アールヴァリュー。Rubyにおける値の内部表現)
57
+ - Rake(レイク。ビルドシステムの一種)
58
+ - Make(メイク。ビルドシステムの一種)
59
+ - CMake(シーメイク。ビルドシステムの一種)
60
+ - mrbgem(エムアールビージェム。mgem = エムジェムと言うこともあり、同じ意味)
61
+ - picogem(ピコジェム)
62
+ - 以上の3つは単数形で言ったり複数形で言ったりします。単数形は特定のgemを指し、複数形はその仕組み全体を指します
63
+ - FAT(ファットまたはエフエーティー。ファイルシステムの一種。FAT12、FAT16、FAT32という3種類のバリエーションあり)
64
+
65
+ ### 個別のソフトウェア名称
66
+
67
+ - SQLite3(エスキューライトスリー。「スリー」を言わないことが多い)
68
+ - MySQL(マイエスキューエル)
69
+ - PostgreSQL(ポストグレスキューエル。日本人は「ポスグレ」などと言うことが多い)
70
+ - Rubygems(ルビージェムズ)
71
+ - Ruby on Rails(ルビーオンレイルズ。これが単数形になることは決してありません)
72
+ - IRB(アイアールビー。バリエーションにMIRB、PicoIRBがあります)
73
+ - vim(ヴィム)
74
+ - emacs(イーマクス)
75
+ - textbringer(テクストブリンガ)
76
+ - YACC(ヤック。Lemonの仲間)
77
+ - sh(シェル。shellとおなじ)
78
+ - bash(バッシュ。shellの一種)
79
+ - zsh(ズィーシェル。shellの一種)
80
+ - Curses(カースィズ)
81
+ - Readline(リードライン)
82
+ - Git(ギット)
83
+ - libc(リブシー。バリデーションにglibcなどあり)
84
+
85
+ ### OS
86
+
87
+ - Android
88
+ - iOS
89
+ - macOS
90
+ - MS-DOS(エムエスドス)
91
+ - Linux(リーヌクス)
92
+ - Ubuntu(ウブントゥ。日本人は「うぶんつ」と発声します。Linuxの一種)
93
+ - Windows
94
+ - POSIX(パズィクス。OSの仕様の一種)
95
+
96
+ ### Webサービス
97
+
98
+ - GitHub(ギットハブ)
99
+ - GitLab(ギットラブ)
100
+
101
+ ## 適切な翻訳がある日本語
102
+
103
+ - 規約 -> convention
104
+ - 構造体 -> Struct(ストラクト)。IREP構造体、mrb構造体のように使う
105
+ - (キーボードが)「割れてるやつ」 -> Split-type keyboard
106
+ - ラズパイ -> Raspberry Pi(ラズベリーパイ)
107
+ - ラズパイピコまたはラズピコ -> Raspberry Pi Pico(ラズベリーパイピコ)。ピコがつくのとつかないのは別のものです
108
+ - ラズパイ財団 -> Raspberry Pi Foundation
109
+ - マイコン -> Microcontroller(Microcomputerではないので注意)
110
+ - 標準入力 -> Standard input
111
+ - 標準出力 -> Standard output
112
+ - 標準入出力 -> Standard IO(アイオー)。STDIO(エスティーディーアイオーとも)
113
+ - GCされる -> being garbage collected
114
+ - 静的型 -> Static typing
115
+ - 型チェック -> Type check
data/theme.rb ADDED
@@ -0,0 +1,191 @@
1
+ # puts font_families.sort
2
+ @xxx_large_font_size = screen_size(10.5 * Pango::SCALE)
3
+ @xx_large_font_size = screen_size(9 * Pango::SCALE)
4
+ @x_large_font_size = screen_size(8 * Pango::SCALE)
5
+ @large_font_size = screen_size(6.5 * Pango::SCALE)
6
+ @normal_font_size = screen_size(4.5 * Pango::SCALE)
7
+ @small_font_size = screen_size(4 * Pango::SCALE)
8
+ @x_small_font_size = screen_size(3 * Pango::SCALE)
9
+ @xx_small_font_size = screen_size(2.5 * Pango::SCALE)
10
+
11
+ @font_family = find_font_family('Montserrat')
12
+ @monospace_font_family = 'Courier Prime'
13
+ @title_font_family = find_font_family('Montserrat')
14
+
15
+ # colors
16
+ foreground = "#333333"
17
+ red = "#ba083d"
18
+ dark_gray = "#000000"
19
+ light_gray = "#a9a7ad"
20
+ preformatted_foreground = "#00ffc2"
21
+
22
+ @default_headline_line_color = light_gray
23
+ @default_headline_line_width = 2
24
+ @default_headline_line_expand = true
25
+
26
+ @default_emphasis_color = red
27
+ @default_emphasis_level2_color = "#ffffff"
28
+
29
+ set_graffiti_color red
30
+ set_graffiti_line_width 5
31
+
32
+ #@table_frame_color = "#ffffff"
33
+ #@table_fill_color = "#0f0428"
34
+ #@table_body_frame_color = "#ffffff"
35
+ #@table_body_fill_color = "#3f3468"
36
+ #@table_head_frame_color = "#ffffff"
37
+ #@table_head_fill_color = "#rf0428"
38
+
39
+ @preformatted_fill_color = dark_gray
40
+ @preformatted_frame_color = light_gray
41
+ @preformatted_frame_width = 10
42
+ # @preformatted_centering = true
43
+
44
+ @space = screen_y(1)
45
+
46
+ @image_slide_number_start_flag_color = "#53575a"
47
+ @image_slide_number_goal_flag_color = red
48
+
49
+ #@slide_headline_hide = true
50
+
51
+ @slide_background_image = 'images/assets/background-slide.png'
52
+ include_theme("slide-background-image")
53
+
54
+ @title_slide_background_image = 'images/assets/background-title.png'
55
+ include_theme("title-slide-background-image")
56
+
57
+ include_theme('default')
58
+
59
+ match(Slide, HeadLine) do |heads|
60
+ heads.margin_top = 20
61
+ heads.prop_set("weight", "normal")
62
+ heads.prop_set "size", @large_font_size
63
+ set_font_family(heads)
64
+ end
65
+ match(Slide) do |slides|
66
+ slides.margin_left = 100
67
+ slides.margin_right = 100
68
+ slides.prop_set("foreground", foreground)
69
+ end
70
+
71
+ match TitleSlide do |slides|
72
+ slides.margin_left = 770
73
+ slides.prop_set("foreground", foreground)
74
+ end
75
+ match TitleSlide, Title do |title|
76
+ title.margin_top = -20
77
+ title.prop_set "size", @xxx_large_font_size
78
+ title.prop_set "font-family", @title_font_family
79
+ title.prop_set "weight", "bold"
80
+ end
81
+ match TitleSlide, Subtitle do |subtitle|
82
+ subtitle.margin_top = -40
83
+ subtitle.prop_set "size", @xxx_large_font_size
84
+ subtitle.prop_set "font-family", @title_font_family
85
+ subtitle.prop_set "weight", "bold"
86
+ end
87
+ match TitleSlide, Author do |authors|
88
+ authors.margin_top = 50
89
+ authors.prop_set "size", @large_font_size
90
+ end
91
+ match TitleSlide, ContentSource do |cs|
92
+ cs.margin_top = 10
93
+ cs.prop_set "size", @x_small_font_size
94
+ cs.prop_set "weight", "bold"
95
+ cs.prop_set "style", "normal"
96
+ cs.prop_set "foreground", red
97
+ end
98
+ match TitleSlide, Date do |date|
99
+ date.prop_set "size", @x_small_font_size
100
+ date.prop_set "style", "normal"
101
+ end
102
+ match TitleSlide, Institution do |i|
103
+ i.prop_set "size", @x_small_font_size
104
+ i.prop_set "style", "normal"
105
+ end
106
+
107
+ #@slide_logo_image = 'images/mark_g.png'
108
+ #include_theme('slide-logo')
109
+
110
+ @item_image_1 = 'images/assets/bullet-point-36.png'
111
+ @item_image_2 = 'images/assets/bullet-point-36.png'
112
+ @item_image_3 = 'images/assets/bullet-point-24.png'
113
+
114
+ include_theme("default-item-mark")
115
+
116
+ add_image_path("rabbit-images")
117
+
118
+ slide_body = [Slide, Body]
119
+ item_list_item = [ItemList, ItemListItem]
120
+
121
+ indent = 50
122
+
123
+ match(*(slide_body + (item_list_item * 1))) do |items|
124
+ name = "item1"
125
+ items.delete_pre_draw_proc_by_name(name)
126
+ items.delete_post_draw_proc_by_name(name)
127
+ draw_image_mark(items, @item_image_1, name, indent: indent)
128
+ end
129
+
130
+ match(*(slide_body + (item_list_item * 2))) do |items|
131
+ name = "item2"
132
+ items.delete_pre_draw_proc_by_name(name)
133
+ items.delete_post_draw_proc_by_name(name)
134
+ draw_image_mark(items, @item_image_2, name, indent: indent)
135
+ end
136
+
137
+ match(*(slide_body + (item_list_item * 3))) do |items|
138
+ name = "item3"
139
+ items.delete_pre_draw_proc_by_name(name)
140
+ items.delete_post_draw_proc_by_name(name)
141
+ draw_image_mark(items, @item_image_3, name, indent: indent)
142
+ end
143
+
144
+ enum_list_item = [EnumList, EnumListItem]
145
+
146
+ match(*(slide_body + enum_list_item + item_list_item)) do |items|
147
+ name = "enum-item1"
148
+ items.delete_pre_draw_proc_by_name(name)
149
+ items.delete_post_draw_proc_by_name(name)
150
+ draw_image_mark(items, @item_image_1, name, indent: indent)
151
+ end
152
+
153
+ match(*(slide_body + enum_list_item + (item_list_item * 2))) do |items|
154
+ name = "enum-item2"
155
+ items.delete_pre_draw_proc_by_name(name)
156
+ items.delete_post_draw_proc_by_name(name)
157
+ draw_image_mark(items, @item_image_2, name, indent: indent)
158
+ end
159
+
160
+ # table
161
+ all_table = ["**", Table]
162
+ match(*(all_table + [TableBody, TableRow, TableCell])) do |cells|
163
+ set_font_family(cells, @monospace_font_family)
164
+ end
165
+ match(*(all_table + [TableHead, TableRow, TableHeader])) do |headers|
166
+ set_font_family(headers, @monospace_font_family)
167
+ end
168
+
169
+ match("**", Emphasis, Emphasis) do |texts|
170
+ texts.prop_set("foreground", @default_emphasis_level2_color)
171
+ texts.prop_set("weight", "normal")
172
+ end
173
+
174
+ # Chapter
175
+ match Slide do |slides|
176
+ slides.each do |slide|
177
+ if slide.match?(/sub_chapter/)
178
+ slide.horizontal_centering = true
179
+ elsif slide.match?(/chapter/)
180
+ set_font_family slide, @title_font_family
181
+ slide.horizontal_centering = true
182
+ elsif slide.match?(/cite/)
183
+ slide.prop_set "foreground", foreground
184
+ slide.horizontal_centering = true
185
+ end
186
+ end
187
+ end
188
+
189
+ match("**", PreformattedBlock) do |blocks|
190
+ blocks.prop_set("foreground", preformatted_foreground)
191
+ end
metadata ADDED
@@ -0,0 +1,91 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: rabbit-slide-hasumikin-RubyKaigi2023
3
+ version: !ruby/object:Gem::Version
4
+ version: 2022.05.13.0
5
+ platform: ruby
6
+ authors:
7
+ - HASUMI Hitoshi
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2023-05-13 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 RubyKaigi 2023
28
+ email:
29
+ - hasumikin@gmail.com
30
+ executables: []
31
+ extensions: []
32
+ extra_rdoc_files: []
33
+ files:
34
+ - ".rabbit"
35
+ - BuildYourOwnSQLite3.rab
36
+ - README.rd
37
+ - Rakefile
38
+ - config.yaml
39
+ - demo.md
40
+ - images/GPK60-46W.jpg
41
+ - images/GPK60-46W_top.jpg
42
+ - images/QR_github-com-picoruby.png
43
+ - images/R2P2.jpg
44
+ - images/assets/2023_graphic_kit/background.png
45
+ - images/assets/2023_graphic_kit/ogp.png
46
+ - images/assets/background-slide.png
47
+ - images/assets/background-title.png
48
+ - images/assets/bullet-point-24.png
49
+ - images/assets/bullet-point-36.png
50
+ - images/assets/bullet-point-48.png
51
+ - images/assets/bullet-point.png
52
+ - images/assets/main-visual-large.png
53
+ - images/assets/main-visual-medium.png
54
+ - images/assets/main-visual-small.png
55
+ - images/hasumi.jpg
56
+ - images/initial-V.png
57
+ - images/kosaki.png
58
+ - images/out-of-memory_1.png
59
+ - images/out-of-memory_2.png
60
+ - images/out-of-memory_fixed.png
61
+ - images/picoruby.png
62
+ - images/rpi_pico.jpg
63
+ - images/transparent.png
64
+ - images/vfs1.gif
65
+ - memo_同時通訳用語集.md
66
+ - pdf/RubyKaigi2023-BuildYourOwnSQLite3.pdf
67
+ - theme.rb
68
+ homepage: https://slide.rabbit-shocker.org/authors/hasumikin/RubyKaigi2023/
69
+ licenses:
70
+ - MIT License
71
+ metadata: {}
72
+ post_install_message:
73
+ rdoc_options: []
74
+ require_paths:
75
+ - lib
76
+ required_ruby_version: !ruby/object:Gem::Requirement
77
+ requirements:
78
+ - - ">="
79
+ - !ruby/object:Gem::Version
80
+ version: '0'
81
+ required_rubygems_version: !ruby/object:Gem::Requirement
82
+ requirements:
83
+ - - ">="
84
+ - !ruby/object:Gem::Version
85
+ version: '0'
86
+ requirements: []
87
+ rubygems_version: 3.4.13
88
+ signing_key:
89
+ specification_version: 4
90
+ summary: Build Your Own SQLite3
91
+ test_files: []