Wie berechnet man das ideale Tastaturlayout für Programmierer?

8

Ich denke darüber nach, ein neues Tastaturlayout für die Programmierung zu erstellen. Jetzt programmiere ich hauptsächlich in HTML, JavaScript / jQuery / CoffeeScript, CSS / LESS / SASS, obwohl ich mich vielleicht bald mit Shell-Scripting und RegEx beschäftigen werde, vielleicht mit LUA, C ++ und Java in ein paar Jahren. Ich möchte einen wissenschaftlichen Beweis für die Platzierung des Schlüssels haben. Ich habe Ideen / Anforderungen, einige haben mich selbst erfunden, einige wurden von anderen übernommen oder abgeleitet:

  • Fast alle Tasten können neu angeordnet werden
    • RETURN , Left SHIFT , Left CONTROL , SPACE-Bar und TAB müssen bleiben, aber alle anderen, einschließlich Zahlen, Symbole und Bewegungstasten, können sich bewegen
    • Könnte optimal zu verlassen sein zxcv & perhhaps s an seinem Platz zu bleiben, aufgrund gemeinsamer Gewohnheiten Undo / Ausschneiden / Kopieren / Einfügen / Save :)
    • DELETE- Taste wird wahrscheinlich dorthin verschoben, wo sich CAPS LOCK befindet :)
    • Es ist unwahrscheinlich, dass übereinstimmende Klammern wie () {} [] <> nebeneinander stehen. siehe unten
  • Die einzig genaue Methode, um die Schlüsselverwendung zu zählen, ist meiner Meinung nach die Schlüsselprotokollierung , nicht die Schlüsselanzahl von Dateien:
    • Ein Großteil der "Programmierung" besteht darin, E-Mails zu senden, in Foren zu posten, zu twittern, Fehler zu melden, im Internet zu surfen usw.
    • Ich glaube, ein Großteil der Tastaturnutzung ist "Bewegung". Tabulieren zwischen Feldern, Blättern nach unten, Bewegen von Cursorn usw. Diese werden nicht von Dateiausgaben erfasst
    • Viele Editoren verwenden Auto-Vervollständigung und Makros, daher werden Close-Deliminatoren :)}]> möglicherweise nicht so oft wie Opener eingegeben, sodass nur die Schlüsselprotokollierung und nicht das Parsen von Dateien korrekt sind.

Also meine Fragen:

  1. Was sind sichere Free / Open Source-Software-Keylogger, die keine Dateien hochladen, es sei denn, Sie senden selbst eine separate Datei? Ich würde es vorziehen, keine Anmeldenamen und Passwörter zu sammeln, nicht nur aus Sicherheitsgründen, sondern auch, weil dies meiner Meinung nach meine Analyse beeinträchtigen kann.
  2. Welche Programme können clientseitig verwendet werden, um Einzel- und Paarschlüsselzahlen zu verarbeiten? Oder wie man am besten einen baut?
  3. Wo ist es am besten, Freiwillige zu finden, die helfen?

Bisher beste Forschung: http://www.michaelcapewell.com/projects/keyboard/layout_capewell.htm

http://viralintrospection.wordpress.com/category/technology/keyboard-layouts/

& Wikipedia: Keyboard_layout # Non-QWERTY_keyboards_for_Latin_scripts

TIA!

TomByrer
quelle
Eine interessante Frage, aber lassen Sie mich eine meiner eigenen vorschlagen: Sind wir besser dran, das gestaffelte Schokoriegel-Layout aufzugeben, das wir seit Jahrzehnten für etwas völlig anderes verwenden?
Ignacio Vazquez-Abrams
Meinen Sie damit, dass Ignacio für 300 USD zu einem völlig neuen Layout wie der Contoured-Tastatur von Kinesis wechselt? Nein, nur Tasten in vorhandenen billigen Tastaturen neu zuordnen, die man in einem normalen Geschäft für 5 bis 20 US-Dollar findet.
TomByrer
Wenn Sie an eine Standard-QWERTZ-Tastatur (oder eine andere Tastatur) gewöhnt sind, ist es möglicherweise effizienter, sie nur zu verwenden, als ein neues Layout zu erlernen. Insbesondere, wenn Sie regelmäßig andere Computer verwenden, die nicht über Ihr benutzerdefiniertes Layout verfügen.
Bob
1
Übrigens, damit die Leute Antworten erhalten, müssen Sie sie zum Beispiel mit @tomByrer anpingen!
Slhck
2
Ich vermute, dass das Beste darin besteht, <>{}[]eigene Schlüssel (und andere Schlüssel, für die derzeit eine Verschiebung erforderlich ist) zu vergeben - ich würde mich nicht wirklich als Programmierer betrachten, aber ich weiß, dass dies beim Schreiben von Bash-Skripten am ärgerlichsten ist.
Evilsoup

