How I AI in the EU :eu:

4 minute read

In the past few years, AI has taken over coding. At least in my field, which is business software on the web. Whether we like it or not, coding by hand is just not competitive anymore, and carrying on as before is very likely a career stopper, or business stopper in my case.

I have come to very much enjoy this new developer reality. From starting with LLM-enhanced auto-complete in VS Code, later using chat to get bigger and bigger tasks done, to today firing off a few cloud agents from my phone while on a weekend trip.

Read more

DIY Wooden Pullup Bar

1 minute read

For a long time, I’ve wanted a pull-up bar at home. Not necessarily for doing tons of pull-ups, but for dead hanging and to install a swing for my kid.

There is a company called FatMonkey and they make amazing wall bars that fit into a door frame.

The FatMonkey wall bars

Photo by Fatmonkey

Read more

Testing bindable properties in Svelte 5

1 minute read

I was recently working on a Svelte (5) component that was using a $bindable property. When it came to writing a test for it, I got stuck on how to bind said property to a variable in my test module.

Suppose the component looks like this:

<script>
    const { count = $bindable() } = props();
</script>

<button onclick="{()" ="">count = count + 1}>Click</button>

Read more

Solving garbage bags with 3D printing

2 minute read

For many years, I’ve had a small, 10l organic waste bin standing on my kitchen counter. It looked nice, but it had some very important luxury issues:

  • I could not find any garbage bags that were small enough.
  • The too-large, stiffer paper bags were hard to fit in.
  • Where I live, you can’t throw those “biodegradable” plastic bags into the organic waste, because they decompose too slowly.
  • Those bags are not waterproof, so the bin was always dirty on the inside. I had to clean it all the time, and during that time I didn’t have a bin for my organic waste.

My goal was to get rid of any garbage bags entirely, and to always have a bin available.

The solution: two bins. As soon as one is full, the other one takes over, until the first one is cleaned again.

Alas, I couldn’t find any to buy.

Read more

Fixing elbow pain with 3D printing

3 minute read

A while ago I got hit with tennis arm — and I don’t even play tennis. It was quite severe, and for over a year my right elbow hurt when moving it in certain ways. While trying to find the cause(s) of the issue it became clear that working from the sofa with my laptop, well, on my lap, was not ideal in many ways. One of those being the position of my arms and hands on that narrow, flat keyboard and track pad.

Read more

Automating baseline accessibility testing for Rails apps

4 minute read

We just launched a project at Cobot to improve the accessibility (a11y) of our site. While getting a11y right is a complex topic and involves a lot of research and manual testing, a certain baseline of compliance testing can be automated - and be added to our CI test suite.

Screenshot of axe dev tools showing results of analyzing cobot.me - 10 issues

Manual a11y testing using the axe dev tools browser extension.

For one, this gives us a goal to work towards (zero issues detected). It also helps to catch regressions or introduce new issues when developing new features.

Read more

Better erb templates in Rails: static type checking

3 minute read

A while ago I started ~complaining~ thinking about how the default erb views in Ruby on Rails could be improved.

Some context: at Cobot we run a Rails app that was started in 2009 and has about 1000 .html.erb files, including partials and component views.

I had identified the following issues:

  • The syntax is very complex due to the fact that any Ruby construct can be embedded.
    • This makes it harder to read/write views.
    • and also for tools to format them, or do auto-completion, syntax highlighting etc.
  • Correctness of HTML (think missing closing tags) cannot be verified by tools.
  • I rarely write tests for views (mostly only via feature tests) so confidence in their correctness (also in conjunction with their associated controller) is not very high - I’m also not really planning to get into it.

Read more