Re: [Neo] Neo-Hardware-Entwicklung

2010-05-17 Diskussionsfäden Arne Babenhauserheide
Peter Eberhard wrote:

 Vielleicht kriegen wir die grobe Belegung aber auch fertig, bevor
 ArneCo. so richtig fertigoptimiert haben, dann kann die Neo-
Hardware
 evtl. mit berücksichtigt werden. Ich höre die Optimierer schon
 aufstöhnen – noch eine Komplikation mehr.

Bisher habe ich hier noch nichts gelesen, dass sich nicht mit ein paar 
recht kleinen Anpassungen integrieren lässt. 

Die Tastenkosten sind halt anders, aber so grundlegende Sachen wie 
„keine zwei Finger nebeneinander“ und „Fingerwiederholungen sind böse“ 
bleiben ja erhalten. 

Und da ich eh nur die erste Ebene optimiere (plus Großschreibung), an 
der ihr ja nur die Tastenpositionen ändert, aber nicht z.B. xqzzy auf 
eine andere Ebene schiebt, sollte das problemlos gehen. 

Liebe Grüße, 
Arne



Re: [Neo] Nachbarstrafe (war Vrijbuiter usw)

2010-05-17 Diskussionsfäden wettstein509
 Pfeif einmal auf die Einwärtsbewegungen oder halte
 Lagepunkte/Fingerwiederholung/Auswärtsbewegungsstrafe in etwa 150/35/10,

Unsere Bewertungskriterien sind verschieden, daher kann ich diese Empfehlung
nicht direkt übertragen.  Qualitativ habe ich gesehen, dass der Einfluss der
Auswärtsstrafpunkte sehr abrupt einsetzt.

 halte E und N auf die Mittelfinger,

Ich fühle mich nicht befugt, dem Optimierer solche Vorschriften zu machen.

Ich weiss zwar nicht, ob Einwärtsbewegungen wirklich besser sind als
Auswärtsbewegungen.  Aber allmählich ist für mich der Zeitpunkt gekommen, eine
von meinen Tastaturen auszuprobieren statt nur zu theoretisieren.  Dazu bietet
es sich an, eine Tastatur mit klarem Charakter zu wählen, vielleicht gelingt es
mir ja dann wider Erwarten, diesen Charakter zu erspüren und zu bewerten.  In
meinem Fall ist ein Teil dieses Charakters die Dominanz von Einwärtsbewegungen.
Konkret probiere ich diese Tastatur aus:

   links rechts
 1.096 Kollisionen 2.833 Shift-Kollisionen ob  7.4 12.2
kuü.ä vgcljf70.872 Handwechsel28.234 Shift-Handwechsel mi 36.2 34.5
hieao dtrnsß15.448 Einwärts   67.797 Shift-Einwärtsun  5.9 10.1
xyö,q bpwmz 10.218 Auswärts   12.033 benachbart   sum 49.6 56.8
   Finger 10.2 11.4 16.8 11.1 | 17.8 11.6 16.0 11.4 Shift  4.5  1.8

Die Bewertung oben ist mit Karls Bearbeitung des Leipziger Korpus gemacht und
fällt mässig aus; die eigentliche Optimierung habe ich mit einem 1:1 gemischten
deutsch/englischen Korpus gemacht, und das hat natürlich seinen Preis für’s
Deutsche.  Auf den Leipziger Korpus optimiert bekomme ich mit denselben
Bewertungskriterien:

 1.112 Kollisionen 1.083 Shift-Kollisionen ob  7.1 11.8
kzo.ü xhlcjv67.154 Handwechsel28.811 Shift-Handwechsel mi 35.9 34.4
gaeiu dsrntq16.770 Einwärts   68.875 Shift-Einwärtsun  6.4 10.8
ßäö,y bfwmp 12.598 Auswärts   13.090 benachbart   sum 49.4 56.9
   Finger  8.9  7.5 18.8 14.1 | 18.9 12.5 15.0 10.4 Shift  4.3  2.0

