<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: assbuttbuttass</title><link>https://news.ycombinator.com/user?id=assbuttbuttass</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Sat, 04 Jul 2026 06:29:03 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=assbuttbuttass" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by assbuttbuttass in "Since Linux 6.9, LUKS suspend stopped wiping disk-encryption keys from memory"]]></title><description><![CDATA[
<p>> I must admit I'm a little surprised how many people seem to disable secure boot.<p>To me, secure boot is the setting that I need to remember to turn off before installing the OS, but I would be willing to be convinced otherwise</p>
]]></description><pubDate>Fri, 03 Jul 2026 12:59:06 +0000</pubDate><link>https://news.ycombinator.com/item?id=48774496</link><dc:creator>assbuttbuttass</dc:creator><comments>https://news.ycombinator.com/item?id=48774496</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48774496</guid></item><item><title><![CDATA[New comment by assbuttbuttass in "Go: Support for Generic Methods"]]></title><description><![CDATA[
<p>Hmm I wasn't familiar with join, but it looks like you still need join + fmap for the construction? I believe fmap would also need a generic method</p>
]]></description><pubDate>Thu, 28 May 2026 12:52:57 +0000</pubDate><link>https://news.ycombinator.com/item?id=48308247</link><dc:creator>assbuttbuttass</dc:creator><comments>https://news.ycombinator.com/item?id=48308247</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48308247</guid></item><item><title><![CDATA[New comment by assbuttbuttass in "Go: Support for Generic Methods"]]></title><description><![CDATA[
<p>It's (sadly) still not possible to express monads with this change, since generic methods can't implement interfaces. You'd probably want something like:<p><pre><code>    type Monad[T any] interface {
        Bind[U any](func(T) Monad[U])
    }
