Der Typewriter, Speedtest für schnelle Finger

Nach einer Entwicklungszeit von einem Monat ist der "iBlog Typewriter" Speedtest für ein erstes Release fertig. Sie wollten schon immer einmal Ihre Fingerfertigkeit auf der Tastatur testen und sich mit anderen messen? Dann zögern Sie nicht lange und greifen Sie in die Tasten! Der "iBlog Typewriter" gibt Ihnen den Text vor und bewertet Ihre Anschlagsleistung.

Für ganz Eilige nenne ich gleich hier den Link zum Typewriter:
Typewriter in eigenem Fenster öffnen.

Just another Schreibprogramm?
Mehr oder weniger durch Zufall bin ich beim Surfen im Internet auf diese Seite gestoßen, einem Geschwindigkeitstest für das Maschinenschreiben. Beim Ausprobieren ist mir ziemlich schnell der Gedanke gekommen, ein eigenes Programm zu schreiben und dabei ein paar Features zu implementieren, die ich für sinnvoll halte:

Die Vorlage ist ein literarischer Text und nicht eine willkürliche Aneinanderreihung von Wörtern. Viele, wenn nicht alle Programme im Internet können dies nicht bieten. Was aber nicht ganz einzusehen ist, weil das Schreiben von Sätzen "natürlicher", lehrreicher und lustiger ist.

Das Programm gibt falsch geschriebene Wörter als solche aus. Schließlich möchte ich wissen, wobei ich mich vertippt habe.

Ein Punkt markiert den nächsten einzugebenden Buchstaben. Wen das stört, der kann das Feature deaktivieren.

Die Fehlerberechnung ist an den Bewertungsschlüssel der Deutschen Industrie- und Handelskammer angelehnt. Ich hatte mir hier zu Beginn ein stolzes Ziel gesetzt, um während der Umsetzung einzusehen, dass diese Thematik doch ein wenig komplexer ist, als angenommen. Das eigentliche Problem dabei ist nicht, zu entscheiden, ob ein einzelner Buchstabe richtig eingegeben wurde, sondern wann und ob nach einer falschen Eingabe richtige Anschläge folgen, und das in jeder möglichen Kombination. Das ist schon recht kompliziert; die Möglichkeiten potenzieren sich aber, wenn man bei der Eingabe die falsche Anzahl an eingegebenen Zeichen mit berücksichtigt. Und hier erreichte ich dann den Punkt, an dem ich kapitulierte. Ich hatte nämlich mit einem anderen Problem zu kämpfen: Der Performance. Angenommen, ein (sehr geübter) Proband leistet in der Minute 600 Tastenanschläge, so muss das Programm (sprich die JavaScript-Engine des jeweiligen Browsers) in der Sekunde 10 Buchstaben vergleichen (allerdings potenziert sich hier der Abgleich, wenn ein falsches Zeichen eingegeben wurde, denn: es könnten auch einfach Buchstaben ausgelassen worden sein und das Programm muss nun entscheiden, ob das zu schreibende Wort vielleicht an einer späteren Stelle korrekt weitergeschrieben wird) und ein bis drei Worte pro Sekunde mittels Bewertungsschlüssel berechnen und eventuell im Text mit der falschen Eingabe austauschen. Und das Ganze ohne dabei die Animation der Buchstabenmarkierung zu stören. Bei meinen vielen Tests und Experimenten fiel mir aber auch auf, dass man auf viele "theoretische" Möglichkeiten der Berechnung verzichten kann, weil sie bei seriösen Eingaben nicht vorkommen. Lange Rede, kurzer Sinn: Die Fehlerberechnung ist sicher nicht perfekt, funktioniert aber, wenn man nicht absichtlich Eingaben produziert, die im "normalen" und zu erwartenden Schreibfluss nicht zu erwarten sind. Ich habe lediglich ein paar Sperren eingebaut, die das bewusste Verfälschen des Endergebnisses und damit der Tabelle verhindern sollen.

Die Textvorlage ändert sich nach einem vorgegebenen Algorithmus. Ich habe außerdem die Textstellen folgendermaßen geändert: Alle Anführungszeichen wurden entfernt, alle "ß" wurden nach der Regel der letzten deutschen Rechtschreibreform in "ss" umgewandelt und "schwierige" und den Schreibfluss störende Zeichen, wie zum Beispiel der Gedankenstrich, wurden entfernt oder ausgetauscht (zum Beispiel mit einem Beistrich).

