Come calcolare il layout di tastiera ideale per i programmatori?


8

Sto pensando di creare un nuovo layout di tastiera per la programmazione. Ora programma principalmente in HTML, JavaScript / jQuery / CoffeeScript, CSS / LESS / SASS, anche se presto potrò dilettarmi con gli script di shell e RegEx, con forse LUA, C ++ e Java tra qualche anno. Voglio avere prove scientifiche dei posizionamenti della chiave. Ho idee / requisiti, alcuni inventati, altri presi o derivati ​​da altri:

  • Quasi tutte le chiavi possono essere riorganizzate
    • INVIO , MAIUSC sinistro , CONTROLLO sinistro , barra spaziatrice e TAB devono rimanere, ma tutti gli altri, inclusi numeri, simboli e tasti di movimento sono aperti allo spostamento
    • Potrebbe essere ottimale al congedo zxcv & perhhaps s per rimanere sul posto, a causa di comuni / Copia / Incolla / Save abitudini Undo / Cut :)
    • Tasto CANC probabilmente spostato dove BLOC MAIUSC è :)
    • È improbabile che le parentesi corrispondenti siano (come {} [] <> una accanto all'altra; vedi sotto
  • L'unico modo accurato di IMHO per contare l'utilizzo delle chiavi è mediante la registrazione delle chiavi, non il conteggio delle chiavi dei file:
    • Gran parte della "programmazione" è l'invio di e-mail, la pubblicazione su forum, Twitter, segnalazione di bug, navigazione Web, ecc.
    • Credo che gran parte dell'uso della tastiera sia "movimento"; tabulazione tra campi, pagina in basso, spostamento di cursori, ecc. Questi non vengono catturati dagli output dei file
    • Molti editor utilizzano il completamento automatico e le macro, quindi i delimitatori ravvicinati:)}]> potrebbero non essere digitati così spesso come gli apri, quindi solo la registrazione delle chiavi e la mancata analisi dei file saranno precisi.

Quindi le mie domande:

  1. Cosa sono i keylogger software liberi / open source sicuri , che non caricheranno file se non invii tu stesso un file separato? Preferirei NON raccogliere i nomi e le password di accesso, non solo per motivi di sicurezza, ma anche perché ciò può provocare la mia analisi IMHO.
  2. Quali programmi possono essere utilizzati sul lato client per digerire i conteggi di chiavi singole e di coppie? O come costruirne uno migliore?
  3. Dove è meglio trovare volontari per dare una mano?

Le migliori ricerche finora: 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!


Una domanda interessante, ma lascia che te ne proponga una mia: stiamo meglio abbandonando la disposizione sfalsata della barretta di cioccolato che usiamo da decenni per qualcosa di completamente diverso?
Ignacio Vazquez-Abrams,

Vuoi dire che Ignacio passa a un nuovo layout come la tastiera Contoured di Kinesis per $ 300 USD? No, basta rimappare i tasti nelle tastiere economiche esistenti che puoi trovare in un normale negozio per $ 5-20.
tomByrer,

Se sei abituato a una tastiera QWERTY standard (o altra), potrebbe essere più efficiente utilizzarla e non apprendere un nuovo layout. Soprattutto se usi altri computer, che non avranno il tuo layout personalizzato, su base regolare.
Bob

1
A proposito, per consentire alle persone di ricevere risposte, è necessario eseguire il ping con @tomByrer, ad esempio!
slhck,

2
Sospetto che la cosa migliore da fare sarebbe dare <>{}[](e altri tasti che richiedono attualmente il cambio) i propri tasti - non mi considero davvero un programmatore, ma so che è ciò che trova più fastidioso quando si scrivono script bash.
evilsoup,

Risposte:


2

Utilizzare un programma come WhatPulse per registrare quali tasti vengono premuti e quante volte.

Dopo aver chiesto alla rete IRC di FreeNode su come mettere insieme le frequenze chiave, un utente mi ha portato a questo:

  1. Ottieni il tuo testo, come un programma (i), e copialo.
  2. Vai a http://type.trmnl.org/
  3. Sotto i pulsanti, assicurati di deselezionare "avvio automatico con il contenuto degli appunti su incolla"
  4. Quindi, incolla il programma nella casella di testo.
  5. Premi Cntrl + Maiusc + K per aprire una console.
  6. Digita count_digraphs()e premi Invio.

I risultati sono letti in questo modo: il "ar" 7 17 10 "ra"che significa che 'ar' è stato premuto 7 volte, 'ra' è stato premuto 10 volte e tutti insieme 'ar' e 'ra' sono stati premuti 17 volte insieme


"Opzioni extra: registra le frequenze di battitura - Introdotto in WhatPulse versione 1.7, questo ti permette di tenere traccia di quanti tasti hai premuto." whatpulse.org/wiki/Program_Settings_Tab_2 Dolce, grazie @ekaj! Ci penserò anche io!
tomByrer,

