<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Hacker News: rsc</title><link>https://news.ycombinator.com/user?id=rsc</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Sat, 04 Apr 2026 01:28:49 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=rsc" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by rsc in "Rob Pike’s Rules of Programming (1989)"]]></title><description><![CDATA[
<p>Worth noting these were not written as rules of programming generally but rules specifically targeted at complexity. They are lifted from the "Complexity" section of Rob's "Notes on Programming in C".<p><a href="https://www.lysator.liu.se/c/pikestyle.html" rel="nofollow">https://www.lysator.liu.se/c/pikestyle.html</a>
<a href="http://www.literateprogramming.com/pikestyle.pdf" rel="nofollow">http://www.literateprogramming.com/pikestyle.pdf</a></p>
]]></description><pubDate>Wed, 18 Mar 2026 20:59:14 +0000</pubDate><link>https://news.ycombinator.com/item?id=47431376</link><dc:creator>rsc</dc:creator><comments>https://news.ycombinator.com/item?id=47431376</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47431376</guid></item><item><title><![CDATA[New comment by rsc in "Claude Opus 4.6"]]></title><description><![CDATA[
<p>Raises hand.</p>
]]></description><pubDate>Thu, 05 Feb 2026 21:46:35 +0000</pubDate><link>https://news.ycombinator.com/item?id=46905829</link><dc:creator>rsc</dc:creator><comments>https://news.ycombinator.com/item?id=46905829</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46905829</guid></item><item><title><![CDATA[New comment by rsc in "Improved Gemini 2.5 Flash and Flash-Lite"]]></title><description><![CDATA[
<p>FWIW, the versions are not semver but they do follow a defined and regular version schema: <a href="https://ai.google.dev/gemini-api/docs/models#model-versions" rel="nofollow">https://ai.google.dev/gemini-api/docs/models#model-versions</a>.</p>
]]></description><pubDate>Thu, 25 Sep 2025 18:00:27 +0000</pubDate><link>https://news.ycombinator.com/item?id=45376454</link><dc:creator>rsc</dc:creator><comments>https://news.ycombinator.com/item?id=45376454</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45376454</guid></item><item><title><![CDATA[New comment by rsc in "What is the go proxy even doing?"]]></title><description><![CDATA[
<p>[Also posted to Lobsters: <a href="https://lobste.rs/s/ms94ja/what_is_go_proxy_even_doing#c_vz2ujr" rel="nofollow">https://lobste.rs/s/ms94ja/what_is_go_proxy_even_doing#c_vz2...</a>]<p>I apologize for the traffic. We clearly need to look at the “thundering herd” you are observing. That shouldn’t be happening at all.<p>Separately, the bug we fixed last time were about repeatedly cloning a repo in sequence even if it was unchanged, not about redundant parallel fetches. We fixed that only for Git, because Git makes it very easy to look at a branch or tag and get the tree hash, without downloading the full repo. This is exposed as the go command’s -reuse flag. The relevant Git code is at <a href="https://go.dev/src/cmd/go/internal/modfetch/codehost/git.go#L183" rel="nofollow">https://go.dev/src/cmd/go/internal/modfetch/codehost/git.go#...</a> (CheckReuse).<p>What we need from any VCS to implement the reuse check is a cheap way to download a list of every tag and branch along with a cryptographic file tree checksum for each one, without doing a full repo clone. At the time, I convinced myself Mercurial did not support this. Perhaps I was wrong or perhaps it does now. If anyone can help us understand how that works, we could implement the -reuse flag for Mercurial too. (Any other VCSs would be great too, but Git is #1 by a very wide margin and I believe Mercurial is #2 also by a wide margin.)<p>Again, apologies for all the traffic, and thanks to Ted for the excellent analysis. We will look into both.</p>
]]></description><pubDate>Fri, 15 Aug 2025 11:51:30 +0000</pubDate><link>https://news.ycombinator.com/item?id=44911216</link><dc:creator>rsc</dc:creator><comments>https://news.ycombinator.com/item?id=44911216</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44911216</guid></item><item><title><![CDATA[New comment by rsc in "How to store Go pointers from assembly"]]></title><description><![CDATA[
<p>This is a strange and dangerous thing to try to do from assembly. In particular, all these details about write barriers being hand-coded in the assembly are subject to change from release to release.<p>Better to structure your code so that you do the pointer manipulation (and allocation) in Go code instead, and leave assembly only for what is absolutely necessary for performance (usually things like bulk operations, special instructions, and so on).</p>
]]></description><pubDate>Mon, 23 Jun 2025 18:16:20 +0000</pubDate><link>https://news.ycombinator.com/item?id=44358503</link><dc:creator>rsc</dc:creator><comments>https://news.ycombinator.com/item?id=44358503</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44358503</guid></item><item><title><![CDATA[New comment by rsc in "Leaving Google"]]></title><description><![CDATA[
<p>The parent comment is the first time I've said anything publicly (it has only been a few weeks). I didn't feel like it needed an announcement, but since it came up, it seemed worth correcting. It's not a state secret. :-)<p>In my August announcement, I was careful to say I wasn't leaving the Go <i>project</i>. I'm still involved with the Go project and expect to keep being involved. I'm just not officially on the Go team at Google anymore. Stepping back from the actual team to give others room to lead always seemed to me both likely and appropriate.</p>
]]></description><pubDate>Tue, 13 May 2025 15:28:26 +0000</pubDate><link>https://news.ycombinator.com/item?id=43974015</link><dc:creator>rsc</dc:creator><comments>https://news.ycombinator.com/item?id=43974015</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43974015</guid></item><item><title><![CDATA[New comment by rsc in "Leaving Google"]]></title><description><![CDATA[
<p>Officially, I have left the Go team too; I started on a new team at Google a few weeks ago. I still use Go quite a bit, I still talk to people on the Go team regularly, and you will still see the occasional code change, code review, or blog post from me. Most importantly, I have high confidence that the team we built will do an excellent job continuing the work.</p>
]]></description><pubDate>Tue, 13 May 2025 14:30:03 +0000</pubDate><link>https://news.ycombinator.com/item?id=43973388</link><dc:creator>rsc</dc:creator><comments>https://news.ycombinator.com/item?id=43973388</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43973388</guid></item><item><title><![CDATA[New comment by rsc in "Optimizing Heap Allocations in Go: A Case Study"]]></title><description><![CDATA[
<p>Those are semantically different (one is nil and one is not) but neither allocates.</p>
]]></description><pubDate>Tue, 22 Apr 2025 14:39:30 +0000</pubDate><link>https://news.ycombinator.com/item?id=43762765</link><dc:creator>rsc</dc:creator><comments>https://news.ycombinator.com/item?id=43762765</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43762765</guid></item><item><title><![CDATA[New comment by rsc in "Porting Tailscale to Plan 9"]]></title><description><![CDATA[
<p>Not sure what the betrayal is? He contributed a quote for yesterday's post. <a href="https://tailscale.com/blog/tailscale-enterprise-plan-9-support" rel="nofollow">https://tailscale.com/blog/tailscale-enterprise-plan-9-suppo...</a></p>
]]></description><pubDate>Wed, 02 Apr 2025 16:35:59 +0000</pubDate><link>https://news.ycombinator.com/item?id=43558542</link><dc:creator>rsc</dc:creator><comments>https://news.ycombinator.com/item?id=43558542</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43558542</guid></item><item><title><![CDATA[New comment by rsc in "Porting Tailscale to Plan 9"]]></title><description><![CDATA[
<p>We had to do some Plan 9 work, which makes sense when doing something new, but the actual Tailscale implementation is far _less_ work than for other Unixes.</p>
]]></description><pubDate>Wed, 02 Apr 2025 16:33:39 +0000</pubDate><link>https://news.ycombinator.com/item?id=43558516</link><dc:creator>rsc</dc:creator><comments>https://news.ycombinator.com/item?id=43558516</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43558516</guid></item><item><title><![CDATA[New comment by rsc in "Show HN: Chez Scheme txtar port from Go"]]></title><description><![CDATA[
<p><a href="https://docs.rs/txtar/latest/txtar/" rel="nofollow">https://docs.rs/txtar/latest/txtar/</a></p>
]]></description><pubDate>Sun, 09 Feb 2025 04:59:45 +0000</pubDate><link>https://news.ycombinator.com/item?id=42988576</link><dc:creator>rsc</dc:creator><comments>https://news.ycombinator.com/item?id=42988576</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42988576</guid></item><item><title><![CDATA[New comment by rsc in "Cracking a 512-bit DKIM key for less than $8 in the cloud"]]></title><description><![CDATA[
<p>In the link in the parent comment. :-)</p>
]]></description><pubDate>Wed, 08 Jan 2025 14:13:19 +0000</pubDate><link>https://news.ycombinator.com/item?id=42634428</link><dc:creator>rsc</dc:creator><comments>https://news.ycombinator.com/item?id=42634428</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42634428</guid></item><item><title><![CDATA[New comment by rsc in "Jia Tanning Go Code"]]></title><description><![CDATA[
<p>People who go install it get an error that it's not a valid source tree at all.</p>
]]></description><pubDate>Mon, 28 Oct 2024 18:12:52 +0000</pubDate><link>https://news.ycombinator.com/item?id=41974251</link><dc:creator>rsc</dc:creator><comments>https://news.ycombinator.com/item?id=41974251</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41974251</guid></item><item><title><![CDATA[New comment by rsc in "Jia Tanning Go Code"]]></title><description><![CDATA[
<p>While you can create and build a local package with U+FE0E in its file name, you cannot create or download a module using that character in a file name. So you could run this attack in someone's top-level repo but not in any of their dependencies. That's something at least.<p><a href="https://go.googlesource.com/mod/+/refs/heads/master/module/module.go#58" rel="nofollow">https://go.googlesource.com/mod/+/refs/heads/master/module/m...</a>
<a href="https://go.googlesource.com/mod/+/refs/heads/master/module/module.go#272" rel="nofollow">https://go.googlesource.com/mod/+/refs/heads/master/module/m...</a></p>
]]></description><pubDate>Mon, 28 Oct 2024 14:00:25 +0000</pubDate><link>https://news.ycombinator.com/item?id=41971076</link><dc:creator>rsc</dc:creator><comments>https://news.ycombinator.com/item?id=41971076</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41971076</guid></item><item><title><![CDATA[New comment by rsc in "Show HN: Go Plan9 Memo"]]></title><description><![CDATA[
<p>No. It's just Go assembly.
(It happens to be a Plan 9-derived syntax, but we call it Go assembly.)
See <a href="https://go.dev/doc/asm" rel="nofollow">https://go.dev/doc/asm</a>.</p>
]]></description><pubDate>Fri, 18 Oct 2024 19:44:05 +0000</pubDate><link>https://news.ycombinator.com/item?id=41882801</link><dc:creator>rsc</dc:creator><comments>https://news.ycombinator.com/item?id=41882801</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41882801</guid></item><item><title><![CDATA[New comment by rsc in "Russ Cox is stepping down as the Go tech lead"]]></title><description><![CDATA[
<p>I replied to the other copy of this comment: <a href="https://news.ycombinator.com/item?id=41136122">https://news.ycombinator.com/item?id=41136122</a>.</p>
]]></description><pubDate>Fri, 02 Aug 2024 17:55:54 +0000</pubDate><link>https://news.ycombinator.com/item?id=41141029</link><dc:creator>rsc</dc:creator><comments>https://news.ycombinator.com/item?id=41141029</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41141029</guid></item><item><title><![CDATA[New comment by rsc in "Russ Cox is stepping down as the Go tech lead"]]></title><description><![CDATA[
<p>This is definitely not true. "Inside of Google" would have been just linux/amd64 for a very long time. Now it includes linux/arm64 too, but that port happened before Google needed it. And all the other ports are not used inside of Google, except maybe the Mac port if you count developers laptops.</p>
]]></description><pubDate>Fri, 02 Aug 2024 17:54:17 +0000</pubDate><link>https://news.ycombinator.com/item?id=41141002</link><dc:creator>rsc</dc:creator><comments>https://news.ycombinator.com/item?id=41141002</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41141002</guid></item><item><title><![CDATA[New comment by rsc in "Russ Cox is stepping down as the Go tech lead"]]></title><description><![CDATA[
<p>If you just want to run Go programs on Alpine, it works fine. (I put some effort in back in Go 1.21 to make sure that the downloaded binary toolchains for Linux even work fine on Alpine.)<p>If you want to use c-shared mode and dlopen, then yes <i>that</i> only works with glibc, but that mode barely works at all anyway. It's not actively supported at all.</p>
]]></description><pubDate>Fri, 02 Aug 2024 17:52:19 +0000</pubDate><link>https://news.ycombinator.com/item?id=41140991</link><dc:creator>rsc</dc:creator><comments>https://news.ycombinator.com/item?id=41140991</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41140991</guid></item><item><title><![CDATA[New comment by rsc in "Russ Cox is stepping down as the Go tech lead"]]></title><description><![CDATA[
<p>Happy to hear that. Still going to write and think. :-)</p>
]]></description><pubDate>Fri, 02 Aug 2024 17:49:27 +0000</pubDate><link>https://news.ycombinator.com/item?id=41140963</link><dc:creator>rsc</dc:creator><comments>https://news.ycombinator.com/item?id=41140963</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41140963</guid></item><item><title><![CDATA[New comment by rsc in "Russ Cox is stepping down as the Go tech lead"]]></title><description><![CDATA[
<p><a href="https://www.youtube.com/watch?v=ek1yjc9sSag&list=PLrwpzH1_9ufMLOB6BAdzO08Qx-9jHGfGg" rel="nofollow">https://www.youtube.com/watch?v=ek1yjc9sSag&list=PLrwpzH1_9u...</a><p>I don't intend to make more of those, but that was a lot of fun.</p>
]]></description><pubDate>Fri, 02 Aug 2024 17:48:34 +0000</pubDate><link>https://news.ycombinator.com/item?id=41140958</link><dc:creator>rsc</dc:creator><comments>https://news.ycombinator.com/item?id=41140958</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41140958</guid></item></channel></rss>