Threads for olly

    1. 5

      Thanks for all the suggestions and it’s great to hear all the different ideas people have tried and sometimes kept because they work for them.

      I’m going to start by taking olly’s advice (thanks!) and using keys on the home row or thereabouts - with a key being held down to activate them. I was wondering if having both my keyboard and editor be modal would be confusing and it sounds like it is.

      I didn’t mention anything other than being on a non-qwerty layout. For posterity, I’m on a Redox board with a layout ‘inspired’ by Workman. I’ve re-arranged the letter keys somewhat and I’ve left most of the keys around the edge unmapped, with my plan being to minimise finger stretching and use layers for numbers and less-common symbols.

      I made myself a little on-screen keyboard app so I can see my layout and which keys I’m pressing (they highlight as I type) and can avoid peering down all the time - and I’m busy with typing tutors trying to get my WPM back up. No wrist pain at all so far but I’m at less than half usual speed!

      1. 4

        The keyboard and the layout aren’t as important as posture and hygiene (drink water and exercise).

        Get some pro opinions on the matter o/

        1. 1

          You’re welcome, happy to help.

          If you’re going to use a key on your left hand to activate the movement layer, another tip I have it is to also have left handed arrows at sdfg. That way, you can still use arrow keys with one hand in case you’re eating a sandwich or something.

          I started with an ergodox, I think it’s similar to the Redox. After a while I did exactly the same and disabled most of the keys. Then a few months later I switched to the corne keyboard and it’s great.

          I agree with jeromenerf’s points, but still it’s a really cool feeling to get a setup working really nicely for you. I guess split keyboards help as well.

          1. 2

            I’m already fine on the suggestions from jeromenerf but yes they are indeed requirements too if you haven’t got them right.

            My wrist pain has also lessened since I stopped resting my wrists/hands and now keep them raised, like I’m playing the piano, and since I moved to a split, tented layout (initially with two Apple keyboards).

            After I started disabling keys, thinking “I don’t really want to stretch for those” I then started wondering why I’d bought a keyboard with so many keys. But it doesn’t matter as they’re not in the way of anything… though I could tuck my Apple trackpad closer in at the centre if there were fewer… I’ll probably end up on a Corne in a year or two!

        2. 2

          Personally, I have been using BÉPO for 4 or 5 years now, and I have decided to use this opportunity to remap hjkl in vim to jkl: (as they are printed in qwerty layout, wich translates to tsrn in bépo). This right shift allows me not to move my end to move the cursor. I am pretty happy about this.

          1. 1

            I’ve seen a few people mention that they made this change, and while it does initially seem like hjkl is misaligned by one key, I believe there is a reason for that. Down and up are pressed far more often, especially down, so they’re positioned under the two strongest fingers. Left and right, are less common because you can move by word, or using f,F,t,T.

            Not trying to criticise your change, I just thought that might be interesting for people to know.

          2. 3

            I use Colemak and I remapped the keys like this. For me comfort is the most important thing and I don’t like the idea of not having at least up & down on the home row.

            It does sometimes take some effort, but I don’t change editors that often so I personally think it’s worth it. I’ve been using vscode now for several years and it’s perfect. I guess there are some editors that can’t be remapped, but it hasn’t happened to me yet.

            My keyboard doesn’t have arrow keys, so I also have a layer on my keyboard that puts the arrow keys in the classic vim position, which I find also works really nicely, though I don’t use that in vim-enabled editors. I activate it by holding a left thumb key down.

            …to allow me to use the keys at the qwerty hjkl positions after pressing a ‘mode’ key.

            When I first switched to having my arrow keys on a separate layer on my keyboard, I had it activated modally (rather than by holding down a key) and for me that didn’t work well. I thought I’d get used to it eventually but having modes in my keyboard and also modes in vim meant I could never keep track of which mode either was in. After trying to get used to it for a couple months I gave up and switched to activating my movement layer by holding a key instead of just pressing a key, and that felt so much better.

            After writing this I’m now wondering why remap vim and my keyboard, I guess it was because I didn’t get a keyboard like this until a few years later and I was already used to the way I remapped vim. I think if I got the keyboard first I’d forget about remapping vim. So I’d say go for it with your keyboard layer (but consider making it a hold layer instead of a modal layer, or at least try both before deciding).

            1. 18

              IMO, give up on the bizarrely macho idea that hjkl is uniquely amazing and use the arrow keys.

              1. 18

                To me the advantage of using hjkl instead of the arrow keys is that I don’t have to move my fingers away from the home row to move the cursor around. I don’t see how that is a “bizarrely macho idea”.

                1. 1

                  I cannot imagine how that helps. Can you explain?

                  1. 7

                    You can keep your fingers in the middle of the typing area (home row) instead of going over to the cursors.

                    1. 0

                      Oh, hi ane!

                      You can keep your fingers in the middle of the typing area (home row) instead of going over to the cursors.

                      I cannot imagine how that helps. Can you explain?

                      1. 4

                        Hi!

                        I cannot imagine how that helps. Can you explain?

                        You… move around less? It saves time. Like a keyboard shortcut or macro does, basically. It depends on the form factor of the keyboard, but usually the arrow keys are further away from the regular text input keys.

                        1. 1

                          Perhaps 10 years of active piano practice makes this a moot point for me but not so much for others. Or I’m just being an asshole. Could be both ;)

                        2. 2

                          What I find helpful about it, is that I don’t have to look away from the screen to see where the arrow keys are, and likewise when going back to the home row. If there’s a lot going on on your screen it’s easy to lose your place, especially when reading lots of text.

                          Also it avoids the physical motion of moving your hand, it just feels more comfortable I think.

                      1. 2

                        Yes, it’s more portable and means i don’t have to reach as far for my mouse

                    1. 10

                      I used to think this way. Then I learned hjkl. Now I am in the cult of the ancient keyboard warriors

                      1. 2

                        Ancient keyboard warriors who didn’t have arrow keys? I used arrow keys, learned hjkl, thought it was nice, moved to dvorak, ditched hjkl for arrow keys. Nothing is magic about it. Why contort yourself to use hjkl on non-qwerty? Would hjkl be dhtn if the standard were dvorak at the time? Probably, but you can’t just remap dhtn now.

                        1. 5

                          There was once a really good reddit thread of a guy playing counter-strike with zqsd movement keys on a qwerty keyboard cause he copied a French (AZERTY) player’s keybinds. He did not realize this and posted about how much better these movement keys made him.

                          1. 5

                            Pedantic note: ScreaM is a Belgian, not French, player. The keyboard layout is still French though

                          2. 1

                            Would hjkl be dhtn if the standard were dvorak at the time? Probably, but you can’t just remap dhtn now.

                            If you’re using Dvorak in the “suggested sense”, even dhtn would be awkward since you’d be using your right index finger for both d and h. Maybe htns (or QWERTY jkl;) would be better.

                        2. 9

                          How did you come to the conclusion hjkl is “bizarrely macho”?

                          1. 8

                            Why is that macho?

                            I mean some people tried it, liked it and share the good experience of how great it feels when you get used to it.

                            1. 3

                              I used to use hjkl. Then I started getting RSI. Now I appreciate the break my fingers naturally get every time I have to move my hands to the arrow keys.

                              I can still use hjkl at a pinch, and probably use them many times a day without noticing. But yeah, it’s not worth getting worked up about.

                              1. 8

                                I can see this being the case, but I think it’s worth noting that RSI covers a large number of distinct problems, and that most RSI would only get worse by more frequently moving your hands away from the home position.

                            2. 12

                              The web is one of the best cross platform development frameworks available. I absolutely want to see it get as close to native parity as possible. WebUSB, WebBT, WebMidi, sensors etc.

                              There is a huge problem with memory usage, but I don’t think it’s native APIs that are causing that problem.

                              1. 35

                                So you basically want your Chrome monopoly running as a walled garden OS on your machine’s real (but now useless) operating system?

                                1. 4

                                  it’s not a walled garden, it’s a sandbox. there’s a huge difference.

                                  1. 2

                                    It can be both.

                                    It is in Google’s best interests to make it a walled garden.

                                    They’ve already changed the Chrome APIs to make it impossible to implement a good adblocker. There’s nothing stopping them from modifying Chrome such that you can’t install extensions that aren’t approved by the Chrome app store.

                                2. 9

                                  This is the fault of everybody who has made learning native development more difficult than necessary.

                                  1. 2

                                    What do you mean? Who’s making learning native dev more difficult than necessary? Platform vendors?

                                    1. 4

                                      For proprietary systems, vendors for not taking documentation and backwards-compatibility seriously enough.

                                      For community-driven systems like Linux, developers not settling around sane architectures (looking at you, desktop Linux) and really just polishing up the on-ramp for other folks. Like, the two best options for rich desktop experiences on Linux are either using the Windows APIs through Proton/Wine or using Electon.

                                      For just programmer culture, de-emphasizing writing cross-platform software in favor of living in ’nix/Apple/Windows monocultures and also treating targeting multiple systems like some herculean task instead of just a collection of shims over common logic. So much FUD.

                                      (oh, also, fuck Android dev. Just figured that’s worth mentioning.)

                                      For all of the talk of freedom and libre software and choice and all of that, we’ve failed our developers.

                                  2. 6

                                    I would dispute that it’s cross-platform. What it is, is a platform that can be bootstrapped on top of other, better platforms.

                                    1. 9

                                      That’s pretty much what all cross platform frameworks are.

                                    2. 6

                                      or, I dunno, and hear me out: what if cross-platform desktop app development in Go and Rust were actually good? Go has fyne, but … have you ever tried to actually use that? It’s … not good. Qt still exists, and Qt … is good, actually. Even if Qt had a very permissive license, the problem with Qt would still be that it’s very closely tied to C++’s type system, and adapting Qt to Go is deeply awkward (dunno about Rust). I have built a non-trivial desktop/systray app in Go+Qt and shipped a commercial product with it, it was a very awkward toolchain to work with (weird conversion semantics, made the compile times much longer, made cross-compilation a nightmare, much harder to set up a dev environment) but allowed us to do things that would be impossible to do in the browser (watch processes and tail local files).

                                      If you think the only difference between a single-page app in a browser and a native app is performance … I really don’t know what to say. That’s just fundamentally untrue. “But electron…” still makes it so that you have to wait until a browser manufacturer decides to allow you to use a part of the operating system, instead of just … using it yourself.

                                      1. 7

                                        I think the biggest difference is distribution. It’s just so easy to type in a URL and be using a webapp, close the tab & it’s “uninstalled”, versus having to find a download link, install, let it run arbitrary code on my computer, then if I want to get rid of it, figure out how to remove whatever traces it left behind.

                                      2. 5

                                        I totally agree with this. And not just because it’s cross platform, there are many other benefits.

                                        As a user I don’t want to have to install some random company’s app to use their service, that I’m probably going to use only once and will uninstall an hour later. I also don’t want to have to trust that their app isn’t doing anything nasty TikTok-style. And I’m always sad when I’m sat at my computer but I’m forced to use my phone because some service requires you to use their app.

                                        As a web developer, I can publish whatever I want without having to work/pay to get included in the app stores. I also don’t need to worry about it being pulled sometime in the future for some reason. Maybe this doesn’t happen that often but I’ve read so many stories where this has happened to people.

                                        For sure there’s always going to be use cases for native apps, but I think the the web is a much better option in many cases, and all these API’s are helping that happen.

                                          1. 7

                                            I don’t have anything much against java-the-platform, but I think its been on a downward trajectory for end user applications for quite a long time now. My sense is its getting increasingly unlikely that a random end user has a jvm already installed. They lost the default apple install, the installation and update story is miserable ux. It shares some of the downsides of the Web (non native ui, memory usage, start up time) but doesn’t share the benefits (discoverability, insane level of preinstalled users, built in update mechanism). It continues to be a decent choice in corporate environments, but for end user apps?

                                            1. 3

                                              I can’t run Java apps on my iPad

                                              1. 3

                                                Sounds like a device problem, not a Java problem.

                                                Best to talk to the device manufacturer about it.

                                                1. 3

                                                  Absolutely not. If I’m looking for a platform to deploy my next app to, going ahead with something that doesn’t run on the device my target users want to run it on and then pretending it’s the manufacturers fault is just a horrible idea.

                                                  1. 1

                                                    But you won’t be able to use any of the apis not supported by Safari anyway. Who’s to blame then?