Penso che questa sia la migliore soluzione finora a corto di un keyloger più invadente. Essere multipiattaforma e output XML / HTML è una benedizione. L'unica cosa che manca è il supporto per bigram / digram (sequenza di due elementi adiacenti). Ragionamento: in inglese, non solo è 'lui' e 'th' insieme comune, ma anche in molti linguaggi di programmazione (come C ++, JavaScript, CSS) ' ; ENTER ' sono molto spesso digitato insieme. Quindi, se esiste un clone WhatPulse che lo consente, sarebbe meglio. Nel frattempo, posterò un suggerimento sul loro forum.
tomByrer,

1
@tomBryer ha provato ad aggiornare la risposta per te, spero che ti aiuti .. e nota, ho potuto farlo funzionare solo in FF, non IE o Chrome .. non so perché.
cutrightjm,

Sì, è utile in alcuni modi! Codice sorgente: "'Purtroppo questa app non funziona in IE, sry.'"; IE ha qualche strana sintassi JS a volte.
tomByrer,

4

Le chiavi per il movimento negli editor sono spesso adattate per adattarsi all'utilizzo più efficiente possibile con QWERTY, e quindi avranno sicuramente bisogno di essere rimappate se si modifica il layout delle chiavi e si desidera il posizionamento ottimale di tutto ciò che si impegna. Ad esempio in Vim, i pulsanti HJKL vengono utilizzati per un motivo con QWERTY e molto probabilmente dovranno essere rimappati nello stesso posizionamento dopo che la mappa chiave è stata modificata.

Quello che voglio dire è che non ti sarà di grande aiuto tenere traccia dei movimenti e modificare i tasti e usarli come base per un nuovo layout, dal momento che sono facilmente riconfigurabili (in qualsiasi editor vale la pena, e dal momento che stiamo parlando di un programmatore layout, stiamo probabilmente parlando di Vim o Emacs), non dovremmo interferire con il posizionamento dei tasti letterali e sono già stati ottimizzati (di nuovo: non stiamo parlando di Blocco note).

Stai cercando di risolvere un problema che è un modo inefficiente per la produttività , specialmente per un programmatore , ** imho **. Ci sarebbe un effetto molto maggiore semplicemente imparando di più sugli strumenti (ancora una volta: probabilmente Vim / Emacs). Scoprirai che sempre meno tempo viene dedicato alla scrittura dei caratteri durante la programmazione e più tempo (ma più efficiente) viene dedicato al completamento automatico, alla codifica automatica, al rientro automatico, alle ricerche rapide di definizione delle funzioni, ecc. I tasti per fare tutto ciò sono già adattati per consentire l'efficienza e la grande velocità aumenta semplicemente con la familiarità. Pertanto, sostengo che una diversa disposizione della tastiera è relativamente distruttiva per la produttività , poiché ne hai già molteanni di esercizio QWERTY. Se lo stesso tempo di addestramento analitico fosse trascorso su QWERTY delle persone che cambiano layout su Dvorak, noterebbero anche un aumento di velocità. La velocità arriva con un allenamento esplicito.

Se tu fossi un copywriter / traduttore / autore / ecc., Qualcuno che effettivamente trascorre il suo tempo a lavorare con il significato letterale dei tasti, potrebbe essere utile un layout diverso. Per un programmatore, il suggerimento migliore è di solito almeno ottenere un layout di tastiera inglese, dal momento che i linguaggi di programmazione sono stati modellati da questi e dal loro posizionamento dei tasti (sul mio layout di tasti locale, @$[]{}~sono tutti dietro AltGr che è abbastanza non ottimale).

tldr: Dvorak / Colemak / [la prossima "cosa migliore dal pane a fette"] (probabilmente) risolve un problema solo per coloro che immettono molto testo scorrevole in una lingua specifica (molto spesso l'inglese). Per la programmazione, le chiavi necessarie non sono state soggette alle stesse restrizioni del linguaggio letterale, e quindi sono già state ottimizzate per il suo scopo (che non è solo "scrivere il più velocemente possibile", ma si basa maggiormente sulle operazioni logiche. Vim). Credo che il tempo speso nell'apprendimento di layout alternativi e la confusione che sicuramente si verifica più volte non valga sicuramente la pena nella maggior parte dei casi (non solo la tua stessa confusione; altri che si siedono allo stesso terminale che hai usato l'ultima volta lanceranno cose a te), incluso il programmatore.


Grazie @ Daniel-Andersson per le tue opinioni su Vim; è utile soppesare che alcuni editor consentono la rimappatura dei tasti di movimento! Devo imparare di più sui miei strumenti. Tuttavia, faccio MOLTO editing con MOLTI strumenti; editor online e caselle di testo: forum (come qui;), gists, jsFiddle, GMail, Facebook, Twitter (non dovrebbe essere @ una chiave di chiusura non a scorrimento?) ... e altri editor come Inkscape, SynthMaker, Live, ecc. Vorrei unificare il più possibile le mie scorciatoie tramite il keymapping, quindi fare un passo avanti tramite le app-configs :)
tomByrer,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.