<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: nickmonad</title><link>https://news.ycombinator.com/user?id=nickmonad</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Thu, 30 Apr 2026 17:56:21 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=nickmonad" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by nickmonad in "Show HN: Alien – Self-hosting with remote management (written in Rust)"]]></title><description><![CDATA[
<p>Sure. I'm just saying in the context where fully-managed SaaS was already decided not to be an option, and a customer is deploying vendor code in their environments, the update mechanism can in fact be a problem. It's not just poor CISO management.</p>
]]></description><pubDate>Mon, 20 Apr 2026 20:27:35 +0000</pubDate><link>https://news.ycombinator.com/item?id=47840056</link><dc:creator>nickmonad</dc:creator><comments>https://news.ycombinator.com/item?id=47840056</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47840056</guid></item><item><title><![CDATA[New comment by nickmonad in "Show HN: Alien – Self-hosting with remote management (written in Rust)"]]></title><description><![CDATA[
<p>I agree that keeping things up to date is a good practice, and it would be nice if enterprise CISOs would get on board with that. One challenge we've seen is that other aspects of the business don't want things to be updated automatically, in the same way a fully-managed SaaS would be. This is especially true if the product sits in a revenue generation stream. We deal with "customer XYZ is going to update to version 23 next Tuesday at 6pm eastern" all the time.</p>
]]></description><pubDate>Mon, 20 Apr 2026 19:07:11 +0000</pubDate><link>https://news.ycombinator.com/item?id=47839063</link><dc:creator>nickmonad</dc:creator><comments>https://news.ycombinator.com/item?id=47839063</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47839063</guid></item><item><title><![CDATA[New comment by nickmonad in "Show HN: Alien – Self-hosting with remote management (written in Rust)"]]></title><description><![CDATA[
<p>> So you're stuck debugging a system you don't control, through screenshots and copy-pasted logs on a Zoom call.<p>This is very real.<p>I work with a deployment that operates in this fashion. Although unfortunately, we can't maintain _any_ connection back to our servers. Pull or push, doesn't matter.<p>The goal right now is to build out tooling to export logs and telemetry data from an environment, such that a customer could trigger that export on our request, or (ideally) as part of the support ticketing process. Then our engineers can analyze async. This can be a ton of data though, so we're trying to figure out what to compress and how. We also have the challenge of figuring out how to scrub logs of any potentially sensitive information. Even IDs, file names, etc that only matter to customers.</p>
]]></description><pubDate>Mon, 20 Apr 2026 18:16:34 +0000</pubDate><link>https://news.ycombinator.com/item?id=47838401</link><dc:creator>nickmonad</dc:creator><comments>https://news.ycombinator.com/item?id=47838401</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47838401</guid></item><item><title><![CDATA[New comment by nickmonad in "TigerBeetle: A Trillion Transactions [video]"]]></title><description><![CDATA[
<p>On the streaming side, are you looking for Change Data Capture?<p><a href="https://docs.tigerbeetle.com/operating/cdc/" rel="nofollow">https://docs.tigerbeetle.com/operating/cdc/</a></p>
]]></description><pubDate>Thu, 16 Apr 2026 20:36:47 +0000</pubDate><link>https://news.ycombinator.com/item?id=47799170</link><dc:creator>nickmonad</dc:creator><comments>https://news.ycombinator.com/item?id=47799170</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47799170</guid></item><item><title><![CDATA[New comment by nickmonad in "Claude Opus 4.7"]]></title><description><![CDATA[
<p>Did you try asking the model?</p>
]]></description><pubDate>Thu, 16 Apr 2026 14:43:28 +0000</pubDate><link>https://news.ycombinator.com/item?id=47793760</link><dc:creator>nickmonad</dc:creator><comments>https://news.ycombinator.com/item?id=47793760</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47793760</guid></item><item><title><![CDATA[New comment by nickmonad in "A tale about fixing eBPF spinlock issues in the Linux kernel"]]></title><description><![CDATA[
<p>Spam bots.</p>
]]></description><pubDate>Wed, 18 Mar 2026 15:20:24 +0000</pubDate><link>https://news.ycombinator.com/item?id=47426895</link><dc:creator>nickmonad</dc:creator><comments>https://news.ycombinator.com/item?id=47426895</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47426895</guid></item><item><title><![CDATA[New comment by nickmonad in "Palantir and other tech companies are stocking offices with tobacco products"]]></title><description><![CDATA[
<p>> It's a type of team building, improves employee morale and humanizes management. All lead to improved productivity in the long term.<p>Yes, but the important distinction is that its intention is to bring people together face-to-face, not isolate them to their desks for continued work. Just because the end goal is "productivity" broadly speaking, doesn't mean the mechanisms are socially/morally equivalent.<p>> I doubt anyone is forcing the employees to take the stimulants.<p>I agree, and I hope my comment didn't imply I thought that was the case.</p>
]]></description><pubDate>Thu, 05 Mar 2026 16:54:03 +0000</pubDate><link>https://news.ycombinator.com/item?id=47264030</link><dc:creator>nickmonad</dc:creator><comments>https://news.ycombinator.com/item?id=47264030</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47264030</guid></item><item><title><![CDATA[New comment by nickmonad in "Palantir and other tech companies are stocking offices with tobacco products"]]></title><description><![CDATA[
<p>I agree to a point. Although, alcohol (when consumed responsibly) has a social element to it, so companies having a "beers on Friday after 4pm" just feels different than "here's nicotine so you can be more productive and make us more money." They are serving different functions.</p>
]]></description><pubDate>Thu, 05 Mar 2026 15:49:58 +0000</pubDate><link>https://news.ycombinator.com/item?id=47263052</link><dc:creator>nickmonad</dc:creator><comments>https://news.ycombinator.com/item?id=47263052</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47263052</guid></item><item><title><![CDATA[New comment by nickmonad in "Minimal x86 Kernel Zig"]]></title><description><![CDATA[
<p>Not allowed.</p>
]]></description><pubDate>Wed, 18 Feb 2026 15:53:21 +0000</pubDate><link>https://news.ycombinator.com/item?id=47062332</link><dc:creator>nickmonad</dc:creator><comments>https://news.ycombinator.com/item?id=47062332</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47062332</guid></item><item><title><![CDATA[New comment by nickmonad in "An AI agent published a hit piece on me"]]></title><description><![CDATA[
<p>Yeah definitely something that would've been posted as a joke in a "HN front-page 10 years from now" kind of thing.</p>
]]></description><pubDate>Thu, 12 Feb 2026 17:22:55 +0000</pubDate><link>https://news.ycombinator.com/item?id=46991742</link><dc:creator>nickmonad</dc:creator><comments>https://news.ycombinator.com/item?id=46991742</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46991742</guid></item><item><title><![CDATA[New comment by nickmonad in "It's 2026, Just Use Postgres"]]></title><description><![CDATA[
<p>You turn it on, and it scales right up.</p>
]]></description><pubDate>Thu, 05 Feb 2026 23:51:57 +0000</pubDate><link>https://news.ycombinator.com/item?id=46907140</link><dc:creator>nickmonad</dc:creator><comments>https://news.ycombinator.com/item?id=46907140</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46907140</guid></item><item><title><![CDATA[New comment by nickmonad in "It's 2026, Just Use Postgres"]]></title><description><![CDATA[
<p>Unless you're doing OLTP. Then, TigerBeetle ;)</p>
]]></description><pubDate>Thu, 05 Feb 2026 23:50:42 +0000</pubDate><link>https://news.ycombinator.com/item?id=46907134</link><dc:creator>nickmonad</dc:creator><comments>https://news.ycombinator.com/item?id=46907134</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46907134</guid></item><item><title><![CDATA[New comment by nickmonad in "Ask HN: Share your personal website"]]></title><description><![CDATA[
<p><a href="https://nickmonad.blog/" rel="nofollow">https://nickmonad.blog/</a><p>Trying to blog more frequently with shorter posts!</p>
]]></description><pubDate>Wed, 14 Jan 2026 21:13:28 +0000</pubDate><link>https://news.ycombinator.com/item?id=46623533</link><dc:creator>nickmonad</dc:creator><comments>https://news.ycombinator.com/item?id=46623533</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46623533</guid></item><item><title><![CDATA[New comment by nickmonad in "Creators of Tailwind laid off 75% of their engineering team"]]></title><description><![CDATA[
<p>Narrowing in on background color is an extreme oversimplification of what Tailwind provides. I found it to be a great tool for working with CSS, especially for layout. Business viability can be debated, but the value is way beyond what you suggested.</p>
]]></description><pubDate>Wed, 07 Jan 2026 18:02:47 +0000</pubDate><link>https://news.ycombinator.com/item?id=46529954</link><dc:creator>nickmonad</dc:creator><comments>https://news.ycombinator.com/item?id=46529954</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46529954</guid></item><item><title><![CDATA[New comment by nickmonad in "Creators of Tailwind laid off 75% of their engineering team"]]></title><description><![CDATA[
<p>I agree with the sentiment that companies should help fund open source they depend on, but I think it's a stretch to say those business succeeded "only" because of Tailwind. It's a great project, although I'm pretty sure they would have figured out a way to work with CSS without it.</p>
]]></description><pubDate>Wed, 07 Jan 2026 17:58:21 +0000</pubDate><link>https://news.ycombinator.com/item?id=46529861</link><dc:creator>nickmonad</dc:creator><comments>https://news.ycombinator.com/item?id=46529861</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46529861</guid></item><item><title><![CDATA[New comment by nickmonad in "Static Allocation with Zig"]]></title><description><![CDATA[
<p>Gotcha. Thanks for clarifying! I guess I wasn't super concerned about the 'try' failing here since this code is squarely in the initialization path, and I want the OOM to bubble up to main() and crash. Although to be fair, 1. Not a great experience to be given a stack trace, could definitely have a nice message there. And 2. If the ConnectionPool init() is (re)used elsewhere outside this overall initialization path, we could run into that leak.<p>The allocation failure that could occur at runtime, post-init, would be here: <a href="https://github.com/nickmonad/kv/blob/53e953da752c7f49221c9c433bc05f957f2631b5/src/main.zig#L150-L159" rel="nofollow">https://github.com/nickmonad/kv/blob/53e953da752c7f49221c9c4...</a> - and the OOM error kicks back an immediate close on the connection to the client.</p>
]]></description><pubDate>Tue, 30 Dec 2025 17:13:31 +0000</pubDate><link>https://news.ycombinator.com/item?id=46435453</link><dc:creator>nickmonad</dc:creator><comments>https://news.ycombinator.com/item?id=46435453</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46435453</guid></item><item><title><![CDATA[New comment by nickmonad in "Concurrent Hash Table Designs"]]></title><description><![CDATA[
<p>Would love to read this, although I'm seeing some pretty horrific code formatting issues in both Firefox and Chrome.</p>
]]></description><pubDate>Tue, 30 Dec 2025 16:21:43 +0000</pubDate><link>https://news.ycombinator.com/item?id=46434861</link><dc:creator>nickmonad</dc:creator><comments>https://news.ycombinator.com/item?id=46434861</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46434861</guid></item><item><title><![CDATA[New comment by nickmonad in "Static Allocation with Zig"]]></title><description><![CDATA[
<p>Hey matklad! Thanks for hanging out here and commenting on the post. I was hoping you guys would see this and give some feedback based on your work in TigerBeetle.<p>You mentioned, "E.g., in OP, memory is leaked on allocation failures." - Can you clarify a bit more about what you mean there?</p>
]]></description><pubDate>Tue, 30 Dec 2025 15:27:59 +0000</pubDate><link>https://news.ycombinator.com/item?id=46434231</link><dc:creator>nickmonad</dc:creator><comments>https://news.ycombinator.com/item?id=46434231</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46434231</guid></item><item><title><![CDATA[New comment by nickmonad in "Static Allocation with Zig"]]></title><description><![CDATA[
<p>This is the fundamental question which motivated the post. :)<p>I think there are a few different ways to approach the answer, and it kind of depends on what you mean by "draw the line between an allocation happening or not happening." At the surface level, Zig makes this relatively easy, since you can grep for all instances of `std.mem.Allocator` and see where those allocations are occurring throughout the codebase. This only gets you so far though, because some of those Allocator instances could be backed by something like a FixedBufferAllocator, which uses already allocated memory either from the stack or the heap. So the usage of the Allocator instance at the interface level doesn't actually tell you "this is for sure allocating memory from the OS." You have to consider it in the larger context of the system.<p>And yes, we do still need to track vacant/occupied memory, we just do it at the application level. At that level, the OS sees it all as "occupied". For example, in kv, the connection buffer space is marked as vacant/occupied using a memory pool at runtime. But, that pool was allocated from the OS during initialization. As we use the pool we just have to do some very basic bookkeeping using a free-list. That determines if a new connection can actually be accepted or not.<p>Hopefully that helps. Ultimately, we do allocate, it just happens right away during initialization and that allocated space is reused throughout program execution. But, it doesn't have to be nearly as complicated as "reinventing garbage collection" as I've seen some other comments mention.</p>
]]></description><pubDate>Tue, 30 Dec 2025 15:22:45 +0000</pubDate><link>https://news.ycombinator.com/item?id=46434174</link><dc:creator>nickmonad</dc:creator><comments>https://news.ycombinator.com/item?id=46434174</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46434174</guid></item><item><title><![CDATA[New comment by nickmonad in "Static Allocation with Zig"]]></title><description><![CDATA[
<p>Nice! Will definitely take a look :)</p>
]]></description><pubDate>Tue, 30 Dec 2025 02:02:10 +0000</pubDate><link>https://news.ycombinator.com/item?id=46428645</link><dc:creator>nickmonad</dc:creator><comments>https://news.ycombinator.com/item?id=46428645</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46428645</guid></item></channel></rss>