Der Typewriter, Speedtest für schnelle Finger

Nach einer Ent­wick­lungs­zeit von einem Monat ist der “iBlog Typewri­ter” Speed­test für ein ers­tes Release fer­tig. Sie woll­ten schon immer ein­mal Ihre Fin­ger­fer­tig­keit auf der Tas­ta­tur tes­ten und sich mit ande­ren mes­sen? Dann zögern Sie nicht lan­ge und grei­fen Sie in die Tas­ten! Der “iBlog Typewri­ter” gibt Ihnen den Text vor und bewer­tet Ihre Anschlags­leis­tung.

Für ganz Eili­ge nen­ne ich gleich hier den Link zum Typewri­ter:
Typewri­ter in eige­nem Fens­ter öff­nen.

Just ano­t­her Schreib­pro­gramm?
Mehr oder weni­ger durch Zufall bin ich beim Sur­fen im Inter­net auf die­se Sei­te gesto­ßen, einem Geschwin­dig­keits­test für das Maschi­nen­schrei­ben. Beim Aus­pro­bie­ren ist mir ziem­lich schnell der Gedan­ke gekom­men, ein eige­nes Pro­gramm zu schrei­ben und dabei ein paar Fea­tures zu imple­men­tie­ren, die ich für sinn­voll hal­te:

Die Vor­la­ge ist ein lite­ra­ri­scher Text und nicht eine will­kür­li­che Anein­an­der­rei­hung von Wör­tern. Vie­le, wenn nicht alle Pro­gram­me im Inter­net kön­nen dies nicht bie­ten. Was aber nicht ganz ein­zu­se­hen ist, weil das Schrei­ben von Sät­zen “natür­li­cher”, lehr­rei­cher und lus­ti­ger ist.

Das Pro­gramm gibt falsch geschrie­be­ne Wör­ter als sol­che aus. Schließ­lich möch­te ich wis­sen, wobei ich mich ver­tippt habe.

Ein Punkt mar­kiert den nächs­ten ein­zu­ge­ben­den Buch­sta­ben. Wen das stört, der kann das Fea­ture deak­ti­vie­ren.

Die Feh­ler­be­rech­nung ist an den Bewer­tungs­schlüs­sel der Deut­schen Industrie- und Han­dels­kam­mer ange­lehnt. Ich hat­te mir hier zu Beginn ein stol­zes Ziel gesetzt, um wäh­rend der Umset­zung ein­zu­se­hen, dass die­se The­ma­tik doch ein wenig kom­ple­xer ist, als ange­nom­men. Das eigent­li­che Pro­blem dabei ist nicht, zu ent­schei­den, ob ein ein­zel­ner Buch­sta­be rich­tig ein­ge­ge­ben wur­de, son­dern wann und ob nach einer fal­schen Ein­ga­be rich­ti­ge Anschlä­ge fol­gen, und das in jeder mög­li­chen Kom­bi­na­ti­on. Das ist schon recht kom­pli­ziert; die Mög­lich­kei­ten poten­zie­ren sich aber, wenn man bei der Ein­ga­be die fal­sche Anzahl an ein­ge­ge­be­nen Zei­chen mit berück­sich­tigt. Und hier erreich­te ich dann den Punkt, an dem ich kapi­tu­lier­te. Ich hat­te näm­lich mit einem ande­ren Pro­blem zu kämp­fen: Der Per­for­mance. Ange­nom­men, ein (sehr geüb­ter) Pro­band leis­tet in der Minu­te 600 Tas­ten­an­schlä­ge, so muss das Pro­gramm (sprich die JavaScript-​Engine des jewei­li­gen Brow­sers) in der Sekun­de 10 Buch­sta­ben ver­glei­chen (aller­dings poten­ziert sich hier der Abgleich, wenn ein fal­sches Zei­chen ein­ge­ge­ben wur­de, denn: es könn­ten auch ein­fach Buch­sta­ben aus­ge­las­sen wor­den sein und das Pro­gramm muss nun ent­schei­den, ob das zu schrei­ben­de Wort viel­leicht an einer spä­te­ren Stel­le kor­rekt wei­ter­ge­schrie­ben wird) und ein bis drei Wor­te pro Sekun­de mit­tels Bewer­tungs­schlüs­sel berech­nen und even­tu­ell im Text mit der fal­schen Ein­ga­be aus­tau­schen. Und das Gan­ze ohne dabei die Ani­ma­ti­on der Buch­sta­ben­mar­kie­rung zu stö­ren. Bei mei­nen vie­len Tests und Expe­ri­men­ten fiel mir aber auch auf, dass man auf vie­le “theo­re­ti­sche” Mög­lich­kei­ten der Berech­nung ver­zich­ten kann, weil sie bei seriö­sen Ein­ga­ben nicht vor­kom­men. Lan­ge Rede, kur­zer Sinn: Die Feh­ler­be­rech­nung ist sicher nicht per­fekt, funk­tio­niert aber, wenn man nicht absicht­lich Ein­ga­ben pro­du­ziert, die im “nor­ma­len” und zu erwar­ten­den Schreib­fluss nicht zu erwar­ten sind. Ich habe ledig­lich ein paar Sper­ren ein­ge­baut, die das bewuss­te Ver­fäl­schen des End­ergeb­nis­ses und damit der Tabel­le ver­hin­dern sol­len.

