rabbit-slide-znz-rubykaigi2022-rurema 2022.9.10.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: b797c063a44f43e3aa7ba3a4cf975fd63d966f88c22025ec14df3071020980ef
4
+ data.tar.gz: ac132d7a2ed8d7be9f8a56da576330c70ed1f92df5e95b3f60a26f5d8080d4c6
5
+ SHA512:
6
+ metadata.gz: bb4de566672d16b6a9878c260aaabeed11ac0c1965d151f3850390a9950a6fd66bab99df2716572beb137c7bc6677a2a53a5c8c787ef1db343ab4cbd1454957f
7
+ data.tar.gz: 68b6fdad252a724bab9a9fa3b3f6504792c452037f564ea900e391c2d45b6937d48f30705d90d800b607ab25d3c6984964a6fd19a0b37edc1f11ff6f28b5023d
data/.rabbit ADDED
@@ -0,0 +1,2 @@
1
+ --size 1920,1080
2
+ rurema-history-and-future.md
data/README.md ADDED
@@ -0,0 +1,24 @@
1
+ # History of Japanese Ruby reference manual, and future
2
+
3
+ RubyKaigi 2022 での発表資料です。
4
+ <https://rubykaigi.org/2022/presentations/znz.html#day3>
5
+
6
+ ## 作者向け
7
+
8
+ ### 表示
9
+
10
+ rake
11
+
12
+ ### 公開
13
+
14
+ rake publish
15
+
16
+ ## 閲覧者向け
17
+
18
+ ### インストール
19
+
20
+ gem install rabbit-slide-znz-rubykaigi2022-rurema
21
+
22
+ ### 表示
23
+
24
+ rabbit rabbit-slide-znz-rubykaigi2022-rurema.gem
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,23 @@
1
+ ---
2
+ id: rubykaigi2022-rurema
3
+ base_name: rurema-history-and-future
4
+ tags:
5
+ - ruby
6
+ presentation_date: '2022-09-10'
7
+ presentation_start_time:
8
+ presentation_end_time:
9
+ version: 2022.9.10.0
10
+ licenses: []
11
+ slideshare_id: rubykaigi2022ruremahistoryandfuturepdf
12
+ speaker_deck_id: history-of-japanese-ruby-reference-manual-and-future
13
+ vimeo_id:
14
+ youtube_id:
15
+ width: 1920
16
+ height: 1080
17
+ author:
18
+ markup_language: :markdown
19
+ name: Kazuhiro NISHIYAMA
20
+ email: zn@mbf.nifty.com
21
+ rubygems_user: znz
22
+ slideshare_user: znzjp
23
+ speaker_deck_user: znz
@@ -0,0 +1,415 @@
1
+ # History of Japanese Ruby reference manual, and future
2
+
3
+ author
4
+ : Kazuhiro NISHIYAMA
5
+
6
+ institution
7
+ : 株式会社Ruby開発
8
+
9
+ content-source
10
+ : RubyKaigi 2022
11
+
12
+ date
13
+ : 2022-09-10
14
+
15
+ allotted-time
16
+ : 29m
17
+
18
+ theme
19
+ : lightning-simple
20
+
21
+ # self.introduction
22
+
23
+ - Kazuhiro NISHIYAMA
24
+ - One of Ruby committers
25
+ - One of owners of <https://github.com/rurema>
26
+ - Today's topic
27
+ - Ruby Development Inc.
28
+ - one of Silver Sponsors
29
+ - jimlock (one of TRICK 2022 winner) is my coworker
30
+ - Twitter, GitHub: `@znz`
31
+
32
+ ## note
33
+
34
+ まずは自己紹介からです。
35
+ Ruby のコミッターの一人です。
36
+ そして今回の話に出てくるるりまOrganizationのowner権限を持っている一人です。
37
+ 今回はこれの話です。
38
+
39
+ 現在の所属は株式会社Ruby開発で、今回のRubyKaigi 2022のシルバースポンサーのうちの1社です。
40
+ 今回の TRICK2022 の入賞者の1人は弊社所属の人です。
41
+
42
+ Twitter や GitHub ではゼットエヌゼットというアカウントで活動しています。
43
+
44
+ # Agenda
45
+
46
+ - What is rurema?
47
+ - History of Japanese Ruby reference manual
48
+ - Before rurema
49
+ - Recent changes
50
+ - Future plans
51
+ - Short term plans
52
+ - Medium term plans
53
+ - Long term plans
54
+
55
+ ## note
56
+
57
+ まずるりまとは何かという話をした後、歴史の話をして、今後どうしていきたいかという話をします。
58
+
59
+ # What is rurema (るりま)?
60
+
61
+ - Japanese Ruby reference manual
62
+ Rubyリファレンスマニュアル刷新計画
63
+ - <https://github.com/rurema>
64
+ - [rurema/doctree](https://github.com/rurema/doctree)
65
+ - documents
66
+ - [rurema/bitclust](https://github.com/rurema/bitclust)
67
+ - original system
68
+
69
+ ## note
70
+
71
+ まず、「るりま」とは何かというと、Rubyリファレンスマニュアル刷新計画のことで、主に2つのリポジトリがあります。
72
+ ひとつはドキュメントのドックツリーで、もうひとつは独自システムのビットクラストです。
73
+
74
+ # るりま != るびま
75
+
76
+ - Rubyist Magazine
77
+ - <https://magazine.rubyist.net/>
78
+ - <https://github.com/rubima>
79
+ - a similar name, but not related
80
+ - in FAQ (rubima exist since that time)
81
+
82
+ > Q. るびま、って「ネギま!」のぱくりですか?
83
+ > A. 違います。多分。「るびま」を考えた人たちは「ネギま!」を知りませんでした (または、言われるまで気付かなかった)。
84
+
85
+ ## note
86
+
87
+ ちょっと話がそれますが、似たプロジェクトに「るびま」があって、こちらはルビーストマガジンの略で、
88
+ 名前は似ていますが、直接の関係はありません。
89
+
90
+ FAQ に
91
+
92
+ > Q. るびま、って「ネギま!」のぱくりですか?
93
+ > A. 違います。多分。「るびま」を考えた人たちは「ネギま!」を知りませんでした (または、言われるまで気付かなかった)。
94
+
95
+ と書いてあって、ネギまという漫画がはやっていた頃から存在しています。
96
+
97
+ # Before rurema
98
+
99
+ - Before Ruby 1.4.6
100
+ - <https://ftp.ruby-lang.org/pub/ruby/doc/>
101
+ - Documents written in *RD*
102
+ - English: [ruby-man-1.4.6.tar.gz](https://ftp.ruby-lang.org/pub/ruby/doc/ruby-man-1.4.6.tar.gz)
103
+ - Japanese: [ruby-man-1.4.6-jp.tar.gz](https://ftp.ruby-lang.org/pub/ruby/doc/ruby-man-1.4.6-jp.tar.gz)
104
+ (HTML files encoding is iso-2022-jp)
105
+ - Ruby 1.6 to 1.8 era
106
+ - Edit documents on *RWiki*
107
+ - RWiki is a Wiki using RD + some extensions
108
+
109
+ ## note
110
+
111
+ 現在入手しやすい最古のドキュメントとして、1.4.6時代にRDで書かれたものがこのURLからダウンロードできます。
112
+ 中のHTMLファイルのエンコーディングは ISO-2022-JP なので、UTF-8 しか対応していないソフトで開くと文字化けするので気をつけてください。
113
+ このうち、日本語の方を元にして、RWikiというRD記法をベースにして、いくつか拡張された記法を使った Wiki で、しばらくの間、ドキュメントを更新していました。
114
+
115
+ # Starting rurema
116
+
117
+ - In Ruby 1.8 era
118
+ - Started *rurema* (Rubyリファレンスマニュアル刷新計画)
119
+ - *bitclust* supports *RD* based original syntax
120
+ - bitclust does not use *RDtool* (<https://rubygems.org/gems/rdtool>)
121
+ - Import documents from *RWiki*
122
+
123
+ ## note
124
+
125
+ 1.8時代にRubyリファレンスマニュアル刷新計画が始まり、
126
+ RDベースの独自記法のbitclustというシステムに移行しました。
127
+
128
+ bitclustはRDの処理に既存のRDtoolは使わずに独自の拡張を含む処理系になっています。
129
+
130
+ # License of documents
131
+
132
+ - License exists in the edit form of RWiki with
133
+ - license can be changed if there is an agreement on ML (rubyist ML on freeml. it already removed, and freeml service ended)
134
+ - License changed to *Creative Commons — Attribution 3.0 Unported*
135
+ <https://github.com/rurema/doctree/blob/master/refm/doc/license.rd>
136
+
137
+ ## note
138
+
139
+ るりまプロジェクトの開始のときに、同時にドキュメントのライセンスについても
140
+ 使いやすいものにしようという話がありました。
141
+
142
+ あらかじめ RWiki での編集に移行するときに、将来をみすえて、ライセンスの変更手順についても書いておいたので、
143
+ 当時使っていた freeml の rubyist ML で合意を取ってライセンスを変更できました。
144
+
145
+ # System improvements in bitclust era
146
+
147
+ - Convert documents from EUC-JP to UTF-8
148
+ - Support code colorize (`#@samplecode`)
149
+ - `#@` is prefix of pre-processors
150
+ - Output as chm, ePub too
151
+ - may not work now
152
+ - if it does not work, contribution chance!
153
+ - default: static html (used on docs.ruby-lang.org)
154
+
155
+ ## note
156
+
157
+ bitclust時代にシステムが関わる改善点がいくつかあったので、主なものをいくつか紹介します。
158
+
159
+ まず、ドキュメントがEUC-JPで書かれていたのを時代の変化に合わせてUTF-8に移行しました。
160
+ そして、サンプルコードが色つけに対応しました。
161
+
162
+ それから、今も使えるかどうかは試していないのでわからないのですが、chmやePubの出力にも対応しています。
163
+ 試してみて動かないようだったら、OSS に貢献するチャンスです。
164
+
165
+ 現在のデフォルトの出力は静的なHTMLで、公式のドキュメントサイトの docs.ruby-lang.org でも使われています。
166
+
167
+ # Project current status
168
+
169
+ - Documentation improvement sub-projects
170
+ - Support new versions of Ruby
171
+ - <https://rurema-review.connpass.com/>
172
+
173
+ ## note
174
+
175
+ 次にプロジェクトの現状の話です。
176
+
177
+ # Documentation improvement sub-projects
178
+
179
+ - Add executable sample codes
180
+ - <https://github.com/rurema/doctree/issues/433>
181
+ コピペ可能なサンプルコードを整備する
182
+ - Colorize sample codes
183
+
184
+ → stalled (maybe almost done?)
185
+
186
+ ## note
187
+
188
+ ドキュメントを改善するためのサブプロジェクトとして、「コピペ可能なサンプルコードを整備する」やサンプルコードの色つけ対応がありますが、
189
+ 手を動かしてくれる人たちが忙しくなってしまったからか、ほとんど終わったからなのか、現状はほぼ止まっているようです。
190
+
191
+ # Support new versions of Ruby
192
+
193
+ - Well supported
194
+ - Method changes (new, changed arguments or functionality, removed)
195
+ - Insufficient supported
196
+ - Syntax changes (pattern match, `&.`, ...)
197
+ - Changes are not clear where to write
198
+
199
+ ## note
200
+
201
+ 新しいRubyのバージョン対応の現状は、
202
+ メソッドの変更はかなり対応できていて、
203
+ 文法など、どこに書くのかはっきりしないものは対応が不十分です。
204
+
205
+ # rurema-review
206
+
207
+ - https://rurema-review.connpass.com/
208
+ - every Tuesday night
209
+ - るりまレビュー会 → るりまもくもく会
210
+ - after 鹿児島Ruby会議01
211
+ - Many pull requests merged
212
+
213
+ → inactive
214
+
215
+ ## note
216
+
217
+ 鹿児島Ruby会議01の懇親会でるりまのpull requestがたまっているなどの状況をどうにかしたいと数人で話して、
218
+ 毎週定期的にオンラインで何かする時間を開催していました。
219
+
220
+ 結果的にたくさんの pull requests をマージできました。
221
+
222
+ しかし、だんだん参加者が減ってしまって、現在は Slack での通知が続いているだけで、あまり活動できていません。
223
+
224
+ # Help wanted
225
+
226
+ - Help wanted to check current statuses
227
+ - Coordinator is also wanted
228
+ - Contact us on GitHub issues or `#rurema` channel of ruby-jp slack
229
+ - <https://github.com/rurema/doctree/issues>
230
+ - <https://ruby-jp.github.io/>
231
+
232
+ ## note
233
+
234
+ そういう状況なので、現状を確認して、作業が必要な部分を調整してくれる人がいると助かります。
235
+
236
+ 興味があれば GitHub の issues か ruby-jp slack の「るりま」チャンネルで連絡してください。
237
+
238
+ # Future plans
239
+
240
+ - Short term plans
241
+ - Medium term plans
242
+ - Long term plans
243
+
244
+ ## note
245
+
246
+ 最後に、現在の短期目標、中期目標、長期目標の話をします。
247
+
248
+ # RD based → Markdown based
249
+
250
+ - *Most important biggest short term plan*
251
+ - Markdown is more familiar for many users
252
+ - It makes more contributions
253
+ - I am investigating how to convert from current syntax
254
+
255
+ ## note
256
+
257
+ 最も重要で大きな短期目標は、RDベースの記法からマークダウンベースの記法への変更です。
258
+
259
+ ほとんどのユーザーにとって、markdown は RD よりも馴染みがあるので、貢献してくれる人が増えることが期待できます。
260
+
261
+ そのために、現在の記法からどう変換するのが良いかを調査中です。
262
+
263
+ # Current syntax
264
+
265
+ - `#@` lines are bitclust pre-processors
266
+ - `---` line is MethodList of RD
267
+
268
+ ```
269
+ #@since 3.1
270
+ --- intersect?(other) -> bool
271
+
272
+ other と共通の要素が少なくとも1個あれば true を、なければ false を返します。
273
+
274
+ #@samplecode 例
275
+ a = [ 1, 2, 3 ]
276
+ b = [ 3, 4, 5 ]
277
+ c = [ 5, 6, 7 ]
278
+ a.intersect?(b) # => true
279
+ a.intersect?(c) # => false
280
+ #@end
281
+ #@end
282
+ ```
283
+
284
+ ## note
285
+
286
+ 現在の記法はこのような感じです。
287
+
288
+ ハッシュ アットマーク シンス と対応する ハッシュ アットマーク エンド までで、
289
+ このバージョン以降のドキュメントをくくっていて、
290
+ ハイフン3個で始まる行はメソッドリストで、その後にメソッドの説明を書いています。
291
+
292
+ それから、ハッシュ アットマーク サンプルコードで色付けする実行可能なサンプルコードをくくっています。
293
+
294
+ # Convert pre-processors
295
+
296
+ - Version branching, include, ...
297
+ - I care about
298
+ - Editors support what extensions
299
+ - Do not break Markdown processor which does not support extensions (e.g. GitHub.com)
300
+
301
+ ## note
302
+
303
+ さきほど見せたようなRDベースの記法から変換するときに、bitclust独自のプリプロセッサのバージョン分岐やインクルードなどをどうするのが良いかなどを考えています。
304
+
305
+ たとえば、エディターがどういう拡張なら対応していて、編集しやすいかとか、どういう記法なら対応していない環境でも変なことにならないか、ということを気にしています。
306
+
307
+ # MethodList
308
+
309
+ - What is alternative of `MethodList`
310
+ - Current syntax is based on `def m(args)`
311
+ - Blocks have notation fluctuations
312
+ - `{|x| ... }`, `{|x| block }`, or `&block`
313
+ - Return types are not used effectively
314
+
315
+ ## note
316
+
317
+ RDに存在するメソッドリストがないので、その代わりに何を使うかも考える必要があります。
318
+
319
+ 現状はできるだけメソッド定義の記法にあわせるというゆるい決まりがあるだけで厳密なチェックはされていません。
320
+ キーワード引数はこのゆるい決まりでうまく対応できていますが、特にブロックの書き方と返り値に表記揺れがあります。
321
+
322
+ 返り値の型は表記にはあまり問題がおきていませんが、有効活用できていません。
323
+
324
+ # Other syntax
325
+
326
+ - `#@samplecode` → code block
327
+ - links and references → ? (thinking)
328
+ - link from `[[ref:m17n_prog]]` to `===[a:m17n_prog] M17N プログラミングの基本` in the same file
329
+ - link from `[[ref:c:GC#tuning_gc]]` to `====[a:tuning_gc] チューニングのための環境変数` in the other file
330
+
331
+ ## note
332
+
333
+ 他の記法の変換も考え中です。
334
+
335
+ サンプルコードはコードブロックに変換できますが、リンクや参照はどうするのか考え中です。
336
+
337
+ # Other short term plans and problems
338
+
339
+ - Clean up unused files, old files
340
+ - ChangeLog, setup.rb, ...
341
+ - Not sure if tools are still usable
342
+ - **Lack of usage documentation**
343
+ - This is most important for contributors
344
+ - Reproducible build
345
+ - in container? devcontainer?
346
+
347
+ ## note
348
+
349
+ その他の短期目標と問題点をざっと並べておくと、
350
+ もう使われていなかったり、古いファイルが残っているのを整理したいというのと、
351
+ toolsのファイルがまだ使えるのかどうかはっきりしない、
352
+ 使い方のドキュメントが不足している、という点があります。
353
+
354
+ 使い方のドキュメント不足は最重要課題と認識していて、貢献者を増やすのに一番重要だと思っています。
355
+
356
+ そして、再現可能なビルドも何らかの手段でもっと進めたいと思っています。
357
+
358
+ # Medium term plans with other software
359
+
360
+ - Cooperation with RBS
361
+ - e.g. Check signatures
362
+ - Cooperation with IRB
363
+ - Support to show rurema instead of rdoc
364
+
365
+ ## note
366
+
367
+ 中期目標としては、周辺ツールとの連携を進めたいと思っています。
368
+
369
+ # Medium term plans for documents
370
+
371
+ - Executable sample code using WASM
372
+ - hanachin already tried <https://github.com/hanachin/bitclust/commit/1ae60bfabd09c0d241e6966a6800e27a797ce175> and will discuss at <https://github.com/rurema/doctree/issues/2730>
373
+ - Clean up unbundled libraries and old documents
374
+ - Some documents moved to <https://github.com/rurema/historical-documents>
375
+
376
+ ## note
377
+
378
+ また、標準添付ではなくなったライブラリのドキュメントも古いまま放置するのではなく、新しいバージョンでは生成されないようにするなどの何らかの対処をしたいと思っています。
379
+
380
+ # Long term plans
381
+
382
+ - I18n support
383
+ - Hard to merge rdoc, so rurema will continue separately
384
+ - gettext based?
385
+ - or something else based?
386
+ - It should be based on English, so unlikely to come true
387
+
388
+ ## note
389
+
390
+ 長期目標としては、日本語と英語以外への対応できるシステムにしたいですが、
391
+ 英語ベースじゃないと他の言語に翻訳いてもらいにくいというのと、
392
+ RDocとは記法だけに限らず、ドキュメントの書き方が違いすぎて統一しにくいので、
393
+ 遠い将来の夢になりそうです。
394
+
395
+ # end
396
+
397
+ - Short term most important plans to increase contributions
398
+ - RD based → Markdown based
399
+ - Improve usage documentation
400
+ - Middle term plans: Improve for users
401
+ - Resolve many historical problems progressively
402
+ - Contribution welcome!
403
+ - Contact us on GitHub or `#rurema` channel of ruby-jp slack
404
+
405
+ ## note
406
+
407
+ 最後にまとめると、貢献を増やすための短期目標として、
408
+ RD ベースだと貢献しにくいので、Markdownベースに移行したいです。
409
+ そして、使い方のドキュメントも重視したいです。
410
+
411
+ 中期目標としてはユーザー向けの改善を進めていきたいです。
412
+
413
+ その他歴史的経緯で課題が山積みなのを徐々に対処していきたいです。
414
+
415
+ 最後に、みなさまの貢献をお待ちしています、ということで発表を終わります。
metadata ADDED
@@ -0,0 +1,64 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: rabbit-slide-znz-rubykaigi2022-rurema
3
+ version: !ruby/object:Gem::Version
4
+ version: 2022.9.10.0
5
+ platform: ruby
6
+ authors:
7
+ - Kazuhiro NISHIYAMA
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2022-09-10 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: |-
28
+ RubyKaigi 2022 での発表資料です。
29
+ <https://rubykaigi.org/2022/presentations/znz.html#day3>
30
+ email:
31
+ - zn@mbf.nifty.com
32
+ executables: []
33
+ extensions: []
34
+ extra_rdoc_files: []
35
+ files:
36
+ - ".rabbit"
37
+ - README.md
38
+ - Rakefile
39
+ - config.yaml
40
+ - pdf/rubykaigi2022-rurema-rurema-history-and-future.pdf
41
+ - rurema-history-and-future.md
42
+ homepage: https://slide.rabbit-shocker.org/authors/znz/rubykaigi2022-rurema/
43
+ licenses: []
44
+ metadata: {}
45
+ post_install_message:
46
+ rdoc_options: []
47
+ require_paths:
48
+ - lib
49
+ required_ruby_version: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - ">="
52
+ - !ruby/object:Gem::Version
53
+ version: '0'
54
+ required_rubygems_version: !ruby/object:Gem::Requirement
55
+ requirements:
56
+ - - ">="
57
+ - !ruby/object:Gem::Version
58
+ version: '0'
59
+ requirements: []
60
+ rubygems_version: 3.3.7
61
+ signing_key:
62
+ specification_version: 4
63
+ summary: History of Japanese Ruby reference manual, and future
64
+ test_files: []