Blog
Writing on GPUs, LLMs, MLOps, Kubernetes — and mindset · 3525 posts
#2026-03 765#english 592#culture 264#deep-dive 254#kubernetes 249#career 229#ai 219#llm 209#devops 196#2026-04 146#security 143#database 114#observability 113#communication 109#history 107#architecture 100#productivity 96#finance 88#economy 84#mindset 81#psychology 80#ai-papers 79#food 78#it 78#travel 78#deep-learning 77#japanese 77#networking 77#performance 72#business-travel 70#linux 70#gpu 69#ai-agent 66#cs-fundamentals 63#postgresql 61#rag 58#self-improvement 55#learning 53#mlops 53#python 52
Losses Hurt Twice as Much as Gains — The Prospect Theory Original and the 45 Years Since
The sentence "people feel the pain of a loss twice as strongly as the pleasure of a gain" has become a fixture of negotiation textbooks and pricing memos. Open the source — the 1979 Econometrica paper by Kahneman and Tve
2026-07-26 · 13 min read #psychology#paper-review#behavioral-economics#decision-making#moneyWhy Romance Still Grips You When You Already Know the Ending — The Grammar of Genre Romance
Romance is the one popular genre whose ending is settled in advance — and that is not a weakness but a contract with the reader. Here are the genre conventions of HEA and HFN, the eight elements Pamela Regis catalogued a
2026-07-26 · 12 min read #storytelling#romance#fiction#narrative#cultureHow to Read Container Image Vulnerability Scan Results — The Real Way to Turn Hundreds of Criticals Into Zero
Run an image scanner for the first time and you get thousands of vulnerabilities, a good number of them Critical. Hand that report to the team as is and nothing happens. This post starts from the fact that all a scanner
2026-07-26 · 13 min read #security#container#docker#trivy#kubernetesSQL Injection and Parameter Binding — The Places That Still Break When You Use an ORM
The first thing people search for as a defense against SQL injection is an escaping function, but the right answer is parameter binding. Escaping is an attempt to make a value safe inside a string literal, while binding
2026-07-26 · 16 min read #security#sql#database#orm#pythonAlerting That Does Not Wake You at 3AM — Symptom-Based Alerts and Burn Rate in Practice
On-call collapses not because there are too few alerts but because there are far too many. This post starts with the mechanism by which alert fatigue makes you miss real incidents, then covers the principle of paging onl
2026-07-26 · 13 min read #observability#alerting#slo#error-budget#prometheusScience Fiction Does Not Predict the Future — Reading SF as Thought Experiment
Measure science fiction by its hit rate and the genre turns dull instantly. Ursula K. Le Guin insisted that SF is not predictive but descriptive, and Darko Suvin gave the method a name: the novum. Here is the discipline
2026-07-26 · 14 min read #storytelling#science-fiction#fiction#narrative#cultureFixing Kubernetes Pod Pending — How to Read the Rejection Reason the Scheduler Left Behind
When a Pod sits in Pending for minutes on end, the scheduler has already recorded the rejection reason in an event. We start with how to decode precisely that sentence beginning with 0/5 nodes are available, then rule ou
2026-07-26 · 14 min read #kubernetes#scheduler#pending#troubleshooting#autoscalingDependency Supply Chain Security — The Things a Lockfile Does Not Block
You wrote a dozen or so packages into package.json, yet more than a thousand get installed. This post explains why transitive dependencies are riskier than direct ones, and uses a real lockfile entry to show why an integ
2026-07-26 · 14 min read #security#supply-chain#npm#sbom#ciDesigning Structured Logging — Logs That Actually Help During an Incident
If you have ever given up while grepping logs in the middle of an incident, the log design is wrong. This post covers how to separate logs humans read from logs machines read, which fields must appear on every single lin
2026-07-26 · 12 min read #observability#logging#structured-logging#opentelemetry#incident-responseConnection refused vs. timeout — narrowing the cause at the TCP level
When a connection fails, the terminal hands back one of two messages. Connection refused means the peer returned an RST; timeout means nothing at all answered the SYN you sent. That one-line difference almost entirely de
2026-07-26 · 12 min read #network#tcp#troubleshooting#linux#kubernetesSpace Left but No space left on device — inode exhaustion, deleted open files, reserved blocks
df shows free space, yet a single file cannot be created and ENOSPC comes back. The cause is almost always one of five: inode exhaustion, files that were deleted but are still held open by a process, the reserved blocks
2026-07-26 · 17 min read #linux#filesystem#ext4#troubleshooting#storageping works but only large requests hang — dissecting MTU, MSS and the PMTUD blackhole
When small requests go through fine but only large responses stall halfway, it is almost always a path MTU problem. TCP advertises MSS based on the interface MTU, and when a narrower segment sits somewhere along the path
2026-07-26 · 14 min read #network#mtu#tcp#vpn#kubernetesCPU steal time and throttling — telling apart the st column in top, burstable credits, and CFS quota
CPU utilization reads 40%, yet p99 latency spikes and the st column in top shows 20%. Three completely different causes hide behind these look-alike symptoms: steal time, where the hypervisor does not hand a physical CPU
2026-07-26 · 17 min read #linux#cpu#cgroups#kubernetes#cloudHow to End Things Well — The Skill Nobody Taught Us
We learn how to start things countless times, but nobody ever taught us how to end them. This post looks at the structure by which the sunk cost fallacy keeps us pinned down, the one-sentence question Andy Grove asked at
2026-07-26 · 12 min read #mindset#endings#sunk-cost#decision-making#retrospectiveWhen the OOM Killer Kills a Process — From Decoding the dmesg Report to Telling cgroup OOM Apart ♪ Listenable
A process vanished without leaving a single log line and the exit code is 137. This post covers how to read the dmesg report left behind by the kernel OOM Killer one line at a time, how the badness score is computed and
2026-07-26 · 18 min read #linux#memory#oom#cgroups#kubernetesKeep One Thing You Are Bad At — The Practice of Living as an Amateur
Mention a hobby today and the talk about monetizing it follows within a minute. But the word amateur never meant someone short on skill. It came from the Latin amator, a person who does it out of love. Through the recove
2026-07-26 · 11 min read #mindset#healing#hobby#recovery#identityThe Questions Distributed Tracing Actually Answers — Spans, Sampling, and Where the Time Went
Tracing is what you need when the reports of slowness keep coming in but you have no idea which of ten services is the culprit. Starting from the structure of traces, spans, and context propagation, this post lays out wh
2026-07-26 · 15 min read #observability#distributed-tracing#opentelemetry#tail-sampling#performanceLLM API Cost Optimization — Break-Even Math for Output Tokens, Prompt Caching and Routing
Cutting an LLM API bill in half is arithmetic, not intuition. Because output tokens cost several times what input tokens cost, the biggest lever is almost always controlling output length, with prompt caching next. This
2026-07-26 · 12 min read #llm#cost-optimization#prompt-caching#rag#model-routingStabilizing LLM Structured Output — Four Layers of Defense Against Parse Failures
A layered treatment for the problem where you ask for JSON and get it wrapped in a markdown fence, followed by an explanatory sentence, or cut off at the token ceiling. Classify the failure types first, then stack the de
2026-07-26 · 12 min read #llm#structured-output#json-schema#constrained-decoding#validationdig works but the application fails — start by checking the DNS resolution order
A situation where dig answers normally but only the application cannot find the name is not a bug, it is structure. dig and nslookup bypass /etc/hosts and nsswitch.conf entirely and query the resolver directly. This post
2026-07-26 · 14 min read #network#dns#linux#kubernetes#troubleshooting