Random thoughts

KeyboardIO Atreus review

On august 11, 2021 I took delivery of a KeyboardIO Atreus keyboard.

My Atreus with palm rest and Qwerty keycaps.

I have been using the Atreus for a month now and I am really starting to get used to it. So this is my one month review.

I ordered the Atreus configured as follows:

  • Qwerty keycaps
  • Maple palmrest
  • Kailh Box White switches
  • Travel case

Currently I still run default layout as it comes in the box with one modification. I swapped the space and backspace keys. It turned out I am very much a left thumb spacer.

My initial impression were very mixed. Build quality and everything is very nice. The device looks clean, has some decent weight to it and it feels sturdy. Also the palm rest, I instantly was very happy I added it to my order.

But usage wise it does have a steep learning curve. What it most of all did was tell me what bad typing habits I learned over the years. And I really had to do some deliberate training to adjust to this keyboard. A nice side effect is that my typing technique on standard Qwerty layout has drastically improved as well.

I looked into learning an alternative typing layout called Colemak, but after some initial trials I felt I would be better of sticking with standard Qwerty to keep decent interoperability when this thing is not around.

Typing wise it looks and sounds like you expect from a mechanical keyboard. It is loud, especially with the clicky box white switches I have on it. I did experiment with a number of other switches. I tried Cherry browns and Kailh Speed Copper. But on the Atreus I was really missing the clicks with the browns and the speed switches were just too sensitive. Just laying down a finger would register a keypress and I did not like it at all. (On my IQunix L80 I absolutely love the Kailh Speed Copper switches, provided I put a sturdier switch under my spacebar. A Kailh Box White in my case.)

So let’s dive in a bit more on my experience. As said the initial experience was quite bad. I needed the included reference card all the time and my typing speed really tanked. The first week I really felt limited by it. If I needed to get some work done, I would quickly switch to a regular keyboard.

But after deciding to dig into this thing I opted to go for deliberate practice each day. The second week I would do a couple rounds of practice on each day. And that has proven to be the right choice. I am not back at my old typing speeds yet, but I am getting there. In the second week I managed to get through my first full day of working on it. That combined with the deliberate practice sessions has been working great for me thus far and I plan on keeping at it until I can really see a steady high speed on keybr with a low number of errors.

All in all I do not regret buying the Atreus. Would I recommend it to anyone. Absolutely not. Do I love this thing? Absolutely.

This is an input device you either need for ergonomic reasons or you just really like the small desk footprint and are willing to put in the effort to adjust to how it works. Because one thing to know with the Atreus is the layering system, eventhough it only has 44 buttons, all usual key presses are available by what is called switching layers. With one key press all keys on my device switch to a different function and I can type brackets on the left side and the right side becomes a sort of numeric pad. And there is a whole lot more you can do with this thing. Currently I am slowly creating a dedicated podcast editing layer strictly tailored to my usage of Hindenburg’s Journalist Pro software.

Some fun things to note about the Atreus. It is a split columnar layout. Just look at the images in this post and you can see what that is about. But what is not visible is the firmware, it is an Arduino based system, opensource and KeyboardIO also has a graphical user interface available allowing you to do most of the setting and tweaking of the functionality of every single switch on the Atreus.

If you have any questions or things you want me to share my experience on with this keyboard. Let me know, easiest is a DM on Twitter. @leenarts or @appforce1.

Random thoughts

Published eBook: Lead Developer

On march 18 I self published my first book. Lead Developer. And I have been getting some questions on what my proces was.

You can find more info on my book here.

Lead Developer: best practices and tips for lead software developers, by Jeroen Leenarts.

It is really simple. I used LeanPub and just started writing. The benefit of using their platform is that you can write in MarkDown and they take care of the typesetting and making sure you end up with an PDF, ePub and Mobi output.

I wrote the book, which at first launch was a little over 10.000 words in about 3 months time. Since I already had a good set of notes to begin with I knew I had enough content. The first thing I did was create a preliminary table of contents. And based on that I started writing. During the writing I discovered I wanted to group things into three categories. Team, Business and you. Since I wrote everything in Markdown it was very easy to adjust.

I also wanted some graphical content and a book cover. For that I asked a creative friend to draw up some avatars. I really like the results Linda Udding created. And we also made an agreement on what I will pay to her for her work. Since this is a first book, we both did not know how well it would work out. So we agreed on a profit cut until we reach a level of payment that is in line with market standard for the amount of work she did. Since I already had my book’s content divided into three parts by that time it was easy to convert that format into a creative brief for Linda. She was able to create the work in no time at all.