Tja, die Shift-Kollisionen…

Andreas



Re: [Neo] Gedanken zu Programm zum Konvertieren von Text zum praktischen Testen von neuen Layouts?

2010-05-17 Diskussionsfäden Peter Karp
Hi Arne,

danke für die Antwort zum Berechnen von optimierten Layouts mit deinem
Programm.

  Hast du etwas Rechenleistung übrig? Dann kann ich dir einfach schreiben,
  wie du es selbst machen kannst.
 
 Wenn man nicht deutlich mehr als Python braucht, kann ich auch mal 'ne
 Runde rechnen lassen.

 Dann ist hier mal die Kurzbeschreibung: 

 Anforderungen: 

 * Python 3 → http://python.org/download/
 * Das Skript: 2 Möglichkeiten: 
 (a) statisch:
 http://bitbucket.org/ArneBab/evolve-keyboard-layout/get/tip.zip
 (b) via hg¹: hg clone
 https://bitbucket.org/ArneBab/evolve-keyboard-layout

 Schritte: 

 * (nur für (a): Entpacken)
 * mit einer shell (z.B. Eingabeaufforderung) in den Ordner gehen. 
 * ./check_neo.py --evolve 5 --controlled-evolution -v
 * Für Hilfe: ./check_neo.py --help

 (das -v bei --evolve bedeutet, dass du mehr Statistikinfos haben willst)

Prima, klappt soweit und evoluiert munter Neo-Layouts.

 ¹: Mercurial ermöglicht es, dass du eigene Änderungen sehr leicht wieder
 hochladen kannst: http://mercurial.selenic.com

Hab's erstmal lokal entpackt, ohne Hg.

 Das heisst, dass man mit deinem Skript leicht mal ein paar Varianten
 für 4 bis 6 Tauschpaare (da würde ich vermutlich eine Obergrenze
 setzen, da Optimierungen darüber wohl immer weniger bringen werden).
 Das würde mich interessieren. Könntest Du ein paar solcher Layouts
 rechnen lassen oder mit auf die Sprünge helfen, ob / wie ich das
 machen kann?

 Jupp. Allerdings kommt immer nur ein optimales raus. Um mehrere zu haben,
 musst du an Parametern drehen. Die Parameter stehen bei „### Constants“, in
 der aktuellen Version ab Zeile 207: 
 http://bitbucket.org/ArneBab/evolve-keyboard-
 layout/src/b0bfcc4112a7/check_neo.py#cl-207

Ah, verstehe.

 Dazu noch die Kosten pro Taste: 
 http://bitbucket.org/ArneBab/evolve-keyboard-
 layout/src/b0bfcc4112a7/check_neo.py#cl-330

Mmh, ich hab' jetzt erstmal die Parameter und Kosten unverändert
übernommen.


[Stück für Stück immer zwei Tasten tauschen]

 Das würd' ich eben gern mal im Selbstversuch ausprobieren. Im
 schlimmsten Fall würde ich das Experiment abbrechen, wenn ich sehe,
 dass es nur Ärger bringt und man sich dann ganz schwer umgewöhnen
 kann, aber ich habe doch Hoffnung, dass ein weicher Übergang so
 möglich sein könnte.

 Viel Erfolg!

Danke. Jetzt muss ich erstmal schauen, ob ich ein schönes deutsches
4er, 5er, oder 6er-Tauschlayout finde.

In deinem Skript hab' ich zur Evolution von qwertz die Funktion

evolve_a_layout

kopiert und umbenannt und dann in der Funktion nur noch Mutating Neo
in Mutating Qwertz und die beiden Verweise auf NEO_LAYOUT in
QWERTZ_LAYOUT geändert. So sollte es o.k. sein, wenn ich von Qwertz
ausgehend Layouts finden will? Das Argument zum Aufruf aus der shell /
Konsole hab' ich natürlich auch noch ergänzt / angepasst.

