
Ich habe kürzlich einen Beitrag gesehen , in dem Entwickler zum Flipper Zero-Projekt eingeladen wurden , und mich beworben. Ich wurde dem Firmware-Repository hinzugefügt und begann viel über die Benutzerfreundlichkeit des Geräts nachzudenken. Ich träumte, ich müsste ein paar Schlüsselbundschlüssel von verschiedenen Eingängen scannen. Im Traum gab es verschiedene Menschen, Wohnungen, Regen, und aus irgendeinem Grund gaben sie mir eine ganze Handvoll dieser gelben Runden, die sich nur in der Menge an Schmutz voneinander unterschieden. Und natürlich habe ich beschlossen, alle diese Schlüssel zu Flipper Zero hinzuzufügen, um irgendwie mit diesem Durcheinander fertig zu werden.
Genau in meinem Traum habe ich neue Bezeichner eingegeben und sie wurden alle als "Schlüssel" zum Menü hinzugefügt, was die Aktion noch bedeutungsloser machte. Das Ergebnis ist eine große Liste, die nur aus dem Wort "Schlüssel" besteht. Ich dachte, ich müsste die Firmware neu schreiben. Und hier ist genau der Vorteil des Schlafes - alles, was gedacht ist, wird sofort wahr. Schlüssel wurden mit einem zufälligen Suffix als "Schlüssel 74" hinzugefügt, gefolgt von "Schlüssel 22". Die Zahl ist zufällig und darf nicht mit Prüfsummen oder Hashes verwechselt werden. Wenn Sie ein gutes Gedächtnis haben, können Sie sich im Prinzip daran erinnern, dass Schlüssel 22 von Lenin 54 und Schlüssel 74 von Puschkin 29 stammt. Ich dachte, es wäre schön, die Zahlen direkt auf Flipper direkt in der Liste der Schlüssel zu bearbeiten: Wir haben freie Links-Rechts-Tasten, lassen Sie sie die Anzahl erhöhen / verringern! Ein langes Halten ruft die volle Tastatur auf! Aber hör aufWelche Tastatur soll gezeichnet werden? Standard QWERTY mit Umstellung auf Ytsuken? Russifizierte Yaverta? Wir haben einen Bildschirm von nur 128x64 Pixel, außerdem ist es notwendig, die Ausgabe der Eingaben irgendwie zu stopfen! Wie passt das alles zusammen? Ist es möglich, Text in Morsecode einzugeben?
Primitive Tastatur
Zu sagen, dass das Tippen auf einer solchen Tastatur bequem ist, ist eindeutig unmöglich. Welches ist auch schnell. Einfachheit und eine große Anzahl von Symbolen sind das einzige, was Sie hier bekommen können, aber ansonsten möchten Sie von einer solchen Tastatur aus laufen und nicht zurückblicken. Überraschenderweise war diese Eingabemethode in der Vergangenheit weit verbreitet.
Qwerty
Was ist, wenn Sie eine Standard-Android-Tastatur verwenden, einen Linseneffekt anwenden und sehen, was passiert? 10 Stunden in After Effects und hier ist es:
Ich hatte ein Skript, das Grafiken in eine CGA-Palette konvertiert. Nach der Verarbeitung stellte sich Folgendes heraus:
Ich mochte es und mochte sogar die Halbtöne. HALT. Flipper hat einen Schwarz-Weiß-Bildschirm! Auf der anderen Seite hat es Energie, was bedeutet, dass Sie Halbtöne erhalten können, indem Sie Pixel schnell ein- und ausschalten. Ich musste meine eigene Version von Dithering erfinden. Dabei wurde Smoker Dither erfunden:
Es ist eine Variation von Bärs Dither und eine leicht modifizierte Bill Atkinson-Fehlerverteilungsmatrix. Nach einigem Debuggen und Beheben von 9000 Fehlern stellte sich Folgendes heraus:
Um nicht zu sagen, dass mir diese Option viel besser gefällt, aber auf dem LCD-Bildschirm sollte sie besser aussehen. Halbtöne sollten aufgrund der konstanten Drehung der Matrizen besonders gut sein. Ich habe meinen Flipper noch nicht erhalten, daher kann ich ihn nicht wirklich testen, aber theoretisch sollte er gut aussehen.
Hmm, was ist, wenn Sie versuchen, eine möglichst kleine Tastatur zu zeichnen?
Im Prinzip hat es gut geklappt. Alles passt, wenn Sie wollen. Optional können Sie die RUSLAT-Taste wie viele andere nützliche Tasten drücken. Aber welche? In den HID-Standard einsteigen und von dort aus den Kaffee und den roten Knopf drücken?
Layout
Das Standard-QWERTZ-Layout bietet die folgenden Funktionen:
- Entwickelt für Schreibmaschinen, die manuelle Eingaben erfordern (zwei Hände)
- Es soll beim Tippen den Besitzer wechseln. Während eine Hand eine Taste drückt, bereitet sich die andere Hand auf das Drücken vor. Viele englische Wörter können jedoch nur auf der linken Seite der Tastatur eingegeben werden.
- Die diagonale Anordnung der Tasten geht auf die physikalische Anordnung der Hebel einer Schreibmaschine zurück
Die folgenden Wörter werden August Dvorak zugeschrieben, dem Schöpfer der „Dvorak-Tastatur“, einer Alternative zu QWERTY:
, , , , . , , . , , , .Aber so kam es, dass weder Dvorak noch sein Nachfolger Kolemak an Popularität gewannen.
Aber zurück zu Flipper. Haben wir Einfluss darauf? Kann ich mit zwei Händen gleichzeitig tippen? Ist es sinnvoll, die Hände zu wechseln? Wollen wir unsere kleinen Finger effektiver einsetzen, wie der Autor Kolemak wirbt? Benötigen wir Kompatibilität mit gängigen Windows-Hotkeys wie STRG + C / STRG + V? Die Antwort auf all diese Fragen lautet NEIN. Fazit: Wir müssen unser eigenes Layout erfinden, da QWERTY unsere Aufgaben und Ziele nicht erfüllt.
Luftballons
Ich habe ein paar Artikel aus Wikipedia genommen, den Text von ihnen kopiert und die eindeutigen Zeichen gezählt. Hier sind sie: Witzig, aber es gibt kein doppeltes Anführungszeichen ", aber es gibt" Weihnachtsbäume ". Ich habe versucht, die Häufigkeit der Verwendung jedes Buchstabens zu visualisieren, musste aber sofort eine logarithmische Skala anwenden. Um zumindest etwas zu sehen: Lassen Sie uns überlegen, wie diese Zeichen auf dem Bildschirm angeordnet werden, damit der Benutzer sie bequemer eingeben kann. Die allererste Idee besteht darin, die Häufigkeit der Verwendung dieses oder jenes Buchstabens zusammen mit den Nachbarn zu berechnen. Starten Sie anhand dieser Daten den Simulator "Balls". Wenn zwischen den Bällen eine Anziehungskraft besteht, die der Häufigkeit der Verwendung dieser Buchstaben in der Nachbarschaft entspricht. Das erste Experiment war wie folgt:
!$%&'(),-./01234567
89:;?ABCDEFGHIJKLM
NOPQRSTUVWXYZ[]a
bcdefghijklmnopqrstu
vwxyz|£¥«°²»àéœ́
—’“„…№
↑▲
Es gibt wenig zu sehen, aber wenn Sie genau hinschauen, können Sie sehen, wie die kyrillischen und lateinischen Alphabete Cluster gebildet haben, die praktisch nicht miteinander verbunden sind, und wenig benutzte Zeichen aus dem Raum fliegen.
Nach 9000 Stunden Debugging und Schmerz wurde eine angenehmere Simulation durchgeführt:
Zu meiner Enttäuschung stören die Symbole die Bewegung des anderen sehr. Ich habe versucht, mit der Schwerkraft zu spielen, sie dynamisch verändert, sogar manuelle "Wirbel" gemacht, aber nichts hat geholfen.
Hier ist bereits zu erkennen, dass die Cluster zwar größtenteils bereits gebildet wurden, aber Fremdelemente enthalten. Wir müssen uns eine andere Art der Anordnung der Schlüssel einfallen lassen ...
Andererseits, wenn wir all dies in das Voronoi-Diagramm aufnehmen ...
Sieht echt cool aus! Hmm, mit einer solchen Tastatur könnten Sie sogar Flipper verlassen und Ihre eigenen echten Tastaturen produzieren! Wer braucht noch 1-Finger-Tastaturen? Was soll ich auf den Kickstarter schreiben? Ich werde wegen meiner nächsten nutzlosen Erfindung in mein Kissen weinen.
Genetik
Okay, nachdem ich geweint hatte, setzte ich meine Forschung fort. Als Basis habe ich einen Prototyp einer chinesischen Tastatur genommen :
Ich habe nämlich eine Matrix von 16x16 Vertrautheitsräumen genommen und eine Reihe von Zeichen in zufälliger Reihenfolge eingefügt. Im Allgemeinen wollte ich sie zuerst irgendwie schön verpacken, indem ich die Frequenzdaten benachbarter Symbole verwendete. Analoga von Huffman-Bäumen blitzten durch meinen Kopf, aber ich konnte nichts Vernünftiges gebären. Deshalb habe ich die Schlüssel einfach in die Mitte gelegt und sie spiralförmig von der zentralen Zelle aus platziert. Anschließend fing ich an, sie zu mischen, so dass die Tortur mit Huffman-Bäumen unnötig war.
Und dann habe ich einfach eine einfache genetische Suche gestartet: Ich habe ein Set für Mutationen erstellt, die besten ausgewählt (siehe unten) und sie zu den Eltern der nächsten Generationen gemacht. Und so bis es hängt, d.h. wird nicht in eine evolutionäre Grube laufen.
Es gab viele Experimente:
- 2 , ,
- 30 3000. , , — 30.
- , , .
- , - 5 ,
- , , . - ,
Dann überlegte ich, wie effektiv diese oder jene Mutation war. Ich musste mein eigenes Bewertungssystem erfinden. Dazu habe ich einen Text aus Wikipedia genommen und so etwas wie einen Simulator für den Schreibvorgang erstellt. Virtuelle Tastatur 16x16, virtueller Joystick, virtueller Text. Am Ende der Simulation habe ich mir angesehen, wie viele Klicks erforderlich waren, um diesen Text einzugeben. Dies war die Effizienzbewertung. Wenn die Anzahl der Tastenanschläge geringer war als bei anderen Variationen der Mutation und noch mehr, bevor die Tasten neu angeordnet wurden, erwies sich diese „Mutation“ als besser und wurde verwendet, um die Berechnung fortzusetzen. Infolgedessen stellte sich Folgendes heraus:
An einigen Stellen mag ich den resultierenden Nummernblock wirklich, an einigen Stellen haben Kyrillisch und Latein einen Anschein von "Yin und Yang" gebildet, fast überall stehen die Symbole des Dollars, des Euro und der Pfund nebeneinander sowie das Prozentzeichen. Die Zahl links gibt an, wie oft Sie die Joystick-Tasten drücken müssen, um den Testtext einzugeben. Wenn ich den Simulator eine Woche lang laufen lassen würde, gäbe es vielleicht interessantere Optionen, aber ich habe einen alten Computer für solche Experimente. Und der aufmerksame Leser findet auch eine halbe Ostern-halbe Tasche: Fast alle Layoutoptionen enthalten das Wort KFC, da es auf einem Artikel über KFC und einige Tennisspieler trainiert wurde.
Im Prinzip bin ich versucht, einige Tasten mit meinen Händen zu nehmen und neu anzuordnen, insbesondere das kyrillische Y, das sich immer in der Nähe des lateinischen Alphabets befindet, oder das lateinische X, das manchmal im kyrillischen Alphabet vorkommt, und die Symbole sind gleichmäßig in einem Kreis verteilt oder auf einen Stapel gestapelt, aber ... und worauf wird die Evolution antworten? Das? Wie effektiv wäre eine solche Umlagerung? Ja, ich war zu faul, um eine interaktive Neuordnung zu schreiben. Aber es ist zum Besseren: Jetzt weiß ich, dass es auch für das kyrillisch / lateinische Alphabet mehrere Layouts geben kann, und der Benutzer kann wählen, was für ihn am besten ist.
Wenn Sie an anderen Optionen für Layouts interessiert sind, die während der Berechnung generiert wurden, sehen Sie sich die Dateien anon.fm/articles/flipper-keyboard/layouts.html und anon.fm/articles/flipper-keyboard/layouts-more.html an
Sie können lange experimentieren, hier einige Ideen für Experimente:
- Kräuseln Sie die Ränder des Raums übereinander. Jene. Es ist nicht der Cursor, der sich über die Tastatur bewegt, sondern die Tastatur, und wenn sie sich zu einer Seite des Bildschirms bewegt, wird sie auf der anderen Seite angezeigt.
- Ablehnung des zweidimensionalen Raums und Einwickeln der Ebene in eine Art dreidimensionales Objekt, das sich beispielsweise über einen Globus oder eine andere geometrische Figur erstreckt. Es gibt mehr Möglichkeiten, den Raum zu schleifen.
- Hinzufügen häufig verwendeter Symbole über mehrere Instanzen hinweg. Warum zum Beispiel nicht ein Dutzend Leerzeichen machen? Hier in Kolemak gibt es 2 Backspaces, nur in unserem Fall ist es eher ein Raum zum Multiplizieren.
- , , . —
- , , Dasher
Wenn jemand nichts über Dasher weiß, dann laufen Sie hier: f-droid.org/en/packages/dasher.android - alles über unser Gerät und noch mehr hier: Texteingabe von Joysticks, Trackballs, Mäusen, Eye-Trackern und anderen Einhand-Einfingern und tragbare Geräte. Die Schnittstelle kann sogar mit 32 x 32 Pixel gestartet werden, ohne die Benutzerfreundlichkeit zu beeinträchtigen. Arbeitete am Pocket PC und überlebte jahrelang! Aber egal wie sehr ich ein Fan dieser Sache bin, trotz der großen Auswahl an Optionen habe ich nicht gelernt, wie man sie benutzt, obwohl ich die Bequemlichkeit spüre. Für mich ist es eher eine Techno-Demik der Möglichkeiten, die Möglichkeit, mit einer Maschine zu interagieren. Wenn jemand Dasher portieren möchte, dann sind Sie herzlich willkommen. Patches kommen immer noch regelmäßig in das Repository. Ich denke, es wird viele geben, die so etwas auf ihrem Flipper sehen möchten.
Hier können Sie auch eine Vielzahl von Optionen für Akkordtastaturen oder Bildschirmtastaturen aus der Palm-Ära hinzufügen, z. B. MessagEase. Die Idee hinter MessagEase ist großartig, aber das Problem ist, dass das Halten von 2 Tasten für mich persönlich nicht akzeptabel ist, sodass ich Flipper persönlich nicht in eine Akkordtastatur verwandeln werde. Aber ich bin mir sicher, dass ein echtes Hacking-Gerät ohne eine Akkordtastatur nicht überleben kann, also wird es sicherlich jemand anderes hinzufügen.
Fazit: Es gibt eine Vielzahl von Tastaturoptionen. Ich muss mir aber nicht nur vorstellen, wie es sein soll, sondern auch alles oben Beschriebene umsetzen. Also, wenn Sie bereit sind, können Sie es versuchen, aber ich muss arbeiten.
Implementierung
Und im nächsten Teil werden wir versuchen, alles umzusetzen, was wir uns vorgestellt haben. Wir werden einen kleinen Emulator schreiben und versuchen, eine API zu erfinden.
Zum Schluss noch ein paar Animationen mit Tastaturkonzepten:
Tastatur über das gespannt, was Max Torus Knot nennt:
Und dies ist ein Versuch, eine Eule über eine Kugel auf einen Globus ^ W ^ W ^ W zu ziehen. Hier habe ich ein wenig mit Dithering experimentiert und dem Dithering des Rauchers auch epileptisches Dithering hinzugefügt.
Ähnlich wie beim vorherigen, nur für CGA.
UPD: Ich habe völlig vergessen, die Quellen all dieser Schande anzuhängen. Sind sie für jemanden interessant?