<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Open-Source on vnykmshr</title><link>https://blog.vnykmshr.com/writing/tags/open-source/</link><description>Recent content in Open-Source on vnykmshr</description><generator>Hugo</generator><language>en</language><lastBuildDate>Fri, 27 Mar 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://blog.vnykmshr.com/writing/tags/open-source/index.xml" rel="self" type="application/rss+xml"/><item><title>Bug 1465</title><link>https://blog.vnykmshr.com/writing/bug-1465/</link><pubDate>Fri, 27 Mar 2026 00:00:00 +0000</pubDate><guid>https://blog.vnykmshr.com/writing/bug-1465/</guid><description>&lt;p&gt;Three bugs walk into a triage queue.&lt;/p&gt;
&lt;p&gt;A stack overflow. Symlink loop in tarball parsing, unbounded recursion, process crashes. Build a PoC, trace the call chain, write the report.&lt;/p&gt;
&lt;p&gt;&amp;ldquo;Duplicate of #1465&amp;rdquo;&lt;/p&gt;
&lt;p&gt;Memory exhaustion. String replace in an expression engine, exponential allocation, no cost limit. Different repo, different CWE, different everything. PoC, trace, report.&lt;/p&gt;
&lt;p&gt;&amp;ldquo;Duplicate of #1465&amp;rdquo;&lt;/p&gt;
&lt;p&gt;SQL injection. Template parameter escaping that wraps but doesn&amp;rsquo;t escape. Different repo again. PoC, trace, report.&lt;/p&gt;</description></item><item><title>What compounds</title><link>https://blog.vnykmshr.com/writing/what-compounds/</link><pubDate>Fri, 20 Mar 2026 00:00:00 +0000</pubDate><guid>https://blog.vnykmshr.com/writing/what-compounds/</guid><description>&lt;p&gt;Something shifted. Not the AI thing &amp;ndash; everyone noticed that. What counts as proof.&lt;/p&gt;
&lt;p&gt;Used to be your resume, your title, the logo. Still opens doors. But the gap between &amp;ldquo;I can do X&amp;rdquo; and &amp;ldquo;here&amp;rsquo;s the commit&amp;rdquo; got wide enough that both sides feel it. A merged PR has a commit hash. A CVE has a number. A library someone depends on has a git log. Credentials got easier to claim. Artifacts didn&amp;rsquo;t.&lt;/p&gt;</description></item><item><title>The invitation</title><link>https://blog.vnykmshr.com/writing/the-invitation/</link><pubDate>Wed, 18 Mar 2026 00:00:00 +0000</pubDate><guid>https://blog.vnykmshr.com/writing/the-invitation/</guid><description>&lt;p&gt;First PR to an open source project, you&amp;rsquo;re proving you can read. That you studied the codebase, matched the style, understood why things are the way they are before suggesting they should be different. Most people skip this. Most PRs show it.&lt;/p&gt;
&lt;p&gt;The second and third, you&amp;rsquo;re proving you&amp;rsquo;ll stay. Maintainers have seen hundreds of drive-by contributions. One PR, gone forever. The ones who come back are rare enough to notice.&lt;/p&gt;</description></item><item><title>The loop</title><link>https://blog.vnykmshr.com/writing/the-loop/</link><pubDate>Sat, 14 Mar 2026 00:00:00 +0000</pubDate><guid>https://blog.vnykmshr.com/writing/the-loop/</guid><description>&lt;p&gt;A handful of Go libraries on GitHub. MIT licensed, anyone can use them for anything, that was always the deal.&lt;/p&gt;
&lt;p&gt;But the deal isn&amp;rsquo;t about the license. It&amp;rsquo;s about the loop.&lt;/p&gt;
&lt;p&gt;Someone uses your thing, hits an edge case, opens an issue. Sometimes they send a fix. You review it, learn how people actually use what you built, catch a pattern you missed. That back and forth is the whole point. Code just sits there without it.&lt;/p&gt;</description></item><item><title>autobreaker: adaptive circuit breaking</title><link>https://blog.vnykmshr.com/writing/autobreaker/</link><pubDate>Sat, 15 Nov 2025 00:00:00 +0000</pubDate><guid>https://blog.vnykmshr.com/writing/autobreaker/</guid><description>&lt;p&gt;The &lt;a href="https://blog.vnykmshr.com/writing/circuit-breaking-go/"&gt;circuit breaker post&lt;/a&gt; from last year used a common trigger: trip after N consecutive failures. This works when traffic is predictable. It falls apart when it&amp;rsquo;s not.&lt;/p&gt;
&lt;p&gt;At 10,000 requests per second, 10 failures is noise &amp;ndash; a 0.1% error rate. A static threshold trips the circuit on what&amp;rsquo;s essentially a healthy service. At 10 requests per second, 10 failures is total collapse &amp;ndash; 100% error rate over one interval. The same threshold that false-positives under high traffic is too slow to protect under low traffic.&lt;/p&gt;</description></item><item><title>ACCEPTed. COMMITed. RESOLVEd.</title><link>https://blog.vnykmshr.com/writing/accepted-committed-resolved/</link><pubDate>Fri, 11 Apr 2014 00:00:00 +0000</pubDate><guid>https://blog.vnykmshr.com/writing/accepted-committed-resolved/</guid><description>&lt;p&gt;I came across Adrian Hands&amp;rsquo; story through a blog post. I don&amp;rsquo;t remember which one. The details stayed.&lt;/p&gt;
&lt;p&gt;Adrian was a developer with ALS. By the time he wrote his last patch, his hands were gone. He built a Morse code input rig &amp;ndash; a Darci USB emulator wrapped in PVC pipe strapped to his knee, paddles attached, tapping out dots and dashes with the last muscles that still worked. That was his keyboard.&lt;/p&gt;</description></item></channel></rss>