สร้างตัวอักษรแบบสุ่มสำหรับฝึกพิมพ์ดีด
ช่วงนี้กำลังฝึก keyboard layout ใหม่ชื่อ programmer Dvorak (มีให้เลือกทันทีใน Ubuntu 12.04) เนื่องจากหาที่ฝึกพิมพ์ไม่ได้เลย คงเป็นเพราะคนไม่รู้จักเลยไม่มีใครทำไว้ เลยใช้ klavaro แล้วเลือก Dvorak แบบธรรมดาไปก่อน ก็จะมีให้ฝึกพิมพ์เป็นบทเรียนๆไป บทหนึ่งจะมีตัวอักษรในแถวเดียวกัน (บนแป้นพิมพ์) ออกมาแบบสุ่มๆให้ฝึกพิมพ์ ปัญหาเกิดตอนหลังๆตอนฝึกถึงจุดที่ต่างจาก Dvorak เพราะตัวอักษรที่สุ่มออกมามันไม่อยู่แถวเดียวกันเนื่องจากคนละ layout เลยเขียนโปรแกรมด้วย Python แบบง่ายๆเพื่อสุ่มตัวอักษรเอามาหัดพิมพ์ ต่อไปนี้เป็น code
# Permute a list of characters to generate
# a practice lesson in the format of klavaro.
import sys
import random
def permChars(chars):
I = range(len(chars))
random.shuffle(I)
chars = ''.join([chars[i] for i in I])
return chars
def randChars(chars, select):
s = ''.join([permChars(chars) for i in range(select)])
return permChars(s[:select])
def main():
if len(sys.argv) != 2:
print "USAGE: %s char_set" % sys.argv[0]
sys.exit(1)
charset = sys.argv[1]
select = 5
wrap = 9
lines = 10
nset = wrap*lines
# permute
for i in xrange(nset):
subchars = randChars(charset, select)
sys.stdout.write(''.join(subchars))
if (i+1)%wrap==0:
print ''
else:
sys.stdout.write(' ')
if __name__ == '__main__':
main()
วิธีใช้ก็ตัวอย่างเช่น อยากหัดพิมพ์ 4 ตัวอักษรนี้ ;,.p ซึ่งใช้มือซ้ายอยู่แถวที่ 2 จากบน ก็ใช้แบบนี้
python gensequence.py \;,.p
แล้วจะได้ประมาณนี้
;;.p, ..,;p ,;.p. .;,pp ;.;p, ;,,p. ;;p,. p.,p; ,;.p; ,.p;p p;.p, .p,;p ;,.p, ;.,p. p;,.p .;p,; ,pp.; ,.;p; ;.,p, p,;.; ,;.p, p;.,; ,,.;p ;p,., p.p;, .,p,; ;..p, ,;pp. ,,;p. .p;,; ,.p,; p.p,; ;;.p, ;,,p. ;,p,. .,;p. .;p,. ;,.p. p,.;p ;,.,p .,;.p ;.p,, .,,p; .p;,p p,.;; p,p;. ,.;;p p;.,, ;,.p. ;p.,, ;,p,. ,.p;, .;p,; p.;,, ,;,.p ,.;p, ;.,,p pp,.; .p;,, ,;,.p ;p,.. p,;,. p.;,. p;.,. ,.;p. ,;p.; p,;,. ;.,.p .pp,; .;,p, .p.,; pp;,. .,p;p .;,,p pp,.; .,.p; .pp,; .,;p, p;.., p;.,. .,pp; ;,.;p ;p.,p .,;.p p,;;. ;;,p. pp,.; p.;,. ;p,.. .,;,p
ก็ให้ copy ไปใส่ใน klavaro โดยเลือกโหมด Fluidity ตอนเริ่มโปรแกรม แล้วก็พิมพ์ไป