Showing 1–15 of 53 posts

How to Evaluate a Supplement or Medicine

Published: October 12, 2026 Reading time: 11 min

A product can be real, well made, and accurately labeled without being useful for the problem I want to solve. That distinction is easy to lose. A label may emphasize a large dose, a natural source, a proprietary process, or the phrase “clinically studied.” None of those phrases alone establishes that the product improves an outcome that matters to me. This article is the product-level part of the decision process. The first article in this series asks whether an intervention makes sense. The second asks whether the situation calls for monitoring, supportive care, medication, or medical help. Here I assume I have a reason to consider a product and work through what I need to know before using it. ...

Continue Reading

How I Decide What to Do When I'm Sick

Published: October 11, 2026 Reading time: 10 min

When I feel ill, the first decision is not which medicine to take. It is what kind of response the situation warrants. That can mean monitoring at home, using supportive care, taking a medicine for a defined purpose, arranging a routine appointment, seeking prompt medical assessment, or getting emergency help. Those options are not points on a scale from weak to strong. They solve different problems. In the first article in this series, I described five questions I use to evaluate a treatment decision: what I know, what outcome I want, what supports the intervention, what acting or waiting could cost, and what would change my decision. This article turns those questions into a monitoring and escalation plan. ...

Continue Reading

Treat the Illness, Not the Habit

Published: October 10, 2026 Reading time: 10 min

In 2012, I wrote two posts about a sore throat. The first described the home remedies I was trying. The second reproduced a long prescription that included ciprofloxacin, a mucolytic, lozenges, vitamin C, herbal cough syrup, and a combination cold tablet. Two years later, I turned that experience into advice. In a Persian post I wrote that someone with a cold and sore throat “definitely” needed antibiotics. I was wrong. More importantly, I can now see how I reached the wrong conclusion. ...

Continue Reading

Coding Agents Are Becoming CI Workers. Start Sandboxing Them Like It.

Published: September 29, 2026 Reading time: 17 min

Most of the conversation about AI coding tools is still about models: which one is smarter, faster, cheaper. But the more interesting shift over the past couple of weeks has been about containment. OpenAI paused training of its most powerful models after agents breached security controls on websites during training and evaluation, and then shelved the launch of its next ChatGPT model because it “didn’t quite meet the bar in terms of staying within scope and authorisation.” One of those agents had gained unauthorised access to a Medicare statistics portal run by Services Australia, and the Australian government set up a taskforce in response. Nvidia announced an Open Agent Safety Platform built around a sandboxed agent runtime and an out-of-band watchdog. GitHub added local sandboxing and OpenTelemetry to its Copilot app, and made workflow execution protections in GitHub Actions generally available. ...

Continue Reading

After Generation: Where the Product Lives

Published: September 23, 2026 Reading time: 10 min

A laptop that serves your app is a demo. It has not yet chosen a home. Generation made the first half cheap. A short prompt produces something that compiles, looks like the idea, and runs on the machine that wrote it. The craft bar on that side of the work is ownership of code you did not type. This post is about the next scarce decision, once the demo already works: where it lives, and which jobs you are refusing to take. ...

Continue Reading

Angular Router Resources: Route Data on the Same Graph as the Screen

Published: September 22, 2026 Reading time: 12 min

A trip detail screen needs three things that do not depend on each other: the trip, the passenger, and the seat map. Each call takes about a second. The screen still makes the user wait three, because the route loads them in a line, then dumps the result into ActivatedRoute for the component to unpack. That loader sits next to a codebase that already moved. Screen state is a signal. Forms are heading toward Signal Forms. Async reads go through resource. The route is the part that still speaks resolver. ...

Continue Reading

Obsidian on a Git Research Vault

Published: September 22, 2026 Reading time: 7 min

You already have the research repo. Inbox, concepts, counterarguments, drafts — plain Markdown, versioned, ugly on purpose. Then someone mentions Obsidian, and it starts to look like the real personal-knowledge app you were supposed to be using. It is not. The repository is the system. Obsidian is one optional way to look at it. If you have never opened it: Obsidian is a local desktop app that treats a folder of Markdown files as a vault. The problem it aims at is finding and connecting notes you already wrote, without locking them inside a proprietary cloud document. If you try it later, look for “Open folder as vault,” wikilinks and backlinks, and the graph view — that is enough to recognize the product. It is not a cloud suite, not a notebook runtime, and not required infrastructure for this workflow. ...

Continue Reading

Essential Skills When Generation Is Cheap

Published: September 14, 2026 Reading time: 8 min

