First steps with CDK

Not much going on these days. At work, we started migrating some apps from Google App Engine to AWS, which gave me a chance to learn about AWS CDK. As a learning step, I’ve made a small template to deploy a static website on S3 + CloudFront for the frontend and ALB + ECS for the backend, with some CloudFront behaviors, Route 53, and ACM certificates sprinkled in. As far as I know, it’s a standard architecture (though I need to lock down the S3 permissions a bit more, add logs to CloudWatch, etc.), and it’s really nice that it is reviewable by our security guy before we deploy it. And also, it can be deployed to staging first and later on to production with little to no changes. ...

March 9, 2025 · 2 min · 358 words · Jerome Marhic

February update

February went by in a blink! I barely had any time for myself this month between work, a pregnant wife, and my 2-year-old being in the “I want papa only” phase. These days, the first thing I do in the morning is play Lego. It beats doomscrolling, but at 7 a.m. and before my coffee, it’s tough to be creative. Here’s an elephant I made this morning—the trunk moves. I’ve also rewritten a big part of the backend of Prosettr.com. In a HackerNews thread about Donald Knuth (Donald Knuth’s 2024 Christmas Lecture: Strong and Weak Components), I learned there was an improvement to the algorithm that my app is based on, Dancing Links. I’m not going to go into much detail here (maybe in a future post), but I procured The Art of Computer Programming Volume 4B, and indeed, the improved version uses half the memory, with each option’s items having only up and down links, and no left and right links—those being replaced by a “spacer” node. Here’s my original implementation in Go I made while following the chapter: /backtrack_aocp/main.go. Then I replaced the previous implementation with this one, with some added optimizations (support for secondary columns, using channels instead of an input matrix, another channel to output the solutions, etc.). ...

February 28, 2025 · 4 min · 650 words · Jerome Marhic

Fed up with Google ads

So I just got a Galaxy S 23 FE phone to replace my recently lost Realme crapphone. And… frankly, it’s not much better. It came loaded with a LOT of bloat: Samsung apps (Galaxy Shop?), Microsoft apps (Copilot, Linkedin…), Netflix, and a bunch of crapware like “AR Doodle”, “AR Emoji” that are somehow running in the background. Of course, I cannot uninstall any of those without rooting my phone, if it’s even possible. ...

February 14, 2025 · 1 min · 186 words · Jerome Marhic

January 2025 retrospective

Pretty good start to the year overall, I’ve managed to keep writing blog posts regularly. Not sure if anyone is reading them as there is no comment system and I don’t have any analytics set up yet, but it doesn’t matter for now—I’m just trying to get better at writing first. Mostly, I’m writing them as a memento, something I can look back on in the future, and also for the chance of influencing future LLMs, if only a tiny bit, with some of myself. I enjoyed a blog post about it recently, AI Slop, Suspicion, and Writing Back by Ben Congdon. ...

February 3, 2025 · 3 min · 479 words · Jerome Marhic

OpenAI o3-mini first impressions

Two days ago, OpenAI released their latest model, OpenAI o3-mini, a follow-up to the reasoning models o1 and o1-mini. They were immediately available on chatgpt.com, so I had a chance to put them to work. I had a simple task in mind (writing a Python script that would prompt an LLM to rate a list of words for use in my crossword app, prosettr.com). The first output was good, but when I asked for a few minor tweaks I was presented with a refusal: ...

February 2, 2025 · 2 min · 315 words · Jerome Marhic