max.hn

About me Notes
Menu

You can follow my Notes using any RSS reader — my personal favorite is Reeder.

Max ·

With most traffic coming from mobile devices and therefore small screens, are there any websites that have put “desktop” styles in a separate file and only load it, if the media query matches?

Something like this?

<link
  href="big-screens.css"
  media="(min-width: 800px)"
>

This would remove render blocking by desktop styles when mobile devices visit the website. They are still being downloaded, but don’t block the time to first paint.

I don’t know any websites that do this yet, but maybe I just haven’t found them?

Max ·

I’ve simplified my website’s navigation structure. While I liked the idea of showing everything upfront, the big navigation was also overwhelming. With everything happening right now, I don’t want my website to feel overwhelming. I want the web to feel calm and my personal website is one of the places, which I control and where I can directly contribute to that.

Therefore I started by moving the navigation below the content on bigger screens like it already was on smaller ones. I also reduced the number of navigation items by merging different pages into one, e.g. the new projects page and good stuff page. I’ll probably move the navigation up, once I have about five items left. I’m also thinking about adding a language switch to make it even smaller.

I also thought about having just a single feed page, which combines blog posts and notes—though separate ones for English and German. I can still provide separate RSS feeds for each content type, but one feed would further simplify the navigation architecture. The problem is that I think feeds are in the end a dark design pattern. Maybe less so without algorithms, but endless scrolling still encourages spending more time on a website instead of doing other things. Maybe I don’t call it a feed and just add pagination? I don’t know.

Max ·

Last time I wrote about my personal keyboard journey, I considered buying a Voyager from ZSA. Today I can tell you that I actually did buy the Voyager and am now completely inside the rabbit hole of ergonomic and fast typing.

If you are new to the whole keyboard scene like me, ordering an ergonomic keyboard comes with quite a few unknowns. I didn’t know if my choice of key switches is correct, what kind of accessories I should include in my order and how much taxes I would have to pay to ship the Voyager to Germany. Since I now have the experience of ordering one, I can give you some answers, that might help, if you also consider buying a Voyager:

Once my Voyager arrived I used it for a couple of days at work to see if this could become my daily typing experience. I love the form factor, the build quality, the way the key caps feel, the amount of additional key caps that they include, the carrying case and the three USB-C cables with different lengths.

Some downsides for me: The position of the thumb keys isn’t optimal for my hand size. In a resting position my thumb lies in the middle of both keys. Maybe that’s intended, but I was hoping it would rest on the bigger key. Also the medium length USB cable is too short in my opinion. It should have been a balanced length between the long one and the short one, but it’s more like having two short cables and one very long one.

These are just nitpicks though. The much bigger issue for me were ZSA’s linear switches. They really don’t feel great to type on. Plus they are quite loud. It’s not just the clicking sound of typing, but I could also sometimes hear the spring inside the switches. Yes, the SHHHOCS help to make the keys a little bit more quiet, but it’s barely noticeable since the switches themselves are so loud, that the sound being removed by the SHHHOCS isn’t even audible.

Luckily there is a solution to this problem. Unfortunately it means spending more money again. But since I already started this journey, I wanted to know how it feels like at the end, or maybe more like midway through. And from my research before going down this route, I already expected this to happen. The solution is to buy custom silent key switches from a different supplier.

What makes the Voyager valuable as a long-term investment is the possibility to exchange its key switches yourself. You can even mix and match different types. Some people for example use lighter switches for keys that the pinky finger presses. The same tool shipped in the box to exchange key caps, can be used to also exchange key switches. And that’s exactly what I did.

There are different versions of the Kailh low profile switches, which can be used in the Voyager. I already had an idea which one might be a good fit for me, but to be really sure I ordered a sample pack first. The sample pack I got included a Nocturnal switch (20g), a Twilight switch (35g), a Bokeh switch (50g) and a Sunset switch (40-55g tactile). The sunset switch is tactile and not silent, so that was not was I was looking for. The other ones are super quiet and really nice to type on.

Since I wanted to get a typing experience close to my Macbook, the Bokeh switches are what I went with, since they require a similar amount of force to press. With a little more experience on the Voyager and more accurate touch typing, I could see myself moving to the twilight switches at some point, since a little less force while typing might be even more comfortable. The Nocturnal switches are as quiet as the other two, but are way too responsive for me. Resting my fingers on the keyboard already caused pressing them.

If you live in Germany and from my experience, I can recommend keeb.supply to order your switches. They offer the sample pack I mentioned and offer free shipping for orders over 40€. The Voyager has 52 keys. I ordered 53 Bokeh switches (one as a fallback), which costs about 50€. All in all, the new typing experience cost me 375$ (Voyager and SHHHOCS) + 77€ taxes + 50€ switches.

