<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: shoo</title><link>https://news.ycombinator.com/user?id=shoo</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Mon, 27 Apr 2026 15:36:38 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=shoo" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by shoo in "An AI agent deleted our production database. The agent's confession is below"]]></title><description><![CDATA[
<p>creating isolated staging & prod environments -- good idea<p>allowing an AI agent to get hold of creds that let it execute destructive changes against production -- not a great idea<p>allowing prod database changes from the machine where the AI agent is running at all -- not a great idea<p>choosing a backup approach that fails completely if there's an accidental volume wipe API call -- not a great idea<p>choosing to outsource key dependencies to a vendor, where you want a recovery SLA, without negotiating & paying for a recovery SLA -- you get what you get, and you dont get upset</p>
]]></description><pubDate>Mon, 27 Apr 2026 01:17:31 +0000</pubDate><link>https://news.ycombinator.com/item?id=47916693</link><dc:creator>shoo</dc:creator><comments>https://news.ycombinator.com/item?id=47916693</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47916693</guid></item><item><title><![CDATA[New comment by shoo in "Tell HN: Medvi (telehealth) hardcodes 999 patient emails in public JavaScript"]]></title><description><![CDATA[
<p>Are the patient emails real patients or could they be test accounts?</p>
]]></description><pubDate>Sun, 26 Apr 2026 10:03:38 +0000</pubDate><link>https://news.ycombinator.com/item?id=47908981</link><dc:creator>shoo</dc:creator><comments>https://news.ycombinator.com/item?id=47908981</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47908981</guid></item><item><title><![CDATA[New comment by shoo in "Ex-CEO, ex-CFO of iLearningEngines charged with fraud"]]></title><description><![CDATA[
<p>Hindenburg Research is great. They also did the Nikola expose (that bunch of shysters who claimed to have electric truck technology where their truck couldn't even move under its own power so they filmed it rolling down a gentle slope).<p>For anyone wanting to get into the weeds about detecting accounting fraud, the book "Financial Shenanigans" has lots of historical examples of ways company executives have cooked the books to make their public company financial statements appear more appealing to investors than they actually are.</p>
]]></description><pubDate>Mon, 20 Apr 2026 01:00:16 +0000</pubDate><link>https://news.ycombinator.com/item?id=47829202</link><dc:creator>shoo</dc:creator><comments>https://news.ycombinator.com/item?id=47829202</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47829202</guid></item><item><title><![CDATA[New comment by shoo in "Ohm's Peg-to-WASM Compiler"]]></title><description><![CDATA[
<p>Josh Haberman has a good 2013 blog post discussing LL & LR parsers, theory vs practice, context-free grammars & Parsing Expression Grammars (PEGs):   <a href="https://blog.reverberate.org/2013/09/ll-and-lr-in-context-why-parsing-tools.html" rel="nofollow">https://blog.reverberate.org/2013/09/ll-and-lr-in-context-wh...</a></p>
]]></description><pubDate>Mon, 30 Mar 2026 01:06:05 +0000</pubDate><link>https://news.ycombinator.com/item?id=47569267</link><dc:creator>shoo</dc:creator><comments>https://news.ycombinator.com/item?id=47569267</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47569267</guid></item><item><title><![CDATA[New comment by shoo in "//go:fix inline and the source-level inliner"]]></title><description><![CDATA[
<p>it could be better than a nudge -- if you could get a mandatory `go fix` call into internal teams' CI pipelines that either fixes in place (perhaps risky) or fails the build if code isn't already identical to fixed code.</p>
]]></description><pubDate>Sun, 15 Mar 2026 22:23:24 +0000</pubDate><link>https://news.ycombinator.com/item?id=47392615</link><dc:creator>shoo</dc:creator><comments>https://news.ycombinator.com/item?id=47392615</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47392615</guid></item><item><title><![CDATA[New comment by shoo in "//go:fix inline and the source-level inliner"]]></title><description><![CDATA[
<p>Great example, illustrating go1.26.1 go fix source inline transformation breaking program semantics.  Raise it as a bug against go fix?</p>
]]></description><pubDate>Sun, 15 Mar 2026 21:26:45 +0000</pubDate><link>https://news.ycombinator.com/item?id=47392125</link><dc:creator>shoo</dc:creator><comments>https://news.ycombinator.com/item?id=47392125</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47392125</guid></item><item><title><![CDATA[New comment by shoo in "//go:fix inline and the source-level inliner"]]></title><description><![CDATA[
<p>If I follow, this isn't a compile time inline directive, it's a `go fix` time source transformation of client code calling the annotated function.<p>Per the post, it sounds like this is most effective in closed-ecosystem internal monorepo-like contexts where an organisation has control over every instance of client code & can `go fix` all of the call sites to completely eradicate all usage of a deprecated APIs:<p>> For many years now, our Google colleagues on the teams supporting Java, Kotlin, and C++ have been using source-level inliner tools like this. To date, these tools have eliminated millions of calls to deprecated functions in Google’s code base. Users simply add the directives, and wait. During the night, robots quietly prepare, test, and submit batches of code changes across a monorepo of billions of lines of code. If all goes well, by the morning the old code is no longer in use and can be safely deleted. Go’s inliner is a relative newcomer, but it has already been used to prepare more than 18,000 changelists to Google’s monorepo.<p>It could still have some incremental benefit for public APIs where client code is not under centralised control, but would not allow deprecated APIs to be removed without breakage.</p>
]]></description><pubDate>Sun, 15 Mar 2026 21:12:46 +0000</pubDate><link>https://news.ycombinator.com/item?id=47391984</link><dc:creator>shoo</dc:creator><comments>https://news.ycombinator.com/item?id=47391984</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47391984</guid></item><item><title><![CDATA[New comment by shoo in "I replaced my freelance SaaS stack with 5 single-file HTML tools"]]></title><description><![CDATA[
<p>you can get pretty far without programming at all, using spreadsheet templates</p>
]]></description><pubDate>Mon, 09 Mar 2026 21:21:02 +0000</pubDate><link>https://news.ycombinator.com/item?id=47315710</link><dc:creator>shoo</dc:creator><comments>https://news.ycombinator.com/item?id=47315710</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47315710</guid></item><item><title><![CDATA[New comment by shoo in "Building a Procedural Hex Map with Wave Function Collapse"]]></title><description><![CDATA[
<p>it's a classic. 2001 Spiel des Jahres Winner.<p>see <a href="https://boardgamegeek.com/boardgame/822/carcassonne" rel="nofollow">https://boardgamegeek.com/boardgame/822/carcassonne</a></p>
]]></description><pubDate>Mon, 09 Mar 2026 21:05:50 +0000</pubDate><link>https://news.ycombinator.com/item?id=47315513</link><dc:creator>shoo</dc:creator><comments>https://news.ycombinator.com/item?id=47315513</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47315513</guid></item><item><title><![CDATA[New comment by shoo in "Building a Procedural Hex Map with Wave Function Collapse"]]></title><description><![CDATA[
<p>there's also a bunch of dedicated constraint programming solvers / high level modelling languages for these kinds of constraint-y combinatorial optimisation problems<p>e.g. <a href="https://www.minizinc.org/" rel="nofollow">https://www.minizinc.org/</a>  offers a high level modelling language that can target a few different solver backends<p>might be pretty good results to completely ignore writing a custom algorithm and drop in an existing industrial-grade constraint programming solver, model your procgen problem using a high level language, and use the existing solver to find you random solutions (or exhaustively enumerate them).  then more time to iterate on changing the problem definition to produce more interesting maps rather than getting bogged down writing a solver.</p>
]]></description><pubDate>Mon, 09 Mar 2026 20:59:51 +0000</pubDate><link>https://news.ycombinator.com/item?id=47315437</link><dc:creator>shoo</dc:creator><comments>https://news.ycombinator.com/item?id=47315437</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47315437</guid></item><item><title><![CDATA[New comment by shoo in "Ask HN: Are you a SWE that lost job purely due to AI? Share your story"]]></title><description><![CDATA[
<p>prior ask HN thread from early feb 2026:  <a href="https://news.ycombinator.com/item?id=46867190">https://news.ycombinator.com/item?id=46867190</a></p>
]]></description><pubDate>Sat, 21 Feb 2026 00:43:32 +0000</pubDate><link>https://news.ycombinator.com/item?id=47096160</link><dc:creator>shoo</dc:creator><comments>https://news.ycombinator.com/item?id=47096160</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47096160</guid></item><item><title><![CDATA[New comment by shoo in "Tesla 'Robotaxi' adds 5 more crashes in Austin in a month – 4x worse than humans"]]></title><description><![CDATA[
<p>> low air density environment. At normal air density near the surface of the Earth that ion thruster could only get a toddler up to ~10 km/h<p>agreed. this also provides an explanation for the otherwise surprising fact that prey animals in the savannah have never been observed to naturally evolve ion thrusters.</p>
]]></description><pubDate>Tue, 17 Feb 2026 23:03:03 +0000</pubDate><link>https://news.ycombinator.com/item?id=47054696</link><dc:creator>shoo</dc:creator><comments>https://news.ycombinator.com/item?id=47054696</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47054696</guid></item><item><title><![CDATA[New comment by shoo in "Using go fix to modernize Go code"]]></title><description><![CDATA[
<p>middling code, delivered within a tolerable time frame, budget, without taking excessive risk, is good enough for many real-world commercial software projects. homogeneous middling code, written by humans or extruded by machines, is arguably even a positive for the organisation: lots of organisations are more interested in delivery of software projects being predictable, or having a high bus-factor due to the fungibility of the folks (or machines) building and maintaining the code, rather than depending upon excellence.</p>
]]></description><pubDate>Tue, 17 Feb 2026 21:30:59 +0000</pubDate><link>https://news.ycombinator.com/item?id=47053662</link><dc:creator>shoo</dc:creator><comments>https://news.ycombinator.com/item?id=47053662</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47053662</guid></item><item><title><![CDATA[New comment by shoo in "Tesla 'Robotaxi' adds 5 more crashes in Austin in a month – 4x worse than humans"]]></title><description><![CDATA[
<p>in contrast, a toddler equipped with an ion thruster & a modest quantity of xeon propellant could achieve enough delta-v to attain cheetah-escape velocity, provided the initial trajectory during the first 31 hours of the mission was through a low-cheetah-density environment</p>
]]></description><pubDate>Tue, 17 Feb 2026 20:44:47 +0000</pubDate><link>https://news.ycombinator.com/item?id=47053055</link><dc:creator>shoo</dc:creator><comments>https://news.ycombinator.com/item?id=47053055</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47053055</guid></item><item><title><![CDATA[New comment by shoo in "Building SQLite with a small swarm"]]></title><description><![CDATA[
<p>or jump off, and instead grab onto the (well-deserved) sqlite-test-suite hype train.</p>
]]></description><pubDate>Mon, 16 Feb 2026 07:49:25 +0000</pubDate><link>https://news.ycombinator.com/item?id=47032123</link><dc:creator>shoo</dc:creator><comments>https://news.ycombinator.com/item?id=47032123</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47032123</guid></item><item><title><![CDATA[New comment by shoo in "I Love Board Games: A Personal Obsession Explained by Psychology"]]></title><description><![CDATA[
<p>> Brass Birmingham [...] there are often only 1-2 legal moves to play and figuring out what they are is quite a challenge for people playing the first time.<p>Also, some of those legal moves will set up a board state that the player taking a turn immediately after you can exploit for a lot more benefit than you got, so not only are the legal builds hard to identify for new players, half of those legal moves are also traps! If new players aren't comfortable learning the hard way, the player who is teaching the game can always call these out, explain what is going to happen & give people the opportunity to redo their move.<p>An alternative strategy game that is less complex than Brass is Friedemann Friese's classic Power Grid (2004) [1].  It has some of the same elements (network expansion, building stuff to make money) and parts of it are highly interactive (auctions!) but it is less complex and doesn't feature so many negative player interactions.  The main down side of Power Grid is that some of the "admin" rules are pretty fiddly, but provided there is an experienced player to teach the game & be responsible for the admin, players who are learning don't need to care about the details.<p>[1] <a href="https://boardgamegeek.com/boardgame/2651/power-grid" rel="nofollow">https://boardgamegeek.com/boardgame/2651/power-grid</a></p>
]]></description><pubDate>Mon, 16 Feb 2026 05:46:52 +0000</pubDate><link>https://news.ycombinator.com/item?id=47031303</link><dc:creator>shoo</dc:creator><comments>https://news.ycombinator.com/item?id=47031303</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47031303</guid></item><item><title><![CDATA[New comment by shoo in "I Love Board Games: A Personal Obsession Explained by Psychology"]]></title><description><![CDATA[
<p>+1 to pavel_lishin's Splendor suggestion.  There's also Splendour: Duel [1] which is a more complex version of the game designed for 2 players.<p>Another quick, low-complexity game that is easy to teach & pretty good fun is Century: Spice Road [2]<p>Chinatown [3] (re-themed as Waterfall Park [3b] ) is a simple highly interactive game that is basically 100% negotiations between players who are trying to make real estate deals with each other. Can be played in 90 minutes, including rules explanation, plays up to 5.  For a more complex asymmetric game that's more focused on engine building, with a healthy dose of negotiation, check out Sidereal Confluence [4].<p>For more complex games that take a bit longer to play to teach and play, that are largely focused on players doing their own thing ("multiplayer solitaire"), building their engines without much negative player interaction, check out Ark Nova [5] or Terraforming Mars [6]. These might take 3-4 hours or so to finish, provided there's an experienced player to teach everyone the rules.<p>For another moderately complex strategy game with a little more player interaction, check out Brass: Birmingham [7]. Takes around 4.5 hours to finish a 4 player game, including the rules explanation. If you have a group that enjoys complex strategy games and wants something with spikier negative player interactions, where one player's actions can completely wreck another player's plans, check out Barrage [8].<p>This probably doesn't help "without spending much money"! One trick is to find or create a regular board gaming group where everyone brings along different games. That way if, everyone buys a new game or two every year there's a lot of variety without everyone needing to buy heaps of games.<p>[1] <a href="https://boardgamegeek.com/boardgame/364073/splendor-duel" rel="nofollow">https://boardgamegeek.com/boardgame/364073/splendor-duel</a><p>[2] <a href="https://boardgamegeek.com/boardgame/209685/century-spice-road" rel="nofollow">https://boardgamegeek.com/boardgame/209685/century-spice-roa...</a><p>[3] <a href="https://boardgamegeek.com/boardgame/47/chinatown" rel="nofollow">https://boardgamegeek.com/boardgame/47/chinatown</a><p>[3b] <a href="https://boardgamegeek.com/boardgame/396618/waterfall-park" rel="nofollow">https://boardgamegeek.com/boardgame/396618/waterfall-park</a><p>[4] <a href="https://boardgamegeek.com/boardgame/202426/sidereal-confluence" rel="nofollow">https://boardgamegeek.com/boardgame/202426/sidereal-confluen...</a><p>[5] <a href="https://boardgamegeek.com/boardgame/342942/ark-nova" rel="nofollow">https://boardgamegeek.com/boardgame/342942/ark-nova</a><p>[6] <a href="https://boardgamegeek.com/boardgame/167791/terraforming-mars" rel="nofollow">https://boardgamegeek.com/boardgame/167791/terraforming-mars</a><p>[7] <a href="https://boardgamegeek.com/boardgame/224517/brass-birmingham" rel="nofollow">https://boardgamegeek.com/boardgame/224517/brass-birmingham</a><p>[8] <a href="https://boardgamegeek.com/boardgame/251247/barrage" rel="nofollow">https://boardgamegeek.com/boardgame/251247/barrage</a></p>
]]></description><pubDate>Mon, 16 Feb 2026 05:24:36 +0000</pubDate><link>https://news.ycombinator.com/item?id=47031184</link><dc:creator>shoo</dc:creator><comments>https://news.ycombinator.com/item?id=47031184</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47031184</guid></item><item><title><![CDATA[New comment by shoo in "Faster Than Dijkstra?"]]></title><description><![CDATA[
<p>standard algorithms for single-source/single-dest pathfinding scale log-linearly in the size of the graph, so compared to other combinatorial optimisation problems, optimal pathfinding is incredibly easy for computers to do & scales pretty well to industrial-sized problems. computers can also do optimal pathfinding for problems that humans would not be able to solve easily (because the graphs don't easily embed in 2d or 3d, say, so we can't bring our vision systems to bear)<p>other combinatorial optimisation problems - like the traveling salesman you mention - are much harder than pathfinding to solve optimally or even approximately</p>
]]></description><pubDate>Sat, 14 Feb 2026 00:35:09 +0000</pubDate><link>https://news.ycombinator.com/item?id=47009910</link><dc:creator>shoo</dc:creator><comments>https://news.ycombinator.com/item?id=47009910</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47009910</guid></item><item><title><![CDATA[New comment by shoo in "Age of Empires: 25 years of pathfinding problems with C++ [video]"]]></title><description><![CDATA[
<p>what a great talk with many little highlights: code archaeology of a codebase passed between many teams & companies with the full revision history being lost somewhere along the way,  detective work figuring out there had been an accidental regression in floating point precision when SIMD was enabled, obtaining higher performance by specialising/simplifying the 2d geometry algorithm to axis-aligned rectangular obstacles instead of the prior convex hull code, automatically fuzz-testing the proposed "obviously valid" algorithm by AI vs AI matches & using logging/invariants to identify and harvest nasty counterexamples, growing a unit test suite of 100 harvested nasty counterexamples while fixing the identified defects in the new algorithm, finally shipping it and receiving player feedback</p>
]]></description><pubDate>Sat, 14 Feb 2026 00:22:17 +0000</pubDate><link>https://news.ycombinator.com/item?id=47009788</link><dc:creator>shoo</dc:creator><comments>https://news.ycombinator.com/item?id=47009788</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47009788</guid></item><item><title><![CDATA[New comment by shoo in "Faster Than Dijkstra?"]]></title><description><![CDATA[
<p>The underlying argument this article seems to be making is that an appropriate algorithm for any given application isn't always the one with the most efficient asymptotic performance for sufficiently large n -- for a given application (in this case routing), we have data on typical values of n that appear in reality and we can choose an algorithm that offers good enough (or optimal) performance for n in that constrained range, as well as potentially having other benefits such being simpler to implement correctly in a short amount of engineering time.<p>This argument is very much in line with Mike Acton's data-driven design philosophy [1] -- understand the actual specific problem you need to solve, not the abstract general problem. Understand the statistical distribution of actual problem instances, they'll have parameters in some range. Understand the hardware you're building writing software for, understand its finite capacity & capability.<p>It's common that new algorithms or data-structures with superior asymptotic efficiency are less performant for smaller problem sizes vs simpler alternatives. As always, it depends on the specifics of any given application.<p>[1] see Mike's CppCon 2014 talk "Data-Oriented Design and C++" <a href="https://www.youtube.com/watch?v=rX0ItVEVjHc" rel="nofollow">https://www.youtube.com/watch?v=rX0ItVEVjHc</a></p>
]]></description><pubDate>Fri, 13 Feb 2026 21:18:24 +0000</pubDate><link>https://news.ycombinator.com/item?id=47007966</link><dc:creator>shoo</dc:creator><comments>https://news.ycombinator.com/item?id=47007966</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47007966</guid></item></channel></rss>