Sonderzeichen
Heute (9.11.2010) habe ich nach Anregung von Peter Eniss (siehe Kommentare) das Verhalten bei Sonderzeichen verändert. Folgende Buchstaben können alternativ eingegeben werden: ß -> s (kein doppeltes s!); ä -> a; ö -> o; ü -> u. Ich halte es nicht für sinnvoll, anstatt z.B. "ä" die Eingabe von "ae" zu ermöglichen, weil es den Schreibfluss zu sehr stören würde und die Berechnung richtiger und falscher Eingaben extrem verkomplizieren würde. Gleiches gilt für das "ß", welches durch ein einfaches "s" ersetzt werden kann. Damit sollte der Typewriter auch mit Tastaturen verwendbar sein, die genannte Sonderzeichen nicht übergeben können.

Bewertungsschlüssel
Die Punkteanzahl wird folgendermaßen berechnet:
(Korrekt angeschlagene Tasten - (Fehler * 10)) / Testdauer in Minuten
Ich möchte nicht mit allen Einzelheiten der Berechnung langweilen (wenn ich das nicht eh schon im letzten Absatz getan habe), aber hier doch ein paar "Tipps" zum Schreiben geben:

Fehler werden am Schluss also mit 10 multipliziert. Es muss jeder für sich entscheiden, ob es besser wäre, einzelne falsch getippte Buchstaben zu korrigieren, oder sich die Zeit zu sparen und einfach weiterzuschreiben. Aufpassen sollte man beim Anfangsbuchstaben: Angenommen der erste Buchstabe wäre ein "A". Großbuchstaben zählen mit zwei Anschlägen, weil man zusätzlich die Umschalttaste drücken muss (ja, mein Programm berücksichtigt das). Damit zählte die Eingabe eines "a" mit einem Fehler. Ebenso ein "B". Ein "c" zählte jedoch mit zwei Fehlern. (Sie sehen also, ich habe nicht übertrieben wenn ich meinte, die Fehlerberechnung sei komplex).

Um es mit den Berechnungen nicht zu übertreiben habe ich irgendwann beim Verzweifeln beim Entwickeln beschlossen, Buchstaben, die die Länge des vorgegebenen Wortes überschreiten, als Fehler zu werten. Das mag oberflächlich betrachtet nicht so gut sein, ich habe aber triftige Gründe dafür (unter anderem der Sicherheit wegen). Wichtig dabei ist also: Bei der Vorgabe von z.B. "Haus" und der Eingabe von "Hxyzaus" ist es besser, die Löschtaste zu bemühen. Das Programm erkennt zwar, dass nach dem "z" wieder richtige Buchstaben folgen, bucht jedoch für die drei überzähligen Buchstaben am Ende drei (zusätzliche) Fehlerpunkte aufs Konto. Das leuchtet nicht ein? Überlegen Sie, wie das Programm sonst die Eingabe von "Maus" mit einem Fehler richtig bewerten sollte.

Weiterführendes im Internet
Wem mein Programm nicht zusagt, bzw. wer nach Anderem strebt, dem empfehle ich hier folgende Webseiten (wohlgemerkt: Webseiten, also Online-Tests; keine Programme, die installiert werden müssen!):

Typewriter, online Schreibtrainer, Programm, das allerdings (auf meinem System) keine Eingabe von Umlauten ermöglicht, obwohl diese vorgegeben werden.
Speedtest, solides Programm, gibt einzelne Wörter vor, viele Sprachen auswählbar.

Changelog
Falls ich Zeit finde, das Programm weiter zu entwickeln, finden sich hier Hinweise auf die Änderungen.

- Version 1.1.2, 09.11.2010. Verhalten bei Sonderzeichen angepasst: ß,ä,ö,ü alternativ: s,a,o,u
- Version 1.1.1, 13.12.2009. Sortierfunktion verbessert.
- Version 1.1.0, 05.12.2009. Sortierfunktion in der Tabelle eingebaut.
- Version 1.0.2, 01.12.2009. Fehler in der Datenbankabfrage behoben, der nur die ersten 30 Ergebnisse ausgab.
- Version 1.0.1, 07.11.2009. Ajax Request geändert, um einem Doppelklick entgegenzuwirken.
- Version 1.0.0, 05.11.2009. Release.

Keywords
Typewriter, online Schreibtrainer, Maschineschreiben, Speedtest, Schnellschreibtest, 10 Fingersystem, Typingtest, 10 Finger, Adlersystem, Geschwindigkeit, Geschwindigkeitstest

Share on LinkedInShare on Redditshare on TumblrShare on StumbleUponDigg thisShare on FacebookGoogle+Tweet about this on TwitterEmail to someone