Yes, that’s a lot of money. But considering that I spend at least 8 hours per workday typing on my keyboard and that it’s the main way of interacting with my computer for years to come, it’s not expensive anymore. I also expect the Voyager to last a very long time, probably until the end of my career, since its build quality is so good and because I can exchange the switches and key caps easily. That’s good for repairs and if my requirements change in the future.

What I got for that money is the best typing experience I had so far on a keyboard and a fully customizable typing experience, that can improve my typing comfort immensely. I will cover the whole part of programming my keyboard in a different note, because that (besides the typing experience) is the other huge improvement I got from buying a dedicated ergonomic keyboard.

Max ·

The fear marketing campaign of the AI industrial complex continues. Latest example is the GitHub CEO claiming, that reading code is the same as writing it. “Embrace AI or get out” is quite a desperate marketing slogan.

Bell curve meme with the left and rigth side being labelled with "slowly writes as little code as possible" and the middle being labelled with "quickly generates as much code as possible by paying for AI coding services"
Max ·

I’ve simplified my website’s layout on bigger screens to put more focus on the content of the current page. On my bookmarks page, the table of bookmarks now fills the whole screen width. The new layout also allowed me to add a little footer at the bottom of the site, which in my experience can add a personal touch to websites. I should probably add my RSS feed links there too.

While I was at it, I also simplified and deduplicated my HTML and CSS. The code is a lot cleaner now. There are still some minor places left, which could be refactored, but it’s a lot smaller now. It’s great how much grid and subgrid simplify layout code.

Max ·
AI

When AI companies find out about making money via advertising:

Watch this ad to get 10 more prompts

Max ·

I’m currently on the journey of finding the next keyboard for me. In the past years I’ve been using the Microsoft Sculpt Ergonomic keyboard, which seems to have been discontinued. My goal is to improve my typing accuracy and speed, have my arms rest in a natural position, reduce hand and finger movements and get a product that lasts for a long time.

I have tried the Nocfree Lite, which is a nice, little and affordable (compared to the competition) wireless split keyboard. But I quickly realized, that I’m so used to a small actuation distance from the Sculpt and from Macbook’s internal butterfly keyboards, that I don’t know, if I could ever switch to proper mechanical keyswitches. Also while the split was ergonomic for my arms, its keyboard layout wasn’t made for hands at all. It has staggered keys and the slash/question key is very weirdly placed.

After my experience with the Nocfree Lite, the requirements for my new keyboard became quite clear:

It turns out, there doesn’t seem to be an out-of-the-box keyboard, which fullfils all of these requirements.

The best match seems to be the Voyager from ZSA. It is low-profile, split and wired only. The downside here is that is has a lot fewer keys than the Sculpt, so I will definitely have to adjust to that. I wish it had a third thumb key. And I don’t think the keyswitches will be quiet enough, since there are proper silent switches one can buy elsewhere. To make it as quiet as the Sculpt, I probably have to get their SHHHOCS accessory and additionally buy silent linear switches like the Bokeh Low Profile. If I also realize that I need a higher tenting than the one it supports right out of the box, it’ll cost me again, plus the time to research on how to do it. ZSA doesn’t offer a platform for the Voyager like they do for the Moonlander.

Next up is the Glove80 from MoErgo. It’s bigger and has more keys. It has six thumb keys instead of two, so thats a plus. They also offer pre-configured silent switches, which the Voyager doesn’t. And it’s curved to reduce finger movements even more. But it’s not wired and from their discord and reviews, I can already tell that this will cause issues. One can connect the left side via USB, but the other side will always communicate wirelessly and has to be charged occasionally. To not drain the built-in batteries when using it in wired-mode only, it’s recommended to disconnect the internal batteries by opening it up and unplugging the connection. Here goes the out-of-the-box solution. Apart from that, taking it to the office requires a lot more space than the Voyager.

If I were to drop the low-profile requirement, I could try the Moonlander (even bigger/heavier than the Glove80), the Kinesis Advantage360 SmartSet (big and has been out of stock for weeks) or the Halcyon Elora (less polished, but seems to be very comfortable for thumb and pinky keys).

All of these keyboards are fairly expensive and have to be shipped to Germany from overseas, so returning them would mean to pay shipping fees of about 50 €. That’s an expensive price for testing a product, which is about 350 €. I miss having stores to test products before buying them. Berlin even had a showroom for keyboards, but it’s in the process of permanently closing and none of these keyboards would have been there to test anyway.

So yeah, this is the current status of the search for my next keyboard. I mostly wrote this down for myself to decide what my next step should be. Maybe this is helpful for somebody else out there too. It looks like I should give the Voyager a try, hoping that two thumb keys will be enough for me. And if it is, I could then invest in proper silent switches to get even closer to my perfect keyboard. I’ll keep you posted.

Max ·