Die Text­vor­la­ge ändert sich nach einem vor­ge­ge­be­nen Algo­rith­mus. Ich habe außer­dem die Text­stel­len fol­gen­der­ma­ßen geän­dert: Alle Anfüh­rungs­zei­chen wur­den ent­fernt, alle “ß” wur­den nach der Regel der letz­ten deut­schen Recht­schreib­re­form in “ss” umge­wan­delt und “schwie­ri­ge” und den Schreib­fluss stö­ren­de Zei­chen, wie zum Bei­spiel der Gedan­ken­strich, wur­den ent­fernt oder aus­ge­tauscht (zum Bei­spiel mit einem Bei­strich).

Son­der­zei­chen
Heu­te (9.11.2010) habe ich nach Anre­gung von Peter Eniss (sie­he Kom­men­ta­re) das Ver­hal­ten bei Son­der­zei­chen ver­än­dert. Fol­gen­de Buch­sta­ben kön­nen alter­na­tiv ein­ge­ge­ben wer­den: ß -> s (kein dop­pel­tes s!); ä -> a; ö -> o; ü -> u. Ich hal­te es nicht für sinn­voll, anstatt z.B. “ä” die Ein­ga­be von “ae” zu ermög­li­chen, weil es den Schreib­fluss zu sehr stö­ren wür­de und die Berech­nung rich­ti­ger und fal­scher Ein­ga­ben extrem ver­kom­pli­zie­ren wür­de. Glei­ches gilt für das “ß”, wel­ches durch ein ein­fa­ches “s” ersetzt wer­den kann. Damit soll­te der Typewri­ter auch mit Tas­ta­tu­ren ver­wend­bar sein, die genann­te Son­der­zei­chen nicht über­ge­ben kön­nen.

Bewer­tungs­schlüs­sel
Die Punk­te­an­zahl wird fol­gen­der­ma­ßen berech­net:
(Kor­rekt ange­schla­ge­ne Tas­ten - (Feh­ler * 10)) /​ Test­dau­er in Minu­ten
Ich möch­te nicht mit allen Ein­zel­hei­ten der Berech­nung lang­wei­len (wenn ich das nicht eh schon im letz­ten Absatz getan habe), aber hier doch ein paar “Tipps” zum Schrei­ben geben:

