<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: nitnelave</title><link>https://news.ycombinator.com/user?id=nitnelave</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Tue, 26 May 2026 19:59:35 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=nitnelave" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by nitnelave in "How Shamir's Secret Sharing Works"]]></title><description><![CDATA[
<p>Two points make a line in any number of dimensions.</p>
]]></description><pubDate>Tue, 26 May 2026 11:01:05 +0000</pubDate><link>https://news.ycombinator.com/item?id=48278002</link><dc:creator>nitnelave</dc:creator><comments>https://news.ycombinator.com/item?id=48278002</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48278002</guid></item><item><title><![CDATA[Bit warden CLI nom package compromised]]></title><description><![CDATA[
<p>Article URL: <a href="https://gist.github.com/N3mes1s/9c210b64760390f1ca2c451100a5ec99">https://gist.github.com/N3mes1s/9c210b64760390f1ca2c451100a5ec99</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=47875810">https://news.ycombinator.com/item?id=47875810</a></p>
<p>Points: 1</p>
<p># Comments: 0</p>
]]></description><pubDate>Thu, 23 Apr 2026 13:55:57 +0000</pubDate><link>https://gist.github.com/N3mes1s/9c210b64760390f1ca2c451100a5ec99</link><dc:creator>nitnelave</dc:creator><comments>https://news.ycombinator.com/item?id=47875810</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47875810</guid></item><item><title><![CDATA[New comment by nitnelave in "Claude Code Unpacked : A visual guide"]]></title><description><![CDATA[
<p>Ah, good well-architected code, finally... With most of the code in utils/other :D</p>
]]></description><pubDate>Wed, 01 Apr 2026 08:27:13 +0000</pubDate><link>https://news.ycombinator.com/item?id=47598315</link><dc:creator>nitnelave</dc:creator><comments>https://news.ycombinator.com/item?id=47598315</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47598315</guid></item><item><title><![CDATA[New comment by nitnelave in "How many options fit into a boolean?"]]></title><description><![CDATA[
<p>I guess I was missing the NPE: <a href="https://ideone.com/rp4Nvv" rel="nofollow">https://ideone.com/rp4Nvv</a><p>Optional.of(null) throws an NPE</p>
]]></description><pubDate>Wed, 11 Mar 2026 09:07:14 +0000</pubDate><link>https://news.ycombinator.com/item?id=47333274</link><dc:creator>nitnelave</dc:creator><comments>https://news.ycombinator.com/item?id=47333274</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47333274</guid></item><item><title><![CDATA[New comment by nitnelave in "How many options fit into a boolean?"]]></title><description><![CDATA[
<p>5, no?
Null, Optional::empty, Optional(null), Optional(true), Optional(false)</p>
]]></description><pubDate>Tue, 10 Mar 2026 18:45:34 +0000</pubDate><link>https://news.ycombinator.com/item?id=47327259</link><dc:creator>nitnelave</dc:creator><comments>https://news.ycombinator.com/item?id=47327259</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47327259</guid></item><item><title><![CDATA[New comment by nitnelave in "Use the Mikado Method to do safe changes in a complex codebase"]]></title><description><![CDATA[
<p>Also known as "Make the change easy, then make the change"<p>Something to realize is that every codebase is legacy. My best new feature implementations are always several commits that do no-op refactorings, with no changes to tests even with good coverage (or adding tests before the refactoring for better coverage), then one short and sweet commit with just the behavior change.</p>
]]></description><pubDate>Mon, 02 Mar 2026 20:09:57 +0000</pubDate><link>https://news.ycombinator.com/item?id=47223403</link><dc:creator>nitnelave</dc:creator><comments>https://news.ycombinator.com/item?id=47223403</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47223403</guid></item><item><title><![CDATA[New comment by nitnelave in "Using go fix to modernize Go code"]]></title><description><![CDATA[
<p>Rust has clippy nagging you with a bunch of modernity fixes, and sometimes it can autofix them. I learned about a lot of small new features that make the code cleaner through clippy.</p>
]]></description><pubDate>Tue, 17 Feb 2026 22:30:47 +0000</pubDate><link>https://news.ycombinator.com/item?id=47054370</link><dc:creator>nitnelave</dc:creator><comments>https://news.ycombinator.com/item?id=47054370</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47054370</guid></item><item><title><![CDATA[New comment by nitnelave in "Clean Coder: The Dark Path (2017)"]]></title><description><![CDATA[
<p>Isn't that the classic argument "Real C programmers don't write defaults!" ?<p>The one that companies have spent billions of dollars fixing, including creating new restrictive languages?<p>I mean, I get the point of tests, but if your language obviates the need for some tests, it's a win for everyone. And as for the "how much code will I need to change to propagate this null?", the type system will tell you all the places where it might have an impact; once it compiles again, you can be fairly sure that you handled it in every place.</p>
]]></description><pubDate>Mon, 09 Feb 2026 13:00:48 +0000</pubDate><link>https://news.ycombinator.com/item?id=46944773</link><dc:creator>nitnelave</dc:creator><comments>https://news.ycombinator.com/item?id=46944773</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46944773</guid></item><item><title><![CDATA[New comment by nitnelave in "Prek: A better, faster, drop-in pre-commit replacement, engineered in Rust"]]></title><description><![CDATA[
<p>Client-side pre-commit hooks are there to help you in the same way that type checking (or a powerful compiler) is there to help you avoid bugs. In particular with git, you can skip the hooks when committing.<p>Now, if the server enforces checks on push, that's a project policy that should be respected.</p>
]]></description><pubDate>Tue, 03 Feb 2026 18:13:48 +0000</pubDate><link>https://news.ycombinator.com/item?id=46874784</link><dc:creator>nitnelave</dc:creator><comments>https://news.ycombinator.com/item?id=46874784</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46874784</guid></item><item><title><![CDATA[New comment by nitnelave in "Tomo: A statically typed, imperative language that cross-compiles to C [video]"]]></title><description><![CDATA[
<p>For CLI arguments, have you checked out clap? It's declarative (you create and annotate a struct, it generates the parser), and can be agremented with man page generation or shell completion generation.<p>And as a result of the parsing step, you get a fully typed struct</p>
]]></description><pubDate>Mon, 02 Feb 2026 21:26:04 +0000</pubDate><link>https://news.ycombinator.com/item?id=46861806</link><dc:creator>nitnelave</dc:creator><comments>https://news.ycombinator.com/item?id=46861806</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46861806</guid></item><item><title><![CDATA[New comment by nitnelave in "List animals until failure"]]></title><description><![CDATA[
<p>I added "kudu", a type of antilope, and it replaced it with "turtle". I don't know the relationship between the 2, but it doesn't pass a toddler's sniff test!</p>
]]></description><pubDate>Sun, 01 Feb 2026 18:33:32 +0000</pubDate><link>https://news.ycombinator.com/item?id=46848195</link><dc:creator>nitnelave</dc:creator><comments>https://news.ycombinator.com/item?id=46848195</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46848195</guid></item><item><title><![CDATA[New comment by nitnelave in "LaTeX Coffee Stains (2021) [pdf]"]]></title><description><![CDATA[
<p>You need to go all-in on tea and make your own mark. Get a fancy Chinese teapot with holes in the spout to use loose leaf tea, and start getting snobby about traditional vs modern techniques of Pu'er tea, and you'll get your own brand of respect!</p>
]]></description><pubDate>Wed, 07 Jan 2026 21:58:43 +0000</pubDate><link>https://news.ycombinator.com/item?id=46533631</link><dc:creator>nitnelave</dc:creator><comments>https://news.ycombinator.com/item?id=46533631</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46533631</guid></item><item><title><![CDATA[New comment by nitnelave in "My favourite small hash table"]]></title><description><![CDATA[
<p>You can probably get away with just a union between a 64 bit and 2 32 bit integers.</p>
]]></description><pubDate>Tue, 09 Dec 2025 18:36:15 +0000</pubDate><link>https://news.ycombinator.com/item?id=46208681</link><dc:creator>nitnelave</dc:creator><comments>https://news.ycombinator.com/item?id=46208681</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46208681</guid></item><item><title><![CDATA[New comment by nitnelave in "My favourite small hash table"]]></title><description><![CDATA[
<p>The alignment constraint is different, which they use to be able to load both as a 64-bit integer and compare to 0 (the empty slot).<p>You could work around that with a union or casts with explicit alignment constraints, but this is the shortest way to express that.</p>
]]></description><pubDate>Tue, 09 Dec 2025 16:52:30 +0000</pubDate><link>https://news.ycombinator.com/item?id=46207235</link><dc:creator>nitnelave</dc:creator><comments>https://news.ycombinator.com/item?id=46207235</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46207235</guid></item><item><title><![CDATA[New comment by nitnelave in "The fate of "small" open source"]]></title><description><![CDATA[
<p>I think it's a reference to the Google interview problem that the author of Homebrew (IIRC) failed. They were quite upset about it since they have proved their worth through their famous open-source contributions, but got rejected in a LeetCode-like interview.</p>
]]></description><pubDate>Mon, 17 Nov 2025 12:19:09 +0000</pubDate><link>https://news.ycombinator.com/item?id=45952961</link><dc:creator>nitnelave</dc:creator><comments>https://news.ycombinator.com/item?id=45952961</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45952961</guid></item><item><title><![CDATA[New comment by nitnelave in "Free software scares normal people"]]></title><description><![CDATA[
<p>That's broadly the same reason I created LLDAP. It's the 20% of features of an LDAP server that 80% of users need.<p>It's been hard pushing back and saying no to all the new features. We've started work on a plugin API so that people can add features and opt in to the complexity.</p>
]]></description><pubDate>Fri, 31 Oct 2025 10:03:45 +0000</pubDate><link>https://news.ycombinator.com/item?id=45770235</link><dc:creator>nitnelave</dc:creator><comments>https://news.ycombinator.com/item?id=45770235</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45770235</guid></item><item><title><![CDATA[New comment by nitnelave in "Evolving the OCaml Programming Language (2025) [pdf]"]]></title><description><![CDATA[
<p>Also, of course, talk to people. Pitch your PR idea before writing it, so you can avoid hearing "oh, there's a much simpler way" or "we can never merge this approach because of X"</p>
]]></description><pubDate>Fri, 05 Sep 2025 20:23:06 +0000</pubDate><link>https://news.ycombinator.com/item?id=45143197</link><dc:creator>nitnelave</dc:creator><comments>https://news.ycombinator.com/item?id=45143197</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45143197</guid></item><item><title><![CDATA[New comment by nitnelave in "My Self-Hosting Setup"]]></title><description><![CDATA[
<p>LDAP author here. I'm happy that LLDAP is mentioned and yet that it is not highlighted. The goal of the project was to have a simple LDAP server that is easy to install/manage for self-hosters without knowledge of LDAP required. Cheers and congrats on your setup!</p>
]]></description><pubDate>Sat, 19 Jul 2025 10:56:02 +0000</pubDate><link>https://news.ycombinator.com/item?id=44614392</link><dc:creator>nitnelave</dc:creator><comments>https://news.ycombinator.com/item?id=44614392</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44614392</guid></item><item><title><![CDATA[Lldap Release v0.6.0]]></title><description><![CDATA[
<p>Article URL: <a href="https://github.com/lldap/lldap/releases/tag/v0.6.0">https://github.com/lldap/lldap/releases/tag/v0.6.0</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=42096966">https://news.ycombinator.com/item?id=42096966</a></p>
<p>Points: 2</p>
<p># Comments: 0</p>
]]></description><pubDate>Sat, 09 Nov 2024 21:19:07 +0000</pubDate><link>https://github.com/lldap/lldap/releases/tag/v0.6.0</link><dc:creator>nitnelave</dc:creator><comments>https://news.ycombinator.com/item?id=42096966</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42096966</guid></item><item><title><![CDATA[New comment by nitnelave in "A good day to trie-hard: saving compute 1% at a time"]]></title><description><![CDATA[
<p>I think the point is that naive regex are a very generic purpose tool, but it's still in the same ballpark. Having a custom optimized state machine for this specific use case could bring another 5x improvement on top, leading to 2.5x faster, potentially.</p>
]]></description><pubDate>Wed, 11 Sep 2024 08:03:22 +0000</pubDate><link>https://news.ycombinator.com/item?id=41509140</link><dc:creator>nitnelave</dc:creator><comments>https://news.ycombinator.com/item?id=41509140</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41509140</guid></item></channel></rss>