Antworten:

2

Verwenden Sie ein Programm wie WhatPulse, um aufzuzeichnen, welche Tasten wie oft gedrückt werden.

Nachdem ein Benutzer im FreeNode-IRC-Netzwerk gefragt hatte, wie die Schlüsselfrequenzen zusammengeführt werden sollen, führte mich dies zu Folgendem:

  1. Holen Sie sich Ihren Text, z. B. ein Programm, und kopieren Sie ihn.
  2. Gehen Sie zu http://type.trmnl.org/
  3. Deaktivieren Sie unter den Schaltflächen die Option "Autostart mit Inhalt der Zwischenablage beim Einfügen".
  4. Fügen Sie dann Ihr Programm in das Textfeld ein.
  5. Drücken Sie Strg + Umschalt + K, um eine Konsole zu öffnen.
  6. Geben Sie in ein count_digraphs()und drücken Sie die Eingabetaste.

Die Ergebnisse werden wie folgt gelesen: Dies "ar" 7 17 10 "ra"bedeutet, dass 'ar' 7 Mal gedrückt wurde, 'ra' 10 Mal gedrückt wurde und alle zusammen 'ar' und 'ra' 17 Mal zusammen gedrückt wurden

cutrightjm
quelle
"Zusätzliche Optionen: Notieren Sie die Tastatureingaben - Mit WhatPulse Version 1.7 können Sie nachverfolgen, wie viele Tasten Sie jeweils gedrückt haben." whatpulse.org/wiki/Program_Settings_Tab_2 Süß, danke @ekaj! Ich werde mich auch darum kümmern!
TomByrer
Ich denke, dies ist die bisher beste Lösung für einen aufdringlicheren Keyloger. Die plattformübergreifende und XML / HTML-Ausgabe ist ein Segen. Das einzige, was fehlt, ist die Unterstützung von Bigram / Digram (Folge von zwei benachbarten Elementen). Begründung: Auf Englisch ist nicht nur "er" und "das" gemeinsam, sondern auch in vielen Programmiersprachen (wie C ++, JavaScript, CSS). " ENTER " wird sehr oft zusammen geschrieben. Wenn es also einen WhatPulse-Klon gibt, der dies zulässt, ist dies am besten. In der Zwischenzeit werde ich einen Vorschlag in ihrem Forum veröffentlichen.
TomByrer
1
@tomBryer hat versucht, die Antwort für Sie zu aktualisieren. Ich hoffe, es hilft. Und beachten Sie, dass ich sie nur in FF zum Laufen bringen konnte, nicht in IE oder Chrome. Ich weiß nicht warum.
Cutrightjm
Ja, das ist in vielerlei Hinsicht hilfreich! Quellcode: "'Leider funktioniert diese App nicht im IE, sry.'"; IE hat manchmal seltsame JS-Syntax.
TomByrer
4

Die Tasten für die Bewegung in Editoren werden meistens so angepasst, dass sie mit QWERTY so effizient wie möglich genutzt werden können. Daher müssen sie mit Sicherheit neu zugeordnet werden, wenn Sie das Tastenlayout ändern und die optimale Platzierung von allem wünschen , was Sie anstreben. Beispielsweise werden in Vim die HJKL-Schaltflächen aus einem bestimmten Grund bei QWERTY verwendet und müssten höchstwahrscheinlich nach der Änderung der Tastenbelegung wieder derselben Position zugeordnet werden.

