Week 48: What did you learn this week?

What Clojure, programming, or life skill did you learn this past week?

I got an Ergodox EZ and so I’ve been trying to learn that. It’s the first time in over ten years that I’m using anything else than a standard US keyboard, so it’s a challenge. I’m using keyhero.com and trying some small coding exercises.

In the process I also learned that Hyper is not an actual keycode (anymore ?). LISP machines back in the days had these amazing keyboards with lots of modifiers, including Hyper, such as this amazing Space Cadet Keyboard.

Just look at that beauty! Hyper, Super, Meta, Alt, Greek…

This is what Emacs was built for, and you can bind actions to Hyper-something, but you won’t be able to type it. Unless you remap some keys, which I did for the longest time, turn Caps Lock into Control, and Control into Hyper.

So I was delighted to find a Hyper key already present on the default mapping of the Ergodox EZ. Except that it turns out it doesn’t actually send Hyper, instead it does Ctrl-Meta-super…

Turns out though that while X windows can deal with Hyper key events, keyboards nowadays can’t actually send them, there’s no keycode for them, or at least that’s what I think the explanation on this issue means.

Apart from that I got acquainted with some of the finer points of transit-clj and transit-cljs, especially when it comes to adding extra write handlers. I also found out that

(into-array [1 2 3])

will return an Array<java.lang.Long>, so using boxed numbers, whereas

(into-array Long/TYPE [1 2 3])

actually uses long primitives Array<long>. The more you know!

Yeah, it’s a shame that it’s not really supported as much anymore. At least we have an enormous Caps Lock key though, right?

For OSX users, Karabiner allows remapping keys to hyper. I don’t use that myself though, I just changed Caps Lock to Control, and left Control to swap from English<->한글.

How do you like that keyboard? I just switched to a Leopold Fc660c.

For me this week, I learned that OSX has a functional tiling WM- chunkwm, a successor to kwm that is still in progress. It works for the most part but doesn’t resize windows snappily. There’s also Amethyst as an alternative, and Spectacle which is not a tiling wm but lets you move windows around.

Also, iTerm2’s graphical rendering is a tad slow, slower than the native Terminal.app. I noticed a small delay in jump commands in Vim, so I switched out to alacritty. My main issues are that 1) it has no scrollback [yet] and 2) no tabs. It’s fast for sure, but I like having tabs versus spawning a new window. Those are easily worth having no lag, however. :grinning:

I think I will like it a lot once I get the hang of it, but it could easily be weeks or months of practice before I would consider using for client work. I’m just so incredibly slow with it right now.

long-array exists too. :slight_smile: