the elusive SRSS 5.4.5.0 has emerged!
well! the longer-form Sun Ray blog posts I've been working on are taking much longer than I thought they would - but in the meantime, I have wonderful news, thanks to a few different people who've…
now
Haven’t written one of these in a while! I dropped the habit of writing now pages, but I thought it could be nice to share what I’ve been up to, especially if it leads to some nice chats down the…
Agentic testing for MAUI apps using DevFlow
What if your MAUI tests could just say “get the app to greet Grace” and let an agent figure out the taps? If you read .NET developers also deserve E2E!, you know e2e-dotnet can drive mobile apps. Now…
How to Implement a Distributed Recovery Ramp
A breaker closing can return full traffic to a dependency that is still fragile. How to ramp admission back gradually by giving the application control of the shared limit and leaving enforcement to…
Input Range Slider with Custom Shapes
Building on a previous idea , here is a more generic implementation of range sliders with custom shapes and tooltips. No JavaScript and a lot of cool CSS features ( border-shape , shape() ,…
putting linux on my rtx spark laptop because i don't have a microsoft account
Arch Linux ARM on the ASUS ProArt P16, with a bootable installer, published Windows comparisons, and local Qwen inference.
Memory's Legion by James A Corey
Memory's Legion is a collection of short stories and novelettes in the Expanse universe, largely taking place between the main series novels. It tells the stories of a few side characters, before or…
v0.43.0
Fixed the Back button (including mouse back buttons) taking you out of a game to the main menu – it now does nothing while you’re playing Demos now share basic gameplay statistics (turns…
pyhocon isn't always right. Here's how I measured it.
If your Python service reads .conf files, you probably use pyhocon. It’s the HOCON library Python has had for a decade: ConfigFactory.parse_file("app.conf"),…
Handling 429 Too Many Requests in Laravel Queued Jobs
A vendor API answers 429 and says how long to wait, and Laravel ignores it. Reading Retry-After in every form vendors send, releasing a job without spending its tries, and a job middleware that makes…
plaid dishtowels
Yarn: Circulo Anne Weaving Yarn . 3 towels. Woven area roughly 12"x24". Hemstitched.
Deliberate Practice and Continuous Improvement in Software Teams
Doing something for 10,000 hours doesn’t make you an expert. This post looks at what deliberate practice really means, and how Scrum and other Agile approaches can help teams keep improving.
USB Serial Number Reader
Read and copy USB serial numbers for DDX, Pico, RP2350, RP2040 and other USB devices directly in your browser.
Better procrastination through planning
The “personal touch” nature of my work means that I sometimes take it very seriously. This is problem more often than you’d think — creative work benefits from a certain lightness of attitude.…
📝 ✨ ~ Notes on: The Only SaaS Moats Left in 2026 (YouTube)
I found this to be a level-headed take on the whole "SaaS is dead" debacle that has been floating through our community, and the world in general. I LOL'ed…
[RIDGELINE] A Notebook Fit for a Walk
Ridgeline subscribers — Oh, hello. I made a notebook: ⬤. You can buy it here. I didn’t mean to make a notebook but, you see, I had no choice. A couple of years ago the Japanese edition of Kissa…
Devoxx 2026
I attended another edition of Devoxx earlier this month. It’s been the traditional highlight of my professional year ever since I first attended one in 2007, when it was still called Javapolis.…
Commenting Shell Scripts
J. Wied /* Document * ========================================================================== */ /** * 1. Correct the line height in all browsers. * 2. Prevent adjustments of font size after…
RawLink: Building a VPN Protocol From Scratch
I always wanted to give making a new VPN/proxy protocol a shot to understand what happens at the packet level to evade censorship or make a secure tunnel to a server, and to see what it takes to…
Ten-year money
A venture fund has a clock inside it. The future runs on a different one. On funding long bets, and what India's 1970 patent law teaches about them.
Columbus Half Marathon: Sick, Sleepless, 2:43:52
Several days of illness, two hours of sleep, and a half marathon run 13 to 17 beats per minute below my last two. What the watch says about the result.
The AI Middle Ground
There is no light without dark. Right now, though, it feels like everything is black and white; black or white. The way that many express themselves feels very polarised. One thing is evil: bringing…
Hack an AI: Running an AI Village at Merritt
The table tent: scan, sign up, and try to hack an AI. Last Friday I ran an AI Village at the Merritt College Cybersecurity Job Fair & Employer Day. The pitch on the table tent was three words: hack…
Modern Java - Past | Present | Future
A tour de force through Java's recent history, current features, and future developments
i took back the assistant button
the mic button on my mi tv remote only talks to google. with claude code i made it open my own voice search instead. no root, and android tried hard to stop me.
Upgrade all Homebrew casks with --greedy
brew upgrade skips casks that update themselves, like VS Code, Zed or Raycast. Add --greedy to make Homebrew upgrade them too.
The Week an AI Asked to Join the Internet Researchers
An AI agent introduced itself to the Association of Internet Researchers mailing list, and a week of argument followed. Here is what happened and how the list responded.
Leave Room to Be Interrupted
A day can be efficient and still miss the people in it. Being present costs a little slack.
Growing in Parallel
Two trees we found in Spain whose branches have fused together. They grow up in parallel but hold hands along the way. My wife and I just celebrated our five-year anniversary. It was a little surreal…
Building My Own Mailchimp Replacement: A Serverless Newsletter on AWS
Since I stood this blog up ~ten years ago, I’ve been a loyal Mailchimp user - I embedded their signup form in the footer of my site, maintained an audience of subscribed users, and had it…
The original iPhone in a browser, PS2 games on WebGPU, and 68k Mac ports
The week of 12 to 18 October on social.omgmog.net had a pile of retro software running in odd places, from the first iPhone in a browser tab to PS2 games on WebGPU. There’s also some Nintendo…
Thoughts 10/18
Week 10 I usually write parts of my weekly post throughout the week. And for some posts, I take about 30 mins to sit down and recap the week straight...
Housing is Health Care
Protecting Your Investment talks about maintenance and preventing issues like Legionella in the water system. Water Shut Off Valves, Construction Costs and Housing Affordability says in part: I would…
No. 2 Shovel Street, by Mary Borden (1949)
“Nothing is more nerve-wracking than a family conference on finance when the family finances are in a bad way,” Mary Borden writes in No. 2 Shovel Street, her 1949 novel of a widow…
Mind the Gap
Between what happens and how we react, there's a gap. What if it's not a place to choose, but to rest?
EMR isn’t only for slowing down patient care
American Chemical Society. “Forget LASIK: Safer, cheaper vision correction without lasers or incisions.” ScienceDaily, 29 September 2026.…
Two New Ebooks Now Shipping
Purchase a copy for immediate download of “That One Matt Bors Comic” and “Flong Time, No See.”
AI Updates for the Week of 10/18/26
Updates Below are some of the highlights in AI, robotics, and machine learning for this past week. Note: Because of the escalation in the velocity of AI updates, I now restrict these summary posts to…
The Hirshon “Jamaican Gravy” Hot Sauce
My Citizens! All My apologies for going dark so many months – I have been head-down constituting a brand new startup using a breakthrough AI governance architecture I crafted and you’re…
Combining Diet and Exercise Can Result in Type 2 Diabetes Remission
Over the years a number of studies have shown that intense dieting with weight loss can reverse type 2 diabetes. Another recent study came up with similar results. This time a study found that…
Lecture on Debye model for solids
I just finished preparing my undergraduate lecture on the Debye model for solids. Here are my slides . The course is a third-year course on statistical mechanics. In the previous lecture, they…
The FOSS governance hit parade
In a previous blog post, I explained how valuable I think documenting the governance of FOSS projects is and wondered if there existed some sensible templates out there to get started. I asked around…
Spying on your agents: A privacy- and security-focused guide
In this mega-post, I'm going to introduce you to why I think you should spy on your agents. Not only do I think this makes clear why privacy and security are so essential in agent setups, but also I…
Donating a Kidney: Looking Back in 2026
Life since donating a kidney, rebuilding fitness, and the annual checks. Looking back in 2026, the decision still feels right.
AKS + NAT Gateway v2 - Predictable, Static Egress IPs
Managing outbound internet traffic from a Kubernetes cluster is crucial when applications need to communicate with external APIs protected by strict firewalls. By default, Azure Kubernetes Service…
Redis: from TLS reuse to RCE
How a TLS ticket crosses the Redis cluster boundary, exposes an internal secret, and opens a separate UAF chain.
CES S3 Performance: Round-Robin vs. Bucket-Sticky Routing
CES S3 Performance: Round-Robin vs. Bucket-Sticky Routing
A fresh design for the site
I’ve given christianengvall.se a fresh design. The site had been running on the same WordPress-migrated theme for years. I rebuilt it from the ground up as a light, calm portfolio — new typography…