[[PageOutline(2-4)]] '''ACHTUNG: Dieser Artikel ist veraltet und bleibt nur aus historischen Gründen erhalten.''' Ein Teil der Neo-Nutzer und -entwickler hoffte unter dem Namen Neo eines Tages eine weitere Version mit wahrscheinlich komplett anderer Buchstabenbelegung zu veröffentlichen, die noch besser optimiert ist als Neo 2. Kritiker hielten es aber für unwahrscheinlich, dass so ein Konsens je gefunden werden wird, da die Wichtigkeit der Optimierungskriterien unterschiedlich eingeschätzt wird. Die wenigen aktiven weiterführenden Belegungsentwicklungen sind Eine-Person-Projekte, die deren jeweiligen Vorlieben widerspiegeln und deren Dauer völlig unvorhersehbar ist. Außerdem verunsichert die Ankündigung einer völlig andersartigen Version Interessierte und stellt zu Unrecht Wert und Langzeitunterstützung von Neo 2 in Frage. siehe http://article.gmane.org/gmane.comp.hardware.keyboards.layout.neo/10578 http://article.gmane.org/gmane.comp.hardware.keyboards.layout.neo/10914 http://article.gmane.org/gmane.comp.hardware.keyboards.layout.neo/11285 '''Am 1. und 2.2.16 einigte sich eine Gruppe auf der Mailing-Liste, dass keine Fortentwicklung unter dem Name „Neo 3“ erscheinen wird.''' http://article.gmane.org/gmane.comp.hardware.keyboards.layout.neo/11436 ff. == Motivation == Während der Fokus der Optimierung von Neo 1 zu Neo 2 die Anordnung der Sonderzeichen war, soll nun mit Neo 3 unter anderem die erste Ebene nochmals unter die Lupe genommen werden. Hintergrund ist, dass Neo 1 von Hanno bisher nur „von Hand“ auf die Häufigkeit der deutschen und englischen Buchstaben, Bi- und Trigramme optimiert wurde. In der dritten Version soll nun eine bessere Belegung mt Hilfe computergestützer Optimierung gefunden werden. Wir erzeugen dafür gemeinsam Layouts und sammeln die besten in EvolvedLayouts. Weiterhin existieren Überlegungen zu einer [wiki:Hardwareentwicklung eigenen Hardware] und der [wiki:Neo3/Modifierpositionen Neuanordnung der Modifier]. == Ansätze == Es gibt zwei vollständig lauffähige Optimierungsskripte. Andreas hat ein sehr schnelles [https://sites.google.com/site/ausderneowelt/ Optimierungsprogramm in C++] entwickelt. Arne hat ein langsameres [http://draketo.de/node/282 Optimierungsskript] in Python geschrieben, das als Ziel einfache Definitionen jeglicher Art von Kosten hat. Beide suchen mit evolutionären Algorithmen neue Belegungen. Man könnte auch auf fremde Ansätze zurückgreifen, da es mit [http://www.michaelcapewell.com/programming/keyboardevolve.htm Keyboard Evolve] aus dem [http://www.michaelcapewell.com/projects/keyboard/ Capewell-Projekt] und vor allem [http://mkweb.bcgsc.ca/carpalx/ Carpalx] bereits sehr gute Optimierungsprogramme gibt. == Optimierungskriterien == [wiki:Neo3/Optimierungskriterien Kriterien] sind: * Gute Tastenpositionen (auf der Grundlinie ist z.B. besser als links unten). * Möglichst wenige Fingerwiederholungen (einen Finger mehrfach hintereinander nutzen). * Handwechsel bei Richtungswechsel (horizontal). * Wenige Zeilenwechsel auf der gleichen Hand. * Handwechsel, wenn eine Hand aus ihrer Grundposition gezogen wird. * Gleichmäßige Fingerbelastung (aber nur halbe Last auf dem Kleinen, weil er sonst frühzeitig aussteigen kann). * Minimierung bestimmter Fingerübergänge (z.B. Mittel- auf Ringfinger). Die Schwierigkeit besteht in der Abwägung der einzelnen Kriterien, da diese von Person zu Person unterschiedlich bewertet werden. Die verwendete Tastatur spielt natürlich auch eine Rolle. Außerdem beieinflussen sich die Kriterien gegenseitig, wodurch einer passenden Gewichtung eine wichtige Rolle zukommt. Um eine gute Gewichtung der Kriterien zu finden, müssen daher optimierte Layouts von möglichst vielen verschiedenen Leuten getestet werden. Außerdem können so noch fehlende Kriterien gefunden werden. Erste Schritte dazu sind die Auswertungen von [http://bitbucket.org/ArneBab/evolve-keyboard-layout/src/tip/empirie/2010-05-05-eval.txt 2010-05-05] und [http://bitbucket.org/ArneBab/evolve-keyboard-layout/src/tip/empirie/2010-06-18-eval.txt 2010-06-18]. Ein erstes Ergebnis der Auswertungen und weiterer Tests ist [http://bitbucket.org/ArneBab/evolve-keyboard-layout/src/tip/config.py config.py]. Um den Vergleich zu erleichtern, können Texte so umgeschrieben werden, dass die einzelnen Buchstaben denen auf der Tastaturbelegung entsprechen. Aus dem Text ASDF von QWERTZ würde bei der Konvertierung UIAE in Neo 2 werden, so dass ein Neo 2 Nutzer den Textfluss des QWERTZ-Layouts testen könnte. Im Optimierer macht das das Skript [http://bitbucket.org/ArneBab/evolve-keyboard-layout/src/tip/convert_text_between_layouts.py convert_text_between_layouts.py]. == Zwischenergebnisse in Benutzung == === Bone === {{{ jduax zclmwq' htieo bnrsgß⇘ fvüäö py,.k ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬──────┐ │ ^ │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ ` │ ← │ ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬────┤ │ ⇥ │ j │ d │ u │ a │ x │ z │ c │ l │ m │ w │ q │ ' │ Ret│ ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │ │ ⇩ │ h │ t │ i │ e │ o │ b │ n │ r │ s │ g │ ß │ ⇘ │ │ ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴───┤ │ ⇧ │ M4│ f │ v │ ü │ ä │ ö │ p │ y │ , │ . │ k │ ⇗ │ ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴─┬─┴──┬┴───┼────┬────┤ │Strg│ Fe │ Alt│ Leerzeichen │ M4 │ Fe │ Me │Strg│ └────┴────┴────┴───────────────────────┴────┴────┴────┴────┘ # 8.501819 x100 total penalty per letter # 31.11437 x10 billion total penalty compared to notime-noeffort # 7.514523 mean key position cost in file 1gramme.txt ( 55.00226738 ) # 11.73654 % finger repeats in file 2gramme.txt ( 47.2142408942 ) # 11.75948 million keystrokes disbalance of the fingers ( 17.6392327087 ) # 0.320947 % finger repeats top to bottom or vice versa ( 6.45560905428 ) # 3.340640 % of trigrams have no handswitching (after direction change counted x 1 ) ( 14.7767034133 ) # 8.130151 billion (rows²/dist)² to cross ( 105.691971856 ) # 0.047680 hand disbalance. Left: 0.547680590574 %, Right: 0.452319409426 % ( 1.39598506231 ) # 0.0 badly positioned shortcut keys (weighted). # 17.65044 no handswitching after unbalancing key (weighted). # 20.60072 movement pattern cost (weighted). # 0.846386 asymmetric bigram cost (weighted). # 15.47297 manually assigned bigram penalty (weighted) # 8.397174 unbalancing key after neighboring finger (weighted) }}} Treiber zum Ausprobieren gibt es unter [wiki:Bone] (bone verwendet vereinfachte Tastenkostenkriterien, so dass das Ergebnis hier nicht exakt das Ergebnis mit der bone-config wiederspiegelt). [[BR]][[BR]] Es gibt auch neuere Ansätze: [wiki:Bone2 Bone2], [wiki:Bone3 Bone3] und [wiki:Flux Flux]. === Cry === {{{ bmuaz kdflvjß criey ptsnh⇘ xäüoö wg,.q ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬──────┐ │ ^ │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ ` │ ← │ ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬────┤ │ ⇥ │ b │ m │ u │ a │ z │ k │ d │ f │ l │ v │ j │ ß │ Ret│ ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │ │ ⇩ │ c │ r │ i │ e │ y │ p │ t │ s │ n │ h │ ⇘ │ ´ │ │ ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴───┤ │ ⇧ │ ⇚ │ x │ ä │ ü │ o │ ö │ w │ g │ , │ . │ q │ ⇗ │ ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴─┬─┴──┬┴───┼────┬────┤ │Strg│ Fe │ Alt│ Leerzeichen │ M4 │ Fe │ Me │Strg│ └────┴────┴────┴───────────────────────┴────┴────┴────┴────┘ # 8.459790 x100 total penalty per letter # 30.96055 x10 billion total penalty compared to notime-noeffort # 7.596530 mean key position cost in file 1gramme.txt ( 55.60251188 ) # 13.55902 % finger repeats in file 2gramme.txt ( 54.5457690969 ) # 11.79795 million keystrokes disbalance of the fingers ( 17.696936837 ) # 0.503933 % finger repeats top to bottom or vice versa ( 10.1362126748 ) # 3.606038 % of trigrams have no handswitching (after direction change counted x 1 ) ( 15.9506439105 ) # 7.787864 billion (rows²/dist)² to cross ( 101.242234137 ) # 0.027308 hand disbalance. Left: 0.52730894297 %, Right: 0.47269105703 % ( 0.799547069249 ) # 0.0 badly positioned shortcut keys (weighted). # 10.92445 no handswitching after unbalancing key (weighted). # 17.77564 movement pattern cost (weighted). # 0.837732 asymmetric bigram cost (weighted). # 14.84835 manually assigned bigram penalty (weighted) # 9.245518 unbalancing key after neighboring finger (weighted) }}} Treiber zum Ausprobieren (momentan nur für Linux) von cry gibt es unter [https://bitbucket.org/ArneBab/evolve-keyboard-layout/raw/88c8de5ce439/empirie/crie.xmodmap crie.xmodmap] und [https://bitbucket.org/ArneBab/evolve-keyboard-layout/raw/88c8de5ce439/empirie/crie-truly.xmodmap crie-truly.xmodmap]. Testergebnisse zu cry gibt es unter [https://bitbucket.org/ArneBab/evolve-keyboard-layout/src/tip/empirie/Testnotizen.txt Testnotizen.txt]. Cry ist gerade in einem 3-Jahrestest von ArneBab, um Kriterien für Probleme zu finden, die erst bei hohen Geschwindigkeiten auftreten. == Andere Layouts zum Vergleich == === Neo 2 === {{{ xvlcw khgfqß´ uiaeo snrtdy üöäpz bm,.j ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬──────┐ │ ^ │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ ` │ ← │ ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬────┤ │ ⇥ │ x │ v │ l │ c │ w │ k │ h │ g │ f │ q │ ß │ ´ │ Ret│ ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ │ │ ⇩ │ u │ i │ a │ e │ o │ s │ n │ r │ t │ d │ y │ ⇘ │ │ ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴───┤ │ ⇧ │ M4│ ü │ ö │ ä │ p │ z │ b │ m │ , │ . │ j │ ⇗ │ ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴─┬─┴──┬┴───┼────┬────┤ │Strg│ Fe │ Alt│ Leerzeichen │ M4 │ Fe │ Me │Strg│ └────┴────┴────┴───────────────────────┴────┴────┴────┴────┘ # 13.41630 x100 total penalty per letter # 49.10005 x10 billion total penalty compared to notime-noeffort # 7.359111 mean key position cost in file 1gramme.txt ( 53.86473966 ) # 41.17544 % finger repeats in file 2gramme.txt ( 165.64218441 ) # 12.36402 million keystrokes disbalance of the fingers ( 18.546034618 ) # 0.860423 % finger repeats top to bottom or vice versa ( 17.3067224476 ) # 2.526418 % of trigrams have no handswitching (after direction change counted x 1 ) ( 11.175141922 ) # 12.89494 billion (rows²/dist)² to cross ( 167.634334583 ) # 0.009549 hand disbalance. Left: 0.490450663465 %, Right: 0.509549336535 % ( 0.279584019349 ) # 0.0 badly positioned shortcut keys (weighted). # 16.49474 no handswitching after unbalancing key (weighted). # 12.92256 movement pattern cost (weighted). # 0.827429 asymmetric bigram cost (weighted). # 14.65591 manually assigned bigram penalty (weighted) # 11.65114 unbalancing key after neighboring finger (weighted) }}} === Qwertz === {{{ qwert zuiopü+ asdfg hjklöä