When I set out to write this book I planned on doing it just for the fun of it. If I help on person, great. If I sell no copies at all, that’s great as well. My main goals with writing the book are:

  • Structure my own learnings on the topic of being a lead software developer to become a better one myself.
  • Learn about what it takes to write something resembling a book.
  • Have something meaningful on offer when someone asks how they can support my online activities. Buy my book sounds way better to me compared to “just give me some money”.
  • Be able to put “published book author” on my resume.
  • Learn about what it takes to market a product to some level of succes.

Any income gained from this book is a happy coincidence. And, at the time of this writing I sold over 60 copies and I am looking into ways to market my book more. I hope to hit 100 soon. But who knows, it all depends on wether I can make online appearances, get my book linked more by others. Advice is still welcome at this stage, I have not found “the best way” to do this on a shoestring budget.

Random thoughts

iOS Core Data Workshop

With the help of Donny Wals I am organizing a Core Data workshop on April 22 and April 29. We’ve chosen times that are convenient for multiple timezones around the world.

More info here:

Order your ticket

We’ll build a simple app that features everything you might need in a moderately complex application. We’ll start by adding Core Data to an app and setting up a very simple form to add data to a store. After that, we’ll set up a list in SwiftUI to display data. Next, we’ll add an edit screen. The next step will be to build a filter screen.

Once the filter screen is added, we’ll focus a bit on architecture. Instead of using SwiftUI’s built-in features, we’re going to build a view model that holds a fetched results controller, and we’ll use this to drive a SwiftUI view by leveraging Combine.

The last step will be to write an importer that uses a background managed object context to import a bunch of sample data for our app. We’ll use a set of JSON data so it closely mimics a scenario where you load data from the web.

Throughout the workshop we’ll not only use SwiftUI, but also bits and pieces of Combine. Don’t worry if you’re not familiar with Combine yet. You’ll learn some of Combine’s core principles as we go to make sure you know and understand just enough to leverage it in the workshop.

Your trainer will be Donny Wals, author of Practical Core Data.

  • Duration: 4 hours
  • Capacity: 5–15 people
  • Location: Online
  • Programming Language: Swift, latest Xcode
  • Choose your date and time when buying your ticket:
    • April 22, 2021 / 09:00 AM – 01:00 PM Pacific Time
    • April 29, 2021 / 13:00 – 17:00 Central European Summer Time

About Donny Wals

Donny has been practical experience with Core Data, Combine and teaching. Through his book Doony was able to share his knowledge to a wider audience. Donny is an expert on Core Data. He has written one of the best received recent books on the topic of Core Data. Donny has also written an amazing book about the Combine framework called Practical Combine.

Random thoughts

AppForce1: Special 1

Antoine is an iOS developer with a good following on Twitter. He often helps CocoaHeadsNL when he can. He works for WeTransfer, writes on his blog and recently launched version 3 of RocketSim.

Podcast Random thoughts

Podcasting gear

That didn’t take very long. After publishing my first episode I got a question almost right away on what I used to record my show.

Here’s the list:

I took a while picking and selecting what to get. I initially wanted a Audio-Technica ATR2100x-USB but it has been unavailable everywhere for a couple of weeks now. So I just bit the bullet and went for a higher spec setup. I specifically went for a cardioid dynamic microphone and not a condenser. I wanted more of that broadcast sound and at the same time avoid picking up unwanted background noise as much as possible. A condenser, or so I read, picks up way more background noise.

Marco Arment’s microphone blog post was very helpful in getting to know some basics and find a good microphone amp suggestion.

For hosting I use Buzzsprout.

All product links are affiliate links.

Podcast Random thoughts

AppForce1: First episode is live

Podcast Random thoughts

AppForce1 podcast feed availability

My new podcast is now listed on Apple Podcasts as well. This means you can now find my podcast in your favourite podcast player app by searching for “AppForce1” and get my first episode as soon as it is available next week.

Podcast Random thoughts

AppForce1 podcast

I’m working on launching my new podcast. Working title “AppeForce1 podcast”.
Just playing with editing and sound bites a little bit. Here’s an initial promo.

Random thoughts Swift

At the Dutch CocoaHeads meetup in september I presented about Tuist.

Our path to micro frameworks using

In this video I show how we at Achmea changed the architecture of our app to use µ frameworks with I demonstrates how to create a sample app and shows the new structure of the ‘Even Appen’ app.

Random thoughts Swift

Github Actions and MacOS based Actions charged at 10x

Something I forgot to mention on my previous post on GitHub Actions.

GitHub charges 10 build minutes for each MacOS build minute. Be aware of this when working with GitHub Actions for your Mac based builds. It is probably worth it to try and off load as much work as possible to a Linux based image.

SwiftLint and other code analysis is a perfect example of examples of work to be offloaded to a Linux image.