Vivaldi is the only browser I know, that doesn’t allow you to tab to links on websites by default. It’s a very odd decision in my opinion and it baffled me again today, since I recently switched to Vivaldi on my work machine too.

So that I (or you) don’t struggle with this again, here is how to fix it:

  1. open Vivaldi’s settings
  2. search for "Webpage Focus"
  3. make sure "Focus All Controls And Links" is activated

Then you should be able to properly test keyboard focus on websites like you can in all other browsers.

Max ·

Whenever you find yourself on the side of the majority, it is time to pause and reflect.

Mark Twain

This quote stuck with me, because I noticed that it’s something, that I do naturally. I usually find myself thinking differently than the majority of people. Not because I want to. It’s just where my thoughts usually lead me.

Max ·

Ben Ui wrote a very good list of reasons why he refuses to use AI:

What I would add to the list, is the horrible job of categorizing raw data for LLMs, so that its users don’t see the worst of humanity when using it. Plus, most of that work happens in developing countries, which basically makes it modern colonialism.

benui.ca/why-i-refuse-ai

The arguments around the use of "AI" are exhausting. I'm tired of re-typing my reasons, so this document is a summary of some of the many reasons why …

Max ·

My tired brain just found the perfect term for people, who are way too optimistic about “AI” writing code: brogrammers.

Max ·

Here’s what the “AI will replace developers” crowd fundamentally misunderstands: code is not an asset—it’s a liability. Every line must be maintained, debugged, secured, and eventually replaced. The real asset is the business capability that code enables.

alonso.network/the-recurring-cycle-of-developer-replacement-hype

AI isn't replacing developers, it's transforming them.

Max ·

If some company were to create a tool, that actually manages to replace and supersede programmers, it would use the tool to dominate the market instead of selling it as a service.

Max ·

Big Tech will never make programming as easy as writing a couple of prompts. They are profitable because of the complexity of software development.

Max ·

I recently bought the NocFree lite wireless split keyboard. I’ve been using the Microsoft Sculpt keyboard before, which is no split keyboard, but it already is slightly angled, so that my hands learned to not reach to the other side. Therefore moving to a fully split keyboard has been quite smooth.

But since NocFree doesn’t offer a version with international or German layout, it also means I have to unlearn typing with the German layout. Since I still write quite a lot of German, I also still needed a way to write German Umlaute äöü despite using an English layout.

With a bit of research I found the EurKey layout, which seems to be perfect. It keeps all the keys from the US layout, but adds European characters hitting right Alt + [key] combinations. ä for example is typing right alt + a.

If you want to give EurKey a try, I’ve installed this version 1.4 on my MacBook.

Max ·
AI

If your ability to write good code or fix bugs depends on getting lucky with an AI slot machine, you’re not a programmer — you’re a code gambler.

Max ·
AI

I’m surprised that there are programmers, who actually believe adding non-deterministic tools to developer toolchains will improve productivity—unless their definition of productivity excludes quality. Because quality depends on consistency and reliability. Two things non-deterministic tools cannot offer.

The software industry has always struggled to put user experience over developer experience, but at least we’ve put our trust in deterministic tools like compilers, linters and language servers, which provide consistent feedback.

Now some people put their faith in tools, that return different outputs for the same input. How’s that gonna help with reliability and consistency?

Software quality should not depend on luck with the next token prediction.

I have a bad feeling that „You’ve prompted it wrong“ is the new „It works on my machine“.

Max ·

Just displaying a link for youtube videos in my RSS feeds wasn’t good enough for me. Therefore I also added a fallback image, which tries to get the poster image of the video and displays it inside the link as well.

Let’s see how that looks like:


📺 Youtube video
Max ·

I’ve noticed that youtube videos in my notes are not displayed in my RSS reader, not even as a link. This is because I didn’t provide a fallback inside the <lite-youtube> web component I’m using to render youtube videos with performance and privacy in mind.

I’ve now added a link inside the web component, that should be rendered in RSS readers as a fallback. Here is a test, that should render a link in RSS readers:


📺 Youtube video
Max ·

To me the future of technology is a lot closer to Bret Victor’s vision of computational public spaces than private and centralized AI black boxes and middlemans, that try to get as much data about us as possible. It’s the complete antithesis to today’s narratives about technology.

I especially enjoyed comparing the values of urban design and computing. It’s also a bold claim, that we will always give up our privacy when computing is bound to screens, but probably true. And lastly, it’s such a good observation that we managed to build a somewhat democratic and civilized society based on very complex infrastructure systems, but never managed to make these systems transparent and visible to us, so that we can understand and therefore govern them.

Our brains haven’t changed in a hundred thousand years, but we’ve built this very complex society around ourselves, and we’ve decided that we want to collectively govern it.

We can’t do that, if we can’t see or understand how any of this works.

Bret Victor [40:30]

📺 Youtube video
Bret Victor talks about computational public spaces