<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: sausagefeet</title><link>https://news.ycombinator.com/user?id=sausagefeet</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Mon, 06 Apr 2026 10:41:20 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=sausagefeet" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by sausagefeet in "When AI writes the software, who verifies it?"]]></title><description><![CDATA[
<p>I agree with you.  But I have to say, it is an uphill battle and all the incentives are against you.<p>1. AI is meant to make us go faster, reviews are slow, the AI is smart, let it go.<p>2. There are plenty of AI maximizers who only think we should be writing design docs and letting the AI go to town on it.<p>Maybe, this might be a great time to start a company.  Maximize the benefits of AI while you can without someone who has never written a line of code telling you that your job is going to disappear in 12 months.<p>All the incentives are against someone who wants to use AI in a reasonable way, right now.</p>
]]></description><pubDate>Tue, 03 Mar 2026 18:16:02 +0000</pubDate><link>https://news.ycombinator.com/item?id=47236405</link><dc:creator>sausagefeet</dc:creator><comments>https://news.ycombinator.com/item?id=47236405</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47236405</guid></item><item><title><![CDATA[New comment by sausagefeet in "Show HN: Fast, Static GitHub Pull Requests"]]></title><description><![CDATA[
<p>I work with @lawnchair, so we both have been complaining to each other about how slow GitHub PRs are for awhile.  It's wild that THE feature of GH is so bad!<p>I have been using Argus in anger for a few days, it needs some updates, but being "run on your own desktop" software means it can be a lot simpler than a full product, which is nice.  Next feature I am pushing to get implemented: I want Reviewboard-like intra-push diffs.  I have a force-push heavy workflow and GH PR view doesn't let you see the diff of what was pushed vs what I last reviewed, and that is a feature that all the data is there and I want it.</p>
]]></description><pubDate>Mon, 26 Jan 2026 14:26:43 +0000</pubDate><link>https://news.ycombinator.com/item?id=46766026</link><dc:creator>sausagefeet</dc:creator><comments>https://news.ycombinator.com/item?id=46766026</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46766026</guid></item><item><title><![CDATA[New comment by sausagefeet in "IBM to acquire Confluent"]]></title><description><![CDATA[
<p>HCP wasn't any prize when they got bought, though, right?  HashiCorp Cloud was more like a fog in terms of growth.  A bunch of products got lost a long the way (Boundary?  Waypoint?)  HCP lost 50% of its IPO value by the time it was bought.  Yes, I know IPO's are high and always go down, but it went from around a $14bn valuation to being bought for something like $6.5bn.</p>
]]></description><pubDate>Mon, 08 Dec 2025 16:08:35 +0000</pubDate><link>https://news.ycombinator.com/item?id=46193971</link><dc:creator>sausagefeet</dc:creator><comments>https://news.ycombinator.com/item?id=46193971</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46193971</guid></item><item><title><![CDATA[New comment by sausagefeet in "Show HN: Encore – Type-safe back end framework that generates infra from code"]]></title><description><![CDATA[
<p>How does Encore handle the following scenarios?<p>1. I want to deploy to a testing environment where I may want to use different users, different sized services, or even mock services so I don't have to pay for them?
2. I want to develop in an isolated environment (maybe without internet or simply I'm trying to develop a narrow feature that doesn't require the rest of the infrastructure)?
3. How does it handle security elements like VPCs, IAM roles, all these things that are the context my application runs in that I don't necessarily want to couple to my application code?</p>
]]></description><pubDate>Fri, 14 Nov 2025 12:53:06 +0000</pubDate><link>https://news.ycombinator.com/item?id=45926275</link><dc:creator>sausagefeet</dc:creator><comments>https://news.ycombinator.com/item?id=45926275</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45926275</guid></item><item><title><![CDATA[New comment by sausagefeet in "We chose OCaml to write Stategraph"]]></title><description><![CDATA[
<p>The way I look at it is that TF has a limitation on state size.  And when you hit that limit, you have to either slow down a ton or do a (big) refactoring.<p>As comparison, if a programming language forced you to split your software into multiple executables when you got to a certain number of functions, I think, almost universally, we would say that it's not a production language.  That is a stupid limitation and forcing development work on users because of stupid limitations is disqualifying.<p>But for TF, even if we are refactoring it because the tool is doing it, we tell  ourselves that it's a good idea anyways because of good software practices.  But splitting infrastructure over multiple root modules is, in my analogy, the same as being forced to do it over multiple executables.  It comes with a lot of unnecessary limitations.<p>With Stategraph, you can choose to split your infrastructure over multiple root modules, if that is what you want to do, not because you don't have a choice.<p>V1 of Stategraph is a drop-in TF/Tofu replacement, but once it's there, you can see a path to something more like k8s operators, without having to do any migration of infrastructure.</p>
]]></description><pubDate>Sat, 08 Nov 2025 17:22:40 +0000</pubDate><link>https://news.ycombinator.com/item?id=45858305</link><dc:creator>sausagefeet</dc:creator><comments>https://news.ycombinator.com/item?id=45858305</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45858305</guid></item><item><title><![CDATA[New comment by sausagefeet in "We chose OCaml to write Stategraph"]]></title><description><![CDATA[
<p>It has not been a challenging finding candidates for OCaml.  For the most part, people who like OCaml are chomping at the bit to find a job writing it.  And for those that don't know OCaml, a lot of really good devs are excited to try something different.</p>
]]></description><pubDate>Fri, 07 Nov 2025 15:07:45 +0000</pubDate><link>https://news.ycombinator.com/item?id=45847175</link><dc:creator>sausagefeet</dc:creator><comments>https://news.ycombinator.com/item?id=45847175</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45847175</guid></item><item><title><![CDATA[New comment by sausagefeet in "We chose OCaml to write Stategraph"]]></title><description><![CDATA[
<p>The sense I get from some comments is that if you need a type system and to compile to an executable, Rust is the only option, otherwise you can use pretty much anything.  But, as you say, MLs have been compiling to binaries for decades.  One of the first online books on OCaml is for systems programming.<p>I know that isn't everyone's view, but I do hope posts like this, even if not technicaly deep, at least let people know that there are lots of options out there.</p>
]]></description><pubDate>Fri, 07 Nov 2025 14:30:29 +0000</pubDate><link>https://news.ycombinator.com/item?id=45846766</link><dc:creator>sausagefeet</dc:creator><comments>https://news.ycombinator.com/item?id=45846766</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45846766</guid></item><item><title><![CDATA[New comment by sausagefeet in "We chose OCaml to write Stategraph"]]></title><description><![CDATA[
<p>> The concurrent applies isn’t that big of a deal?<p>That depends.  There are many organizations (we talk to them) which have plans and applies that take 5 - 10s of minutes, some even close to an hour.  That's a problem.  We talked to one customer that a dev can make a change in the morning and depending on the week might have to wait until the next day to get their plan, and then another day to apply it, assuming there are no issues.<p>If you're in that position you have two options:<p>1. Just accept it and wait.
2. Refactor your root module to independent root modules.<p>(2) is what a lot of people do, but it's not cheap, that's a whole project.  It's also a workflow change.<p>Stategraph is trying to offer a third option: if your changes don't overlap, each dev can run independently with no contention.<p>Even if one doesn't think contention over state is a big deal, I hope that one can agree that a solution that just removes that contention at very little cost is worth considering.</p>
]]></description><pubDate>Fri, 07 Nov 2025 14:16:38 +0000</pubDate><link>https://news.ycombinator.com/item?id=45846625</link><dc:creator>sausagefeet</dc:creator><comments>https://news.ycombinator.com/item?id=45846625</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45846625</guid></item><item><title><![CDATA[New comment by sausagefeet in "We chose OCaml to write Stategraph"]]></title><description><![CDATA[
<p>I'm the CTO of Terrateam.  For "why not rust", I have found the downsides of Rust not compelling enough to use it.  We don't need close-to-metal performance.  We don't really need the borrow checker, a GC is fine.  We are immutable by default so the borrow checker doesn't help much there.</p>
]]></description><pubDate>Fri, 07 Nov 2025 14:08:24 +0000</pubDate><link>https://news.ycombinator.com/item?id=45846549</link><dc:creator>sausagefeet</dc:creator><comments>https://news.ycombinator.com/item?id=45846549</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45846549</guid></item><item><title><![CDATA[New comment by sausagefeet in "We chose OCaml to write Stategraph"]]></title><description><![CDATA[
<p>Certainly there are specifics between the type systems that differentiate.  TypeScript generally chooses to enforce types in an ergonomic way whereas OCaml chooses to enforce types in a sound way.  Whether or not that is a meaningful differentiator for someone is up to them.<p>This blog post shows the elements of OCaml that motivate us to use it.  Is it complete? No.  Maybe it should be more explicit that we like using OCaml, and these technical aspects aren't unique but certainly benefits we see.</p>
]]></description><pubDate>Fri, 07 Nov 2025 14:03:39 +0000</pubDate><link>https://news.ycombinator.com/item?id=45846490</link><dc:creator>sausagefeet</dc:creator><comments>https://news.ycombinator.com/item?id=45846490</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45846490</guid></item><item><title><![CDATA[New comment by sausagefeet in "We chose OCaml to write Stategraph"]]></title><description><![CDATA[
<p>Exactly!  OCaml is the language I like to solve problems in, and I'm excited to solve problems in, so that's why Terrateam uses OCaml (I'm the CTO).  You can do a lot (but not all) of this in Go, or TypeScript, but I don't get excited about those languages.  Certainly I'll use them if I have to (our UI is written in Svelte) but building your own company is a grind, and using OCaml makes the grind just a bit more exciting, and that's an edge.</p>
]]></description><pubDate>Fri, 07 Nov 2025 13:56:29 +0000</pubDate><link>https://news.ycombinator.com/item?id=45846395</link><dc:creator>sausagefeet</dc:creator><comments>https://news.ycombinator.com/item?id=45846395</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45846395</guid></item><item><title><![CDATA[New comment by sausagefeet in "We chose OCaml to write Stategraph"]]></title><description><![CDATA[
<p>Hello, CTO of Terrateam here, the creators of Stategraph.<p>As you said, the common practice is to use locks on state to guarantee that operations don't step on each other.  This works, however the cost is that if it takes 5 minutes to perform an operation, only one person can be doing an operation at a time, so if 5 devs are modifying infrastructure, the last one has to wait 25 minutes just to get back the plan, even if those 5 people are not changing overlapping resources in the state.<p>The way that most people deal with this is they take their infrastructure and break it up across multiple root modules, and then when those root modules, break it up again, etc.<p>Stategraph is solving the problem of getting all of the performance benefits of breaking up your root modules without breaking up your root modules.  It dynamically determines which resources each of those 5 devs are operation on and, if the resources do not overlap, can run them in parallel.<p>That means Stategraph is manipulating state in a bit more sophisticated way than standard Terraform/Tofu, and we need to be careful we don't get it wrong.</p>
]]></description><pubDate>Fri, 07 Nov 2025 13:53:50 +0000</pubDate><link>https://news.ycombinator.com/item?id=45846375</link><dc:creator>sausagefeet</dc:creator><comments>https://news.ycombinator.com/item?id=45846375</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45846375</guid></item><item><title><![CDATA[New comment by sausagefeet in "Post-Mortem: OpenTaco using code from OTF without attribution"]]></title><description><![CDATA[
<p>If I'm reading these five why's correct, essentially they just copied the code without caring, and then didn't want to let caring get in the way of their product announcement, and got caught.   It's not even really malicious, it's just apathetic. I'm not sure which is worse.</p>
]]></description><pubDate>Mon, 29 Sep 2025 12:10:34 +0000</pubDate><link>https://news.ycombinator.com/item?id=45412710</link><dc:creator>sausagefeet</dc:creator><comments>https://news.ycombinator.com/item?id=45412710</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45412710</guid></item><item><title><![CDATA[New comment by sausagefeet in "Stategraph: Terraform state as a distributed systems problem"]]></title><description><![CDATA[
<p>I believe the DORA report has some information on this.  Terraform/Tofu dominate, by far.</p>
]]></description><pubDate>Wed, 17 Sep 2025 14:37:28 +0000</pubDate><link>https://news.ycombinator.com/item?id=45276371</link><dc:creator>sausagefeet</dc:creator><comments>https://news.ycombinator.com/item?id=45276371</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45276371</guid></item><item><title><![CDATA[New comment by sausagefeet in "Stategraph: Terraform state as a distributed systems problem"]]></title><description><![CDATA[
<p>The high-level vision of Stategraph is that the entire world's infrastructure should be representable as a single root module, with proper isolate and RBAC.  It should scale and be secure.  With that, the way Stategraph works best is everything being in a single repo and in a single root module.<p>Additionally, Stategraph should Just Work with your existing TF codebase.  You important the state and you're off to the races.<p>Once all of your state is in Stategraph, though, moving state around really becomes a question of what name those piece of state should have.  So, if you want to merge two root modules, it could be the case that you can check "do my resource names overlap?"  If no, you can tell Stategraph to merge the states and then copy your code into a single root module and go.  Otherwise, you need to do some resource renaming.<p>While we don't have all the details in place, I think it is quite likely that Stategraph will support metadata on your resources, perhaps with a new block.  This way you could provide namespaces to collections of resources, and that could make merging even easier.  But, there is a bit to figure out before that is a reality or determined to be the best way to go.</p>
]]></description><pubDate>Wed, 17 Sep 2025 14:35:10 +0000</pubDate><link>https://news.ycombinator.com/item?id=45276334</link><dc:creator>sausagefeet</dc:creator><comments>https://news.ycombinator.com/item?id=45276334</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45276334</guid></item><item><title><![CDATA[New comment by sausagefeet in "Stategraph: Terraform state as a distributed systems problem"]]></title><description><![CDATA[
<p>Your Terraform/Tofu code is a graph.  Resources are nodes and the dependencies between them are edges, so a graph is a very natural and useful representation of infrastructure.  There are well-understood algorithms for transitioning a graph between two representations that can be leveraged as well.  I think how you describe representing state would work fine, but a graph works quite well and is more natural for the types of operations we want to perform on the graph.</p>
]]></description><pubDate>Wed, 17 Sep 2025 14:25:50 +0000</pubDate><link>https://news.ycombinator.com/item?id=45276216</link><dc:creator>sausagefeet</dc:creator><comments>https://news.ycombinator.com/item?id=45276216</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45276216</guid></item><item><title><![CDATA[New comment by sausagefeet in "Stategraph: Terraform state as a distributed systems problem"]]></title><description><![CDATA[
<p>In terms of the semantics er care about, not really.   You still have to lock the whole thing to some with it.</p>
]]></description><pubDate>Wed, 17 Sep 2025 12:25:34 +0000</pubDate><link>https://news.ycombinator.com/item?id=45275008</link><dc:creator>sausagefeet</dc:creator><comments>https://news.ycombinator.com/item?id=45275008</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45275008</guid></item><item><title><![CDATA[New comment by sausagefeet in "Stategraph: Terraform state as a distributed systems problem"]]></title><description><![CDATA[
<p>Not necessarily.  The guidance is to split your TF code across multiple states which might feel like it make sense but for your microservices to communicate that beed to share some base infrastructure, such as networking, so where does that live?   Putting dependencies in their own state means that you lose the ability to understand how changing them impacts all of your infrastructure because you have this information black hole at the boundary of their state.<p>With Stategraph, you'll get all the benefits and isolation of separate state files, but when you changed resources, you'll get meaningful plans around all of the infrastructure they impact, not just the statically defined boundaries of a state file.</p>
]]></description><pubDate>Wed, 17 Sep 2025 10:23:17 +0000</pubDate><link>https://news.ycombinator.com/item?id=45273976</link><dc:creator>sausagefeet</dc:creator><comments>https://news.ycombinator.com/item?id=45273976</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45273976</guid></item><item><title><![CDATA[New comment by sausagefeet in "Stategraph: Terraform state as a distributed systems problem"]]></title><description><![CDATA[
<p>Thank you, that is great to hear!  We're pushing pretty hard to get a pre-alpha out to get some foundations testable by the community.</p>
]]></description><pubDate>Wed, 17 Sep 2025 10:17:31 +0000</pubDate><link>https://news.ycombinator.com/item?id=45273947</link><dc:creator>sausagefeet</dc:creator><comments>https://news.ycombinator.com/item?id=45273947</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45273947</guid></item><item><title><![CDATA[New comment by sausagefeet in "Stategraph: Terraform state as a distributed systems problem"]]></title><description><![CDATA[
<p>Hello, Stategraph developer here, the answer is: probably not.  That doesn't resolve the core issue of state being managed as a big blob.</p>
]]></description><pubDate>Wed, 17 Sep 2025 10:13:43 +0000</pubDate><link>https://news.ycombinator.com/item?id=45273921</link><dc:creator>sausagefeet</dc:creator><comments>https://news.ycombinator.com/item?id=45273921</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45273921</guid></item></channel></rss>