September 10, 2019

The workers control the means of production … now what?

This is the show notes and link list for my talk "The workers control the means of production … now what?". I gave this talk as the opening keynote of the 2019 edition of Day of the programmer in Jönköping.

The presentation slides probably make little sense without my words, but a video will come out eventually at which point the two will go along nicely.


August 28, 2019

Key mapping

I have a new favourite toy.

KBD4X keyboard KBD4X keyboard


This is a KBD4X, made by a company called Kbdfans. It is a 40% keyboard, meaning it lacks a lot of keys you expect to find hanging around the outskirts of comfortable hand positioning. To get the most - or anything, really - out of a keyboard like this, you need to program it yourself. That means figuring out where you want each function of a keyboard to be, deciding how exactly to invoke it, then editing a C file, compiling a new firmware, uploading it to the keyboard itself, and trying it out.

KBD4X next to Das Keyboard KBD4X next to Das Keyboard

Oh yeah, it is also pretty small compared to most other keyboards. And it has the keys in straight lines - ortholinearity, as the hipsters call it - just to make getting used to it a little bit more challenging.

I was expecting all this to be a challenge, especially since I never managed to get comfortable enough with my Pok3r to use it regularly.

I did not, however, expect to make progress this fast, or to have anywhere near this much fun figuring out and programming my layout.

Enter QMK

QMK is the open source firmware supported by this and many other keyboards. Programming your own firmware - in C, no less - sounds like a daunting and dangerous undertaking, but thanks to good guides and tools it is actually pretty easy. Perhaps most important of all: once you have the initial setup done, the iteration cycle is really quick. Making a change, compiling and updating the keyboard is a process of seconds, which makes trial and error highly enjoyable.

Getting into the keyboard

The look and feel of the keyboard had me hooked right away, I love the size of the overall board as well as the keys, and of course it has a wonderful clickiness from well-chosen key switches. I bought the keyboard including switches from a friend, so I can never remember which ones they are, but it is one of the relatively silent models. I have ordered even clickier ones because I am curious about the change in feel, but I truly have nothing to complain about now, and I do think the slightly quieter keys are an advantage in many situations. I got the keyboard set up during my summer holiday, but I decided pretty early on that to really learn and get into something this different, I should really use it at work. I was, however, deeply unsure about how that experiment would go. It seemed pretty likely that I would try for a couple of days, then notice I was using other keyboards most of the time, sigh, bring the keyboard back home and only use it for irregular bursts of writing.

Happily, that turned out not to be the case. At the time of typing, I am halfway through my second week of use, I have disconnected the other external keyboard, and I wish I had the same keyboard at home without needing to bring it back and forth.

I have got the hang of the keyboard quicker than I expected, but my keyboard layout has also changed a lot more and a lot faster than I would have guessed. It turns out keyboard layouts are a lot easier to remember when you have created them yourself, and so I have found myself repeatedly making both large and small changes throughout the week and a half without descending into complete confusion about which button does what.

My current layout

My layout is still evolving heavily, but I figured I could benefit from starting to document it at some point, both as a reminder to myself and as a possible source of inspiration for others. The illustrations are created using the online Keyboard layout editor.

Base layer

The base layer of my layout

This is what happens when you just hit the keys, and it looks pretty normal except having way fewer keys. L1 and L2 are layer switch keys, when I hold one of them down the corresponding layer is activated, providing me the keys on that layer instead. Tab acts as you expect when tapped, but activates layer 3 when held down. In all three cases, the layer switches back to the base when the key is released.

The main obvious thing missing here for a Swede are the three characters å, ä, and ö. I type in Swedish a lot, and so their usage frequency really motivate a spot on the base layer. So far, however, I have been unable to find a suitable place for them. I had them just to the right of M for a while, but found it much easier to get used to the position they have now on layer 3, so I put some special characters on the base layer instead. Time will tell if they return eventually.

I also regularly miss dedicated arrow keys, but even though I still do not use them very efficiently I feel less inclined to do the amount of reshuffling required to fit them in.

Layer 2 - Numbers and shifted numbers

Layer 2 - Numbers and shifted numbers

Nothing too strange here, the top row are the number keys in their usual places, the second row are the number keys with shift held down, so that characters like " and ! do not require three keys to type.

This whole layer is actually becoming a candidate for removal, now that I have the numpad layer and the shifted keys available in other places.

Layer 3 - Arrows, Swedish and more

Layer 3 - Arrows, Swedish characters and assorted specials

The current home of both the arrow keys and å, ä, and ö. I really enjoy the reachability of the arrow keys on the home row, but I find it very hard to get used to having all four on a line rather than the classic inverted T shape. I will probably try putting them in T shape somewhere at some point, but I do not really want to break the line of shifted numbers, nor move the arrows down another row. We shall see.

Layer 4 - Numpad

Layer 4 - Numpad

I am not sure why I like this so much, but I do. Entering numbers somehow becomes a bit more fun with a numpad setup, and it immediately started feeling weird that I had always needed two hands to reach all numbers before. I am going to add some common separators on this layer as well, so that I do not need to switch back and forth to write currency values, dates with separators and so on.

What remains?

Am I done? Not nearly. Like I mentioned in several places, I still feel my layout has room to improve. And of course I just need to simply write more to get more used to all key placements. Regular text entry is doing pretty well already, but special keys can be very slow.