</code></pre>
However this requires the Bind method to be generic, which still isn't allowed in an interface</p>
]]></description><pubDate>Thu, 28 May 2026 00:21:09 +0000</pubDate><link>https://news.ycombinator.com/item?id=48302609</link><dc:creator>assbuttbuttass</dc:creator><comments>https://news.ycombinator.com/item?id=48302609</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48302609</guid></item><item><title><![CDATA[New comment by assbuttbuttass in "What color is your function? (2015)"]]></title><description><![CDATA[
<p>> Why would there be paranoia when writing blocking code with async?<p>In languages like JavaScript, you have to be careful to avoid blocking the event loop, and use something like worker threads for CPU-intensive tasks. Otherwise you will end up with long tail latencies. In Go, the runtime automatically manages this and can suspend and resume long-running goroutines.<p>> naively accessing a global value can lead to race conditions<p>Fair point that the language doesn't automatically catch this, but that's what a mutex is for. In return you get actual parallelism that can use all your CPU cores</p>
]]></description><pubDate>Tue, 26 May 2026 19:07:37 +0000</pubDate><link>https://news.ycombinator.com/item?id=48284398</link><dc:creator>assbuttbuttass</dc:creator><comments>https://news.ycombinator.com/item?id=48284398</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48284398</guid></item><item><title><![CDATA[New comment by assbuttbuttass in "What color is your function? (2015)"]]></title><description><![CDATA[
<p>> Your entire codebase is now a surface area that is at risk of being blocked<p>The point of goroutines is that they can freely block when needed. It's not like async where you have to be paranoid at every moment about writing blocking code</p>
]]></description><pubDate>Tue, 26 May 2026 17:34:19 +0000</pubDate><link>https://news.ycombinator.com/item?id=48282940</link><dc:creator>assbuttbuttass</dc:creator><comments>https://news.ycombinator.com/item?id=48282940</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48282940</guid></item><item><title><![CDATA[New comment by assbuttbuttass in "Python 3.15: features that didn't make the headlines"]]></title><description><![CDATA[
<p>Interesting, thanks</p>
]]></description><pubDate>Thu, 21 May 2026 21:00:19 +0000</pubDate><link>https://news.ycombinator.com/item?id=48228827</link><dc:creator>assbuttbuttass</dc:creator><comments>https://news.ycombinator.com/item?id=48228827</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48228827</guid></item><item><title><![CDATA[New comment by assbuttbuttass in "Python 3.15: features that didn't make the headlines"]]></title><description><![CDATA[
<p>Also C++/Java static initialization, C# static constructors, or Rust global variable initialization, ...<p>Most languages have this feature Afaik</p>
]]></description><pubDate>Thu, 21 May 2026 15:40:07 +0000</pubDate><link>https://news.ycombinator.com/item?id=48224600</link><dc:creator>assbuttbuttass</dc:creator><comments>https://news.ycombinator.com/item?id=48224600</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48224600</guid></item><item><title><![CDATA[New comment by assbuttbuttass in "Why are there both TMP and TEMP environment variables? (2015)"]]></title><description><![CDATA[
<p>I use lowercase for my personal environment variables. It works well since most programs only depend on variables in all caps. Hadn't thought of using MY_</p>
]]></description><pubDate>Sat, 02 May 2026 13:56:35 +0000</pubDate><link>https://news.ycombinator.com/item?id=47986457</link><dc:creator>assbuttbuttass</dc:creator><comments>https://news.ycombinator.com/item?id=47986457</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47986457</guid></item><item><title><![CDATA[New comment by assbuttbuttass in "Helix: A post-modern text editor"]]></title><description><![CDATA[
<p>I really want to like Helix, but I wish the developers paid more attention to performance, or were more receptive to outside contributions. Helix can really chug, even on small files, and the perception in the community seems to be "it's written in Rust so therefore it's blazingly fast :rocket-ship-emoji:"</p>
]]></description><pubDate>Sat, 07 Mar 2026 17:30:32 +0000</pubDate><link>https://news.ycombinator.com/item?id=47289600</link><dc:creator>assbuttbuttass</dc:creator><comments>https://news.ycombinator.com/item?id=47289600</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47289600</guid></item><item><title><![CDATA[New comment by assbuttbuttass in "Why Go Can't Try"]]></title><description><![CDATA[
<p>Which aspects of Rust syntax are adapted from ML? Semantics sure, but to me the syntax seems a lot more similar to C++ (e.g. semicolons, type parameters using <>, etc.)</p>
]]></description><pubDate>Mon, 02 Mar 2026 20:51:38 +0000</pubDate><link>https://news.ycombinator.com/item?id=47223887</link><dc:creator>assbuttbuttass</dc:creator><comments>https://news.ycombinator.com/item?id=47223887</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47223887</guid></item><item><title><![CDATA[New comment by assbuttbuttass in "Pentagon Adopts Incel-Speak"]]></title><description><![CDATA[
<p>The incels have grown up and now work at the Pentagon</p>
]]></description><pubDate>Sun, 01 Mar 2026 14:48:59 +0000</pubDate><link>https://news.ycombinator.com/item?id=47207212</link><dc:creator>assbuttbuttass</dc:creator><comments>https://news.ycombinator.com/item?id=47207212</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47207212</guid></item><item><title><![CDATA[New comment by assbuttbuttass in "LLMs as the new high level language"]]></title><description><![CDATA[
<p>This still doesn't help when you update your compiler to use a newer model</p>
]]></description><pubDate>Sun, 08 Feb 2026 15:10:31 +0000</pubDate><link>https://news.ycombinator.com/item?id=46934861</link><dc:creator>assbuttbuttass</dc:creator><comments>https://news.ycombinator.com/item?id=46934861</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46934861</guid></item><item><title><![CDATA[New comment by assbuttbuttass in "Guix System First Impressions as a Nix User"]]></title><description><![CDATA[
<p>Just a personal anecdote, but the errors from Guix are terrible. I had to reinstall because I couldn't figure out the scheme errors for my system config</p>
]]></description><pubDate>Sun, 01 Feb 2026 13:28:28 +0000</pubDate><link>https://news.ycombinator.com/item?id=46846077</link><dc:creator>assbuttbuttass</dc:creator><comments>https://news.ycombinator.com/item?id=46846077</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46846077</guid></item><item><title><![CDATA[New comment by assbuttbuttass in "Guix System First Impressions as a Nix User"]]></title><description><![CDATA[
<p>> the thing I hate by far the most in NixOS is .. nix<p>nix has a pretty steep learning curve, sure<p>> scheme? Aka Lisp? Seriously???<p>No nix, no scheme, got it. I wonder which language you would use?<p>> YAML files exist for a reason.<p>LMAO</p>
]]></description><pubDate>Sun, 01 Feb 2026 13:25:11 +0000</pubDate><link>https://news.ycombinator.com/item?id=46846056</link><dc:creator>assbuttbuttass</dc:creator><comments>https://news.ycombinator.com/item?id=46846056</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46846056</guid></item><item><title><![CDATA[New comment by assbuttbuttass in "Claude Code's GitHub page auto closes issues after 60 days"]]></title><description><![CDATA[
<p>Yeah, it only checks whether the last bot comment is older than 30 days, completely ignoring any human comment<p><pre><code>    if (botCommentDate < oneMonthAgo) {
        // Close the issue - it's been stale for 60+ days
</code></pre>
Hard to imagine how this got past code review...<p><a href="https://github.com/anthropics/claude-code/blob/5e3e9408feea99c66bd2344f0e19b5f25d2a6b11/.github/workflows/stale-issue-manager.yml#L97" rel="nofollow">https://github.com/anthropics/claude-code/blob/5e3e9408feea9...</a></p>
]]></description><pubDate>Sat, 31 Jan 2026 15:11:01 +0000</pubDate><link>https://news.ycombinator.com/item?id=46837323</link><dc:creator>assbuttbuttass</dc:creator><comments>https://news.ycombinator.com/item?id=46837323</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46837323</guid></item><item><title><![CDATA[New comment by assbuttbuttass in "Finding and Fixing a 50k Goroutine Leak That Nearly Killed Production"]]></title><description><![CDATA[
<p>> Writers kept sending to sub.messages. The channel grew. Memory grew.<p>Channels are buffered in Go, they will not grow unbounded.<p>> Tickers Are Not Garbage Collected<p>It used to be necessary in older versions to call ticker.Stop(), but in recent versions it's no longer necessary.<p><pre><code>    // Start goroutines
    go s.pumpMessages(ctx, sub)
    go s.heartbeat(ctx, sub)
    
    // Monitor the connection
    go s.monitorConnection(ctx, sub)
