[HN Gopher] Hands-Free Coding: How I develop software using dict...
       ___________________________________________________________________
        
       Hands-Free Coding: How I develop software using dictation and eye-
       tracking
        
       Author : joshwcomeau
       Score  : 435 points
       Date   : 2020-10-21 11:53 UTC (11 hours ago)
        
 (HTM) web link (joshwcomeau.com)
 (TXT) w3m dump (joshwcomeau.com)
        
       | azinman2 wrote:
       | For RSI folks, my experience is that RSI can "move" to other
       | parts of the body pretty easily, including eyes and vocal chords.
       | Somehow doing "work" with a part of the body can strain it, even
       | when talking all day long socially wouldn't.
        
       | reanimus wrote:
       | This is really, really interesting -- I've often wondered about
       | how the accessibility space is meeting the needs of disabled
       | programmers, especially after I briefly lost my vision due to an
       | eye injury.
       | 
       | The eye-tracking setup in particular looks really nice. Even if I
       | stuck to a regular keyboard flow I feel like that would be
       | incredibly useful in reducing strain.
        
       | heinrichhartman wrote:
       | > The biggest issue I've found so far is voice strain
       | 
       | My singing teacher started out as a voice therapist. He is still
       | working with a lot of people with damaged voices that are there
       | for therapeutic reasons as well as professional opera singers
       | that there to level-up their game.
       | 
       | He says, the best thing you can do for your voice is to sing.
       | 
       | Singing will give you the proper "support" from your lungs and
       | train the vocal muscles without wearing them out. One of the key
       | aspects here is producing high quality vowels, and don't let the
       | sound be disturbed by consonants. This is opposite to how the
       | voice is used when speaking (in most languages), where consonants
       | are of primary importance for people to understand what you are
       | saying. However, consonants are interruptions in the air-flow and
       | can easily wear the voice out and cause stain.
        
         | joshwcomeau wrote:
         | Interesting! Maybe I'll look into a voice trainer.
        
       | rohith2506 wrote:
       | I have suffered with thoracic outlet syndrome for almost 2 years.
       | Countless physical therapy and deep tissue massages helped
       | alleviate the pain but nothing seems to solve the root cause. I
       | am 26 and the thought of not being able to use my hands to do
       | something I have frightened the hell out of me.
       | 
       | That's when I stumbled upon John Sarno and his book "The mindbody
       | prescription". I thought it's pseudoscience and I read it with
       | very low expectations. And It's been almost four months since I
       | have trouble using my computer.
       | 
       | In a nutshell, most of RSI injuries are not just physical
       | problems and they are tightly coupled with your mind. The most
       | important step is to acknowledge that subconscious thoughts
       | related to pain and work along with it. Whenever I feel a
       | tingling sensation, I yell at myself ( In my head ) that it's all
       | in my mind and I have started to feel normal. Of course, this
       | might not work for everyone but definitely worth a try.
       | 
       | And I also do lot of strength training and climbing which really
       | helped strengthening my hands
        
         | rsa25519 wrote:
         | I'm not so sure about this. My understanding is that RSI is
         | caused by inflammation, and ignoring it will only make it
         | worse, to the point of needing surgery. Although it sounds like
         | you've been dealing with this longer, so I'll give you the
         | benefit of the doubt
        
           | rohith2506 wrote:
           | I see where you are coming from and I strongly suggest to try
           | the conventional route to eliminate any serious physical
           | problems before ending up here. My point is that RSI problems
           | are not just physical but tightly coupled up with your mind.
           | I wish someone can do a better job of explaining
           | neuromuscular connection such that this won't be
           | pseudoscience anymore.
        
       | fao_ wrote:
       | > In English, an ordinal number is one used to describe order,
       | like "fifth" or "ninth" or "three hundredth". In Talon, they're
       | used to repeat commands. If I wanted to go left by 9 spaces, I
       | would say go left ninth.
       | 
       | Right! Like 9l in vim, but swapped.
       | 
       | I've always thought vim-like interfaces would be a good way to
       | structure vocal input and I'm glad there are solutions operating
       | in that space.
       | 
       | Edit: beaten to the punch :)
        
       | rco8786 wrote:
       | The eye tracking sounds like it could be incredibly useful as a
       | 3rd input.
       | 
       | Very cool stuff, thanks for sharing
        
         | Ottolay wrote:
         | In addition to a pointer replacement, there is an idea of using
         | eye tracking on a virtual keyboard with a swype type entry.
        
           | haxiomic wrote:
           | That's a great idea! This would really push up input speed.
           | I'm surprised I haven't seen any implementations in the wild
           | yet, although research has been done to explore this [0]
           | 
           | [0] https://pdfs.semanticscholar.org/1170/44feb247a82ab81a30b
           | 57f...
        
             | weeb wrote:
             | Windows 10's Eye Control has something like this, called
             | "Shape Writing". See the second GIF here:
             | https://www.theverge.com/2017/8/2/16087368/microsoft-eye-
             | con...
             | 
             | Long before that, Optikey has had "multi-key selection"
             | which works in the same way, see
             | https://youtu.be/HLkyORh7vKk?t=10
             | 
             | In my experience (as a developer of eye gaze interfaces,
             | not an everyday end user) it is often more efficient to
             | have really good next-word-prediction (such as with the
             | Presage engine) combined with single-letter dwells, rather
             | than using "swipe-like" spelling, where you're committed to
             | tracing out the whole word.
        
           | charris000 wrote:
           | I dunno... "swyping" your eyes around a virtual keyboard
           | seems like it'd cause a lot of strain on your eyes.
        
             | falcolas wrote:
             | There are alternative virtual keyboard styles (typically
             | made for use with a mouse and impaired motor control) which
             | would work better. Fewer "fine" movements.
             | 
             | Combined with predictive typing, and you could go pretty
             | far.
        
               | Ventilatorr wrote:
               | Do you have any examples?
        
               | weeb wrote:
               | Not the OP, but Dasher is a classic example that works
               | very well for a single 2D input like using a joystick:
               | https://youtu.be/0d6yIquOKQ0
        
           | thesuitonym wrote:
           | I don't know about that, but I'd love to have eye tracking
           | for focusing windows. Since I don't generally maximize
           | windows, I find that I'm often typing hotkeys for the window
           | I'm looking at, not the window my mouse is on (or was last
           | focused, depending on your wm)
        
       | baxtr wrote:
       | Reminds me of the Figma GPT-3 Plugin
       | 
       | https://mobile.twitter.com/edleonklinger/status/128425141917...
        
         | vectorphresh wrote:
         | I wonder if the author has considered integrating his voice
         | interface with an AI resource like GPT-3. I could see future
         | development being done in this fashion.
        
       | HumanMusic wrote:
       | Right ear-free audio
        
       | goldforever wrote:
       | Useless
        
       | psychometry wrote:
       | Seems like it would be a useful feature in voice recognition to
       | have a "whisper" mode to prevent strain.
        
         | Karawebnetwork wrote:
         | There are some high tech breakthrough in this space. You can
         | have microphones that hear the faintest of internal voices and
         | even non-invasive ways to hook on the nerves to get your
         | internal monologue.
         | 
         | https://www.smithsonianmag.com/innovation/device-can-hear-vo...
        
         | quicklime wrote:
         | I once had laryngitis for about a week, and during this time
         | found out that for most people whispering puts more strain on
         | the vocal cords than regular speaking:
         | https://www.nytimes.com/2011/02/08/health/08really.html
         | 
         | But a whisper mode might prevent ear strain for those working
         | around you :)
        
       | thecrumb wrote:
       | I also bookmarked https://serenade.ai/ after seeing it here on
       | HN. 10 years ago I shattered my hand and collarbone and used
       | Dragon which sort of worked but was not specific to coding. These
       | new tools look really neat.
        
       | polyterative wrote:
       | as a dev with severe hand pain I would love more tools and help
       | like this
        
       | goldforever wrote:
       | All this to build a web app? Useless!
        
       | tomcam wrote:
       | The demo is incredible and heartening. I did not know the state
       | of the art had improved so much. Thank you for sharing this,
       | Josh.
        
       | melling wrote:
       | The author links to this other project, which I've never heard
       | of:
       | 
       | https://serenade.ai/
       | 
       | He also references Tavis Rudd's viral voice coding video, which
       | is already 7 years old.
       | 
       | https://www.youtube.com/watch?v=8SkdfdXWYaI
       | 
       | The future is arriving slower than i would have guessed. I
       | thought we'd be developing on the iPad using voice, gestures, and
       | eye tracking by now.
       | 
       | Can I a least get "build and run" with my voice soon?
        
         | CoffeePython wrote:
         | I'm very surprised none of the videos on the serenade landing
         | page have audio.
         | 
         | I would love to see/hear what it's like. I'd suspect adding
         | audio to those videos would be a win on conversions.
        
           | tmacwilliam wrote:
           | Thanks for the suggestion! We recently revamped our homepage,
           | and we're in the process of recording some new videos. Will
           | keep that in mind!
           | 
           | In the meantime, here's a video that a developer using
           | Serenade recently made about their first experience!
           | https://www.youtube.com/watch?v=Pc-EbY1fRWk
        
       | guram11 wrote:
       | hands free and perl out loud here
       | https://www.youtube.com/watch?v=Mz3JeYfBTcY
        
       | chrismorgan wrote:
       | > _I 've heard that learning Vim can make this much more
       | effective._
       | 
       | This doesn't surprise me; Talon is a lot like Vim.
       | 
       | They're both modal: Talon's command mode roughly matches Vim's
       | normal mode, and its dictation mode roughly matches Vim's insert
       | mode.
       | 
       | Talon's ordinals apply to Vim operations (normal mode) as well:
       | operations can be preceded by a number which normally says how
       | many times to do it. Talon's "go left ninth" would be 9h or 9- in
       | Vim. (h goes left one character.) "One zero third" is more
       | cumbersome because in Vim it entails switching between modes
       | (Talon and Vim modes don't match precisely), but starting in
       | normal mode, a1<Esc>3a0<Esc> works to append 1000 where the
       | cursor is. (a to enter insert mode after the current position, 1
       | to type a 1, Escape to return to normal mode, 3 to say "do the
       | next thing three times", the next thing being appending a zero.)
       | 
       | Both Talon and Vim value this sort of consistency in being able
       | to build bigger things from smaller pieces.
       | 
       | So I imagine Talon would work quite nicely with Vim, once you get
       | talon to shift out of the way in some cases and let Vim handle
       | those things. (It's similar with browser extensions that let you
       | interact with the browser Vim-style: when the page in
       | consideration has extensive key bindings, especially Vim-like
       | things like j/k for down/up, the extension actually gets in the
       | way.) I expect you'd find that having used one made learning the
       | other a good deal easier, since they're working in just the same
       | ways.
        
         | lunixbochs wrote:
         | I developed much of the original Talon code using a single
         | Python file (the combination of std.py + basic_keys.py) and
         | Vim.
        
       | expjpi wrote:
       | > Honestly, it's just been such a relief to discover that my
       | hands aren't needed for me to do my work.
       | 
       | This describes my reaction exactly. I'm noticing my rsi getting
       | better, which I'm grateful for, but the gift of not being so
       | scared feels like the bigger deal.
        
       | SimonPStevens wrote:
       | The eye tracking looks great, just as a regular additional way of
       | using the mouse for things like focusing windows or tapping
       | dialogs. I'm very tempted to get one of those.
       | 
       | Does anyone with experience of them know what the multi-monitor
       | support is like? I have 3 screens side be side and one below, so
       | quite a large range to cover that requires some head movement to
       | go across all of them. Will it work with viewing over that wide
       | of a space where I'm not always directly facing the primary
       | screen?
        
       | bwaine wrote:
       | I don't know why, but I've often thought about the situation the
       | Josh finds himself in. IE - having to find a different way of
       | building software if I couldn't use a keyboard and mouse due to
       | medical condition.
       | 
       | The solution I always imagine is paying someone or having my
       | employer pay someone to strong style pair program with me.
       | Perhaps a student, junior developer or even someone unfamiliar
       | with software development entirely.
       | 
       | For those unfamiliar with strong style, this rule sums it up:
       | "For an idea to go from your head into the computer it MUST go
       | through someone else's hands". Like the standard driver /
       | navigator pair programming technique but with the navigator never
       | touching the keyboard.
       | 
       | In the case of someone completely unfamiliar with software
       | development I imagine that there would initially be a dramatic
       | high / low skill gradient between us, with the person essentially
       | transcribing. However given the intensity of the practise I think
       | this gradient would level out quite quickly.
        
         | GordonS wrote:
         | > The solution I always imagine is paying someone or having my
         | employer pay someone to strong style pair program with me
         | 
         | Wow, that's some impressive out-of-the-box thinking!
         | 
         | The OP's situation is something I worry about, as I'm worried
         | my neuropathy will reach a point where I can't use my arms to
         | type/mouse all day. I spent some time researching speech input
         | for coding a year ago, and found a few fledgling solutions, but
         | I'd need to expend a _lot_ of time to get something remotely
         | workable.
         | 
         | Your idea is, if I may say so, _genius_ , and having that as a
         | backup sets my mind greatly at ease, so thanks.
        
           | bwaine wrote:
           | I'm sorry to hear about your neuropathy, I'm glad my
           | suggestion eases your mind!
           | 
           | On pairing in general: For a long period of time when I
           | worked at bigger companies (before co-founding my current
           | venture) I pair programmed 90% about of the time.
           | 
           | For the most part I really enjoyed it, we alternated pairs
           | quite frequently and I worked with people at a range of
           | seniorities. I really enjoyed alternating between playing the
           | role of teacher vs learning from someone much better at the
           | (insert programming language, database, business domain).
           | 
           | I think during that time I also had some of the most
           | stimulating and deep conversations about software
           | development. When pairing, pairs have a deep shared context
           | that's hard to replicate in other scenarios.
           | 
           | There are some drawbacks though, the main one being it's
           | extremely full on and emotionally tiring. I'd class myself as
           | a high functioning introvert and after a day of pairing I
           | needed some serious regenerative quiet time!
           | 
           | My advice to someone considering this suggestion would be to
           | try some pairing now with friends or colleagues and get a
           | feel for it and see if it works for your personality and
           | working style.
        
             | GordonS wrote:
             | > I'd class myself as a high functioning introvert
             | 
             | Hah, I'm stealing that phrase to describe myself too!
             | 
             | I've never "formally" done pair programming, but have sat
             | and coded/reviewed with colleagues for short stints, and
             | generally found it OK.
             | 
             | From time to time I have to do full days (or several days)
             | of workshops, and find those _really_ tiring and
             | emotionally draining. I always think I fare better 1-1 with
             | people though, so if pairing was a necessity, I 'm sure I
             | could adapt.
        
       | ianhorn wrote:
       | I've been having similar issues lately, and after looking at
       | talon, serenade, and caster, I ended up using caster [0]. The
       | different programs all have significant differences in usability,
       | and have clever ideas behind them, but unfortunately automatic
       | speech recognition is still bad enough that the primary factor is
       | which has a better ASR engine. Caster supports Dragon Naturally
       | Speaking, which is expensive, but enough better to make it
       | worthwhile.
       | 
       | There are moments where I think this is going to be the future of
       | programming, since code as text is only the easiest for as long
       | as typing is the easiest way to record things unambiguously.
       | 
       | But for the most part it's still pretty frustrating. If ASR
       | systems can get the sentence error rate down by an order of
       | magnitude or two, I sincerely think this will take off not just
       | for accessibility, but for normal use.
       | 
       | Until then, it's a PITA that is saving my career nonetheless.
       | 
       | [0] https://caster.readthedocs.io/en/latest/
        
         | cybwraith wrote:
         | Do you know of any workflows like this using entirely open
         | source software?
         | 
         | EDIT: Seems like caster itself has instructions for an open
         | source recognition engine to pair with it. Not sure how
         | accurate it'll be but I'm going to give it a shot!
         | 
         | I hate the idea of relying on closed source software to be able
         | to continue in my profession. If this works I'm definitely
         | going to be donating to the FOSS options
        
           | whimsicalism wrote:
           | My understanding is that Talon is built off of wav2letter's
           | inference framework for ASR.
        
             | lunixbochs wrote:
             | I do not use the wav2letter@anywhere inference frontend - I
             | trained the acoustic model using the facebook upstream
             | code, but the decoder is almost entirely new, and on
             | Windows I use Pytorch for inference.
             | 
             | Talon ships with a libw2l.so/dylib on Linux/Mac built from
             | my open source repos.
        
           | ianhorn wrote:
           | Yeah there is the Kaldi backend for caster, which I've tried
           | on my Mac machine, since Dragon isn't a thing on Mac.
           | Unfortunately it's not nearly as good :-(
           | 
           | I'd like to try to record my usage of Dragon that I could
           | fine-tune my own model, but it's harder to get around to
           | hobby coding projects like that now that coding is more of a
           | pain in the ass.
           | 
           | The unfortunate reality in my case is that using Dragon is
           | the least frustrating way to keep working. I don't think
           | closed paid ASR models will stop being noticeably better
           | better than three open ones until the state-of-the-art error
           | rate is basically zero.
           | 
           | I do like that caster is open source where talon isn't, but
           | preferences like that are pretty low priority when say your
           | career is on the line.
        
             | lunixbochs wrote:
             | Fwiw talon has a setting to record everything locally,
             | annotated with the recognized words. In the next release it
             | will also work when using dragon.
        
         | rntz wrote:
         | Talon actually can work with Dragon; it started out requiring
         | Dragon but has since grown its own voice recognition.
         | Anecdotally, a lot of folks on the talon slack seem to be
         | refugees from Dragon-based solutions, and a common observation
         | is that Talon's voice recognition is much lower-latency than
         | Dragon. Unfortunately I can't confirm this as I haven't used
         | Dragon myself.
         | 
         | My impression of talon's speech recognition is that it's good
         | enough for voice coding, but could be improved when it comes to
         | dictating English prose. That said, there are promising avenues
         | of improvement. If you pay for the Talon beta, there's a more
         | advanced voice recognition engine available that's much better
         | at English, and you can also hook into Chrome's voice
         | recognition for dictation.
        
           | lunixbochs wrote:
           | > Talon actually can work with Dragon
           | 
           | More specifically, "can work" means: if you run Talon on
           | Windows or Mac alongside Dragon, and don't configure Talon to
           | use its own engine, Talon will automatically use Dragon as
           | the recognition engine.
        
             | ianhorn wrote:
             | > or Mac alongside Dragon
             | 
             | Unfortunately it looks like Dragon on Mac isn't a thing
             | anymore, which is a shame because my main dev machine is a
             | Mac. Or at least it used to be, before I needed to start
             | dictating everything.
        
               | lunixbochs wrote:
               | Talon can also use Dragon remotely from a Windows machine
               | or VM, kind of like aenea but more tightly integrated
               | (the host is driving instead of the guest).
               | 
               | And I do have some users voluntarily switching from Mac
               | Dragon to the improved speech engine in the Talon beta.
               | Mac Dragon has been kind of buggy for the last few years
               | so you're not missing much.
        
               | ianhorn wrote:
               | Any chance you have pointers on how to set that up? You'd
               | probably laugh/cry to see my setup right now, with my
               | Windows desktop on the left monitors and my MacBook on
               | the right monitors because I need both... purely because
               | Dragon is only sold on Windows since this started been an
               | issue for me. A more tightly coupled super-aenea sounds
               | pretty fantastic.
        
               | lunixbochs wrote:
               | Sure: First run Talon on both sides. Then go to your
               | talon home directory (click talon icon in tray ->
               | scripting -> open ~/talon). There's a draconity.toml file
               | there.
               | 
               | On the Dragon side, you need to uncomment and update the
               | `[[socket]]` section to listen on an accessible IP.
               | 
               | On the client side (Mac in your case), uncomment / update
               | the `[[remote]]` section to point at your other machine.
               | 
               | You also need to make sure both configs have the same
               | secret value.
               | 
               | From there, restart Dragon and look in the Talon log on
               | the Mac side for a line like "activating speech engine:
               | Dragon".
               | 
               | To prevent command conflicts, I recommend setting Dragon
               | to "command mode" (if you have DPI), and only adding
               | scripts to Talon on the Mac side.
               | 
               | If it doesn't work, you can uncomment the `logfile` line
               | in draconity.toml on the Dragon side, restart Dragon, and
               | look in the log to see what's going on.
        
       | codenesium wrote:
       | I personally have had carpal tunnel release surgery and bilateral
       | rib resection for thoracic outlet syndrome. These surgeries fixed
       | most of my issues but for the last couple of years I haven't
       | tolerated sitting well because of my back so I use a standing
       | desk. I've thought about a computer interface that is the
       | opposite of this article. Something that requires more non-
       | repetitive physical movement so that you're exercising while you
       | program. Sure it would take longer to type but we all know
       | working on a computer all day is bad for our health.
        
         | joeseppy wrote:
         | Sounds like an interesting idea for a VR/AR game. I'm picturing
         | somewhere between fruit ninja and a vana white simulator
        
       | pixelbreaker wrote:
       | Redox keyboard is amazing, never had any pain since starting to
       | use one about 18 months ago.
        
       | mncharity wrote:
       | Exploratory building of rich non-traditional (not necessarily
       | handless) user interfaces is becoming increasingly accessible.
       | For instance, here's a web demo of Google's MediaPipe's face and
       | iris tracking[1]. And hand tracking[2] with a downward-facing
       | camera, permits enriching keyboard and touchpad/tablets:
       | annotating events with which finger was used, and where on a
       | keycap it was pressed; hand and finger gestures in 2D and 3D; and
       | positional touchless events. And speech to text... sigh.
       | 
       | But doing sensor fusion is hard. And strongly impacts system
       | architecture. "Launch the missiles"... 1000 ms later... oh, nope,
       | that was " _Lunch is mussels_ in butter ". "Spacebar keypress
       | event"... 50 ms later... "btw, that was a thumb, at the 20%
       | position". "Ok, so 2000 ms ago, just before the foo, there was a
       | 3D gesture bar". So app state needs to easily roll backward and
       | forward, because you won't fully know what happened now until
       | seconds from now. Upside is traditional "have to wait a bit until
       | we know whether mumble" latencies can be optimistically
       | speculated away.
       | 
       | [1] https://viz.mediapipe.dev/demo/iris_tracking ("run" button is
       | top right) [2] https://viz.mediapipe.dev/demo/hand_tracking
        
       | Symbiote wrote:
       | When I started my undergraduate degree, there was a PhD student
       | everyone knew -- he looked like he ran the Linux User Group,
       | which he did, he coded his own window manager, wrote games in
       | Haskell etc.
       | 
       | At some point, he got some hand injury that meant he couldn't
       | type normally for months. He would only have been 21 or 22.
       | 
       | This scared me, so since then I've followed the standard advice
       | on avoiding computer-related injuries very carefully. I use a
       | desktop computer with an external, adjustable monitor. I use
       | ergonomic keyboards, and use a mouse with either hand. I learned
       | to touch-type with the Dvorak layout, I have an adjustable desk,
       | etc.
       | 
       | I haven't had any problems, and I don't know which (if any) of
       | these actions helped, but I'm surprised when I see other
       | developers apparently happy to hunch over a laptop keyboard for 8
       | hours, while sitting on an awkward chair in a coffee shop. Why do
       | this to yourself?
        
         | ch4s3 wrote:
         | Especially the macbook pro keyboards. Those really hurt my
         | hands.
        
         | cschneid wrote:
         | A few years back I started buying disability insurance, in
         | addition to paying more attention to my ergonomics.
         | 
         | My greatest economic asset is the years left in my career. For
         | ~$1500/year I insure that. It's not cheap, but it would pay out
         | until I was 65 at some reasonable percentage of my normal
         | salary in the case I was severely injured, or otherwise unable
         | to work. Anywhere from an ergonomics caused hand/arm injury, a
         | bike-riding caused head injury, a wood-shop caused eye damage,
         | etc.
         | 
         | Consider grabbing it while you're young and working in a
         | lucrative career.
        
           | melling wrote:
           | Not sure how old you are but I imagine over the next couple
           | of decades we'll eventually get more advanced computer
           | interfaces.
           | 
           | Gestures, voice, eye tracking, ...
           | 
           | Being a software developer could be a job for those who
           | physically can't do other jobs.
           | 
           | Subtle input gestures with Soli would be interesting.
           | 
           | https://atap.google.com/soli/
        
             | cschneid wrote:
             | Assuming physical injury (like RSI or trauma), yes, it's
             | getting easier and easier.
             | 
             | But there are many other ways you could be injured and
             | unable to work. My straw-man injury when I bought the
             | policy was: "I'm a new skier, which is famous for major
             | head trauma". Similarly, cancer, which directly or via
             | treatment, causes exhaustion is another example of
             | disability that is not solved with "if only I could just
             | input text easier".
             | 
             | I'm glad there's so much work in accessibility going on,
             | and that hardware, machine learning, and social awareness
             | has gotten widespread enough to let non-huge companies dive
             | in and make real progress. It's important to open the field
             | to as many people who we can.
             | 
             | I just want to be sure people don't rely on technology
             | being advanced enough at the exact time you may need it.
             | You can easily get unlucky, and insurance exists to pay
             | somebody else to take the risk.
        
               | melling wrote:
               | Yes, that makes sense. However, the older I get the more
               | I think society should provide some sort of safety net
               | for the unlucky.
               | 
               | It's inefficient for everyone to do this and many cannot.
               | 
               | The premiums could jump 50% in a decade, for example.
               | I've known situations somewhat like yours where premiums
               | went up a lot.
        
         | tomcam wrote:
         | I have a similar story. When I was in college I got a
         | repetitive stress injury from practicing piano too much. I
         | ended up becoming a programmer but I have followed ergonomic
         | practices religiously in the 40 years since then. My kids make
         | affectionate fun of my perfect posture. But I have worked with
         | the computer keyboard for going on five decades and have never
         | come close to suffering a repetitive stress injury.
        
         | hnrodey wrote:
         | I think ..... most people have no idea what they actually look
         | like when hunched over a keyboard. It would do wonders to have
         | a large mirror next to our workspace so one could see just how
         | preposterous they're contorting their body.
        
         | jedimastert wrote:
         | I had a bit of a scare around the same time. I was following
         | dual passions of computer science and piano playing, meaning
         | around 12 hours a day of typing and/or piano-ing. I started to
         | develop regular tendinitis in my wrists and fell down a rabbit
         | hole of ergonomics and posture. With computers you can replace
         | keyboards if you have money, but I was a musician in college.
         | Also, you can't really change a piano keyboard all that much
         | (and you really wouldn't want to) so I did a real deep dive
         | into posture and getting the most out of what I already had
        
       | luckylion wrote:
       | I love the eye tracking. Even without having any issues with my
       | hands, I'd like to have quick mouse movements without having to
       | take a hand off of the key board. Zooming in to have more
       | precision is clever.
       | 
       | It seems the current generation systems aren't working for Linux
       | yet, but that gives me hope to have a way to work with it at some
       | point in the future.
        
         | lunixbochs wrote:
         | > It seems the current generation systems aren't working for
         | Linux yet
         | 
         | This isn't correct. Talon supports eye tracking on all of
         | Windows, Linux, and Mac with the same hardware.
        
           | ornornor wrote:
           | I think parent is talking about the Tobii. I was also very
           | very excited about it (I can't find a mouse or trackball that
           | won't give me hand or shoulder or wrist pain) but then I saw
           | it only works on windows... and nothing else. No Linux
           | support. So that's a no go.
           | 
           | If someone knows of such a device for Linux, I'd love to hear
           | about it!
        
             | lunixbochs wrote:
             | Let me be more specific. The Tobii 4c, PCEye Mini, and
             | Tobii 5* work approximately the same on Linux, Mac, and
             | Windows with Talon out of the box.
             | 
             | * The Tobii 5 does work, but is a work in progress and has
             | some caveats until I do more work on it.
        
           | luckylion wrote:
           | Oh, that's great news. I thought Talon needed the drivers to
           | work and was constrained in that regard. I will need to free
           | up some time and try it out.
        
       | JabavuAdams wrote:
       | Thanks for this! Sorry it had to come about as a result of
       | injury/disease. Hopefully you're not going to hurt your vocal
       | tract -- are there precautions you take against this?
       | 
       | My interest currently is in voice-assistants and developing
       | something like a personal assistant / code-monkey / grad-student.
       | 
       | I did have a stroke a few years ago, from which I've recovered,
       | but it made me realize that almost all of my work, hobbies,
       | aspirations, are tied to fairly extensive hand-eye integration.
       | It's good to start building a Plan B before I need it.
       | 
       | On a(nother?) side-note, my 88 year old dad still codes and his
       | experiences have really shown me how bad we are at accessibility,
       | as a developer community.
       | 
       | One final thing -- watching you work in this way highlights for
       | me how low-level a lot of the stuff we do as developer is.
       | There's a certain amount of just text massaging that seems
       | irrelevant to what we're actually trying to get done (although it
       | can be fun/soothing/aesthetic).
       | 
       | EDIT> The last point is why I can't give a fark about
       | Vim/Emacs/whatever debates and obsessing. It seems like it might
       | be fertile ground, but IMNSHO it's a trap.
        
       | mncharity wrote:
       | Tavis Rudd, "Using Python to Code by Voice", 2013:
       | https://www.youtube.com/watch?v=8SkdfdXWYaI . Old but fun.
        
       | ateng wrote:
       | As a developer who also has cubital tunnel syndrome, having
       | keyboards that places commonly use modifier keys [0] on your
       | thumbs, such as Kinesis advantage or Ergodox, helps reducing the
       | fatigue and symptoms immensely.
       | 
       | [0] it is called Emacs pinkies for a reason, and yes, my CTS is
       | totally emacs's fault as well.
        
         | noir_lord wrote:
         | Had pain a few years ago, switched to Ergo 4000's everywhere
         | and have never had any pain since - depending on desk height
         | I'll use the front riser but generally don't need it.
         | 
         | I love them so much I have spare new-in-box ones stashed as a
         | hedge for the day they stop selling them.
         | 
         | They are about the cheapest good quality ergo keyboard I could
         | find.
        
         | ihaveajob wrote:
         | It's pretty telling that RMS had to stop coding because CTS.
         | 
         | Edit: Not carpal tunnel syndrome, as he explains in
         | https://stallman.org/stallman-computing.html
         | 
         | """In the mid 90s I had bad hand pain, so bad that most of the
         | day I could only type with one finger. The FSF hired typists
         | for me part of the day, and part of the day I tolerated the
         | pain. After a few years I found out that this was due to the
         | hard keys of my keyboard. I switched to a keyboard with lighter
         | key pressure and the problem mostly went away.
         | 
         | My problem was not carpal tunnel syndrome: I avoid that by
         | keeping my wrists pretty straight as I type. There are several
         | kinds of hand injuries that can be caused by repetitive stress;
         | don't assume you have the one you heard of."""
        
           | crispyambulance wrote:
           | > The FSF hired typists for me part of the day...
           | 
           | That must have been a job from hell, probably went through a
           | lot of them!
        
             | falcolas wrote:
             | Manual transcription is still a thing today. Stenographers
             | being one of the more well-known examples.
        
               | zozbot234 wrote:
               | Stenotype keyboards are way better from a RSI point of
               | view, though. Unfortunately, no one has come up with the
               | "theories" or systems that would allow use of them for
               | specialized input like programming.
        
         | xyzzy_plugh wrote:
         | Not to flame-bait, but this is actually one of the reasons I've
         | doubled down on vim. I like that I can function perfectly fine
         | with one finger, I even managed to write a bunch of code using
         | vim on my phone, and was surprised how well it translated.
         | 
         | You could definitely set up toggled modifier keys and do the
         | same with emacs, FWIW.
        
         | Quarrelsome wrote:
         | ye, modifier keys suck. This is why I prefer snake-case over
         | the other casings because it needs no modifier key.
        
           | fctorial wrote:
           | What languages do you use?
        
             | adamnew123456 wrote:
             | Also along those lines: what keyboard layout? I've never
             | seen a (QWERTY) layout where underscore isn't a shift-level
             | key.
        
         | 867_5309_Jenny wrote:
         | Switching to a planck keyboard would let you customize all the
         | positions of buttons for less strain.
        
           | Symbiote wrote:
           | The ErgoDox already allows arbitrary repositioning of the
           | keys.
           | 
           | The Planck keyboard is cramped. It's worse than a cheap
           | Microsoft ergonomic keyboard.
        
           | irjustin wrote:
           | The planck keyboard is a great keyboard, but possibly on par
           | with the worst in terms of ergonomics.
           | 
           | Ergodox, Diverge, Keyboard.io, really any split key keyboard
           | does worlds for keeping hands straight and are fully
           | programmable to very high degrees.
        
             | T-hawk wrote:
             | Am I the only one who just keeps their hands/wrists
             | straight on a regular unsplit keyboard? I've always
             | naturally done this and never had any problems with strain.
             | 
             | The best way to describe it is that the home keys aren't
             | ASDF, but more like WEFV with my forearm angled so it's
             | straight from elbow to fingertip. This exaggerates the
             | effect but demonstrates it clearly; the real home positions
             | are more like intermediate points between keys.
        
               | aleksei wrote:
               | Yeah, same. I find keeping my fingers on the home keys
               | makes me twist my wrists outwards, which gets
               | uncomfortable pretty fast. I mostly try to minimise wrist
               | action in general.
               | 
               | I've actually had a Planck EZ for a few weeks now and I
               | agree it's probably not very ergonomic for the classic
               | qwerty touch typist, or at least not much better than a
               | normal keyboard barring the programmability.
               | 
               | But since I don't do that anyway I find the keyboard to
               | be pretty nice in terms of customisability and avoiding
               | stretching.
               | 
               | In general I feel my hands are used most naturally in
               | close proximity to each other (at roughly abdomen height)
               | so I'm drawn to small keyboards with lots of modifier
               | keys. A spherical keyboard would be pretty interesting to
               | try out.
        
               | OJFord wrote:
               | On my keyboard - which is.. I don't want to say 'full
               | size', because maybe it's '80%' or whatever, but it's a
               | regular external keyboard with numpad - f & j are centre
               | to centre 60mm apart.
               | 
               | If I outstretch my arms, straight, my index fingers are
               | pretty much in line with my shoulders.
               | 
               | So no, when I use my regular unsplit keyboard my
               | hands/wrists are not straight, because my shoulders are
               | not 60mm apart..? Am I missing something?
        
           | estsauver wrote:
           | I have a planck keyboard, but I think it's small size isn't
           | fantastic for hand position. I think I may eventually
           | purchase an ergodox ez to get better hand positions.
        
       | Snitch-Thursday wrote:
       | I've been wanting something like Talon for years. Easily
       | customized voice recognition for commands (you hear me say
       | 'blah', you type/start a program/click a button labelled 'blah')
       | is something I've not had since I was very young and tried to
       | trick out LCARS x32 using only Windows XPs speech recognition
       | software using the crappy stick mics that lived on top of every
       | single beige CRT monitor at school.
        
       | 2Gkashmiri wrote:
       | I have had an issue with dictation software... I want a dictation
       | software to read me what it typed on screen. Right now the
       | software expects you to check what it wrote and you have to
       | necessarily keep looking at the screen.
       | 
       | Call me lazy but I wish for a method where I could lay back,
       | speak a sentence, wait for transcribing, listen to what was
       | written and ahead I go.
        
         | Snitch-Thursday wrote:
         | when I was writing my last novel draft using nuance dragon 15,
         | it had the 'read that' command which would read the last phrase
         | I inputted, but that wasnt enough since I had a wireless
         | headset that let me wander the house talking to the computer,
         | but still needed to see the screen to know if it got the
         | dictation correctly.
         | 
         | I ended up fishing out a cheap $120 portable walmart windows
         | laptop 2 in 1 and VNCing it into the desktop so i could see the
         | screen, carrying that around with me worked.
        
       | ethn wrote:
       | This might be able to be a bit faster if you use a virtual QWERTY
       | keyboard displayed with eye tracking acting as a cursor, with
       | select being a consonant, preferably /d/. You can map certain
       | phonemes for other shortcuts, including one for click/right-
       | click/vim-commands.
       | 
       | Articulating words takes too long, even subvocalization is, which
       | has the advantage of only using non-voiced phonemes.
        
       | joshwcomeau wrote:
       | Appreciate all the discussion!
       | 
       | I touch on this in the article, but I should say: I'm an edge-
       | case when it comes to CTS. Most cases resolve spontaneously. Part
       | of it is that my nerve dislocates when I bend my elbow, and this
       | mobility causes a bunch of additional friction / inflammation.
       | This happens naturally to about 13% of the population, and mine
       | is particularly pronounced.
       | 
       | All this to say, if you ever do start to get a burning or
       | tingling in your elbows or wrists, or get numbness in the hands,
       | it'll likely go away on its own, or with conservative treatment
       | (a physical therapist is a great first step!).
       | 
       | And, for those who also fall into my unlucky percentile,
       | hopefully it helps to know that there are tools and a community
       | that exist to let you keep working without needing to use your
       | hands at all!
        
       | bdickason wrote:
       | Not sure if this helps but I had a similar issue with my joints
       | (arm, shoulder, wrist) where I would scream in pain when lifting
       | a small book or anything above 3 lbs.
       | 
       | The issue was caused by my immune system acting up which would
       | cause my tendons to become inflamed. After a year of
       | misdiagnosis, Doctors found some heavy medication (methotrexate
       | balanced with plaquenil) to help regulate it. One of the
       | medicines side effects was listed as 'death' on the label.
       | 
       | After a year of experimenting, I found that major diet changes
       | (lots more hearty greens, way less sugar and carbs, no caffeine
       | or alcohol), improved sleep, reduced stress (quit my stressful
       | job) completely alleviated my symptoms. I would still have flare
       | ups from time to time which I reduced via physical therapy /
       | exercise (to strengthen muscles supporting my tendons).
       | 
       | Just sharing as I had a somewhat similar condition and was
       | surprised that the fix didn't have to be a pill.
        
         | corobo wrote:
         | I was misdiagnosed inflamed tendons and it turned out to be
         | something else, hah
         | 
         | HN Reader take this message: medicine can be a to and fro, go
         | back if you're not convinced and get a second opinion if you
         | think somethings still wrong :)
        
         | slashblake wrote:
         | Are you me?
        
           | bdickason wrote:
           | Maybe we're the HN equivalent of Fight Club?! Am I Brad Pitt
           | or Edward Norton
        
         | joubert wrote:
         | Drastically reducing "added" sugars (which includes alcohol),
         | whether end-user added or added as part of the industrial food
         | "manufacturing" process does wonders for one's health.
         | 
         | Reducing sugar intake reduces inflammation
         | (https://www.health.harvard.edu/heart-health/the-sweet-
         | danger...).
        
           | snielson wrote:
           | Can confirm. Cut out almost all sugar from my diet. I've seen
           | dramatic improvements in my health with the most significant
           | being the elimination of brain fog.
        
       ___________________________________________________________________
       (page generated 2020-10-21 23:00 UTC)