4 ms·
I think software designers underestimate how powerful this sort of muscle memory is. Even if something isn't technically one action away, if you can get to it
by panic 8y ago
I think software designers underestimate how powerful this sort of muscle memory is. Even if something isn't technically one action away, if you can get to it with a sequence of actions you can perform consistently right after each other, you quickly start to think of that sequence as "one action".
This is one reason why old-school, keyboard-shortcut-driven UI can feel so good to use (and why animations that block interaction are so frustrating).
- TeMPOraL 8y agoAnd which is why I abandoned both Windows and Linux for using Emacs as my OS :). No, seriously. I try to port all my workflow to Emacs, because with all the power and consistency of that keyboard-driven platform, I can finally put my muscle memory to use. Beyond that, I finally developed a habit of automating annoyances away. Today, if I do something frequently and find it annoying, I fix it with a script. Be it elisp (Emacs), CL (Linux - I use StumpWM as my WM), or AutoHotkey (Windows). -- Actually, some random recent examples: - I frequently deal with Lisp code that outputs large structured or semistructured blobs of text; at some point I decided I need a quick way to pipe such output to a separate Emacs buffer: https://gist.github.com/TeMPOraL/8715c9dd9837e0b601d1cdce0592536e https://gist.github.com/TeMPOraL/8715c9dd9837e0b601d1cdce059.... - At my previous workplace, I found myself pasting some strings to various communications channels quickly. Since I already used AutoHotkey to remap Caps Lock to CTRL, this is what I came with (and later expanded): https://gist.github.com/TeMPOraL/d330edccf8ba9a2b13d01b4e7f1dcc59 https://gist.github.com/TeMPOraL/d330edccf8ba9a2b13d01b4e7f1.... - Speaking of whipping up ad-hoc UIs on the fly, the Hydra package (https://github.com/abo-abo/hydra https://github.com/abo-abo/hydra) is perfect for that in Emacs. My config becomes increasingly full of ad-hoc popup menus like these: https://gist.github.com/TeMPOraL/d3a0b3065c43d41526bcb3fe2c9cfe27 https://gist.github.com/TeMPOraL/d3a0b3065c43d41526bcb3fe2c9.... - StumpWM - https://github.com/TeMPOraL/conffiles/blob/master/stumpwm/.stumpwmrc https://github.com/TeMPOraL/conffiles/blob/master/stumpwm/.s... - unlike my Emacs config, most of this was written by me, on the fly, to fix some annoyances. The point of giving those examples, beyond obviously showing off :), is that this is what IMO good software enables. Improving your life on the fly, one simple binding or one simple script at a time. Scripting isn't only for shell commands. It's definitely useful for UI experience as well. I regret it took me that long to figure this out. This is also why I try to port as much of my workflow as I can to Emacs. It's because Emacs makes such modifications seem trivial. If you need something to interoperate more, you can glue it with together with a little bit of Elisp. If you need something new, you can probably add it with a little bit of Elisp in no time. Emacs, being a runtime-modifiable, introspectable and tremendously well documented system with a decent REPL, makes this quick and relatively painless.
- scarface74 8y agoI worked on a Windows Mobile (on the huge ruggedized devices) they were really slow, but the people who used them knew the screens so well, that they wouldn’t wait on the screen to refresh to navigate the screens and start typing. They would just take advantage of the keyboard buffering. I mistakenly changed the order of one field on the screen and it threw off all of the data entry. We could not reproduce the “bug” but we knew we shouldn’t be getting that many mistakes from the same people who were doing everything correctly. We actually sent the QA guy out in the field and he discovered the issue within an hour - the users weren’t looking at the screens, they were doing everything from muscle memory.