shunkuntype 1.0.9 → 1.0.10
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/shunkuntype/plot_data.rb +5 -4
- data/lib/shunkuntype/version.rb +1 -1
- data/shunkuntype_bob/.gitignore +1 -0
- data/shunkuntype_bob/Rakefile +252 -0
- data/shunkuntype_bob/hiki_help.yml +53 -0
- data/shunkuntype_bob/report.hiki +173 -0
- data/shunkuntype_bob/shunkuntype_bob.hiki +36 -0
- data/speed.png +0 -0
- data/tmp.hiki +64 -0
- data/tmp.html +72 -0
- data/work.png +0 -0
- metadata +7 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9e7af596303748af6d09b2b31305df40c294e8c4
|
4
|
+
data.tar.gz: 166bb80dd5d6ef6380d1340240830d86cc2e3bef
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ea84d299692525ab128bdc3afee48fcba674b32c26d0b3c9436f01d4fb053a29d98c1a2807b281f9c68e7ba487f4e684ff97655dff604bb8a5f44f4cf5645bb4
|
7
|
+
data.tar.gz: 9f834718746fbd315a7e0a028f3d494fc76ceb7acc9c2fb87ff1cbff4d3652c6e07d62cd8edbd633065e6a06b48753ff1de633e7ebd5dcf0e1e85b47157a3b62
|
@@ -82,16 +82,16 @@ class MkPlots
|
|
82
82
|
@opts = opts
|
83
83
|
mk_mem_names()
|
84
84
|
work_all()
|
85
|
-
FileUtils.mv('res.png', './work.png')
|
85
|
+
# FileUtils.mv('res.png', './work.png')
|
86
86
|
speed_all()
|
87
|
-
FileUtils.mv('res.png', './speed.png')
|
87
|
+
# FileUtils.mv('res.png', './speed.png')
|
88
88
|
end
|
89
89
|
|
90
90
|
def work_all
|
91
91
|
all_data= @mem_names.inject([]){|all,name| all << work_view(name) }
|
92
92
|
text="Work minutes [min]"
|
93
93
|
plot(all_data,text)
|
94
|
-
plot(all_data,text,opts={:png=>true})
|
94
|
+
# plot(all_data,text,opts={:png=>true})
|
95
95
|
end
|
96
96
|
|
97
97
|
def speed_all
|
@@ -100,7 +100,7 @@ class MkPlots
|
|
100
100
|
text="Typing speed [sec/20 words]"
|
101
101
|
|
102
102
|
plot(all_data,text)
|
103
|
-
plot(all_data,text,opts={:png=>true})
|
103
|
+
# plot(all_data,text,opts={:png=>true})
|
104
104
|
end
|
105
105
|
|
106
106
|
def speed_view(name)
|
@@ -142,6 +142,7 @@ class MkPlots
|
|
142
142
|
plot.ylabel text0
|
143
143
|
plot.xlabel "Elapsed time[days]"
|
144
144
|
plot.xtics "0 7"
|
145
|
+
plot.xrange "[-49:1]"
|
145
146
|
if true==opts.has_key?(:png) then
|
146
147
|
plot.term "pngcairo enhanced size 480,360"
|
147
148
|
plot.output "res.png"
|
data/lib/shunkuntype/version.rb
CHANGED
@@ -0,0 +1 @@
|
|
1
|
+
.hikirc
|
@@ -0,0 +1,252 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
require 'systemu'
|
3
|
+
require 'tempfile'
|
4
|
+
# -*- coding: utf-8 -*-
|
5
|
+
begin
|
6
|
+
target_dir = File.readlines('./.hikirc')[0].chomp
|
7
|
+
rescue => e
|
8
|
+
puts e
|
9
|
+
exit
|
10
|
+
end
|
11
|
+
dirnames=Dir.pwd.split('/')
|
12
|
+
basename = (dirnames[-1]=='hikis')? dirnames[-2] : dirnames[-1]
|
13
|
+
$latex_dir= 'latex_dir'
|
14
|
+
|
15
|
+
task :default do
|
16
|
+
system 'rake -T'
|
17
|
+
end
|
18
|
+
|
19
|
+
desc "latex conversion FILE1"
|
20
|
+
task :latex => [:latex_base] do
|
21
|
+
exit
|
22
|
+
end
|
23
|
+
|
24
|
+
desc "latex conversion FILE1 with wrap format"
|
25
|
+
task :latex_wrap => [:latex_base, :change_wrap] do
|
26
|
+
exit
|
27
|
+
end
|
28
|
+
|
29
|
+
desc "latex conversion whole hiki files in the current dir."
|
30
|
+
task :latex_all do
|
31
|
+
p entries=Dir.entries('.')
|
32
|
+
main_file=""
|
33
|
+
entries.each{|file|
|
34
|
+
next unless file.include?('.hiki')
|
35
|
+
next if file.include?('.hikirc')
|
36
|
+
f_name =File.basename(file,'.hiki')
|
37
|
+
if f_name==basename
|
38
|
+
option="--listings -p "
|
39
|
+
main_file=f_name
|
40
|
+
else
|
41
|
+
option="-l 2 --listings -b "
|
42
|
+
end
|
43
|
+
convert_to_latex(file, option)
|
44
|
+
}
|
45
|
+
system "open latex_dir/#{main_file}.tex"
|
46
|
+
exit
|
47
|
+
end
|
48
|
+
|
49
|
+
desc "change latex figures to wrap format"
|
50
|
+
task :change_wrap do
|
51
|
+
lines = File.readlines($save_name)
|
52
|
+
|
53
|
+
cont = ""
|
54
|
+
lines.each{|line|
|
55
|
+
if line.include?('\begin{figure}[htbp]\begin{center}')
|
56
|
+
p line
|
57
|
+
cont << '\begin{wrapfigure}{r}{8cm}'+"\n"
|
58
|
+
cont << '\vspace{-2\baselineskip}'+"\n"
|
59
|
+
cont << '\begin{center}'+"\n"
|
60
|
+
elsif line.include?('\label{default}\end{center}\end{figure}')
|
61
|
+
p line
|
62
|
+
cont << '\end{center}'+"\n"
|
63
|
+
cont << '\vspace{2\baselineskip}'+"\n"
|
64
|
+
cont << '\end{wrapfigure}'+"\n"
|
65
|
+
else
|
66
|
+
cont << line
|
67
|
+
end
|
68
|
+
}
|
69
|
+
File.open($save_name,'w'){|file| file.print cont }
|
70
|
+
|
71
|
+
system("open #{$save_name}")
|
72
|
+
exit
|
73
|
+
end
|
74
|
+
|
75
|
+
|
76
|
+
desc "latex conversion FILE1(hiki) to FILE2(latex)"
|
77
|
+
task :latex_base do
|
78
|
+
Dir.mkdir($latex_dir) unless Dir.exist?($latex_dir)
|
79
|
+
convert_to_latex(ARGV[1])
|
80
|
+
system("open #{$save_name}")
|
81
|
+
end
|
82
|
+
|
83
|
+
def convert_to_latex(file_name, option=nil)
|
84
|
+
p file_name = file_name.include?('.hiki')? file_name : file_name+'.hiki'
|
85
|
+
p tex_name = File.basename(file_name,'.hiki')+'.tex'
|
86
|
+
p $save_name = ARGV[2] || File.join($latex_dir,tex_name)
|
87
|
+
pre_name = File.join($latex_dir,'pre.tex')
|
88
|
+
p pre_command = File.exist?(pre_name) ? '--pre '+pre_name : nil
|
89
|
+
lines = File.readlines(file_name)
|
90
|
+
cont = ""
|
91
|
+
lines.each{|line|
|
92
|
+
if m=line.match(/\{\{attach_view\((.*),(.*)\)\}\}/)
|
93
|
+
p line="\{\{attach_view\(#{m[1]}\)\}\}\n"
|
94
|
+
end
|
95
|
+
cont << line
|
96
|
+
}
|
97
|
+
tf1,tf2='tmp1.txt','tmp2.txt'
|
98
|
+
File.open(tf1,'w'){|file| file.print cont}
|
99
|
+
system "hiki2latex #{pre_command} #{option} #{tf1} > #{tf2}"
|
100
|
+
lines = File.readlines(tf2)
|
101
|
+
system "rm #{tf1} #{tf2}"
|
102
|
+
|
103
|
+
cont = ""
|
104
|
+
lines.each{|line|
|
105
|
+
if m=line.match(/\\includegraphics\[width=6cm\]\{(.+)\}/)
|
106
|
+
p line="\\includegraphics\[width=6cm,bb=0 0 442 500\]\{#{m[1]}\}\n"
|
107
|
+
cont << line
|
108
|
+
else
|
109
|
+
cont << line
|
110
|
+
end
|
111
|
+
}
|
112
|
+
File.open($save_name,'w'){|file| file.print cont }
|
113
|
+
end
|
114
|
+
|
115
|
+
desc "increment fig NUBERS in FILE"
|
116
|
+
task :increment do
|
117
|
+
number=ARGV[1]
|
118
|
+
file = ARGV[2]
|
119
|
+
dir = ARGV[3] || nil
|
120
|
+
lines = File.readlines(file)
|
121
|
+
cont = ""
|
122
|
+
lines.each{|line|
|
123
|
+
if m=line.match(/\{\{attach_view\((\w+|_).(\d+).jpeg\)\}\}/)
|
124
|
+
new_num=sprintf("%03d",m[2].to_i+number.to_i)
|
125
|
+
line="\{\{attach_view\(#{m[1]}.#{new_num}.jpeg,#{dir}\)\}\}\n"
|
126
|
+
cont << line
|
127
|
+
else
|
128
|
+
cont << line
|
129
|
+
end
|
130
|
+
}
|
131
|
+
print cont
|
132
|
+
exit
|
133
|
+
end
|
134
|
+
|
135
|
+
desc "numbering figs from the NUBER in FILE"
|
136
|
+
task :number do
|
137
|
+
number=ARGV[1].to_i
|
138
|
+
file = ARGV[2]
|
139
|
+
dir = ARGV[3] || nil
|
140
|
+
lines = File.readlines(file)
|
141
|
+
cont = ""
|
142
|
+
lines.each{|line|
|
143
|
+
if m=line.match(/\{\{attach_view\((\w+|_).(\d+).jpeg,(\w+)\)\}\}/)
|
144
|
+
new_num=sprintf("%03d",number)
|
145
|
+
line="\{\{attach_view\(#{m[1]}.#{new_num}.jpeg,#{m[3]}\)\}\}\n"
|
146
|
+
cont << line
|
147
|
+
number += 1
|
148
|
+
else
|
149
|
+
cont << line
|
150
|
+
end
|
151
|
+
}
|
152
|
+
print cont
|
153
|
+
exit
|
154
|
+
end
|
155
|
+
|
156
|
+
desc "convert fig size SCALE TARGET_DIR"
|
157
|
+
task :convert do
|
158
|
+
scale = ARGV[1]
|
159
|
+
target_dir=ARGV[2]
|
160
|
+
Dir.entries(target_dir)[2..-1].each{|file|
|
161
|
+
p file
|
162
|
+
source = File.join(target_dir,file)
|
163
|
+
target = File.join('figs',file)
|
164
|
+
p command = "convert #{source} -resize #{scale}\% #{target}"
|
165
|
+
system command
|
166
|
+
}
|
167
|
+
exit
|
168
|
+
end
|
169
|
+
|
170
|
+
desc "normal sync hikis and figs to hiki directory"
|
171
|
+
task :sync => [:check_previous,:sync0]
|
172
|
+
|
173
|
+
|
174
|
+
desc "force_sync hikis and figs to hiki directory"
|
175
|
+
task :force_sync => [:sync0]
|
176
|
+
|
177
|
+
desc "sync0 hikis and figs to hiki directory"
|
178
|
+
task :sync0 do
|
179
|
+
entries=Dir.entries('.')
|
180
|
+
entries[2..-1].each{|source| #cp *.hiki
|
181
|
+
next unless source.include?('.hiki')
|
182
|
+
next if source.include?('.hikirc')
|
183
|
+
p base = source.split('.')[0]
|
184
|
+
name = (base==basename)? base : basename+'_'+base
|
185
|
+
p target = File.join(target_dir,'text',name)
|
186
|
+
FileUtils.cp(source,target,:verbose=>true)
|
187
|
+
}
|
188
|
+
p entries=Dir.entries('./figs') #cp files in figs
|
189
|
+
p target = File.join(target_dir,'cache','attach',basename)
|
190
|
+
FileUtils.mkdir(target,:verbose=>true) unless File.exists?(target)
|
191
|
+
entries[2..-1].each{|file|
|
192
|
+
p source = File.join('./figs',file)
|
193
|
+
FileUtils.cp(source,target,:verbose=>true)
|
194
|
+
}
|
195
|
+
|
196
|
+
File.open('./.hikirc','w'){|file|
|
197
|
+
status, stdout, stderr =systemu "hiki -l #{basename}*"
|
198
|
+
file.print(target_dir+"\n")
|
199
|
+
stdout.split("\n")[3..-1].each{|line|
|
200
|
+
file.print line+"\n"
|
201
|
+
}
|
202
|
+
}
|
203
|
+
exit
|
204
|
+
end
|
205
|
+
|
206
|
+
desc "For hiki Errno::ENOENT, Errno::EACCES"
|
207
|
+
task :chenv do
|
208
|
+
p user = ENV['USER']
|
209
|
+
system("sudo chmod -R a+w #{target_dir}")
|
210
|
+
# system("sudo chown -R #{user} #{target_dir}")
|
211
|
+
end
|
212
|
+
|
213
|
+
desc "self copy to hikiutils template directory"
|
214
|
+
task :self_copy do
|
215
|
+
p cp_files=[[File.join(Dir.pwd,'Rakefile'),'Rakefile_hiki_sync'],
|
216
|
+
[File.join(ENV['HOME'],'.my_help','hiki_help.yml'),'hiki_help.yml']]
|
217
|
+
cp_files.each{|files|
|
218
|
+
p source = files[0]
|
219
|
+
p target = File.join('/Users/bob/Github/hikiutils/lib/templates/',files[1])
|
220
|
+
FileUtils.cp(source,target,:verbose=>true)
|
221
|
+
}
|
222
|
+
end
|
223
|
+
|
224
|
+
desc "check previou and current sync"
|
225
|
+
task :check_previous do
|
226
|
+
current={}
|
227
|
+
print "current hiki dir\n"
|
228
|
+
status, stdout, stderr = systemu("hiki -l #{basename}*")
|
229
|
+
stdout.split("\n")[3..-1].each{|line|
|
230
|
+
p line
|
231
|
+
file= line.split(/\s+/)[-1]
|
232
|
+
current[file]=line
|
233
|
+
}
|
234
|
+
previous={}
|
235
|
+
print "previous sync\n"
|
236
|
+
File.readlines('.hikirc')[1..-1].each{|line|
|
237
|
+
p line.chomp
|
238
|
+
file= line.split(/\s+/)[-1]
|
239
|
+
previous[file]=line.chomp
|
240
|
+
}
|
241
|
+
changed = []
|
242
|
+
current.each_pair{|key,val|
|
243
|
+
if !previous.include?(key) or previous[key]!=val
|
244
|
+
changed << val+"\n"
|
245
|
+
end
|
246
|
+
}
|
247
|
+
if changed.size != 0
|
248
|
+
print("hiki dirで変更が発生しています.\n")
|
249
|
+
changed.each{|line| print line+"\n"}
|
250
|
+
exit
|
251
|
+
end
|
252
|
+
end
|
@@ -0,0 +1,53 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
---
|
3
|
+
:head:
|
4
|
+
- hikiutil関連のヘルプ
|
5
|
+
:initialize:
|
6
|
+
:opts:
|
7
|
+
:short: "-i"
|
8
|
+
:long: "--initialize"
|
9
|
+
:desc: hikiで卒論を書くときの初期化と掟
|
10
|
+
:title: hikiで卒論を書くときの初期化と掟
|
11
|
+
:cont:
|
12
|
+
- 開発メモ:figs,dataも作成
|
13
|
+
- 目的:西谷が後で迷わないように決まったファイル構造を堅持すべし
|
14
|
+
- 文書:hikiで書く.のちには,latexに変換するプログラムを提供します
|
15
|
+
- 図表:すべての図表をkeynoteにまとめる,タイトルを分かりやすく書く
|
16
|
+
- データ:dataディレクトリにまとめる.ファイル名をkeynoteの対応する図表中に記す
|
17
|
+
- hiki --initializeで初期ファイル(Rakefile, ./.hikirc, hiki_help.yml)がcopyされる
|
18
|
+
- hiki_help.ymlを適宜~/.my_helpにcopyしてhiki_helpとして利用,(my_help参照)
|
19
|
+
- Errno::EACCESやpermission errorがでたときはrake chenvを試してみる(報告して)
|
20
|
+
- rake syncによってhikiディレクトリーと同期が取られる
|
21
|
+
- hiki -u TARGETによってブラウザー表示される
|
22
|
+
- テキストの拡張子は'.hiki'
|
23
|
+
- hikiでのurlはテキスト前とディレクトリーから自動生成される
|
24
|
+
- 例えば,hiki2latex_saki/introduciton.hikiとするとhiki2latex_saki_introducitonと変換される
|
25
|
+
:error:
|
26
|
+
:opts:
|
27
|
+
:short: "-e"
|
28
|
+
:long: "--error"
|
29
|
+
:desc: error対応
|
30
|
+
:title: error対応
|
31
|
+
:cont:
|
32
|
+
- Permission denied - ./data/text/boundary_narita (Errno::EACCES)->テキストにhikiが書き込めない,chmod
|
33
|
+
a+w FILE
|
34
|
+
:figs:
|
35
|
+
:opts:
|
36
|
+
:short: "-f"
|
37
|
+
:long: "--figs"
|
38
|
+
:desc: 図表:すべての図表をkeynoteにまとめる,タイトルを分かりやすく書く
|
39
|
+
:title: 図表:すべての図表をkeynoteにまとめる,タイトルを分かりやすく書く
|
40
|
+
:cont:
|
41
|
+
- keynoteに書いたスライドはイメージに書き出して,rake convert 80 TARGET_DIRでfigsに変換
|
42
|
+
- rake syncでfigsにあるfilesはhiki/target_dirにcpされる
|
43
|
+
- 'convert #{source} -resize 20% #{target}によって,target=figs/TAERGET.pngに20%に縮小して保存される'
|
44
|
+
- convert -density 300 view.svg view.pngで300dpiで変換
|
45
|
+
- |
|
46
|
+
attach_anchorでは
|
47
|
+
'{{attach_anchor(test.png, hiki2latex_saki)}}'
|
48
|
+
と,directory指定しなければならない.
|
49
|
+
- keynoteであとで図を挿入して番号が変わった時の原稿の一括変換
|
50
|
+
- rake increment 2 boundary_bob.hiki boundary_bob > tmp.hiki
|
51
|
+
- rake convert 60 boundary_bob
|
52
|
+
- rake sync
|
53
|
+
- hiki -u boundary_bob_tmp
|
@@ -0,0 +1,173 @@
|
|
1
|
+
{{toc}}
|
2
|
+
!Title:touch typing習得環境shunkuntype
|
3
|
+
!author:西谷滋人
|
4
|
+
!date:\today
|
5
|
+
!【概要】
|
6
|
+
Touch typingはprogrammerに必須のスキルである.裏をかえせば,プログラミングが苦手な学生ほど,このスキルが身についていないことが多い.より気にすべきは,ペアプログラミングにおいて熟練者がついた場合,運指がおかしい初心者の手の動きを不快と感じること.あらゆる作業において型が崩れていると親方が叱咤するのに通じる.所作の基本は,成功体験の集大成なのだから.touch typingは正にプログラマの「箸の上げ下ろし」なんだな.
|
7
|
+
|
8
|
+
さらに,運指がスムーズになると単語の綴りを指が覚えるようになるが,これはもう少し先の話.
|
9
|
+
|
10
|
+
さて,Touch typingの習得には,ピアノやギターの運指練習とおなじで単純な繰り返しが必要である.したがって飽きやすい.どのようにこの「単純な繰り返し練習」を「おもしろくするか」の一つの提案として,習得管理ツールを開発する.キーは「データの公開」である.
|
11
|
+
|
12
|
+
!【序論】
|
13
|
+
!!touch typingのコツ
|
14
|
+
touch typingの習得においてはスピードよりも運指が重要である.すなわち,スピードはそれほど速くなくても,運指を常に意識しておなじ指でおなじキーを押す癖をつけることが,初心者には必要である.これが後々のスピードアップにつながるだけでなく,
|
15
|
+
* タイプの正確性
|
16
|
+
* 視点固定による,疲労度の抑制
|
17
|
+
につながる.
|
18
|
+
|
19
|
+
!! 非陳述記憶の性質
|
20
|
+
長期記憶には大きく分けて陳述記憶(declarative memory)と非陳述記憶(non declarative memory) がある.タイピングは自転車の乗り方と同じ,非陳述記憶の中の手続き記憶に分類され,同じ経験を反復することで形成される.いちど形成されると自動的に機能し,長期間保たれるという特徴がある[1].したがって,タッチタイピングの習得には繰り返し練習が有効である.
|
21
|
+
|
22
|
+
!! 繰り返しの工夫,個人の資質から仲間力へ
|
23
|
+
しかし,繰り返し練習は単調であるためにどうしても継続が難しい.その単調さを克服するためには,個人の資質として,賢明な学習者やマインドセットなどが要望される.しかし,そこから鍛えていたのでは.相当な時間がかかってしまう.より即効性のある手法として,継続を促すために少数のグループによる「あおり」を助長する工夫を,開発したshunkuntypeでは,取り入れている.
|
24
|
+
|
25
|
+
!!e-Learningからactive learningへ
|
26
|
+
このような単純な知識の習得に対して,e-Learningがいくつも開発されている.ところが,単にe-Learningシステムをやらせるだけでは,学習が継続しないという結果がでている.そこで,e-Learningの個別進捗に管理者がコメントをつけることによって,学習を継続させる方策が練られている.しかし,これによってもあまりいい結果は出ない.
|
27
|
+
|
28
|
+
これに対して,今回構築するシステムでは,参加者どうしがお互いの学習履歴,成果を閲覧することを可能にしている.これによりお互いの刺激となるように工夫している.すなわち,管理者による監視ではなく,参加者による「あおり」を学習継続の動機にすることを意図している.
|
29
|
+
|
30
|
+
これがactive learningの基本となる.
|
31
|
+
|
32
|
+
!【方法:使用システムの概要】
|
33
|
+
shunkuntypeは拡張子によって振る舞いを制御している.
|
34
|
+
!!個別練習操作
|
35
|
+
ユーザがtouch typingの練習を行う環境を提供する.
|
36
|
+
<<<tcsh
|
37
|
+
bob% shunkuntype
|
38
|
+
Shunkuntype says 'Hello world'.
|
39
|
+
Usage: shunkuntype [options]
|
40
|
+
-v, --version show program Version.
|
41
|
+
-c, --check Check speed
|
42
|
+
-d, --drill [VAL] one minute Drill [VAL]
|
43
|
+
-h, --history view training History
|
44
|
+
-p, --plot Plot personal data
|
45
|
+
-s, --submit Submit data to dmz0
|
46
|
+
--review [TAG] Review training, TAGs=html or hike
|
47
|
+
>>>
|
48
|
+
詳しい操作法,振る舞いの様子は [[ユーザーズマニュアル|Shunkuntype_manual]]にある.
|
49
|
+
|
50
|
+
!!あおり操作(--review)
|
51
|
+
あおりのために用意された環境が--reviewである.ユーザがsubmitしたデータを集めて,進捗状況の表,およびグラフを作成し,表示する.--reviewの引数としてhtmlあるいはhikiを指定し,'tmp.html’あるいは'tmp.hiki'を作成.
|
52
|
+
!!!reviewの出力例
|
53
|
+
以下は,hikiでの出力tmp.hikiを貼り付けた状態.work.png,speed.pngが自動生成されるが,添付ファイルとしてuploadしておく必要がある.
|
54
|
+
*Shunkun typer 2016-01-28 08:45:24 +0900
|
55
|
+
|| ||>speed[sec]||>training
|
56
|
+
||||init||current||total time[min]||step
|
57
|
+
||bob||37.68||40.39||57.00||45.00
|
58
|
+
||donkey||92.40||39.30||153.00||14.00
|
59
|
+
||fujimoto||90.63||39.81||118.00||22.00
|
60
|
+
||iwasa||61.01||56.36||360.00||20.00
|
61
|
+
||kiyohara||45.79||44.52||23.00|| 5.00
|
62
|
+
||sakaki||32.83||32.72|| 8.00|| 7.00
|
63
|
+
||sumita||127.51||48.94||152.00||15.00
|
64
|
+
||tomoyafujioka||101.12||43.66||456.00||34.00
|
65
|
+
||yoshiokatatsuro||79.59||52.36||526.00||24.00
|
66
|
+
|
67
|
+
||{{attach_view(work.png)}}||{{attach_view(speed.png)}}
|
68
|
+
||練習時間(work.png)||speed結果(speed.png)
|
69
|
+
グラフの詳しい解説は次節で行う.
|
70
|
+
|
71
|
+
!【結果:試行結果】
|
72
|
+
!!継続性
|
73
|
+
図はそれぞれの被験者の練習の様子をグラフで示している.
|
74
|
+
!!!caption:練習時間の継続状況を示すグラフ.
|
75
|
+
{{attach_view(work.png)}}
|
76
|
+
*横軸に経過時間を日単位で,縦軸に練習時間を分単位でとっている.
|
77
|
+
*経過時間は現在を0点にして,左方向にマイナスでとっている
|
78
|
+
*それぞれの被験者の総練習量はそれぞれのグラフの最高位置で示される.
|
79
|
+
*被験者の立ち上がりがそれぞれ違うのは,実験に参加した時期が違うからである.
|
80
|
+
*16日経過時にもっとも進んでいるのは,fujiokaで,その次にdonkeyが続いている.
|
81
|
+
*それ以外の被験者の練習量は総じて低い.
|
82
|
+
被験者の練習量の推移はそれぞれの被験者の取り組みに対する特徴を示している.すなわち
|
83
|
+
* 毎日5分程度を継続しておこなう
|
84
|
+
* 気がついたときにちょこちょこと継続する
|
85
|
+
* まとめてやるがあまり継続しない.
|
86
|
+
などである.
|
87
|
+
|
88
|
+
!!スピード改善
|
89
|
+
図はそれぞれの被験者のタイプspeedの様子をグラフで示している.
|
90
|
+
!!!caption:タイプスピードの変化を示すグラフ.
|
91
|
+
{{attach_view(speed.png)}}
|
92
|
+
* 横軸のスケールは同じ.
|
93
|
+
* 縦軸には20wordsを打つのに要する時間がプロットされている.
|
94
|
+
* speedにはtrainingで記録されているデータから計算したデータも含まれている.
|
95
|
+
* 途中でspeedが300秒などまで極端に落ちた理由は,後述のハンカチ試験を導入したため.
|
96
|
+
* よりミクロに個人の成績を見れば,speedが徐々に上がっていることが読み取れる.
|
97
|
+
** 例えば,fujiokaの-70-- -49days, sumitaの-63-- -21, iwasaの-35 -- -21
|
98
|
+
|
99
|
+
!!ハンカチテスト
|
100
|
+
運指がうまくいっているかを自覚する方法としてハンカチテストが有効である.これは,手の甲の上にハンカチを置いて,手元のキーを見ずに打ち込んでいく方法である.これによって,
|
101
|
+
* キーを覚えているか
|
102
|
+
* ホームポジションへ帰っているか
|
103
|
+
* それぞれ決まった指でキーを押さえているか
|
104
|
+
のチェックができる.特に単なるspeed計測では50秒程度まで短縮している被験者も,ハンカチテストでは300秒もかかっている場合があった.
|
105
|
+
|
106
|
+
ただし,初心者はまったくkey配置を記憶できていないため,key配置表を用意しておく必要がある.これはそのようにspeedプログラムを改修した(2015/12/02).
|
107
|
+
|
108
|
+
!【考察:参加者の意識調査】
|
109
|
+
参加者に対してグループヒアリングを行った[2].出てきた意見は次の通りである.
|
110
|
+
!!スキルの定着度合い
|
111
|
+
touch typingのスキルの定着について聞いたところ,
|
112
|
+
*ホームポジションに戻す癖がついた
|
113
|
+
*運指がバラバラであったのが,5本指で打つようになった.
|
114
|
+
*手元を見ていた
|
115
|
+
*普段の生活での打ち方が変わった
|
116
|
+
*画面と本を見るだけで打てるようになった
|
117
|
+
*パソコンでしゃべるときが速くなった
|
118
|
+
*フリップ入力よりは圧倒的に速い
|
119
|
+
**フリップの速さは予測が効いているのかも
|
120
|
+
*日本語は打てていたが,英語はダメだったのが改善した
|
121
|
+
* カッコとかの位置も覚えた
|
122
|
+
* 左手一本で全領域を打っていたのが全部の指で打てるようになった.
|
123
|
+
* 変な癖がなくなった.
|
124
|
+
!!「あおり」は効いたか?
|
125
|
+
speedの成績や練習時間を共有する「あおり」の効果について質問した.
|
126
|
+
* YはSに負けたくないのでがんばった.
|
127
|
+
* みんなのspeedをみて,いままで普通と思っていた入力速度に焦りが出た.自覚した.
|
128
|
+
* Dは練習をやり始めたらずっとやるので,F1もやらなと思った.
|
129
|
+
* 淡々としたんが好きで,おもしろい.レベル上げに通じる.
|
130
|
+
* 図で出るとちょっと意識する
|
131
|
+
* F2は煽る側で優越感を感じて...
|
132
|
+
!!習慣になったか?
|
133
|
+
練習が習慣として定着したかと問うてみた.
|
134
|
+
* つかなんだ
|
135
|
+
* クリアしたら練習しない
|
136
|
+
* time計測の結果を見てあせった
|
137
|
+
* パソコン開いたらまずやるという習慣がついた
|
138
|
+
!!不足している機能
|
139
|
+
不足している機能や,不満な点を指摘してもらった.
|
140
|
+
* ハンカチはよくない.余分な感覚があるから.
|
141
|
+
** 黒塗りのキーボードカバーはいいかも
|
142
|
+
*speedに普通の単語をもっと増やす
|
143
|
+
** 普通の単語はworkとかtableは変数によく使われるのでいいかも.
|
144
|
+
*日本語入力の練習もできるように.
|
145
|
+
** 将来プログラマーになるとは限らないので,練習の動機があがる.
|
146
|
+
*speedの単語には,”[.{}()[]=_"なども入れるべき
|
147
|
+
*ノルマを課すようにしては.
|
148
|
+
** 図に理想線とか,目標線とか,ガイドラインをいれては?
|
149
|
+
* speedをタイムアップ方式にしてもいいかも.1分試験
|
150
|
+
* レース完走方式にしてもいいかも.
|
151
|
+
* レベル上げ.装備をつけるなんかも...
|
152
|
+
!【結論】
|
153
|
+
* 時間はかかったが参加者全員が20 words/45secsをクリアした.
|
154
|
+
** ただし,「クリアできなんだら卒研指導しない」というムチが働いた可能性は大きい.
|
155
|
+
* shunkuntypeはその後gemによるcommand line interfaceアプリケーションとして完成.
|
156
|
+
* web化が必要かもしれない.
|
157
|
+
その場合には,
|
158
|
+
* processingによるGUI
|
159
|
+
* 登録グループによる競争の実現
|
160
|
+
** 内部の煽りだけでなく,仮想敵を作って「くまさんチーム対うさぎさんチーム」で練習をあおる.
|
161
|
+
* dbへのdata移行
|
162
|
+
** sshより安全なデータ収集
|
163
|
+
** 平文テキスト修正によるチートをなくす
|
164
|
+
などを考慮して,Railsを用いるのかsinatoraなどでベタで作るのかの検討が必要.
|
165
|
+
|
166
|
+
!【付録】
|
167
|
+
:A:[[マニュアル|Shunkuntype_manual]]
|
168
|
+
:B:[[gem化メモ|Shunkuntype_gemizing]]
|
169
|
+
:C:[[初期版のコード解説|TouchTyping_Coding]]
|
170
|
+
|
171
|
+
!【参考資料】
|
172
|
+
# 「陳述記憶・非陳述記憶」, 鈴木 麻希, 藤井 俊勝, 脳科学辞典,https://bsd.neuroinf.jp/wiki/陳述記憶・非陳述記憶 (2016/1/28アクセス).
|
173
|
+
# グループヒアリングメモ{{attach_anchor(Shunkuntype_GroupHearing_20160128.pdf)}}
|
@@ -0,0 +1,36 @@
|
|
1
|
+
!TouchTypingに関連するサイト
|
2
|
+
2015年度にshunkuntypeというtouch type習得ソフトを開発.
|
3
|
+
!!!使用法
|
4
|
+
*[[マニュアル|Shunkuntype_manual]]
|
5
|
+
*[[TouchTypingのコツ|http://www.plato-web.com/software/km06/lesson.html]]
|
6
|
+
!!!学習者向け報告書
|
7
|
+
*[[レポート|Shunkuntype_report]]
|
8
|
+
*{{attach_anchor_string(shunkuntype報告書pdf版,shunkun_report.pdf)}}
|
9
|
+
*[[ReportWriting_EagleEyeCheck]]
|
10
|
+
!!!開発メモ
|
11
|
+
*[[gem化メモ|Shunkuntype_gemizing]]
|
12
|
+
*[[yard文書|http://nishitani0.kwansei.ac.jp/~bob/nishitani0/rdocs/shunkuntype/]]
|
13
|
+
*関連情報
|
14
|
+
**[[2015秋のコード解説|TouchTyping_Coding]]
|
15
|
+
**[[Shunkuntype_Coding_PlotData]]
|
16
|
+
**[[Shunkuntype_Coding_gnuplot]]
|
17
|
+
*開発_通信(2016-02-18 08:10:56 +0900 by Bob)
|
18
|
+
**sshでuser@host_uri設定をinitで
|
19
|
+
**hikiに自動的に煽り場をつくるplugin
|
20
|
+
|
21
|
+
!trainingの状況
|
22
|
+
!!2016s
|
23
|
+
!!Shunkun typer 2016-09-22 10:20:12 +0900
|
24
|
+
|| ||>speed[sec]||>training
|
25
|
+
||||init||current||total time[min]||step
|
26
|
+
||bob||38.98||63.73|| 1.00|| 1.00
|
27
|
+
||eri||59.43||92.51||51.00||38.00
|
28
|
+
||koki||97.51||48.13|| 1.00|| 1.00
|
29
|
+
||murakami||37.59||61.29|| 3.00|| 1.00
|
30
|
+
||nari||77.68||60.69|| 6.00|| 8.00
|
31
|
+
||nasubi||80.96||41.21|| 2.00|| 1.00
|
32
|
+
||saki||134.56||47.12||72.00||24.00
|
33
|
+
||yamane||85.66||37.64||97.00||25.00
|
34
|
+
||yasuki||78.34||63.05||10.00|| 7.00
|
35
|
+
|
36
|
+
||{{attach_view(work_2016s.png)}}||{{attach_view(speed_2016s.png)}}
|
data/speed.png
CHANGED
Binary file
|
data/tmp.hiki
CHANGED
@@ -10,3 +10,67 @@
|
|
10
10
|
||tsuji||49.52||111.03||10.00|| 2.00
|
11
11
|
|
12
12
|
||{{attach_view(work.png)}}||{{attach_view(speed.png)}}
|
13
|
+
!!Shunkun typer 2017-06-08 17:33:01 +0900
|
14
|
+
|| ||>speed[sec]||>training
|
15
|
+
||||init||current||total time[min]||step
|
16
|
+
||||39.12||38.54|| 0.00|| 0.00
|
17
|
+
||bob||39.75||34.17||18.00|| 1.00
|
18
|
+
||eagle||69.64||51.65||53.00||15.00
|
19
|
+
||naoki||103.29||103.29|| 1.00|| 1.00
|
20
|
+
||oyagi||77.03||49.62|| 0.00|| 0.00
|
21
|
+
||souki||39.12||34.13|| 1.00||47.00
|
22
|
+
||tatsuya||54.35||41.52|| 4.00||47.00
|
23
|
+
||tochigi||115.71||57.51||12.00|| 2.00
|
24
|
+
||tomoko||95.58||71.76||191.00||19.00
|
25
|
+
||tsuji||49.52||40.16||12.00||47.00
|
26
|
+
||yuri|| 0.00|| 0.00|| 0.00|| 0.00
|
27
|
+
|
28
|
+
||{{attach_view(work.png)}}||{{attach_view(speed.png)}}
|
29
|
+
!!Shunkun typer 2017-06-08 17:43:05 +0900
|
30
|
+
|| ||>speed[sec]||>training
|
31
|
+
||||init||current||total time[min]||step
|
32
|
+
||||39.12||38.54|| 0.00|| 0.00
|
33
|
+
||bob||39.75||34.17||18.00|| 1.00
|
34
|
+
||eagle||69.64||51.65||53.00||15.00
|
35
|
+
||naoki||103.29||103.29|| 1.00|| 1.00
|
36
|
+
||oyagi||77.03||49.62|| 0.00|| 0.00
|
37
|
+
||souki||39.12||34.13|| 1.00||47.00
|
38
|
+
||tatsuya||54.35||41.52|| 4.00||47.00
|
39
|
+
||tochigi||115.71||57.51||12.00|| 2.00
|
40
|
+
||tomoko||95.58||71.76||191.00||19.00
|
41
|
+
||tsuji||49.52||40.16||12.00||47.00
|
42
|
+
||yuri|| 0.00|| 0.00|| 0.00|| 0.00
|
43
|
+
|
44
|
+
||{{attach_view(work.png)}}||{{attach_view(speed.png)}}
|
45
|
+
!!Shunkun typer 2017-06-08 17:45:58 +0900
|
46
|
+
|| ||>speed[sec]||>training
|
47
|
+
||||init||current||total time[min]||step
|
48
|
+
||||39.12||38.54|| 0.00|| 0.00
|
49
|
+
||bob||39.75||34.17||18.00|| 1.00
|
50
|
+
||eagle||69.64||51.65||53.00||15.00
|
51
|
+
||naoki||103.29||103.29|| 1.00|| 1.00
|
52
|
+
||oyagi||77.03||49.62|| 0.00|| 0.00
|
53
|
+
||souki||39.12||34.13|| 1.00||47.00
|
54
|
+
||tatsuya||54.35||41.52|| 4.00||47.00
|
55
|
+
||tochigi||115.71||57.51||12.00|| 2.00
|
56
|
+
||tomoko||95.58||71.76||191.00||19.00
|
57
|
+
||tsuji||49.52||40.16||12.00||47.00
|
58
|
+
||yuri|| 0.00|| 0.00|| 0.00|| 0.00
|
59
|
+
|
60
|
+
||{{attach_view(work.png)}}||{{attach_view(speed.png)}}
|
61
|
+
!!Shunkun typer 2017-06-08 17:47:17 +0900
|
62
|
+
|| ||>speed[sec]||>training
|
63
|
+
||||init||current||total time[min]||step
|
64
|
+
||||39.12||38.54|| 0.00|| 0.00
|
65
|
+
||bob||39.75||34.17||18.00|| 1.00
|
66
|
+
||eagle||69.64||51.65||53.00||15.00
|
67
|
+
||naoki||103.29||103.29|| 1.00|| 1.00
|
68
|
+
||oyagi||77.03||49.62|| 0.00|| 0.00
|
69
|
+
||souki||39.12||34.13|| 1.00||47.00
|
70
|
+
||tatsuya||54.35||41.52|| 4.00||47.00
|
71
|
+
||tochigi||115.71||57.51||12.00|| 2.00
|
72
|
+
||tomoko||95.58||71.76||191.00||19.00
|
73
|
+
||tsuji||49.52||40.16||12.00||47.00
|
74
|
+
||yuri|| 0.00|| 0.00|| 0.00|| 0.00
|
75
|
+
|
76
|
+
||{{attach_view(work.png)}}||{{attach_view(speed.png)}}
|
data/tmp.html
CHANGED
@@ -12,3 +12,75 @@
|
|
12
12
|
<tr><th>tsuji</th><td>49.52</td><td>111.03</td><td>10.00</td><td> 2.00</td></tr>
|
13
13
|
</table>
|
14
14
|
<p><img src="./work.png" /></p><p><img src="./speed.png" /></p></html>
|
15
|
+
<html>
|
16
|
+
<table border="1">
|
17
|
+
<caption>Shunkun typer<caption>
|
18
|
+
<tr><th></th><th colspan=2>speed[sec]</th><th colspan=2>training</th></tr>
|
19
|
+
<tr><th></th><th>init</th><th>current</th><th>total time[min]</th><th>step</th></tr>
|
20
|
+
<tr><th></th><td>39.12</td><td>38.54</td><td> 0.00</td><td> 0.00</td></tr>
|
21
|
+
<tr><th>bob</th><td>39.75</td><td>34.17</td><td>18.00</td><td> 1.00</td></tr>
|
22
|
+
<tr><th>eagle</th><td>69.64</td><td>51.65</td><td>53.00</td><td>15.00</td></tr>
|
23
|
+
<tr><th>naoki</th><td>103.29</td><td>103.29</td><td> 1.00</td><td> 1.00</td></tr>
|
24
|
+
<tr><th>oyagi</th><td>77.03</td><td>49.62</td><td> 0.00</td><td> 0.00</td></tr>
|
25
|
+
<tr><th>souki</th><td>39.12</td><td>34.13</td><td> 1.00</td><td>47.00</td></tr>
|
26
|
+
<tr><th>tatsuya</th><td>54.35</td><td>41.52</td><td> 4.00</td><td>47.00</td></tr>
|
27
|
+
<tr><th>tochigi</th><td>115.71</td><td>57.51</td><td>12.00</td><td> 2.00</td></tr>
|
28
|
+
<tr><th>tomoko</th><td>95.58</td><td>71.76</td><td>191.00</td><td>19.00</td></tr>
|
29
|
+
<tr><th>tsuji</th><td>49.52</td><td>40.16</td><td>12.00</td><td>47.00</td></tr>
|
30
|
+
<tr><th>yuri</th><td> 0.00</td><td> 0.00</td><td> 0.00</td><td> 0.00</td></tr>
|
31
|
+
</table>
|
32
|
+
<p><img src="./work.png" /></p><p><img src="./speed.png" /></p></html>
|
33
|
+
<html>
|
34
|
+
<table border="1">
|
35
|
+
<caption>Shunkun typer<caption>
|
36
|
+
<tr><th></th><th colspan=2>speed[sec]</th><th colspan=2>training</th></tr>
|
37
|
+
<tr><th></th><th>init</th><th>current</th><th>total time[min]</th><th>step</th></tr>
|
38
|
+
<tr><th></th><td>39.12</td><td>38.54</td><td> 0.00</td><td> 0.00</td></tr>
|
39
|
+
<tr><th>bob</th><td>39.75</td><td>34.17</td><td>18.00</td><td> 1.00</td></tr>
|
40
|
+
<tr><th>eagle</th><td>69.64</td><td>51.65</td><td>53.00</td><td>15.00</td></tr>
|
41
|
+
<tr><th>naoki</th><td>103.29</td><td>103.29</td><td> 1.00</td><td> 1.00</td></tr>
|
42
|
+
<tr><th>oyagi</th><td>77.03</td><td>49.62</td><td> 0.00</td><td> 0.00</td></tr>
|
43
|
+
<tr><th>souki</th><td>39.12</td><td>34.13</td><td> 1.00</td><td>47.00</td></tr>
|
44
|
+
<tr><th>tatsuya</th><td>54.35</td><td>41.52</td><td> 4.00</td><td>47.00</td></tr>
|
45
|
+
<tr><th>tochigi</th><td>115.71</td><td>57.51</td><td>12.00</td><td> 2.00</td></tr>
|
46
|
+
<tr><th>tomoko</th><td>95.58</td><td>71.76</td><td>191.00</td><td>19.00</td></tr>
|
47
|
+
<tr><th>tsuji</th><td>49.52</td><td>40.16</td><td>12.00</td><td>47.00</td></tr>
|
48
|
+
<tr><th>yuri</th><td> 0.00</td><td> 0.00</td><td> 0.00</td><td> 0.00</td></tr>
|
49
|
+
</table>
|
50
|
+
<p><img src="./work.png" /></p><p><img src="./speed.png" /></p></html>
|
51
|
+
<html>
|
52
|
+
<table border="1">
|
53
|
+
<caption>Shunkun typer<caption>
|
54
|
+
<tr><th></th><th colspan=2>speed[sec]</th><th colspan=2>training</th></tr>
|
55
|
+
<tr><th></th><th>init</th><th>current</th><th>total time[min]</th><th>step</th></tr>
|
56
|
+
<tr><th></th><td>39.12</td><td>38.54</td><td> 0.00</td><td> 0.00</td></tr>
|
57
|
+
<tr><th>bob</th><td>39.75</td><td>34.17</td><td>18.00</td><td> 1.00</td></tr>
|
58
|
+
<tr><th>eagle</th><td>69.64</td><td>51.65</td><td>53.00</td><td>15.00</td></tr>
|
59
|
+
<tr><th>naoki</th><td>103.29</td><td>103.29</td><td> 1.00</td><td> 1.00</td></tr>
|
60
|
+
<tr><th>oyagi</th><td>77.03</td><td>49.62</td><td> 0.00</td><td> 0.00</td></tr>
|
61
|
+
<tr><th>souki</th><td>39.12</td><td>34.13</td><td> 1.00</td><td>47.00</td></tr>
|
62
|
+
<tr><th>tatsuya</th><td>54.35</td><td>41.52</td><td> 4.00</td><td>47.00</td></tr>
|
63
|
+
<tr><th>tochigi</th><td>115.71</td><td>57.51</td><td>12.00</td><td> 2.00</td></tr>
|
64
|
+
<tr><th>tomoko</th><td>95.58</td><td>71.76</td><td>191.00</td><td>19.00</td></tr>
|
65
|
+
<tr><th>tsuji</th><td>49.52</td><td>40.16</td><td>12.00</td><td>47.00</td></tr>
|
66
|
+
<tr><th>yuri</th><td> 0.00</td><td> 0.00</td><td> 0.00</td><td> 0.00</td></tr>
|
67
|
+
</table>
|
68
|
+
<p><img src="./work.png" /></p><p><img src="./speed.png" /></p></html>
|
69
|
+
<html>
|
70
|
+
<table border="1">
|
71
|
+
<caption>Shunkun typer<caption>
|
72
|
+
<tr><th></th><th colspan=2>speed[sec]</th><th colspan=2>training</th></tr>
|
73
|
+
<tr><th></th><th>init</th><th>current</th><th>total time[min]</th><th>step</th></tr>
|
74
|
+
<tr><th></th><td>39.12</td><td>38.54</td><td> 0.00</td><td> 0.00</td></tr>
|
75
|
+
<tr><th>bob</th><td>39.75</td><td>34.17</td><td>18.00</td><td> 1.00</td></tr>
|
76
|
+
<tr><th>eagle</th><td>69.64</td><td>51.65</td><td>53.00</td><td>15.00</td></tr>
|
77
|
+
<tr><th>naoki</th><td>103.29</td><td>103.29</td><td> 1.00</td><td> 1.00</td></tr>
|
78
|
+
<tr><th>oyagi</th><td>77.03</td><td>49.62</td><td> 0.00</td><td> 0.00</td></tr>
|
79
|
+
<tr><th>souki</th><td>39.12</td><td>34.13</td><td> 1.00</td><td>47.00</td></tr>
|
80
|
+
<tr><th>tatsuya</th><td>54.35</td><td>41.52</td><td> 4.00</td><td>47.00</td></tr>
|
81
|
+
<tr><th>tochigi</th><td>115.71</td><td>57.51</td><td>12.00</td><td> 2.00</td></tr>
|
82
|
+
<tr><th>tomoko</th><td>95.58</td><td>71.76</td><td>191.00</td><td>19.00</td></tr>
|
83
|
+
<tr><th>tsuji</th><td>49.52</td><td>40.16</td><td>12.00</td><td>47.00</td></tr>
|
84
|
+
<tr><th>yuri</th><td> 0.00</td><td> 0.00</td><td> 0.00</td><td> 0.00</td></tr>
|
85
|
+
</table>
|
86
|
+
<p><img src="./work.png" /></p><p><img src="./speed.png" /></p></html>
|
data/work.png
CHANGED
Binary file
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: shunkuntype
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.10
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Shigeto R. Nishitani
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2017-06-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: systemu
|
@@ -201,6 +201,11 @@ files:
|
|
201
201
|
- lib/shunkuntype/training.rb
|
202
202
|
- lib/shunkuntype/version.rb
|
203
203
|
- shunkuntype.gemspec
|
204
|
+
- shunkuntype_bob/.gitignore
|
205
|
+
- shunkuntype_bob/Rakefile
|
206
|
+
- shunkuntype_bob/hiki_help.yml
|
207
|
+
- shunkuntype_bob/report.hiki
|
208
|
+
- shunkuntype_bob/shunkuntype_bob.hiki
|
204
209
|
- speed.png
|
205
210
|
- tmp.hiki
|
206
211
|
- tmp.html
|