<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: mnutt</title><link>https://news.ycombinator.com/user?id=mnutt</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Tue, 14 Apr 2026 22:39:35 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=mnutt" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by mnutt in "Servo is now available on crates.io"]]></title><description><![CDATA[
<p>I think you could in theory have a similar webkit-based stripped down headless crate that might have a good tradeoff of features, performance, and size.</p>
]]></description><pubDate>Mon, 13 Apr 2026 20:24:53 +0000</pubDate><link>https://news.ycombinator.com/item?id=47757367</link><dc:creator>mnutt</dc:creator><comments>https://news.ycombinator.com/item?id=47757367</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47757367</guid></item><item><title><![CDATA[New comment by mnutt in "Why frozen test fixtures are a problem on large projects and how to avoid them"]]></title><description><![CDATA[
<p>I have a large rails app that was plagued with slow specs using factory_bot. Associations in factories are especially dangerous given how easy it is to build up big dependency chains. The single largest speedup was noting that nearly every test was in the context of a user and org, and creating a default_user and default_org fixture.</p>
]]></description><pubDate>Tue, 09 Dec 2025 14:23:46 +0000</pubDate><link>https://news.ycombinator.com/item?id=46205208</link><dc:creator>mnutt</dc:creator><comments>https://news.ycombinator.com/item?id=46205208</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46205208</guid></item><item><title><![CDATA[New comment by mnutt in "Comparing AWS Lambda ARM64 vs. x86_64 Performance Across Runtimes in Late 2025"]]></title><description><![CDATA[
<p>Would be interesting to see a benchmark with the rust binary with successively more “bloat” in the binary to separate out how much of the cold start is app start time vs app transfer time. It would also be useful to have the c++ lambda runtime there too; I expect it probably performs similarly to rust.<p>Tangent: when you have a lambda returning binary data, it’s pretty painful to have to encode it as base64 just so it can be serialized to json for the runtime. To add insult to injury, the base64 encoding is much more likely put you over the response size limits (6MB normally, 1MB via ALB). The c++ lambda runtime (and maybe rust?) lets you return non-JSON and do whatever you want, as it’s just POSTing to an endpoint within the lambda. So you can return a binary payload and just have your client handle the blob.</p>
]]></description><pubDate>Tue, 02 Dec 2025 13:13:56 +0000</pubDate><link>https://news.ycombinator.com/item?id=46120871</link><dc:creator>mnutt</dc:creator><comments>https://news.ycombinator.com/item?id=46120871</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46120871</guid></item><item><title><![CDATA[New comment by mnutt in "We cut our Mongo DB costs by 90% by moving to Hetzner"]]></title><description><![CDATA[
<p>Sure, you can only use EC2, not use autoscaling or spot and instead just provision to your highest capacity needs, and not use any other AWS service that relies on dynamo as a dependency.<p>We still take some steps to mitigate control plane issues in what I consider a reasonable AWS setup (attempt to lock ASGs to prevent scale-down) but I place the control plane disappearing on the same level as the entire region going dark, and just run multi-region.</p>
]]></description><pubDate>Fri, 14 Nov 2025 05:20:08 +0000</pubDate><link>https://news.ycombinator.com/item?id=45924106</link><dc:creator>mnutt</dc:creator><comments>https://news.ycombinator.com/item?id=45924106</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45924106</guid></item><item><title><![CDATA[New comment by mnutt in "We cut our Mongo DB costs by 90% by moving to Hetzner"]]></title><description><![CDATA[
<p>> we never had any issues, because we didn't depend on calling AWS APIs to continue operating. Things already running continue to run.<p>I think it was just luck of the draw that the failure happened in this way and not some other way. Even if APIs falling over but EC2 instances remaining up is a slightly more likely failure mode, it means you can't run autoscaling, can't depend on spot instances which in an outage you can lose and can't replace.</p>
]]></description><pubDate>Thu, 13 Nov 2025 17:30:47 +0000</pubDate><link>https://news.ycombinator.com/item?id=45917753</link><dc:creator>mnutt</dc:creator><comments>https://news.ycombinator.com/item?id=45917753</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45917753</guid></item><item><title><![CDATA[New comment by mnutt in "AWS multiple services outage in us-east-1"]]></title><description><![CDATA[
<p>Even their transfer rates between AZs _in the same region_ are expensive, given they presumably own the fiber?<p>This aligns with their “you should be in multiple AZs” sales strategy, because self-hosted and third-party services can’t replicate data between AZs without expensive bandwidth costs, while their own managed services (ElastiCache, RDS, etc) can offer replication between zones for free.</p>
]]></description><pubDate>Tue, 21 Oct 2025 12:23:58 +0000</pubDate><link>https://news.ycombinator.com/item?id=45654935</link><dc:creator>mnutt</dc:creator><comments>https://news.ycombinator.com/item?id=45654935</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45654935</guid></item><item><title><![CDATA[New comment by mnutt in "Show HN: Baby's first international landline"]]></title><description><![CDATA[
<p>This is a great project writeup, I did something _very_ similar for my son. (HT802, asterisk, twilio, calling relatives) With all of the NAT involved I could never get sjsip to work properly so I ended up having to use the old sip module, but looking at yours makes me want to revisit it.<p>Once you have asterisk set up and running, it becomes easy to also set up all sorts of other extensions like "check the weather" / "tell a joke" / "check the train statuses". I put up some code for it here: <a href="https://github.com/mnutt/rotary" rel="nofollow">https://github.com/mnutt/rotary</a></p>
]]></description><pubDate>Mon, 13 Oct 2025 01:56:01 +0000</pubDate><link>https://news.ycombinator.com/item?id=45563965</link><dc:creator>mnutt</dc:creator><comments>https://news.ycombinator.com/item?id=45563965</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45563965</guid></item><item><title><![CDATA[New comment by mnutt in "The Subway Game (1980)"]]></title><description><![CDATA[
<p>That's amazing, what a great idea.</p>
]]></description><pubDate>Mon, 04 Aug 2025 15:45:14 +0000</pubDate><link>https://news.ycombinator.com/item?id=44787446</link><dc:creator>mnutt</dc:creator><comments>https://news.ycombinator.com/item?id=44787446</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44787446</guid></item><item><title><![CDATA[New comment by mnutt in "The Subway Game (1980)"]]></title><description><![CDATA[
<p>As a four year old, my child loved playing "the subway game", which is similar to this but just in our heads: I name two subway stations and he tries to think of the fastest route between them. When that is exhausted, we move onto the fewest transfers, the most convoluted routes, the 1968 lines only, etc. There's just something about the NYC subway which really draws kids (and many adults) in.</p>
]]></description><pubDate>Sun, 03 Aug 2025 20:07:59 +0000</pubDate><link>https://news.ycombinator.com/item?id=44779312</link><dc:creator>mnutt</dc:creator><comments>https://news.ycombinator.com/item?id=44779312</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44779312</guid></item><item><title><![CDATA[New comment by mnutt in "Tin Can – The landline, reinvented for kids"]]></title><description><![CDATA[
<p>I did a writeup of my own experiences using Asterisk for this exact use case: <a href="https://github.com/mnutt/rotary">https://github.com/mnutt/rotary</a></p>
]]></description><pubDate>Thu, 17 Jul 2025 02:49:13 +0000</pubDate><link>https://news.ycombinator.com/item?id=44589218</link><dc:creator>mnutt</dc:creator><comments>https://news.ycombinator.com/item?id=44589218</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44589218</guid></item><item><title><![CDATA[New comment by mnutt in "GNOME and Red Hat Linux eleven years ago (2009)"]]></title><description><![CDATA[
<p>We tried this out a middle schoolers at an installfest in Alabama in the 90s, but something was broken with the resulting install and had to wipe it and start over. Funny that 25+ years later I learn that the problem could have been that the locale was set to en_RN…</p>
]]></description><pubDate>Sun, 15 Jun 2025 21:36:38 +0000</pubDate><link>https://news.ycombinator.com/item?id=44285141</link><dc:creator>mnutt</dc:creator><comments>https://news.ycombinator.com/item?id=44285141</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44285141</guid></item><item><title><![CDATA[New comment by mnutt in "Tower Defense: Cache Control"]]></title><description><![CDATA[
<p>You can even do neat things like having the revalidate fetch tell your backend “I served this object out of cache 1100 times since last fetch, maybe consider putting a few extra cpu cycles into the compression on this one”</p>
]]></description><pubDate>Sat, 17 May 2025 01:37:01 +0000</pubDate><link>https://news.ycombinator.com/item?id=44011384</link><dc:creator>mnutt</dc:creator><comments>https://news.ycombinator.com/item?id=44011384</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44011384</guid></item><item><title><![CDATA[New comment by mnutt in "Show HN: One year of bewCloud (a simpler Nextcloud alternative)"]]></title><description><![CDATA[
<p>Looks interesting, I'm curious how you settled on WebDAV? A decade ago I built a NextCloud alternative backend that also used WebDAV, and I'm not sure it's something I would ever touch again. Lots of clients say they support WebDAV but they all do slightly different things, and if you own the clients then there are probably simpler protocols.</p>
]]></description><pubDate>Fri, 21 Feb 2025 16:58:29 +0000</pubDate><link>https://news.ycombinator.com/item?id=43129915</link><dc:creator>mnutt</dc:creator><comments>https://news.ycombinator.com/item?id=43129915</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43129915</guid></item><item><title><![CDATA[New comment by mnutt in "Kvrocks: Redis-compatible distributed key value NoSQL database"]]></title><description><![CDATA[
<p>Yes, there are a bunch of redis+disk projects out there, one big consideration is the size of your values: some must hold all keys in memory and only offload values to disk, while others (kvrocks, other rocksdb dbs) can offload both keys and values to disk, with some other tradeoffs.</p>
]]></description><pubDate>Thu, 23 Jan 2025 16:10:25 +0000</pubDate><link>https://news.ycombinator.com/item?id=42805265</link><dc:creator>mnutt</dc:creator><comments>https://news.ycombinator.com/item?id=42805265</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42805265</guid></item><item><title><![CDATA[New comment by mnutt in "Kvrocks: Redis-compatible distributed key value NoSQL database"]]></title><description><![CDATA[
<p>I’ve been testing kvrocks as a replacement for a Scylla use case where we have TBs of data and uniform TTLs. In many of these LSM dbs, compaction is the thing that really kills throughput, making TTLs (or really any updates/deletes) difficult.<p>KVRocks doesn’t expose it directly right now so it requires code changes, but so far I have had good success with FIFO compaction. When an sstable gets old enough, it just gets dropped.</p>
]]></description><pubDate>Thu, 23 Jan 2025 13:49:54 +0000</pubDate><link>https://news.ycombinator.com/item?id=42803979</link><dc:creator>mnutt</dc:creator><comments>https://news.ycombinator.com/item?id=42803979</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42803979</guid></item><item><title><![CDATA[New comment by mnutt in "How I used linear algebra to build an interactive diagramming editor"]]></title><description><![CDATA[
<p>I had a similar experience: I built dragging and handle resize, then later added rotation via a bit of trigonometry. Each operation worked fine separately, but if you tried to rotate and then resize, unexpected things happened. I left the bug for years, thinking I needed to come back and just add a bit more trigonometry to get rotated resizing working. When I finally came back to it I spent quite a while hacking at it before realizing that matrices were a much better way to describe the solution.</p>
]]></description><pubDate>Wed, 18 Dec 2024 02:35:50 +0000</pubDate><link>https://news.ycombinator.com/item?id=42447635</link><dc:creator>mnutt</dc:creator><comments>https://news.ycombinator.com/item?id=42447635</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42447635</guid></item><item><title><![CDATA[New comment by mnutt in "Cash: A small jQuery alternative for modern browsers"]]></title><description><![CDATA[
<p>Using jQuery CDN might have helped with cross-site caching in the past, but now all major browsers have cache partitioning by origin for privacy reasons.</p>
]]></description><pubDate>Sun, 03 Nov 2024 14:17:51 +0000</pubDate><link>https://news.ycombinator.com/item?id=42033180</link><dc:creator>mnutt</dc:creator><comments>https://news.ycombinator.com/item?id=42033180</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42033180</guid></item><item><title><![CDATA[New comment by mnutt in "Show HN: I built the most over-engineered Deal With It emoji generator"]]></title><description><![CDATA[
<p>On Mobile Safari at least, you can press and hold the image to share. I imagine there's probably an equivalent gesture on Mobile Chrome. I spent considerable time many years ago trying to figure out how to indicate to users that they could do this. ("press and hold to share", with a progress indicator) Results were mixed.<p>Fortunately, these days if you wanted to make it more obvious you could hook up a regular Share button to navigator.share() API and pass it your image blob.</p>
]]></description><pubDate>Tue, 15 Oct 2024 17:47:44 +0000</pubDate><link>https://news.ycombinator.com/item?id=41851076</link><dc:creator>mnutt</dc:creator><comments>https://news.ycombinator.com/item?id=41851076</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41851076</guid></item><item><title><![CDATA[New comment by mnutt in "Web Browser Engineering"]]></title><description><![CDATA[
<p>As of 2024, WebKit's Linux ports (GTK and WPE) are switching to Skia too. [0] Prior to that, they used cairo.<p>[0]: <a href="https://blogs.igalia.com/carlosgc/2024/02/19/webkit-switching-to-skia-for-2d-graphics-rendering/" rel="nofollow">https://blogs.igalia.com/carlosgc/2024/02/19/webkit-switchin...</a></p>
]]></description><pubDate>Tue, 15 Oct 2024 14:18:59 +0000</pubDate><link>https://news.ycombinator.com/item?id=41848892</link><dc:creator>mnutt</dc:creator><comments>https://news.ycombinator.com/item?id=41848892</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41848892</guid></item><item><title><![CDATA[New comment by mnutt in "How Discord stores trillions of messages (2023)"]]></title><description><![CDATA[
<p>Grace mode itself doesn’t prevent thundering herd; varnish coalesces all requests automatically and grace mode is used to increase the likelihood of clients receiving cached (albeit stale) responses.</p>
]]></description><pubDate>Sun, 29 Sep 2024 14:39:31 +0000</pubDate><link>https://news.ycombinator.com/item?id=41687724</link><dc:creator>mnutt</dc:creator><comments>https://news.ycombinator.com/item?id=41687724</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41687724</guid></item></channel></rss>