rabbit-slide-QWYNG-qwyng_slide 1.0.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: bc7d11dee87323778d42a068f7fe29ee8e07bdc112bf0076b90ad219a97a17a5
4
+ data.tar.gz: d8a3cae99c7fff35211ad3b383cdb98121361114a0a140ec8f1191edd8b3f05c
5
+ SHA512:
6
+ metadata.gz: 74341f1e5487fd4ca0fda710190a04ef2e2ea0bcd87846a32620ea087b0757695dfeda4f27aea928d84bdc69408f69c3de0eac1452e927a46adeb1803c2492ca
7
+ data.tar.gz: 296f93777df60600062d9ecbd007ba5b0506c7d70db80d5e70a2da4235c0f65d06408e96218ae94de257db2c358e76c2963eb44cd1d78b40582216cdee025ea6
data/.rabbit ADDED
@@ -0,0 +1,2 @@
1
+ --size 1920,1080
2
+ letsplayatcoder.md
data/README.md ADDED
@@ -0,0 +1,24 @@
1
+ # My Ruby tools for AtCoder
2
+
3
+ 自作のAtCoder用Rubyツールの紹介スライドです。
4
+
5
+ ## 作者向け
6
+
7
+ ### 表示
8
+
9
+ rake
10
+
11
+ ### 公開
12
+
13
+ rake publish
14
+
15
+ ## 閲覧者向け
16
+
17
+ ### インストール
18
+
19
+ gem install rabbit-slide--qwyng_slide
20
+
21
+ ### 表示
22
+
23
+ rabbit rabbit-slide--qwyng_slide.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/abc150a.png ADDED
Binary file
data/config.yaml ADDED
@@ -0,0 +1,23 @@
1
+ ---
2
+ id: qwyng_slide
3
+ base_name: letsplayatcoder
4
+ tags: []
5
+ presentation_date:
6
+ presentation_start_time:
7
+ presentation_end_time:
8
+ version: 1.0.0
9
+ licenses: []
10
+ slideshare_id:
11
+ speaker_deck_id:
12
+ vimeo_id:
13
+ youtube_id:
14
+ width: 1920
15
+ height: 1080
16
+ source_code_uri:
17
+ author:
18
+ markup_language: :markdown
19
+ name: QWYNG
20
+ email: ikusawasi@gmail.com
21
+ rubygems_user: QWYNG
22
+ slideshare_user:
23
+ speaker_deck_user:
data/img.png ADDED
Binary file
@@ -0,0 +1,133 @@
1
+ # My Ruby tools for AtCoder
2
+
3
+ author
4
+ : QWYNG(大澤広朗)
5
+
6
+ institution
7
+ : SmartHR LT会 May, 2024
8
+
9
+ theme
10
+ : rabbit
11
+
12
+
13
+ # AtCoderにRubyで参加する
14
+ * AtCoder: 競技プログラミングのコンテストを開催しているサービス
15
+ * https://atcoder.jp
16
+ * Rubyで参加する際に利用している自作ツールの自慢をします
17
+ * Rubyを使ったアルゴリズムの解説はしません
18
+
19
+ # AtCoderに参加するときの流れ
20
+ 1. サンプル入出力からテストを生成する
21
+ 2. 問題を解く
22
+ 3. デバックする
23
+ 4. テストを通す
24
+ 5. 提出
25
+
26
+ * 1と3で自作ツールを使っています
27
+
28
+
29
+ # サンプル入出力からテストを生成する
30
+ * green_day
31
+ * https://github.com/QWYNG/green_day
32
+ * 自作のスクレイピングツール
33
+ * 問題の入出力からテストを自動生成してくれます
34
+ * コンテスト開催中等クッキーが必要な場合にも対応しています
35
+
36
+ # green_dayのデモ(1)
37
+ ![abc150a](./abc150a.png){:width='1280' height='720'}
38
+
39
+ # green_dayのデモ(2)
40
+ ```shell
41
+ $ bundle exec green_day new abc150
42
+ ```
43
+
44
+ ```shell
45
+ abc150
46
+ ├── A.rb
47
+ ├── B.rb
48
+ ├── C.rb
49
+ ├── D.rb
50
+ ├── E.rb
51
+ ├── F.rb
52
+ └── spec
53
+ ├── A_spec.rb
54
+ ├── B_spec.rb
55
+ ├── C_spec.rb
56
+ ├── D_spec.rb
57
+ ├── E_spec.rb
58
+ └── F_spec.rb
59
+ ```
60
+
61
+ # green_dayのデモ(3)
62
+
63
+ ```ruby
64
+ RSpec.describe 'abc150/A.rb' do
65
+ it 'test with "2 900\n"' do
66
+ io = IO.popen('ruby abc150/A.rb', 'w+')
67
+ io.puts("2 900\n")
68
+ io.close_write
69
+ expect(io.readlines.join).to eq("Yes\n")
70
+ end
71
+
72
+ it 'test with "1 501\n"' do
73
+ io = IO.popen('ruby abc150/A.rb', 'w+')
74
+ io.puts("1 501\n")
75
+ io.close_write
76
+ expect(io.readlines.join).to eq("No\n")
77
+ end
78
+
79
+ it 'test with "4 2000\n"' do
80
+ io = IO.popen('ruby abc150/A.rb', 'w+')
81
+ io.puts("4 2000\n")
82
+ io.close_write
83
+ expect(io.readlines.join).to eq("Yes\n")
84
+ end
85
+
86
+ end
87
+ ```
88
+
89
+ # デバックする(1)
90
+ テストで入出力をキャプチャしているのでREPLが動かない
91
+
92
+ ```shell
93
+ > rspec abc150/spec/A_spec.rb
94
+ FFF
95
+
96
+ Failures:
97
+
98
+ 1) abc150/A.rb test with "2 900\n"
99
+ Failure/Error: expect(io.readlines.join).to eq("Yes\n")
100
+ ~~~~~~~~ snip ~~~~~~~~
101
+ (compared using ==)
102
+
103
+ Diff:
104
+ @@ -1,9 +1,18 @@
105
+ +
106
+ +From: abc150/A.rb @ line 3 :
107
+ +
108
+ + 1: k, x = gets.split.map(&:to_i)
109
+ + 2: check_complition = '予測変換もいい感じになってほしいなぁ'
110
+ + => 3: binding.irb
111
+ + 4: puts k * 500 >= x ? 'Yes' : 'No'
112
+ +Switch to inspect mode.
113
+ +
114
+ Yes
115
+ ```
116
+
117
+ # デバックする(2)
118
+ * リモートプロセスのIRBを別のプロセスから操作することができるGemを作りました
119
+ * https://github.com/QWYNG/irb-remote
120
+
121
+ # irb-remoteのデモ(1)
122
+ ![irb-remote](./img.png){:width='1280' height='720'}
123
+
124
+ # irb-remoteの先行研究
125
+ * dRubyを使ってオブジェクトをプロセス間でやりとりしています
126
+ * dRubyでREPLを行う発想は先人の方を参考にしたものです
127
+ * https://github.com/Mon-Ouie/pry-remote
128
+ * https://github.com/iguchi1124/irb_remote
129
+ * 今回はRelineを使いたかったので自作しました
130
+
131
+ # まとめ
132
+ * 皆さんもぜひ使ってみてください
133
+
Binary file
metadata ADDED
@@ -0,0 +1,64 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: rabbit-slide-QWYNG-qwyng_slide
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.0
5
+ platform: ruby
6
+ authors:
7
+ - QWYNG
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2024-06-27 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: 自作のAtCoder用Rubyツールの紹介スライドです。
28
+ email:
29
+ - ikusawasi@gmail.com
30
+ executables: []
31
+ extensions: []
32
+ extra_rdoc_files: []
33
+ files:
34
+ - ".rabbit"
35
+ - README.md
36
+ - Rakefile
37
+ - abc150a.png
38
+ - config.yaml
39
+ - img.png
40
+ - letsplayatcoder.md
41
+ - pdf/qwyng_slide-letsplayatcoder.pdf
42
+ homepage: https://slide.rabbit-shocker.org/authors/QWYNG/qwyng_slide/
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.4.10
61
+ signing_key:
62
+ specification_version: 4
63
+ summary: My Ruby tools for AtCoder
64
+ test_files: []