Was ich meine ist, dass es Ihnen nicht viel hilft, Bewegungen zu verfolgen und Tasten zu bearbeiten und sie als Grundlage für ein neues Layout zu verwenden, da sie leicht rekonfigurierbar sind (in jedem Editor, der es wert ist, Salz zu sein, und da es sich um einen Programmierer handelt Layout, wir sprechen höchstwahrscheinlich über Vim oder Emacs), sollte die Platzierung der Literalschlüssel nicht beeinträchtigen und wurde bereits optimiert (wieder: wir sprechen nicht über Notepad).

Sie versuchen, ein Problem zu lösen, das einen ineffizienten Weg zur Produktivität darstellt , insbesondere für einen Programmierer , ** imho **. Es wäre viel effektiver, einfach mehr über die Tools zu lernen (noch einmal: wahrscheinlich Vim / Emacs). Sie werden feststellen, dass beim Programmieren immer weniger Zeit für das Schreiben von Zeichen aufgewendet wird und mehr (aber effizientere) Zeit für die automatische Vervollständigung, das automatische Markieren, das automatische Einrücken, das schnelle Nachschlagen von Funktionsdefinitionen usw. aufgewendet wird. Die Tasten all dies zu tun ist bereits angepasst , um Effizienz zu ermöglichen, und der große Geschwindigkeitsschub kommt einfach mit Vertrautheit. Daher argumentiere ich, dass ein anderes Tastaturlayout für die Produktivität vergleichsweise zerstörerisch ist , da Sie bereits viele habenJahre QWERTY Übung. Wenn für QWERTY dieselbe analytische Schulungszeit aufgewendet würde wie für Personen, die das Layout wechseln, die für Dvorak aufgewendet werden, würden sie auch einen Geschwindigkeitsschub bemerken. Geschwindigkeit kommt mit explizitem Training.

Wenn Sie ein Texter / Übersetzer / Autor / etc. Waren, jemand, der tatsächlich seine Zeit damit verbringt, mit der wörtlichen Bedeutung der Schlüssel zu arbeiten, könnte ein anderes Layout hilfreich sein. Für einen Programmierer ist der beste Tipp normalerweise, zumindest ein englisches Tastaturlayout zu erhalten, da die Programmiersprachen durch diese und ihre Tastenplatzierung geprägt wurden (in meinem lokalen Tastenlayout @$[]{}~stehen alle hinter AltGr, was ziemlich suboptimal ist).

tldr: Dvorak / Colemak / [das nächstbeste seit geschnittenem Brot] (wohl) löst ein Problem nur für diejenigen, die viel fließenden Text in einer bestimmten Sprache eingeben (meistens Englisch). Für die Programmierung unterlagen die benötigten Schlüssel nicht der gleichen Einschränkung wie die wörtliche Sprache, und daher wurde sie bereits für ihren Zweck optimiert (was nicht nur "so schnell wie möglich schreiben" ist, sondern mehr auf logischen Operationen aufbaut) Vim). Ich glaube, dass die Zeit, die für das Erlernen alternativer Layouts aufgewendet wird, und die Verwirrung, die mit Sicherheit immer wieder auftritt, in den meisten Fällen definitiv nicht die Mühe wert sind (nicht nur Ihre eigene Verwirrung; andere, die sich an das Terminal setzen, das Sie zuletzt benutzt haben, werden es werfen Dinge an dir), sehr viel einschließlich des Programmierers.

Daniel Andersson
quelle
Vielen Dank an Daniel-Andersson für Ihre Erkenntnisse über Vim. Es ist hilfreich abzuwägen, dass einige Editoren das Neuzuordnen von Bewegungstasten zulassen! Ich muss mehr über meine Werkzeuge lernen. Ich bearbeite jedoch VIEL mit VIELEN Werkzeugen. Online-Editoren und Textfelder: Foren (wie hier;), Gists, jsFiddle, GMail, Facebook, Twitter (sollte @ kein nicht verschiebbarer Schließschlüssel sein?) ... und andere Editoren wie Inkscape, SynthMaker, Live, usw. Ich möchte meine Verknüpfungen so weit wie möglich über Keymapping vereinheitlichen und dann über App-Konfigurationen einen Schritt höher gehen :)
tomByrer