Corne keyboard building

The Corne kit Initial build The kit that I purchased on Shopee The kit content: Some PCB Some microcontrollers and OLED screen Some sockets Some SMD diode Diodes and sockets Those components are soldered on the backside of the PCBs
[Read more]

Python 3.15 Lazy import

Importing lazily? The first beta preview of Python 3.15 dropped earlier this May. I was largely unaware of it, until I saw a blog post on some interesting features that 3.15 introduced.
[Read more]

Adventure with installing OpenWRT on Mikrotik RB750GR3

I want an OpenWRT router for my homelab. Before this the only router to my homelab is a meager TPLink Archer, which is really just a plug & play Wifi router with almost no room for customization. The motivation for a router upgrade is mainly feature-wise. I want to install Pihole for my network, but this TPLink router doesn’t give me a reliable method to redirect all DNS traffic to my Pi. I want to use Wireguard to connect into my home from outside, but the router only supports OpenVPN. Ultimately, I want to do port-knocking to keep my network locked out of prying eyes.
[Read more]

Consuming content with discipline

I have been doomscrolling on-and-off again ever since I had Facebook, Instagram or the sorts. The last streak of mindlessly watching short-form videos every night lasted 14 months. I knew I had to quit. Watching all this dopamine laden videos had done a number on my attention span, and now I sometimes find myself switching between the tasks I was supposed to do every 5 minutes, without actually getting anything done, and inevitably resulting in me swiping on Facebook Shorts for 3 hours straight. 1
[Read more]

How I manage my finance (as a developer)

We have all been there. You earn that lucrative IT-sector big buck, and next thing you know, you are down to 10% of your earning by the middle of the month. You don’t even know how you spent the money. Then you can only vaguely recall buying some shirts and shoes and some newest technology thingamajigs. “What the f#*k did I spent this half a thousand buck on?” is the question that stuck will in your mind until next month, and then the cycle will repeat.
[Read more]

Synchronized events

I was writing some scripts to attach i18next to Bubble. Long story short, we have to ensure the library is loaded, i18next is initialized before rendering the page. I handle this by creating a custom component to check whether i18next is ready, optionally load some more namespaces, finally expose an is_ready state. The remainder of the page should only be visible when the Loader component says everything is kosher.
[Read more]

Building Bubble.io Elements using WebComponent

Update 2026: Missing images I found this blogpost sitting in an export file from Ghost, which was what I used to publish those blogs back in the day. The content is still there, but all the images are lost. I’ll replace those images with some descriptions because I don’t expect anybody to follow what I did then anymore, now that Bubble.io is practically dead.
[Read more]