Jak obliczyć idealny układ klawiatury dla programistów?

8

Zastanawiam się nad stworzeniem nowego układu klawiatury do programowania. Teraz głównie programuję w HTML, JavaScript / jQuery / CoffeeScript, CSS / LESS / SASS, chociaż wkrótce będę mógł zająć się skryptami powłoki i RegEx, z być może LUA, C ++ i Java za kilka lat. Chcę mieć dowody naukowe na temat lokalizacji klucza. Mam pomysły / wymagania, niektóre same wymyśliłem, niektóre zaczerpnąłem z innych:

  • Prawie wszystkie klucze można zmienić
    • POWRÓT , Lewy SHIFT , Lewy CONTROL , SPACJA i TAB muszą pozostać, ale wszystkie inne, w tym cyfry, symbole i klawisze ruchu są otwarte na ruch
    • Może być optymalna opuścić zxcv & perhhaps s zatrzymać się w miejscu, z powodu wspólnych Undo / wytnij / kopiuj / wklej / Save nawyków :)
    • Klawisz DELETE prawdopodobnie zostanie przeniesiony tam, gdzie jest CAPS LOCK :)
    • Jest mało prawdopodobne, aby pasujące do siebie nawiasy jak () {} [] <> znajdowały się obok siebie; patrz poniżej
  • Jedynym dokładnym sposobem IMHO zliczania użycia klucza jest rejestrowanie kluczy, a nie liczba plików:
    • Znaczna część „programowania” to wysyłanie e-maili, wysyłanie postów na fora, Twitter, zgłaszanie błędów, surfowanie po Internecie itp.
    • Uważam, że większość użycia klawiatury to „ruch”; tabulacja między polami, strona w dół, przenoszenie kursorów itp. Nie są one przechwytywane przez pliki wyjściowe
    • Wielu redaktorów korzysta z autouzupełniania i makr, więc ograniczniki:)}]> mogą nie być tak często wpisywane jak programy otwierające, dlatego dokładne rejestrowanie tylko kluczy i nie parsowanie plików będzie dokładne.

Więc moje pytania:

  1. Jakie są bezpieczne keyloggery z bezpłatnym oprogramowaniem typu open source, które nie będą przesyłać plików, chyba że sam wyślesz osobny plik? Wolałbym NIE zbierać nazw logowania i haseł, nie tylko ze względów bezpieczeństwa, ale także dlatego, że może to rzucić moją analizę IMHO.
  2. Jakie programy mogą być używane po stronie klienta do analizy liczby pojedynczych i par kluczy? Lub jak najlepiej zbudować?
  3. Gdzie najlepiej znaleźć ochotników do pomocy?

Najlepsze dotychczasowe badania: 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
źródło
Interesujące pytanie, ale pozwólcie, że zaproponuję jedno z moich własnych pytań: czy lepiej zrezygnować z rozłożonego układu batoników czekoladowych, którego używamy od dziesięcioleci do czegoś zupełnie innego?
Ignacio Vazquez-Abrams
Czy masz na myśli Ignacio, aby przełączyć się na zupełnie nowy układ, na przykład profilowaną klawiaturę Kinesisa za 300 USD? Nie, po prostu ponownie mapuję klucze w istniejących tanich klawiaturach, które można znaleźć w normalnym sklepie za 5-20 USD.
tomByrer
Jeśli jesteś przyzwyczajony do standardowej klawiatury QWERTY (lub innej), bardziej efektywne może być po prostu jej użycie, niż uczenie się nowego układu. Zwłaszcza jeśli regularnie korzystasz z innych komputerów, które nie będą miały dostosowanego układu.
Bob
1
Nawiasem mówiąc, aby ludzie otrzymywali odpowiedzi, musisz na przykład pingować je za pomocą @tomByrer!
slhck 11.04.12
2
Podejrzewam, że najlepiej byłoby dać <>{}[](i inne klucze, które obecnie wymagają shift) własne klucze - tak naprawdę nie uważałbym się za programistę, ale wiem, że to najbardziej denerwuje podczas pisania skryptów bash.
evilsoup

Odpowiedzi:

2

Użyj programu takiego jak WhatPulse, aby zarejestrować, które klawisze zostały uderzone i ile razy.

Po zapytaniu w sieci IRC FreeNode o tym, jak zebrać kluczowe częstotliwości, użytkownik zaprowadził mnie do tego:

  1. Pobierz tekst, na przykład program (y) i skopiuj je.
  2. Idź do http://type.trmnl.org/
  3. Pod przyciskami zaznacz opcję „autostart z zawartością schowka po wklejeniu”
  4. Następnie wklej swój program do pola tekstowego.
  5. Naciśnij Cntrl + Shift + K, co otworzy konsolę.
  6. Wpisz count_digraphs()i naciśnij Enter.

Wyniki są odczytywane w następujący sposób: "ar" 7 17 10 "ra"co oznacza, że ​​„ar” został wciśnięty 7 razy, „ra” został wciśnięty 10 razy, a wszystkie razem „ar” i „ra” zostały wciśnięte 17 razy razem