The senior frontend map did not get a new section called “AI.” The tools did. The roadmaps did. Job posts did. None of that changed what senior means: you make decisions the team will live with, and you own the result. What changed is how cheap it became to produce something that looks like that work. A first draft used to cost enough that it carried some thought. Now it does not. Fluent, compiling, plausible code is the default output of a short prompt. The scarce work moved up: deciding whether that draft should exist, whether it is working-but-wrong, and whether this was a place generation should have been invited at all. ...

Continue Reading

Linux VXLAN and Why CNI Exists

Published: September 10, 2026 Reading time: 8 min

Part 3 kept everything on one machine: namespaces as workloads, veth as cables, bridge or macvlan or ipvlan as the attachment. That is enough for a single Docker host. Two hosts do not share a broadcast domain just because both run Linux. Something has to carry Ethernet (or IP) across the real network between them. VXLAN is one common way to do that. CNI is something else entirely: a contract so Kubernetes (and other runtimes) can plug a pod into whatever network architecture you chose. ...

Continue Reading

I Interview Frontend Hires for Other Companies

Published: September 9, 2026 Reading time: 17 min

Partner companies ask me to help hire their frontend developers. Not “sit in on the final call.” The work starts in a room with their CTO, someone from HR, and whoever currently leads the development team. I listen to what they think they need. Then I tell them who they can actually use, read the incoming resumes, choose who is worth an interview, and run the loop. I follow the same path for my own team. The difference is who lives with the result. When I hire badly for myself, I absorb it — I mentor the person, or I carry the gap in the sprint. When I hire badly for a partner, they keep the person and I keep the reputation. ...

Continue Reading

Linux Network Namespaces and Virtual Links

Published: September 4, 2026 Reading time: 9 min

Part 1 built Layer 2 stacks on a host. Part 2 moved packets between IP networks. Both assumed one network stack: one set of interfaces, routes, and firewall rules. This post isolates whole stacks on the same machine. A network namespace is a private view of networking. A veth pair is a cable between views. A bridge, macvlan, or ipvlan is how those cables join a shared domain or a parent NIC. ...

Continue Reading

Linux as a Router: Forwarding, Policy Routing, and nftables

Published: September 1, 2026 Reading time: 9 min

In VLANs, Bonding, and Bridging, the host stayed inside one or more Layer 2 domains: bonds for uplinks, VLANs for separation, bridges for VMs. That stack answers “who shares this Ethernet segment?” This post answers a different question: how does a Linux box move packets between IP networks? That is routing — forwarding, policy routing when you have more than one path, and nftables rules that decide what is allowed to cross. ...

Continue Reading

One AI Chat Is Not a Research Workspace

Published: August 29, 2026 Reading time: 9 min

I was deep in a research thread that was not going to become a weekend post. The topic started small: juniors asking an AI to format code that Prettier already owns, or to invent a debounce helper the repo already has. It got larger fast. Sometimes the person is not a developer at all — they have an idea, they paste a warning into ChatGPT, the “build” goes green, and they never learn that the message was ESLint. The software can become more sophisticated than the operator’s mental model. That is a different problem than “juniors are lazy,” and it is too big to finish in one sitting. ...

Continue Reading

The HDMI Port Was Keeping NVIDIA Awake

Published: August 23, 2026 Reading time: 12 min

Command & Conquer Generals: Zero Hour is not a demanding game in 2026. On the internal panel of this ASUS Vivobook Pro 15, it stays quiet. Plug the same laptop into an old 1080p HDMI monitor, launch the same Wine/Lutris game with no prime-run, and the chassis warms up. The fans come on. Unplug the monitor, and it cools down again. That is a bad mental model if you assume “old game = Intel GPU = cool laptop.” On a hybrid machine, who renders the frames and who owns the physical connector are two different questions. My native HDMI port is wired to NVIDIA. As long as that monitor is connected, the RTX 3050 has to stay in the display path — even when Mesa Intel Arc is doing all the actual drawing. ...

Continue Reading

Have Influence Without Becoming the Backdoor

Published: August 19, 2026 Reading time: 11 min

Cross-team trust is one of the strongest assets a senior developer can build. People tell you what is not working before it becomes an escalation. Designers invite you into early conversations. Product asks whether an idea is feasible. Support sends you the user complaint that explains a confusing metric. You see the product beyond the boundary of your team’s backlog. Then the strength turns. Another team believes you promised a fix. Your lead learns about new work after you have started it. Your teammates feel that your review comments carry an unofficial veto. You still think you are helping, but the organization has begun treating you as the owner. ...

Continue Reading

Search