</code></pre>
The "fixed" code is still using the fire-and-forget pattern for goroutines which encourages this kind of leak. Go makes it easy to add concurrency on the caller side, so it's usually better to write blocking functions that clean up all their goroutines before returning.<p>In general this article screams AI with most of the conclusions being hallucinated. Goroutine leaks are real, but it's hard to trust any of the article's conclusions</p>
]]></description><pubDate>Sat, 17 Jan 2026 14:02:21 +0000</pubDate><link>https://news.ycombinator.com/item?id=46658129</link><dc:creator>assbuttbuttass</dc:creator><comments>https://news.ycombinator.com/item?id=46658129</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46658129</guid></item><item><title><![CDATA[New comment by assbuttbuttass in "Investigating and fixing a nasty clone bug"]]></title><description><![CDATA[
<p>I fixed an almost identical bug at work a few months ago: an internal service was calling some network device, and would only fail for IPv6-only devices. Turns out it was trying IPv4 first, and then when it failed, it would retry the request with IPv6, but the request body was already consumed so the retry failed with a cryptic error</p>
]]></description><pubDate>Tue, 06 Jan 2026 10:31:19 +0000</pubDate><link>https://news.ycombinator.com/item?id=46510730</link><dc:creator>assbuttbuttass</dc:creator><comments>https://news.ycombinator.com/item?id=46510730</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46510730</guid></item><item><title><![CDATA[New comment by assbuttbuttass in "Can I start using Wayland in 2026?"]]></title><description><![CDATA[
<p>Screen sharing works in Zoom now, you'll have to find a new cherry-picked example</p>
]]></description><pubDate>Sun, 04 Jan 2026 16:26:50 +0000</pubDate><link>https://news.ycombinator.com/item?id=46489467</link><dc:creator>assbuttbuttass</dc:creator><comments>https://news.ycombinator.com/item?id=46489467</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46489467</guid></item><item><title><![CDATA[ProjectM – Cross-Platform Music Visualization Library]]></title><description><![CDATA[
<p>Article URL: <a href="https://github.com/projectM-visualizer/projectm">https://github.com/projectM-visualizer/projectm</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=46337235">https://news.ycombinator.com/item?id=46337235</a></p>
<p>Points: 2</p>
<p># Comments: 0</p>
]]></description><pubDate>Sat, 20 Dec 2025 16:20:32 +0000</pubDate><link>https://github.com/projectM-visualizer/projectm</link><dc:creator>assbuttbuttass</dc:creator><comments>https://news.ycombinator.com/item?id=46337235</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46337235</guid></item><item><title><![CDATA[New comment by assbuttbuttass in "Avoid UUID Version 4 Primary Keys in Postgres"]]></title><description><![CDATA[
<p>At least for the Spanner DB, it's good to have a randomly-distributed primary key since it allows better sharding of the data and avoids "hot shards" when doing a lot of inserts. UUIDv4 is the typical solution, although a bit-reversed incrementing integer would work too<p><a href="https://cloud.google.com/blog/products/databases/announcing-support-for-auto-generated-keys-in-spanner" rel="nofollow">https://cloud.google.com/blog/products/databases/announcing-...</a></p>
]]></description><pubDate>Mon, 15 Dec 2025 15:13:12 +0000</pubDate><link>https://news.ycombinator.com/item?id=46275521</link><dc:creator>assbuttbuttass</dc:creator><comments>https://news.ycombinator.com/item?id=46275521</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46275521</guid></item></channel></rss>