Some time ago I encountered a situation at work where I needed high-resolution real-time image encoding on a constrained device. My first suggestion was to use a temporal video codec (like H.264), but the customer wanted to be able to encode and decode still images independently. Since the platform had...
[Read More]
From 23-year-old scrap PCB to working webcam module
Digital archaeology or new project material?
Lately I have been thinking about getting a low-resolution image sensor for some bare-metal project prototyping, and I was disappointed by the limited availability of low-cost low-resolution camera modules. I wanted parts in the price range of a few bucks, not a few dozen bucks. I then remembered of a...
[Read More]
AI-driven C++ runtime optimization
Case study of LLM-driven optimization in the wild
A few weeks ago I wrote a lengthy post about making a real-world algorithm run twenty times faster. There I talked about a work package performed several years ago, well before LLMs were any useful as coding assistance tools. While writing I started asking myself: what if, instead of being...
[Read More]
Diagnosing a compiler bug
When you have eliminated the impossible...
This post is about a software issue I troubleshot some time ago. What made it
interesting is how it turned out not to be a bug in the product, but rather in
the C++ compiler used to generate the binary.
[Read More]
Making a real-world algorithm run twenty times faster
A showcase of optimisation techniques from the trenches
This post is a summary of an interesting code optimisation task I performed for a customer some time back. They had developed an algorithm for a product but they were way over budget on runtime, and due to the embedded and real-time nature of their product, not meeting the runtime...
[Read More]
Designing a least squares fit confidence estimate
But making it run very fast
While working on a project some time back, a friend asked me how to develop an effective confidence estimate for a model fitting problem such that it could run very fast in real time on a constrained system. While the question might sound mundane, I found the specific constraints called...
[Read More]
How I de-googled my personal devices
Switching out of Google products and services has been easier than expected
This post is a recap of my experience migrating to a Google-free environment. This transition is part of a broader change of habits I made in recent times. It is not just a matter of putting more focus on privacy, but also of escaping enshittified products, and creating some distance...
[Read More]
New timeline Jekyll plugin
With a pure CSS solution
This is a meta-post about some updates I have been developing for the website.
I decided to reorganize some of the content and provide information in a way
that is easier to navigate.
[Read More]
One thing you must know before disassembling your G502 X
Just to make sure you can put it back together
There are two small springs under the scroll wheel assembly. Be careful to look
for them when you remove it and do not let them jump out, or you risk losing
them.
[Read More]
Op-ed — My experience and reflections on AI assisted coding
Reality check and thoughts on what lies ahead
This post is a bit of an exception (or maybe the start of a new genre) for this blog. While my usual content is strictly limited to presenting facts, this article is more of an op-ed presenting my personal take on “AI1 assisted” coding. Technically speaking, the expression “artificial intelligence”...
[Read More]