cutrightjm
źródło
„Dodatkowe opcje: Zachowaj rejestr częstotliwości uderzeń w klawisze - Wprowadzony w WhatPulse w wersji 1.7, pozwala ci śledzić, ile z każdego naciśniętego klawisza”. whatpulse.org/wiki/Program_Settings_Tab_2 Sweet, thaks @ekaj! Ja też się przyjrzę!
tomByrer
Myślę, że jest to najlepsze jak dotąd rozwiązanie bardziej ingerujące w keyloger. Bycie wieloplatformowym i wyjściem XML / HTML jest błogosławieństwem. Brakuje tylko obsługi bigram / digram (sekwencji dwóch sąsiednich elementów). Uzasadnienie: w języku angielskim nie tylko „on” i „th” są wspólne, ale także w wielu językach programowania (takich jak C ++, JavaScript, CSS) ;ENTER ” są bardzo często pisane razem. Więc jeśli istnieje klon WhatPulse, który na to pozwala, to byłoby najlepiej. W międzyczasie opublikuję sugestię na ich forum.
tomByrer
1
@tomBryer próbował zaktualizować odpowiedź za Ciebie, mam nadzieję, że to pomoże .. i pamiętaj, że mogę ją tylko uruchomić w FF, a nie IE lub Chrome .. nie wiem, dlaczego.
cutrightjm
Tak, jest to pomocne na kilka sposobów! Kod źródłowy: „Niestety ta aplikacja nie działa w IE, proszę.”; IE czasami ma dziwną składnię JS.
tomByrer
4

Klawisze przemieszczania w edytorach są najczęściej przystosowane do optymalnego wykorzystania QWERTY, więc z pewnością będą musiały zostać ponownie przypisane, jeśli zmienisz układ klawiszy i chcesz optymalnego rozmieszczenia wszystkiego, do czego dążysz. Np. W Vimie przyciski HJKL są używane z jakiegoś powodu w QWERTY i najprawdopodobniej będą musiały zostać ponownie przypisane z powrotem do tego samego miejsca po zmodyfikowaniu mapy kluczy.

Chodzi mi o to, że nie pomoże ci to w znacznym stopniu śledzić ruchy i edytować klucze i używać go jako podstawy nowego układu, ponieważ można je łatwo zmienić (w każdym edytorze jest to warte soli, a ponieważ mówimy o programistach układ, najprawdopodobniej mówimy o Vimie lub Emacsie), nie powinien przeszkadzać w rozmieszczeniu literalnych klawiszy i został już zoptymalizowany (ponownie: nie mówimy o Notatniku).

Próbujesz rozwiązać problem, który jest nieefektywnym sposobem na wydajność , szczególnie dla programisty ** imho **. Byłoby o wiele większy efekt, gdyby po prostu dowiedzieć się więcej o narzędziach (jeszcze raz: prawdopodobnie Vim / Emacs). Przekonasz się, że coraz mniej czasu spędza się na pisaniu znaków podczas programowania, a więcej (ale bardziej wydajnie) spędza się na automatycznym uzupełnianiu, automatycznym tagowaniu, automatycznym wcinianiu, szybkim wyszukiwaniu definicji funkcji itp. Klawisze aby to wszystko zrobić, są już przystosowane do zapewnienia wydajności, a duże przyspieszenie prędkości jest po prostu znane. Dlatego twierdzę, że inny układ klawiatury jest odpowiedni, jeśli chodzi o porównywalnie niszczącą wydajność , ponieważ jest już ich wielelata ćwiczeń QWERTY. Gdyby QWERTY spędził taki sam czas szkolenia analitycznego, jak osoby, które zmieniają układy, spędzają na Dvoraku, zauważą również przyspieszenie. Prędkość pochodzi z wyraźnym treningiem.

Jeśli byłeś copywriter / tłumacz / autor / itp., Ktoś, kto faktycznie spędza czas na pracy z dosłownym znaczeniem klawiszy, to inny układ może być pomocny. Dla programisty najlepszą wskazówką jest zazwyczaj uzyskanie przynajmniej angielskiego układu klawiatury, ponieważ idiomy programowania zostały przez nie ukształtowane i ich rozmieszczenie klawiszy (w moim lokalnym układzie klawiszy @$[]{}~wszystkie są za AltGr, co jest dość nieoptymalne).

tldr: Dvorak / Colemak / [kolejna „najlepsza rzecz od krojonego chleba”] (prawdopodobnie) rozwiązuje problem tylko dla tych, którzy wprowadzają dużo płynnego tekstu w określonym języku (najczęściej angielskim). Do programowania potrzebne klucze nie podlegały tym samym ograniczeniom co język dosłowny, a zatem zostały już zoptymalizowane pod kątem swojego celu (który nie polega tylko na „pisaniu tak szybko, jak to możliwe”, ale opiera się bardziej na operacjach logicznych. Zobacz Wigor). Wierzę, że czas poświęcony na naukę alternatywnych układów i zamieszanie, które z pewnością zdarza się raz za razem, zdecydowanie nie jest warte wysiłku w większości przypadków (nie tylko własne zamieszanie; inni, którzy siadają na tym samym terminalu, którego ostatnio używałeś, rzucą rzeczy na ciebie), w tym programisty.

Daniel Andersson
źródło
Dzięki @ Daniel-Andersson za wgląd w Vima; pomocne jest zważenie, że niektórzy redaktorzy zezwalają na zmianę mapowania klawiszy ruchu! Muszę dowiedzieć się więcej o swoich narzędziach. Jednak robię DUŻO edycji za pomocą WIELE narzędzi; edytory online i pola tekstowe: fora (jak tutaj;), gists, jsFiddle, GMail, Facebook, Twitter (czy @ nie powinien być kluczem zamkniętym bez zmian?) ... i inni edytorzy, tacy jak Inkscape, SynthMaker, Live, itp. Chciałbym ujednolicić moje skróty tak bardzo, jak to możliwe, za pomocą
mapowania klawiszy