Ein erster Testlauf schien auch zu funktionieren, aber hört dann mit
folgenden Zeilen auf:

[...]
# checked switch ('ü,',) 8460529269.16
# checked switch ('ü.',) 8470214246.98
# checked switch ('ßß',) 8471758187.7
# checked switch ('ß,',) 8451206818.99
# checked switch ('ß.',) 8440117316.39
# checked switch (',,',) 8471758187.7
# checked switch (',.',) 8471045516.23
# checked switch ('..',) 8471758187.7
8471.7581877 finger repetition: 17.883722 position cost: 1281.105931
Traceback (most recent call last):
  File U:\evolve-keyboard-layout\check
_qwertz.py, line 1733, in module
evolve_a_layout_qwertz(steps=int(argv[2]), prerandomize=PRERANDOMIZE, quiet=
QUIET, controlled=CONTROLLED_EVOLUTION, verbose=VERBOSE)
  File U:\evolve-keyboard-layout\check
_qwertz.py, line 1529, in evolve_a_layout_qwertz
lay, cost = evolve(letters, repeats, trigrams, layout=lay, iterations=steps,
 quiet=quiet, controlled=controlled)
  File U:\evolve-keyboard-layout\check
_qwertz.py, line 1262, in evolve
lay, cost, better = controlled_evolution_step(letters, repeats, trigrams, st
ep, layout, abc, cost, quiet)
  File U:\evolve-keyboard-layout\check
_qwertz.py, line 1236, in controlled_evolution_step
print(lay)
  File C:\Programme\Python\lib\encodings\cp850.py, line 19, in encode
return codecs.charmap_encode(input,self.errors,encoding_map)[0]
UnicodeEncodeError: 'charmap' codec can't encode character '\u2190' in position
68: character maps to undefined

Vergleichbare Meldung bekomme ich, wenn ich die Evolution ohne
Änderung am Quelltext für Neo durchlaufen lasse :-(

 PS: War es Absicht, dass die Mail nicht an die Liste ging? 

Jein, hatte auf reply geklickt und gesehen, dass Du als Empfänger
ohne Liste angegeben warst. Da hab' ich es so gelassen, da ich nicht
sicher war, ob es für alle interessant ist, aber nun wieder in die
Liste geantwortet ... :-)

Viele Grüße
Peter




[Neo] [ticket] #217: Ebene 3 in Qt Creator fehlerhaft

2010-05-17 Diskussionsfäden Neo-Layout
#217: Ebene 3 in Qt Creator fehlerhaft
---+
 Reporter:  old_death auf sourceforge  |   Owner: 
 Type:  Fehler/Defekt  |  Status:  new
 Priority:  normal |   Milestone:  Neo Version 2.0
Component:  Treiber: Windows – Kbdneo  | Version:  2.0 BETA   
 Keywords: |  
---+
 Um einen Buchstaben der Ebene 3 (z.B. '=', '/', '\') im Qt Creator zu
 tippen (Win XP x86) braucht es beim ersten Buchstaben auf Ebene 3 zwei
 Tastenanschlaege fuer den ersten Buchstaben, jeder weitere Buchstabe in
 Ebene 3 der folgt, kann normal geschrieben werden, jedoch sobald auf eine
 andere Ebene und zurueck gewechselt wird, werden wieder 2 Tastenanschlaege
 fuer den ersten benoetigt, was Neo in diesem Fall als schneller
 Programmierertastatur ziemlich im Wege steht...

-- 
Ticket URL: http://wiki.neo-layout.org/ticket/217
Neo-Layout http://neo-layout.org/
Das Neo-Tastaturlayout ist ein freies und ergonomisch optimiertes 
Tastaturlayout für die deutsche Sprache, das auch sehr viele Sonderzeichen 
direkt verfügbar macht.