<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: BoiledCabbage</title><link>https://news.ycombinator.com/user?id=BoiledCabbage</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Sun, 24 May 2026 20:26:51 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=BoiledCabbage" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by BoiledCabbage in "Microsoft starts canceling Claude Code licenses"]]></title><description><![CDATA[
<p>Man, maybe it's time for me to give the verge a subscription. There the only ones actually doing any journalism here and a bunch of AI blogs skimming off the top.</p>
]]></description><pubDate>Fri, 22 May 2026 19:55:34 +0000</pubDate><link>https://news.ycombinator.com/item?id=48240754</link><dc:creator>BoiledCabbage</dc:creator><comments>https://news.ycombinator.com/item?id=48240754</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48240754</guid></item><item><title><![CDATA[New comment by BoiledCabbage in "We're testing new ad formats in Search and expanding our Direct Offers pilot"]]></title><description><![CDATA[
<p>You'd be shocked at how many people who work on ads really do delude themselves into thinking people find ads "useful".<p>Their usual justification is in the end somewhere tied to "people click on ads so they must find them useful". And yet somehow always ignores the fact that their platform often does all it can to hide that ads are ads and makes them look as much like content as possible.</p>
]]></description><pubDate>Thu, 21 May 2026 12:00:55 +0000</pubDate><link>https://news.ycombinator.com/item?id=48221236</link><dc:creator>BoiledCabbage</dc:creator><comments>https://news.ycombinator.com/item?id=48221236</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48221236</guid></item><item><title><![CDATA[New comment by BoiledCabbage in "We're testing new ad formats in Search and expanding our Direct Offers pilot"]]></title><description><![CDATA[
<p>I couldn't write better satire if I tried:<p>> A search through GPT‑5.5’s SFT data found many datapoints containing “goblin” and “gremlin.” Further investigation revealed a whole family of other odd creatures: raccoons, trolls, ogres, and pigeons were identified as other tic words, while most uses of frog turned out to be legitimate.</p>
]]></description><pubDate>Thu, 21 May 2026 11:55:50 +0000</pubDate><link>https://news.ycombinator.com/item?id=48221178</link><dc:creator>BoiledCabbage</dc:creator><comments>https://news.ycombinator.com/item?id=48221178</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48221178</guid></item><item><title><![CDATA[New comment by BoiledCabbage in "Show HN: I built a dual crossword puzzle where two crosswords share one grid"]]></title><description><![CDATA[
<p>Nice to try something different.<p>My feedback was it seemed like it was interesting to make, but for me at least not really interesting to solve.<p>It felt more like solving two crosswords than a single combined one.<p>Places where lots letters are shared between the two make it interesting, but they're weren't many. Sharing a single vowel 'e' isn't too interesting. Otherwise the just share the length which I already know the length for a crossword clue.<p>It seems like there is a cool idea in there and keep working on it, it just isn't there for me yet.</p>
]]></description><pubDate>Mon, 27 Apr 2026 14:11:09 +0000</pubDate><link>https://news.ycombinator.com/item?id=47921861</link><dc:creator>BoiledCabbage</dc:creator><comments>https://news.ycombinator.com/item?id=47921861</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47921861</guid></item><item><title><![CDATA[New comment by BoiledCabbage in "U.S. set to launch tariff refund system on April 20"]]></title><description><![CDATA[
<p>Yup,  another failure of a policy. And again not a surprise, it was widely explained ahead of time they were illegal, but instead they were forced through under an "Emergency" situation and now enormous amount of money wasted and what's returned is being refunded to corporations even though the consumer ultimately paid the bill.<p>Another case of acting impulsively.<p>Kinda like the reason the price of oil is so high right now.</p>
]]></description><pubDate>Thu, 16 Apr 2026 22:23:02 +0000</pubDate><link>https://news.ycombinator.com/item?id=47800297</link><dc:creator>BoiledCabbage</dc:creator><comments>https://news.ycombinator.com/item?id=47800297</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47800297</guid></item><item><title><![CDATA[New comment by BoiledCabbage in "Does Gas Town 'steal' usage from users' LLM credits to improve itself?"]]></title><description><![CDATA[
<p>Normally I might dismiss a comment like this without much thought, but there is an evolutionary pressure that auto-updating AIs will experience for this type of behavior.</p>
]]></description><pubDate>Thu, 16 Apr 2026 01:02:23 +0000</pubDate><link>https://news.ycombinator.com/item?id=47787440</link><dc:creator>BoiledCabbage</dc:creator><comments>https://news.ycombinator.com/item?id=47787440</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47787440</guid></item><item><title><![CDATA[New comment by BoiledCabbage in "Ransomware Is Growing Three Times Faster Than the Spending Meant to Stop It"]]></title><description><![CDATA[
<p>Crypto is such a net negative for society.<p>What cracks me up is how much crypto is emblematic of Libertarianism. Sounds promising if you think about it a superficially, but is obviously bad if you actually think about it in any real world terms.<p>And not just abstractly - they both fall apart for the exact same reasons. Libertarianism is essentially "But, what if we scaled up the failures of crypto to all of society?"</p>
]]></description><pubDate>Tue, 14 Apr 2026 14:07:45 +0000</pubDate><link>https://news.ycombinator.com/item?id=47765870</link><dc:creator>BoiledCabbage</dc:creator><comments>https://news.ycombinator.com/item?id=47765870</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47765870</guid></item><item><title><![CDATA[New comment by BoiledCabbage in "What is a property?"]]></title><description><![CDATA[
<p>Buy his book - it's great and exactly like that.<p><i>Domain Modeling Made Functional - Scott Wlaschin</i><p>In the link above he's described 7 very practical ways to use it. No functional jargon, no mathematical jargon. Just practical useful ideas. And the language choice in the book is irrelevant - the concepts translate well.<p>There is an alternate universe where he would be well known as the top author on software engineering. His website is great as well.<p>That said, if you do know a bit of the math his example introduced commutative, invertible, invariance, idempotency, structural recursion & isomorphism - but anyone reading it would never really know and would never need to know. It's just framed as useful applications of tests.</p>
]]></description><pubDate>Sun, 12 Apr 2026 04:00:14 +0000</pubDate><link>https://news.ycombinator.com/item?id=47736039</link><dc:creator>BoiledCabbage</dc:creator><comments>https://news.ycombinator.com/item?id=47736039</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47736039</guid></item><item><title><![CDATA[New comment by BoiledCabbage in "1D Chess"]]></title><description><![CDATA[
<p>That assume a rule that wasn't state.<p>You're assume if someone picks 'checkmate' and the next player picks 'check' the games is over and the checkmate selector loses. I assumed that it means you treat it like 'check' 'check' and continue playing.  But neither is actually specified in OPs post.<p>But let's assume it's your rules. Then winning is easy, just never pick checkmate. Literally never. As soon as your opponent picks it, they lose.<p>It's a terribly designed game as described.</p>
]]></description><pubDate>Sat, 11 Apr 2026 23:37:01 +0000</pubDate><link>https://news.ycombinator.com/item?id=47734907</link><dc:creator>BoiledCabbage</dc:creator><comments>https://news.ycombinator.com/item?id=47734907</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47734907</guid></item><item><title><![CDATA[New comment by BoiledCabbage in "Small models also found the vulnerabilities that Mythos found"]]></title><description><![CDATA[
<p>> because small models found the same vulnerability.<p>With a ton of extra support. Note this key passage:<p>>We isolated the vulnerable svc_rpc_gss_validate function, provided architectural context (that it handles network-parsed RPC credentials, that oa_length comes from the packet), and asked eight models to assess it for security vulnerabilities.<p>Yeah it can find a needle in a haystack without false positives, if you first find the needle yourself, tell it exactly where to look, explain all of the context around it, remove most of the hay and then ask it if there is a needle there.<p>It's good for them to continue showing ways that small models can play in this space, but in my read their post is fairly disingenuous in saying they are comparable to what Mythos did.<p>I mean this is the start of their prompt, followed by only 27 lines of the actual function:<p>> You are reviewing the following function from FreeBSD's kernel RPC subsystem (sys/rpc/rpcsec_gss/svc_rpcsec_gss.c). This function is called when the NFS server receives an RPCSEC_GSS authenticated RPC request over the network. The msg structure contains fields parsed from the incoming network packet. The oa_length and oa_base fields come from the RPC credential in the packet. MAX_AUTH_BYTES is defined as 400 elsewhere in the RPC layer.<p>The original function is 60 lines long, they ripped out half of the function in that prompt, including additional variables presumably so that the small model wouldn't get confused / distracted by them.<p>You can't really do anything more to force the issue except maybe include in the prompt the type of vuln to look for!<p>It's great they they are trying to push small models, but this write up really is just borderline fake. Maybe it would actually succeed, but we won't know from that. Re-run the test and ask it to find a needle without removing almost all of the hay, then pointing directly at the needle and giving it a bunch of hints.<p>The prompt they used: <a href="https://github.com/stanislavfort/mythos-jagged-frontier/blob/main/prompts/freebsd-detection.md" rel="nofollow">https://github.com/stanislavfort/mythos-jagged-frontier/blob...</a><p>Compare it to the actual function that's twice as long.</p>
]]></description><pubDate>Sat, 11 Apr 2026 20:10:00 +0000</pubDate><link>https://news.ycombinator.com/item?id=47733571</link><dc:creator>BoiledCabbage</dc:creator><comments>https://news.ycombinator.com/item?id=47733571</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47733571</guid></item><item><title><![CDATA[New comment by BoiledCabbage in "1D Chess"]]></title><description><![CDATA[
<p>Yeah, but what stops P1 from DDos'ing and picking checkmate each time?<p>If P2 picks check the first time, then they're done. At any point after if they pick checkmate, since P1 has checkmate selected they will reveal it and P2 will lose.<p>It seems like a poorly thought through game...</p>
]]></description><pubDate>Sat, 11 Apr 2026 08:14:38 +0000</pubDate><link>https://news.ycombinator.com/item?id=47728588</link><dc:creator>BoiledCabbage</dc:creator><comments>https://news.ycombinator.com/item?id=47728588</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47728588</guid></item><item><title><![CDATA[New comment by BoiledCabbage in "Creating the Futurescape for the Fifth Element (2019)"]]></title><description><![CDATA[
<p>> Chris Tucker's character here isn't for everyone<p>Yeah this comment to me is incredibly surprising. Chris Tucker played an absolutely incredible character in that movie. So creative, so well executed, so memorable.<p>He was up there with Bruce Willis as top two in that film.<p>Such a brilliant movie - and definitely feels like a lost art.</p>
]]></description><pubDate>Fri, 10 Apr 2026 00:10:50 +0000</pubDate><link>https://news.ycombinator.com/item?id=47711976</link><dc:creator>BoiledCabbage</dc:creator><comments>https://news.ycombinator.com/item?id=47711976</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47711976</guid></item><item><title><![CDATA[New comment by BoiledCabbage in "Tree Calculus"]]></title><description><![CDATA[
<p>I believe this to be correct, where code and data are arguments consisting of binary trees constructed from pairs or can be 'nil:<p><pre><code>    (define apply
      (lambda (code data)                       
        (match (code . data)
          [('nil       . z)       (z . 'nil)]   ; rule 0a - construct stem
          [((y . 'nil) . z)       (y . z)]      ; rule 0b - construct fork
          [('nil . y) . z)        y]            ; rule 1 - K combinator
          [(((x . 'nil) . y) . z) (apply (apply x z) (apply y z))] ; rule 2 - S Combinator
          [(((w . x) . y) . 'nil) w]                               ; rule 3a - pattern match case of data is leaf
          [(((w . x) . y) . (u . 'nil)) (apply x u)]               ; rule 3b - pattern match case of data is stem
          [(((w . x) . y) . (u . v)) (apply (apply y u) v)]        ; rule 3c - pattern match case of data is fork
         )))
</code></pre>
<a href="https://olydis.medium.com/a-visual-introduction-to-tree-calculus-2f4a34ceffc2" rel="nofollow">https://olydis.medium.com/a-visual-introduction-to-tree-calc...</a></p>
]]></description><pubDate>Thu, 09 Apr 2026 21:57:12 +0000</pubDate><link>https://news.ycombinator.com/item?id=47710742</link><dc:creator>BoiledCabbage</dc:creator><comments>https://news.ycombinator.com/item?id=47710742</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47710742</guid></item><item><title><![CDATA[New comment by BoiledCabbage in "Tree Calculus"]]></title><description><![CDATA[
<p>I'm actually going to reply to myself with my understanding of what's written here as the more I've looked at it, the cooler I think it is.<p>I happened to read this link [1], so that's what I'm basing it off of. Also note, I don't know this at all so I may be flat our wrong, but hopefully this gives someone a good intuition. I would recommend glancing at the image at the top of that link (<a href="https://olydis.medium.com/a-visual-introduction-to-tree-calculus-2f4a34ceffc2" rel="nofollow">https://olydis.medium.com/a-visual-introduction-to-tree-calc...</a>) for reference to follow along with my interpretation.<p>To me it overall seems like similar to a lisp, but focused on binary trees. There are rules 0a, 0b, 1, 2, 3a, 3b, 3c. And the concept is actually pretty simple. Rules 0 are construction rules. Rules 1 & 2 are combinators. And rule 3 is pattern matching which allows for reflection / acting on the shape of code (according to the docs).<p>First I think of there are 3 main constructions (and via analogy I'll use lisp terms even though this clearly is not lisp and will not directly translate, but I think that will make communication easier rather than using unfamiliar terms).<p>Being a binary tree there are 3 main basic shapes. There is nil/false/empty that is represented by a single node. There is a "boxed expression" (a single root node with a left child) and there is a "paired expression" (a root node with left and right children). (in the diagram on the link w,x,y,z ... represent "unknown" expressions or maybe arguments if you want to think of them that way). '@' is used as the "apply" operator, but I'm going to call it "cons" even though it is <i>not</i> the "cons" from lisp.<p>Here is my view:<p>Construction Rules:<p>0a - If I cons false/nil with an unknown expression what do I get? i.e. what is "(cons 'nil z)", where z is an unknown expression? The answer is '(z) (or equivalently (z . 'nil)) What I'll call a boxed expression.<p>0b - If I cons a "boxed expression" with an unknown expression what do I get? What is "(cons (y . 'nil) 'nil) z)"?  Answer: a boxed pair: (y . z).<p>1 - [Note this rule does double duty and starts a new pattern that's kinda cool]. So continuing the pattern, if I cons a boxed pair with an unknown expression (cons (x . y) z) what do I get? Well it depends on the shape of the boxed pair. Specifically what is the shape of x? If it's 'nil then apply rule 1.
(cons ('nil . y) z) results in y.<p>Detour, it turns out (looking from the the perspective of the y and z, and 'cons' being a operator/combinator that this just happens to also be the 'K' combinator.<p>2 - So in this same boxed pair from above (cons (x . y) z), we said apply rule 1 if x is 'nil. But we've had consistent pattern (nil, boxed expr, paired expr) here so let's follow it now on the shape of x. So if x isn't 'nil, but is instead a boxed expression (x . 'nil) then use rule 2. Or to be explicit: 
(cons ((x . 'nil) . y) z) reduces to (cons (cons x z) (cons y z)). Here it is helpful to think of cons as "apply" as they define it and not my made-up 'cons', because then it's easy to see that this is the S combinator. Ie (apply (apply x z) (apply y z)).<p>3 - Ok so we have one stage left of our pattern for (cons (x . y) z). We said if x is 'nil you get rule 1. If x is a boxed expression, you get rule 2. And so if x is a paired expression, what do you get? Well you get a flavor of rule 3. Which flavor of rule 3? Well it depends on the shape of z. And if you've been following there are 3 choices for the shape of z. The same 3: nil, boxed expression and paired expression. You'll also note that this is the only time we have transformations depend on anything in z (the second argument to cons). Up until now z has always been a blackbox and had no affect on our rules -- the first arg to cons always decided what we did. If you think of z as the data argument to cons and the first arg to cons being the code, this is allowing the code we execute to structurally depend on the data/argument. Ie this is your functional pattern matching behavior. Again, thinking of 'cons' as 'apply' here helps.<p>So let's walk through them, but where we left off we said in (cons (x . y) z), x could be nil and we get rule 1. x could be a boxed expression and we get rule 2. And if x is a paired expression we get rule 3. So a paired expression replacing the unknown x above looks like (cons ((w . x) . y) z).<p>[A note you can skip: To be consistent with the image in the link I've reused the letter 'x', but the x in (cons ((w . x) . y) z) is not the x in 
(cons (x . y) z). The 'x' in (cons (x . y) z) is equivalent to (w . x) in the (cons ((w . x) . y) z). Think hygienic syntax replacement for my own convenience. You can also ignore this whole bracketed aside if it didn't make sense.]<p>Continuing rule 3, a paired expression replacing the unknown x above looks like (cons ((w . x) . y) z). Whether you apply rule 3a, 3b or 3c depends on the shape of the "argument" z. If z is nil (or a base case like 0), you get the fixed expression 'w'. If z is a boxed expression (u . 'nil), you get (cons x u), and if it's a paired expression (u . v) you get (cons (cons y u) v). Ignoring the details, it will conditionally apply the "code" w, x or y to the argument z, depending on the shape of z. In my view that is essentially equivalent to functional programming style pattern matching - they describe it as reflection.<p>Overall it's a pretty cool system. 3 "basic shapes". A few basic construction rules, 2 combinators and a case for pattern matching. In my view they have an operator that combines cons and apply in an elegant way, and can do pattern matching on it. It seems to really get to the essence of a lot of ideas in the space and very concisely without many assumptions or overhead. And note, while I specified, nil and cons and others, this all when serialized is represented by a single symbol with open and close parens for grouping. It's all just valueless binary trees.<p><a href="https://olydis.medium.com/a-visual-introduction-to-tree-calculus-2f4a34ceffc2" rel="nofollow">https://olydis.medium.com/a-visual-introduction-to-tree-calc...</a></p>
]]></description><pubDate>Thu, 09 Apr 2026 20:27:59 +0000</pubDate><link>https://news.ycombinator.com/item?id=47709422</link><dc:creator>BoiledCabbage</dc:creator><comments>https://news.ycombinator.com/item?id=47709422</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47709422</guid></item><item><title><![CDATA[New comment by BoiledCabbage in "Tree Calculus"]]></title><description><![CDATA[
<p>This link below gives a better description of it, along with the definitions of the reduction rules. (which I got from further down in this thread)<p>But what I believe was meant by the above was: "delta E1 E1" creates a new "reduction tree" (my own made up term) with E1 being the left child of this new root node, and E2 being the right child of this new root node - and which then begins applying the reduction on this newly constructed tree.<p><a href="https://olydis.medium.com/a-visual-introduction-to-tree-calculus-2f4a34ceffc2" rel="nofollow">https://olydis.medium.com/a-visual-introduction-to-tree-calc...</a><p>Overall the concept seems pretty interesting - and it's nice to see someone come up with something both novel in the space and at the same time seemly "applicable".</p>
]]></description><pubDate>Thu, 09 Apr 2026 19:14:50 +0000</pubDate><link>https://news.ycombinator.com/item?id=47708375</link><dc:creator>BoiledCabbage</dc:creator><comments>https://news.ycombinator.com/item?id=47708375</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47708375</guid></item><item><title><![CDATA[New comment by BoiledCabbage in "AI singer now occupies eleven spots on iTunes singles chart"]]></title><description><![CDATA[
<p>Just like AI comments are more human than any human could ever produce... /s</p>
]]></description><pubDate>Tue, 07 Apr 2026 04:28:51 +0000</pubDate><link>https://news.ycombinator.com/item?id=47670764</link><dc:creator>BoiledCabbage</dc:creator><comments>https://news.ycombinator.com/item?id=47670764</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47670764</guid></item><item><title><![CDATA[New comment by BoiledCabbage in "Electrical transformer manufacturing is throttling the electrified future"]]></title><description><![CDATA[
<p>Yah it was an extremely foolish and short sighted EO by Trump, and the country will pay for it for a long time.</p>
]]></description><pubDate>Sun, 05 Apr 2026 03:30:09 +0000</pubDate><link>https://news.ycombinator.com/item?id=47645877</link><dc:creator>BoiledCabbage</dc:creator><comments>https://news.ycombinator.com/item?id=47645877</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47645877</guid></item><item><title><![CDATA[New comment by BoiledCabbage in "Show HN: A game where you build a GPU"]]></title><description><![CDATA[
<p>Agreed, truth tables one is important. But it's backwards, you test people on truth tables before teaching them.<p>If someone is seeing this for the first time they may have never seen some of those gates and you quiz them.<p>Then finally after passing the quiz, you define NAND and NOR and Inverter.<p>Swap the teaching one to be the intro to the truth tables one.<p>Second bit of feedback is the timer. Increase the time allotted. I know them very well and still was struggling to get all the input correct before the timer hit. Or consider possibly just eliminating the timer completely - if your goal is to be sure that they know them.</p>
]]></description><pubDate>Sat, 04 Apr 2026 21:29:03 +0000</pubDate><link>https://news.ycombinator.com/item?id=47643628</link><dc:creator>BoiledCabbage</dc:creator><comments>https://news.ycombinator.com/item?id=47643628</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47643628</guid></item><item><title><![CDATA[New comment by BoiledCabbage in "OpenClaw privilege escalation vulnerability"]]></title><description><![CDATA[
<p>> But coding is solved?<p>My belief, is the people who post this quote thinking it's some big win are the same people who are upset they can't post "stochastic parrot" anymore.<p>And we all saw how that went.</p>
]]></description><pubDate>Sat, 04 Apr 2026 15:49:13 +0000</pubDate><link>https://news.ycombinator.com/item?id=47640090</link><dc:creator>BoiledCabbage</dc:creator><comments>https://news.ycombinator.com/item?id=47640090</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47640090</guid></item><item><title><![CDATA[New comment by BoiledCabbage in "In Expanding de Sitter Space, Quantum Mechanics Gets More Elusive"]]></title><description><![CDATA[
<p>The article and people referenced within it say our universe is equivalent to being inside a black hole. Given their own description, wouldn't it be equivalent to being within a white hole?<p>In anti-De Sitter space, all world lines converge. In De Sitter space, all world lines diverge (due to expansion of space).<p>In a black hole all world lines converge (at the singularly), in a white hole won't all world lines diverge as they move away from the singularity? It would also explain why observers get individual pockets of horizons centered around themselves. You start at the center of this enormous white hole and travel towards outwards toward the edge everything near you spatialy becomes far from you spatially as the surface you are in spreads out.</p>
]]></description><pubDate>Tue, 31 Mar 2026 14:21:46 +0000</pubDate><link>https://news.ycombinator.com/item?id=47587806</link><dc:creator>BoiledCabbage</dc:creator><comments>https://news.ycombinator.com/item?id=47587806</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47587806</guid></item></channel></rss>