August 16, 2019

Runner in mind

I think of myself as a runner, despite not running all that much recently. In fact, "recently" stretches back a year or more. You would not look at my daily activities and guess that the time spent running is something I consider integral to my life balance and both mental and physical health. And yet, here I am. Imagining running when I see others run. Thinking of the myriad different ways a run can feel. Considering long runs versus short ones. Recalling the meditative aspects of long runs, while at the same time wondering if I am in enough of running shape to even be able to get there right now.

I have been on a wonderful, serendiptious reading expedition in quiet moments of the last few days. It started with the article Fast software, the best software. We discussed it in the latest episode of Kodsnack, and after I put together the show notes it was but the tap of a link to find out a bit more about just who this Craid Mod fellow was.

The answer turned out to include a whole lot of highly enjoyable writing, and as I began to read through the archives of Craig's newsletter Roden I encountered thoughts on writing, meditation, vivid images of someone else's life, and of course a lot of great photos. His writings around meditation and silent retreats in particular made me think of long runs, especially the four times I ran ultra marathon distances. Somewhere along the way, along trails and streets, I feel I have picked up or at least caught glimpses of the mindset Craig writes about. Enough to feel connected, enough to provoke more thoughts, and definitely enough to be eager to discover more.

Today, it gave me another little treasure: Craig linked to the site of one James Somers where I was carried away by the post "You're probably using the wrong dictionary". I was indeed, but I have now corrected this deficit thanks to James' instructions. I look forward to looking up a lot more words going forward. The joy of language, of words, is not too hard to spark in me, but it is not common enough that a text turns the spark into such a hot, happy flame even for a brief moment.

I should read more good writing.

Okay, just one random example of a good dictionary definition. Look how much imagery, how much joy, is squeezed into this definition of Serenade: "(a) Music sung or performed in the open air at nights; -- usually applied to musical entertainments given in the open air at night, especially by gentlemen, in a spirit of gallantry, under the windows of ladies."

One sentence, not one wasted word, and it just builds as it goes. As far as I can recall, dictionaries rarely bring a smile to my face. Hang your heads in shame, average dictionaries, then go home and improve.

(I also wonder what the best Swedish dictionary might be. I have a hunch that they are on average a bit better than English ones, but also that they could be even more if they tried enough. Research for another day.)

August 15, 2019

Summer timing

My summer holiday is approaching its end, just as abruptly as always. It started late, we have done a nice number of things, and it does feel like a long time since I last was at the office. So pretty well done on that front.

In a recent episode of Reconcilable differences, Merlin and John were discussing what defines success for their holidays. A key part of their discussion was the fact that you personally having a good time can be pretty low on the list of criteria when you are a parent. This aspect has started to enter my world, and rings true to me, but there are defiintely still personal criteria which feel deciding to me. The most important one seems to be this:

Do I, at the end of my summer holiday, feel like I have really wound down?

Do I feel relaxed, energized, like I have had time to rest, catch up, and perhaps do some creative things along the way?

I have never before put it into words this clearly, but I feel that winding down properly has been the main success criteria for most if not all of my holidays as a working adult. And I find it interesting that, despite checking pretty much all the boxes I tend to think of before the start of a holiday, I feel like I have succeeded less this year than on average. Again, I have done all the things I expected at the start, but it seems they did not add up to quite the level of unwinding I expected this time.

I look forward to processing this and trying to figure out how or why. And it is great when people give me new thought technologies that let me even begin to think about it.

Meanwhile, I lean back in a huge couch in a rented house, laptop on lap, water and whiskey close at hand.

July 29, 2019

Murderly Breathly

I had a very short dream sequence last night (it might have been a news headline flashing by) in which the police was looking for a suspect named Murderly Breathly.

If they catch and convict Murderly, I think it would be fair to place some part of the blame on the parents.

Sleep tracking

Speaking of dreams, I won a Fitbit versa in a giveaway a couple of months back. It is Fitbit's smart watch-type fitness tracker, but I have at no point felt the urge to wear it instead of my Apple watch. However, after hearing Merlin Mann discuss tracking his sleep with various Fitbits I was very curious to use it for tracking my sleep.

And so, I have since the end of May been in the deeply silly situation of having a day watch and a night watch.

No, I would not have paid for this. Probably not.

Anyway, the Fitbit does track sleep, no user interaction required. I put it on when I go to bed, take it off when I get up, and check collected data on my phone. (And charge once a week or less. Long live proper battery life.) You get nice charts for your sleep levels (split into awake, REM, light and deep sleep) each night, as well as comparison with your 30-day average or people of your gender and age.

So far, results are pretty unexciting: I sleep about as poorly as I thought I did, but I fall mostly within normal ranges. Things do not seem to change much between work days and holidays either: I tend to get more sleep when no alarm is set, but the split between sleep levels are about the same.

Guess that is who I am.

I do wonder if I could make significant changes to my sleep. For example, would a completely dark and silent room at just the right temperature give me a notably different night's sleep? Or cutting out caffeine? Eating earlier or later? I do see how people get into tracking even more factors, but I do not feel an urge to get there yet. I will keep collecting data though, and it would be fun if a completely special night turned up somewhere along the line.