<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: fl0ki</title><link>https://news.ycombinator.com/user?id=fl0ki</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Sun, 24 May 2026 18:44:06 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=fl0ki" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by fl0ki in "Denuvo has been cracked in all single-player games it previously protected"]]></title><description><![CDATA[
<p>It's even weirder than that sometimes. For example, Subnautica on Steam has a hard dependency on Steam (whether or not you would call this DRM), but the exact same version number of Subnautica on Epic Game Store only checks for a command line flag and can easily be archived out. Despite that, it's not for sale on GOG.</p>
]]></description><pubDate>Mon, 04 May 2026 12:29:49 +0000</pubDate><link>https://news.ycombinator.com/item?id=48007864</link><dc:creator>fl0ki</dc:creator><comments>https://news.ycombinator.com/item?id=48007864</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48007864</guid></item><item><title><![CDATA[New comment by fl0ki in "Denuvo has been cracked in all single-player games it previously protected"]]></title><description><![CDATA[
<p>Workers seizing the means of production is out, workers seizing the product is in.</p>
]]></description><pubDate>Mon, 04 May 2026 12:23:23 +0000</pubDate><link>https://news.ycombinator.com/item?id=48007804</link><dc:creator>fl0ki</dc:creator><comments>https://news.ycombinator.com/item?id=48007804</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48007804</guid></item><item><title><![CDATA[New comment by fl0ki in "Embedded Rust or C firmware? Lessons from an industrial microcontroller use case"]]></title><description><![CDATA[
<p>I think a big difference is that the less unsafe you want in your own code, the more you rely on crates to provide a safe abstraction for unsafe code in a centralized place where soundness holes are likely to be found.<p>Of course it was always understood that you could have bugs in C libraries and some of them may include memory unsafety, but the culture is very different when there's no explicit way to demarcate the parts of the code most deserving of scrutiny.</p>
]]></description><pubDate>Sun, 03 May 2026 17:53:34 +0000</pubDate><link>https://news.ycombinator.com/item?id=47999528</link><dc:creator>fl0ki</dc:creator><comments>https://news.ycombinator.com/item?id=47999528</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47999528</guid></item><item><title><![CDATA[New comment by fl0ki in "The USB Situation"]]></title><description><![CDATA[
<p>I was also worried about the plastic tongue, but I have never managed to break one. In contrast, I have managed to irreperably damage the exposed metal contacts on multiple Lightning cables. If you'd asked me which should be more durable, I would have predicted Lightning, but my experience has been the exact opposite and beyond any doubt.</p>
]]></description><pubDate>Sun, 03 May 2026 14:55:42 +0000</pubDate><link>https://news.ycombinator.com/item?id=47997547</link><dc:creator>fl0ki</dc:creator><comments>https://news.ycombinator.com/item?id=47997547</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47997547</guid></item><item><title><![CDATA[New comment by fl0ki in "The USB Situation"]]></title><description><![CDATA[
<p>To be fair, even state of the art of high-speed data cables are thick and relatively inflexible. I simply wouldn't want every cable to be a high-speed cable if that meant they were all chunky. I do agree that it should be clearer at a glance what you can expect from a port or cable.</p>
]]></description><pubDate>Sun, 03 May 2026 14:54:06 +0000</pubDate><link>https://news.ycombinator.com/item?id=47997534</link><dc:creator>fl0ki</dc:creator><comments>https://news.ycombinator.com/item?id=47997534</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47997534</guid></item><item><title><![CDATA[New comment by fl0ki in "What async promised and what it delivered"]]></title><description><![CDATA[
<p>Async ruined Rust for me, even though I write exactly the kind of highly concurrent servers to which it's supposed to be perfectly suited. It degrades API surfaces to the worst case :Send+Sync+'static because APIs have to be prepared to run on multithreaded executors, and this infects your other Rust types and APIs because each of these async edges is effectively a black hole for the borrow checker.<p>Don't get me started on how you need to move "blocking" work to separate thread pools, including any work that has the potential to take some CPU time, not even necessarily IO. I get it, but it's another significant papercut, and your tail latency can be destroyed if you missed even one CPU-bound algorithm.<p>These may have been the right choices for Rust specifically, but they impair quality of life way too much in the course of normal work. A few years ago, I had hope this would all trend down, but instead it seems to have asymptoted to a miserable plateau.</p>
]]></description><pubDate>Sat, 25 Apr 2026 18:37:42 +0000</pubDate><link>https://news.ycombinator.com/item?id=47903515</link><dc:creator>fl0ki</dc:creator><comments>https://news.ycombinator.com/item?id=47903515</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47903515</guid></item><item><title><![CDATA[New comment by fl0ki in "Reinventing the pull request"]]></title><description><![CDATA[
<p>Like I said, if you prefer an integrated graphical UI, you can file feature requests against the one you prefer. What git itself does makes a lot of sense for the canonical CLI tool to do, though even then you can propose or prototype changes if you have ideas. This is how projects like jj started in the first place.</p>
]]></description><pubDate>Fri, 03 Apr 2026 17:06:54 +0000</pubDate><link>https://news.ycombinator.com/item?id=47629260</link><dc:creator>fl0ki</dc:creator><comments>https://news.ycombinator.com/item?id=47629260</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47629260</guid></item><item><title><![CDATA[New comment by fl0ki in "Reinventing the pull request"]]></title><description><![CDATA[
<p>If that's the kind of UX you prefer, please consider filing a feature request against your git UI of choice. My point is that git itself already has the core capability, and how convenient it is to use usually depends on your editor. (e.g. in vim, dd to cut a line and p to paste it in a new position is a very quick way to reorder)</p>
]]></description><pubDate>Fri, 03 Apr 2026 13:56:11 +0000</pubDate><link>https://news.ycombinator.com/item?id=47626695</link><dc:creator>fl0ki</dc:creator><comments>https://news.ycombinator.com/item?id=47626695</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47626695</guid></item><item><title><![CDATA[New comment by fl0ki in "Reinventing the pull request"]]></title><description><![CDATA[
<p>> I think it would be great to have the ability to easily reorder/modify commits while in active development<p>Take a look at `git rebase --interactive`.</p>
]]></description><pubDate>Thu, 02 Apr 2026 11:57:33 +0000</pubDate><link>https://news.ycombinator.com/item?id=47613229</link><dc:creator>fl0ki</dc:creator><comments>https://news.ycombinator.com/item?id=47613229</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47613229</guid></item><item><title><![CDATA[New comment by fl0ki in "Rob Pike’s Rules of Programming (1989)"]]></title><description><![CDATA[
<p>I only agree if you have a bounded dataset size that you know will never grow. If it can grow in future (and if you're not sure, you should assume it can), not only will many data structures and algorithms scale poorly along the way, but they will grow to dominate the bottleneck as well. By the time it no longer meets requirements and you get a trouble ticket, you're now under time pressure to develop, qualify, and deploy a new solution. You're much more likely to encounter regressions when doing this under time pressure.<p>If you've been monitoring properly, you buy yourself time before it becomes a problem as such, but in my experience most developers who don't anticipate load scaling also don't monitor properly.<p>I've seen a "senior software engineer with 20 years of industry experience" put code into production that ended up needing 30 minute timeouts for a HTTP response only 2 years after initial deployment. That is not a typo, 30 minutes. I had to take over and rewrite their "simple" code to stop the VP-level escalations our org received because of this engineering philosophy.</p>
]]></description><pubDate>Wed, 18 Mar 2026 17:12:01 +0000</pubDate><link>https://news.ycombinator.com/item?id=47428404</link><dc:creator>fl0ki</dc:creator><comments>https://news.ycombinator.com/item?id=47428404</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47428404</guid></item><item><title><![CDATA[New comment by fl0ki in "Rob Pike’s Rules of Programming (1989)"]]></title><description><![CDATA[
<p>> Fancy algorithms are slow when n is small, and n is usually small. Fancy algorithms have big constants.<p>I get where he's coming from, but I've seen people get this very wrong in practice. They use an algorithm that's indeed faster for small n, which doesn't matter because anything was going to be fast enough for small n, meanwhile their algorithm is so slow for large n that it ends up becoming a production crisis just a year later. They prematurely optimized after all, but for an n that did not need optimization, while prematurely pessimizing for an n that ultimately did need optimization.</p>
]]></description><pubDate>Wed, 18 Mar 2026 15:49:55 +0000</pubDate><link>https://news.ycombinator.com/item?id=47427292</link><dc:creator>fl0ki</dc:creator><comments>https://news.ycombinator.com/item?id=47427292</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47427292</guid></item><item><title><![CDATA[New comment by fl0ki in "An ode to bzip"]]></title><description><![CDATA[
<p>Yeah, I make it a habit to read the changelogs of every update to every direct dependency. I was anticipating this change for years, thanks for doing it!</p>
]]></description><pubDate>Sat, 14 Mar 2026 19:07:33 +0000</pubDate><link>https://news.ycombinator.com/item?id=47380024</link><dc:creator>fl0ki</dc:creator><comments>https://news.ycombinator.com/item?id=47380024</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47380024</guid></item><item><title><![CDATA[New comment by fl0ki in "I beg you to follow Crocker's Rules, even if you will be rude to me"]]></title><description><![CDATA[
<p>My best professional relationships are between people who are confident enough to take direct feedback and appreciate it rather than resent it.<p>However, my worst professional relationships are with people who will rebuke your feedback whether you Crocker it or not. If you're direct, they'll say you should have been more diplomatic about it, but if you're diplomatic, they'll say you're being dishonest and should have been direct. There is no right way to approach it, these people will always find a way to criticize the delivery, and to delegitimize the feedback because of it.</p>
]]></description><pubDate>Sat, 14 Mar 2026 18:12:17 +0000</pubDate><link>https://news.ycombinator.com/item?id=47379418</link><dc:creator>fl0ki</dc:creator><comments>https://news.ycombinator.com/item?id=47379418</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47379418</guid></item><item><title><![CDATA[New comment by fl0ki in "An ode to bzip"]]></title><description><![CDATA[
<p>This seems as good a thread as any to mention that the gzhttp package in klauspost/compress for Go now supports zstd on both server handlers and client transports. Strangely this was added in a patch version instead of a minor version despite both expanding the API surface and changing default behavior.<p><a href="https://github.com/klauspost/compress/releases/tag/v1.18.4" rel="nofollow">https://github.com/klauspost/compress/releases/tag/v1.18.4</a></p>
]]></description><pubDate>Sat, 14 Mar 2026 18:04:37 +0000</pubDate><link>https://news.ycombinator.com/item?id=47379339</link><dc:creator>fl0ki</dc:creator><comments>https://news.ycombinator.com/item?id=47379339</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47379339</guid></item><item><title><![CDATA[New comment by fl0ki in "The MacBook Neo"]]></title><description><![CDATA[
<p>Try Sikarugir for PC gaming on macOS. It runs everything I've cared to try, with little or no tweaking.<p><a href="https://github.com/Sikarugir-App/Sikarugir" rel="nofollow">https://github.com/Sikarugir-App/Sikarugir</a></p>
]]></description><pubDate>Wed, 11 Mar 2026 20:45:27 +0000</pubDate><link>https://news.ycombinator.com/item?id=47341409</link><dc:creator>fl0ki</dc:creator><comments>https://news.ycombinator.com/item?id=47341409</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47341409</guid></item><item><title><![CDATA[New comment by fl0ki in "The MacBook Neo"]]></title><description><![CDATA[
<p>I think the big difference is that if you just want to optimize for some objective, it's usually very clear how to do that from Apple's options, so there's not much research to be done. It can still be challenging to choose what's the best value when it's your own money, but at least you know what you're getting, and the quality hasn't been a concern for years.</p>
]]></description><pubDate>Wed, 11 Mar 2026 20:34:01 +0000</pubDate><link>https://news.ycombinator.com/item?id=47341188</link><dc:creator>fl0ki</dc:creator><comments>https://news.ycombinator.com/item?id=47341188</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47341188</guid></item><item><title><![CDATA[New comment by fl0ki in "UUID package coming to Go standard library"]]></title><description><![CDATA[
<p>"Former Googlers" were probably used to using protobuf so they could get from a function call straight out to a struct of the right schema. It's one level of abstraction higher and near-universal in Google, especially in internal-to-internal communication edges.<p>I don't think it's a strong hiring signal if they weren't already familiar with APIs for (de)serialization in between, because if they're worth anything then they'll just pick that up from documentation and be done with it.</p>
]]></description><pubDate>Sat, 07 Mar 2026 15:33:16 +0000</pubDate><link>https://news.ycombinator.com/item?id=47288529</link><dc:creator>fl0ki</dc:creator><comments>https://news.ycombinator.com/item?id=47288529</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47288529</guid></item><item><title><![CDATA[New comment by fl0ki in "Apple Studio Display and Studio Display XDR"]]></title><description><![CDATA[
<p>I've been using a work-issued one since 2018, and my only complaint in 2026 is that some of its rear USB ports are failing.</p>
]]></description><pubDate>Tue, 03 Mar 2026 16:52:08 +0000</pubDate><link>https://news.ycombinator.com/item?id=47235181</link><dc:creator>fl0ki</dc:creator><comments>https://news.ycombinator.com/item?id=47235181</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47235181</guid></item><item><title><![CDATA[New comment by fl0ki in "MacBook Pro with M5 Pro and M5 Max"]]></title><description><![CDATA[
<p>For those who don't already know, you can get a lot of PC gaming performance out of these machines using Sikarugir. You can install all of Steam via winetricks and go from there, or launch DRM-free games directly.<p><a href="https://github.com/Sikarugir-App/Sikarugir" rel="nofollow">https://github.com/Sikarugir-App/Sikarugir</a></p>
]]></description><pubDate>Tue, 03 Mar 2026 16:21:50 +0000</pubDate><link>https://news.ycombinator.com/item?id=47234734</link><dc:creator>fl0ki</dc:creator><comments>https://news.ycombinator.com/item?id=47234734</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47234734</guid></item><item><title><![CDATA[New comment by fl0ki in "Gemini 3.1 Pro"]]></title><description><![CDATA[
<p>"I'm now completely immersed in the problem" is my new catchphrase, thanks for sharing.</p>
]]></description><pubDate>Fri, 20 Feb 2026 02:07:24 +0000</pubDate><link>https://news.ycombinator.com/item?id=47082778</link><dc:creator>fl0ki</dc:creator><comments>https://news.ycombinator.com/item?id=47082778</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47082778</guid></item></channel></rss>