Why I Think JSON is Evil

Houston, We Have a Braces Problem Let’s be honest. We’ve all been there. It’s 2 AM, you’re debugging a gnarly issue, your eyes feel like they’ve been sandpapered, and the only thing standing between you and a sweet, sweet victory is a rogue comma in a thousand-line JSON file. In that moment, as you stare at the linter’s unhelpful Unexpected token , in JSON at position 999 error, you can’t help but think: “JSON is evil.” ...

March 24, 2024 · 3 min · me

JavaScript Type Coercion Madness: When Empty Arrays and Objects Drive You Crazy

Picture this: You’re debugging some JavaScript code at 2 AM, your coffee has gone cold, and you stumble upon something that makes you question everything you thought you knew about programming. You type [] + [] into your browser console, expecting… well, honestly, you’re not sure what to expect. But when you see an empty string pop up, followed by [] + {} returning "[object Object]", you start wondering if JavaScript is just trolling you at this point. ...

March 19, 2024 · 4 min · me

Debugging a Massive JavaScript Codebase: A Comedy of Errors

Debugging. The word alone sends shivers down the spine of even the most battle-hardened developer. It’s an art, a science, and occasionally, a form of self-inflicted torture. Debugging a massive JavaScript codebase? That’s not just torture; it’s a full-blown existential crisis wrapped in a frustrating game of “Where’s Waldo?” where Waldo is invisible, constantly changing his location, and occasionally just… isn’t there. You know the feeling. You’ve been staring at the same line of code for an hour, your brain slowly turning into a lukewarm, overcooked noodle. You’ve tried everything. You’ve added more console.log statements than lines of actual code. You’ve even considered sacrificing a small, innocent rubber duck to the demo gods. And yet, the bug persists, mocking you with its silent, unyielding presence. ...

March 17, 2024 · 8 min · me

Resurrecting an Old Friend: Giving My WRT1900ACS a Second Chance

Sometimes tech just decides to betray you all at once. First, my main router—a Mikrotik hAP ax^2^ —finally gave up the ghost. It had been acting weird for a while, but last week it just died on me. To make things worse, my mini toy server (an old Poco F1 running postmarketOS with Docker, hosting AdGuardHome, Home Assistant, OpenWebUI, PhotoPrism, and more) also gave up earlier this month, lol, very good start for a new year. ...

January 29, 2024 · 3 min · me

Framework Stockholm Syndrome: When Your Build Tool Demands Your Soul

You know that feeling when you’re browsing through a new framework’s documentation, and it starts off promising. Clean syntax, great performance, awesome community support. Then you hit the setup guide, and suddenly you’re reading something that sounds like a Terms of Service agreement written by a particularly possessive ex: “To use FrameworkX, you must use our build tool, our linter, our testing framework, our deployment pipeline, our code formatter, and also please consider naming your firstborn child after our mascot.” ...

January 15, 2024 · 6 min · me

Dropbear SSH: The Minimalist That Broke My Heart (And My Workflow)

Let me start with a confession: I wanted to love Dropbear SSH. I really did. The promise of a lightweight, minimal SSH implementation that could run on anything from a router to a Raspberry Pi sounded like a dream come true. But after wrestling with it for months on various embedded systems and constrained environments, I’ve come to a painful realization: sometimes “minimal” is just a fancy way of saying “missing the stuff you actually need.” ...

December 12, 2023 · 6 min · me

JavaScript Modules: ESM vs CommonJS - Pick a Team (or Both)!

Hey there, fellow code wranglers! Ever been knee-deep in a JavaScript project, humming along, and then BAM! You hit a file using require() and another using import, and your brain does a little “system overload” dance? Or maybe you’ve tried exporting something and wondered if it should be module.exports, exports.thing, or export default? Yeah, you’re not alone in this beautiful chaos that is JavaScript modules. It feels like a perennial “pick a team” debate: CommonJS vs. ECMAScript Modules (ESM). Let’s unwrap this present of perplexity and see if we can make sense of it all. No boxing gloves required, just a cup of your favorite beverage and maybe a few brain cells. ...

October 27, 2023 · 5 min · me