Feh­ler wer­den am Schluss also mit 10 mul­ti­pli­ziert. Es muss jeder für sich ent­schei­den, ob es bes­ser wäre, ein­zel­ne falsch getipp­te Buch­sta­ben zu kor­ri­gie­ren, oder sich die Zeit zu spa­ren und ein­fach wei­ter­zu­schrei­ben. Auf­pas­sen soll­te man beim Anfangs­buch­sta­ben: Ange­nom­men der ers­te Buch­sta­be wäre ein “A”. Groß­buch­sta­ben zäh­len mit zwei Anschlä­gen, weil man zusätz­lich die Umschalt­tas­te drü­cken muss (ja, mein Pro­gramm berück­sich­tigt das). Damit zähl­te die Ein­ga­be eines “a” mit einem Feh­ler. Eben­so ein “B”. Ein “c” zähl­te jedoch mit zwei Feh­lern. (Sie sehen also, ich habe nicht über­trie­ben wenn ich mein­te, die Feh­ler­be­rech­nung sei kom­plex).

Um es mit den Berech­nun­gen nicht zu über­trei­ben habe ich irgend­wann beim Ver­zwei­feln beim Ent­wi­ckeln beschlos­sen, Buch­sta­ben, die die Län­ge des vor­ge­ge­be­nen Wor­tes über­schrei­ten, als Feh­ler zu wer­ten. Das mag ober­fläch­lich betrach­tet nicht so gut sein, ich habe aber trif­ti­ge Grün­de dafür (unter ande­rem der Sicher­heit wegen). Wich­tig dabei ist also: Bei der Vor­ga­be von z.B. “Haus” und der Ein­ga­be von “Hxy­zaus” ist es bes­ser, die Lösch­tas­te zu bemü­hen. Das Pro­gramm erkennt zwar, dass nach dem “z” wie­der rich­ti­ge Buch­sta­ben fol­gen, bucht jedoch für die drei über­zäh­li­gen Buch­sta­ben am Ende drei (zusätz­li­che) Feh­ler­punk­te aufs Kon­to. Das leuch­tet nicht ein? Über­le­gen Sie, wie das Pro­gramm sonst die Ein­ga­be von “Maus” mit einem Feh­ler rich­tig bewer­ten soll­te.

Wei­ter­füh­ren­des im Inter­net
Wem mein Pro­gramm nicht zusagt, bzw. wer nach Ande­rem strebt, dem emp­feh­le ich hier fol­gen­de Web­sei­ten (wohl­ge­merkt: Web­sei­ten, also Online-​Tests; kei­ne Pro­gram­me, die instal­liert wer­den müs­sen!):

Typewri­ter, online Schreib­trai­ner, Pro­gramm, das aller­dings (auf mei­nem Sys­tem) kei­ne Ein­ga­be von Umlau­ten ermög­licht, obwohl die­se vor­ge­ge­ben wer­den.
Speed­test, soli­des Pro­gramm, gibt ein­zel­ne Wör­ter vor, vie­le Spra­chen aus­wähl­bar.

Chan­ge­log
Falls ich Zeit fin­de, das Pro­gramm wei­ter zu ent­wi­ckeln, fin­den sich hier Hin­wei­se auf die Ände­run­gen.

- Ver­si­on 1.1.2, 09.11.2010. Ver­hal­ten bei Son­der­zei­chen ange­passt: ß,ä,ö,ü alter­na­tiv: s,a,o,u
- Ver­si­on 1.1.1, 13.12.2009. Sor­tier­funk­ti­on ver­bes­sert.
- Ver­si­on 1.1.0, 05.12.2009. Sor­tier­funk­ti­on in der Tabel­le ein­ge­baut.
- Ver­si­on 1.0.2, 01.12.2009. Feh­ler in der Daten­bank­ab­fra­ge beho­ben, der nur die ers­ten 30 Ergeb­nis­se aus­gab.
- Ver­si­on 1.0.1, 07.11.2009. Ajax Request geän­dert, um einem Dop­pel­klick ent­ge­gen­zu­wir­ken.
- Ver­si­on 1.0.0, 05.11.2009. Release.

Key­wor­ds
Typewri­ter, online Schreib­trai­ner, Maschi­ne­schrei­ben, Speed­test, Schnell­schreib­test, 10 Fin­ger­sys­tem, Typing­test, 10 Fin­ger, Adler­sys­tem, Geschwin­dig­keit, Geschwin­dig­keits­test

Share on Google+Share on RedditTweet about this on TwitterShare on LinkedInShare on FacebookShare on XingEmail this to someone