<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: 6gvONxR4sf7o</title><link>https://news.ycombinator.com/user?id=6gvONxR4sf7o</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Mon, 24 Aug 2026 02:33:20 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=6gvONxR4sf7o" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by 6gvONxR4sf7o in "Turns are Better than Radians (2022)"]]></title><description><![CDATA[
<p>If we add types or a geometric abstract manifold or something, the issue is that we <i>do</i> want cos and sin to take numbers with a scale (e.g. cos(90 degrees) vs cos pi/2 rads), but we generally don't give the same  thing to e or exponentiation (no e^i(pi/2 radians) vs e^i(90 degrees).<p>> But on your right side, you have turns: the expression cos x + i sin x is literally saying that the point whose angle is x on the unit circle in the complex plane is the complex number <cos x, sin x>.<p>I totally agree here, and that's purely geometric, regardless of what we express x in. We can talk in terms of abstract points without specific coordinates/embeddings in R.<p>> When you have that 2π in there, but not in the sin and cos expressions, you're using different angles for multiplication/exponentiation and for sin/cos.<p>This part I'm not following. When we talk about a scale, any purely universal identity like Arg(z^2) = 2 Arg(z) is going to hold regardless of the scale. I agree that the Arg stuff nicely motivates interpreting it as an angle, but don't see how it says anything at all about the scale in question. Like, we get an interpretation of e^2πix as working in angles from the Arg reasoning, but we don't get a scale for those angles from it, do we? We'd only get Arg if we impose a scale on Arg itself, right?<p>So if we take e^2πix at x=1/2 turn=1/2, we get e^πi=-1, which gets us Arg(-1)=1/2 turn=pi rads=180 degrees, and we can work from there, but I still don't see how it imposes a unique scale that we can say is still radians and thus incompatible with the RHS's scale of turns.</p>
]]></description><pubDate>Thu, 20 Aug 2026 21:11:59 +0000</pubDate><link>https://news.ycombinator.com/item?id=49380329</link><dc:creator>6gvONxR4sf7o</dc:creator><comments>https://news.ycombinator.com/item?id=49380329</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49380329</guid></item><item><title><![CDATA[New comment by 6gvONxR4sf7o in "Turns are Better than Radians (2022)"]]></title><description><![CDATA[
<p>Why not e^{2 pi i x} = cos x + i sin x then? We already handle e^{2 pi/360 i x} = cos x + i sin x for x in degrees just fine. It's not that euler no longer holds, it's that you just have to be clear about what units[0] you use when comparing the explicitly angular/geometric cos and sin with the numeric exponential, and then deciding on a default numeric cos and sin/a default "unit" for angles.<p>If we want to get real interesting with it, this could also motivate an explicitly geometric "unit" aware exp operation, and depending on the defaults we use for the angular scale and the linear scale, 2 pi could be the conversion factor, making exp(2 pi i x) = cos x + i sin x actually interesting and useful and clarifying.<p>[0] pedantically, they're not units, or at least not dimensional units, so whatever the word for dimensionless units are, as in degrees vs radians vs turns.</p>
]]></description><pubDate>Thu, 20 Aug 2026 16:58:43 +0000</pubDate><link>https://news.ycombinator.com/item?id=49377215</link><dc:creator>6gvONxR4sf7o</dc:creator><comments>https://news.ycombinator.com/item?id=49377215</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49377215</guid></item><item><title><![CDATA[New comment by 6gvONxR4sf7o in "Apple says more ex-employees may have taken confidential data to OpenAI"]]></title><description><![CDATA[
<p>Seems to be Altman's playbook, just like how he got the CEO job back.</p>
]]></description><pubDate>Tue, 04 Aug 2026 16:29:10 +0000</pubDate><link>https://news.ycombinator.com/item?id=49171175</link><dc:creator>6gvONxR4sf7o</dc:creator><comments>https://news.ycombinator.com/item?id=49171175</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49171175</guid></item><item><title><![CDATA[New comment by 6gvONxR4sf7o in "We have proof automation now"]]></title><description><![CDATA[
<p>Huh, I wasn't actually going for snark. I was trying to preemptively be over-specific about what I meant. As in, you said "... writing the correct program..." and I meant that I'm talking in terms where functions are equal or distinct only based on extensional equality and with some flexibility on computational interpretation and axioms of the logic.<p>Like, if you meant "the correct program" in a sense where two pure total functions can be different despite both having the same outputs on the same inputs, then that's not what I'm responding to.<p>And yeah I know prolog, but proof assistants and logic programming are totally different beasts. Definitely not copy/pastable to/from lean, at least as I've seen and used each.<p>> Or are you saying that the program has to be the efficient implementation? Because that’s a different ball game. I’m not even going to get into how you could provably transform brute force propositional logic into efficient algorithms. (At that point we’ll have finally created the fabled “sufficiently smart compiler” and probably solved p=np).<p>I think you're totally misunderstanding. What I'm saying is that in something like Lean (just because I know it best) I can say, "this function takes inputs satisfying Prop1 and returns outputs satisfying Prop2," in ways where I write some brute-force equivalent formalization of Prop1 and Prop2 in the most straightforward way, and then go on to prove that they are true of my program that is <i>not</i> the brute force implementation. Like the wacky famous magical inverse square root implementation from Quake III. You could write a spec that "output = 1/sqrt(input) up to float properties" and the implementation in the famous brainfuckery way. To your comment about how the spec is as hard as the implementation, "output = 1/sqrt(input)" is way easier than the weird efficient implementation, and that class of distinction is super common.<p>And as you said, the annoying part is showing that the efficient implementation satisfies the spec, but what's magic today is that we have great tools and LLMs can and do fill in the blanks. In practice, I write the spec by hand for the stuff I care about and then prompt the rest and know that my spec is what the LLM implemented.<p>> > The magic is that you can write a spec that's clear<p>> Maybe you can. But I did spend a grad class with rocq (coq at the time) and a decade working with “systems engineers” and am not convinced that this is a realistic expectation.<p>I tried rocq back when it was coq too, and now do most of my work in lean and rust and python with totally normal folks and I'm convinced that the tooling and languages are <i>finally</i> just about Good Enough. If you have any interest in the field, which it sounds like you do, and if you haven't checked out the ecosystem in the last couple years, I'd recommend you check it out again.</p>
]]></description><pubDate>Mon, 27 Jul 2026 07:54:04 +0000</pubDate><link>https://news.ycombinator.com/item?id=49066380</link><dc:creator>6gvONxR4sf7o</dc:creator><comments>https://news.ycombinator.com/item?id=49066380</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49066380</guid></item><item><title><![CDATA[New comment by 6gvONxR4sf7o in "We have proof automation now"]]></title><description><![CDATA[
<p>> Congrats, that sounds at least as hard as writing the correct program in most cases.<p>That's not remotely true. Or, more formally speaking since we're in a thread about proof assistants, it's not remotely true, up to extensional equality, plus some choices about which axioms you use.<p>I can write a formal description of what it means to have property in a way that does have computational content that is equivalent to an algorithm[0], but often the clearest way to express the property is equivalent to an algorithm that literally brute forces the problem, like sorting a thing by checking every permutation until you find one that's sorted.<p>The magic is that you can write a spec that's clear, then have the LLM write the code and prove the spec, so you know that given the right inputs/state, it will return the right outputs/state. Then the gap is performance-like characteristics, which is a pretty great starting point and a lot easier to be just empirical about than correctness.<p>[0] in Lean you can also use classical logic or add your own axioms, where it's not even comutational.</p>
]]></description><pubDate>Mon, 27 Jul 2026 03:55:50 +0000</pubDate><link>https://news.ycombinator.com/item?id=49065045</link><dc:creator>6gvONxR4sf7o</dc:creator><comments>https://news.ycombinator.com/item?id=49065045</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49065045</guid></item><item><title><![CDATA[New comment by 6gvONxR4sf7o in "“We have information that Moonshot distilled Fable for the development of K3”"]]></title><description><![CDATA[
<p>I wonder how the "added value" argument can apply to Anthropic and not to the Kimi team. If Claude's value is that you don't have to pay a team of slow expensive subject-matter experts, and Kimi's value is that you don't have to pay Claude, it just seems like the same thing.</p>
]]></description><pubDate>Wed, 22 Jul 2026 22:36:52 +0000</pubDate><link>https://news.ycombinator.com/item?id=49014422</link><dc:creator>6gvONxR4sf7o</dc:creator><comments>https://news.ycombinator.com/item?id=49014422</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49014422</guid></item><item><title><![CDATA[New comment by 6gvONxR4sf7o in "All Logic, No Bite"]]></title><description><![CDATA[
<p>Oh man, that resonates with me. One of the constant frustrations for me was that once you get foundations in a topic, the rest follows, but the foundations are often full of things that are axioms under one metatheory and theorems under another metatheory. When they were axioms, I remember always being comfortable, like "sure I can assume things," but as theorems there's always that bit of "wait hold up you can't just do that without saying more."<p>The one that I remember most strongly that way was the unique mapping from the empty set/object/whatever as a theorem.</p>
]]></description><pubDate>Tue, 30 Jun 2026 15:52:03 +0000</pubDate><link>https://news.ycombinator.com/item?id=48734495</link><dc:creator>6gvONxR4sf7o</dc:creator><comments>https://news.ycombinator.com/item?id=48734495</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48734495</guid></item><item><title><![CDATA[New comment by 6gvONxR4sf7o in "The Return of Aspect Oriented Programming"]]></title><description><![CDATA[
<p>One piece of this that could be really nice in a normal language is if an LLM could generate a decent syntax highlighter or code-folding-spec or something for each "aspect." The idea of tooling to help us focus on one piece at a time is great, regardless of AOP.</p>
]]></description><pubDate>Mon, 29 Jun 2026 19:20:19 +0000</pubDate><link>https://news.ycombinator.com/item?id=48723842</link><dc:creator>6gvONxR4sf7o</dc:creator><comments>https://news.ycombinator.com/item?id=48723842</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48723842</guid></item><item><title><![CDATA[New comment by 6gvONxR4sf7o in "The ways we contain Claude across products"]]></title><description><![CDATA[
<p>My point wasn’t about risk vs reward, or in their words “harm” vs reward. It’s about how increasing the opportunity for reward increases the justifiable harm. “X is bad (unless it makes me rich).”<p>I guess it’s the fact that Anthropic usually frame this around morality and risk to society that makes it different. Instead of “risk/harm to me vs reward to me,” their framing reads as “risk/harm to us vs reward to me” or “immorality vs reward to me.” That’s what makes it feel like a great metaphor.<p>The standard cost benefit analysis we all do justifies increasing the harm to others if the opportunity to benefit ourselves goes up.</p>
]]></description><pubDate>Fri, 05 Jun 2026 15:58:53 +0000</pubDate><link>https://news.ycombinator.com/item?id=48414350</link><dc:creator>6gvONxR4sf7o</dc:creator><comments>https://news.ycombinator.com/item?id=48414350</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48414350</guid></item><item><title><![CDATA[New comment by 6gvONxR4sf7o in "The ways we contain Claude across products"]]></title><description><![CDATA[
<p>The framing they use is hilarious and their little graphic is perfect. The risk of harm doesn't go down, but the reward goes up, so the harm just becomes the cost of doing business, justified by the reward. So as the reward gets higher and higher, the amount of harm they're willing to justify goes up. Feels like society in a nutshell.</p>
]]></description><pubDate>Thu, 04 Jun 2026 01:55:21 +0000</pubDate><link>https://news.ycombinator.com/item?id=48392688</link><dc:creator>6gvONxR4sf7o</dc:creator><comments>https://news.ycombinator.com/item?id=48392688</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48392688</guid></item><item><title><![CDATA[New comment by 6gvONxR4sf7o in "AI didn't delete your database, you did"]]></title><description><![CDATA[
<p>Another view of the accountability is that we're currently often pointing accountability in the wrong direction, and it's gaining momentum. Aspects of it have been around so long it's a trope: important work around maintainability is undervalued.<p>Imagine two parallel universes:<p>- in one, you take ten minutes to make a dashboard that shows management what they asked for. It passes code review before merge and the exec who asked for it says it's what they wanted.<p>- in the other, you take a day or two to make it. Again, it passes code review before merge and the exec who asked for it says it's what they wanted.<p>Which version of you is more likely to get positive versus negative feedback? Even if the quick-to-build version isn't actually correct? If you're too slow and aren't doing enough that <i>looks</i> correct, you'll be held accountable. But if you're fast and do things that <i>look</i> correct but aren't, you won't be held accountable. You'll only be held accountable for incorrect work if the incorrectness is observed, which is rarer and rarer with fewer and fewer people directly observing anything.<p>So oddly, with nobody doing it on purpose, people get held accountable specifically for building things the way you're advocating.<p>I imagine that orgs that do lots of incorrect work <i>could</i> be outcompeted but won't be, because observability is hard and the "not get in trouble" move is to just not look too hard at what you're doing and move to the next ticket.</p>
]]></description><pubDate>Tue, 05 May 2026 16:26:31 +0000</pubDate><link>https://news.ycombinator.com/item?id=48024733</link><dc:creator>6gvONxR4sf7o</dc:creator><comments>https://news.ycombinator.com/item?id=48024733</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48024733</guid></item><item><title><![CDATA[New comment by 6gvONxR4sf7o in "Tesla owner won $10k in court for Tesla's FSD lies. Tesla is still fighting him"]]></title><description><![CDATA[
<p>Why just the $10k? Could you get a full refund? If I order a $12 burrito and you give me a $10 sandwich, I would feel owed my $12 back, not the $2 difference in price.</p>
]]></description><pubDate>Sun, 03 May 2026 02:56:56 +0000</pubDate><link>https://news.ycombinator.com/item?id=47992877</link><dc:creator>6gvONxR4sf7o</dc:creator><comments>https://news.ycombinator.com/item?id=47992877</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47992877</guid></item><item><title><![CDATA[New comment by 6gvONxR4sf7o in "We mourn our craft"]]></title><description><![CDATA[
<p>I don't mourn coding for itself, since I've always kinda disliked that side of my work (numerical software, largely).<p>What I do mourn is the reliability. We're in this weird limbo where it's like rolling a die for every piece of work. If it comes up 1-5, I would have been better off implementing it myself. If it comes up 6, it'll get it done orders of magnitude faster than doing it by hand. Since the overall speedup is worthwhile, I have to try it every time, even if most of the time it fails. And of course it's a moving target, so I have to keep trying the things that failed yesterday because today's models are more capable.</p>
]]></description><pubDate>Sat, 07 Feb 2026 20:02:38 +0000</pubDate><link>https://news.ycombinator.com/item?id=46927266</link><dc:creator>6gvONxR4sf7o</dc:creator><comments>https://news.ycombinator.com/item?id=46927266</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46927266</guid></item><item><title><![CDATA[New comment by 6gvONxR4sf7o in "Managing Unreliable Compilers"]]></title><description><![CDATA[
<p>plan -> code -> verify is nice in theory, but is super failure prone without the TDD or “preregistration” version: plan -> code verification -> code implementation -> verify.<p>Doing the verification after the execution tends to lead to “yeah this is good” when it really isn’t. Stuff like copilot annoyingly loves to change the tests so it can pass, rather than changing the implementation to make the tests pass. I wonder if their platform prevents that kind of thing.</p>
]]></description><pubDate>Sat, 31 Jan 2026 22:31:44 +0000</pubDate><link>https://news.ycombinator.com/item?id=46841576</link><dc:creator>6gvONxR4sf7o</dc:creator><comments>https://news.ycombinator.com/item?id=46841576</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46841576</guid></item><item><title><![CDATA[New comment by 6gvONxR4sf7o in "I wanted a camera that doesn't exist, so I built it"]]></title><description><![CDATA[
<p>If they just remade it with modern AF <i>software</i>, I'd probably carry mine around most every I went. Not to mention what they could do by updating hardware.</p>
]]></description><pubDate>Wed, 07 Jan 2026 07:07:26 +0000</pubDate><link>https://news.ycombinator.com/item?id=46523445</link><dc:creator>6gvONxR4sf7o</dc:creator><comments>https://news.ycombinator.com/item?id=46523445</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46523445</guid></item><item><title><![CDATA[New comment by 6gvONxR4sf7o in "Catala – Law to Code"]]></title><description><![CDATA[
<p>So is the "bitter lesson" that fuzzy overlords will be practically preferable to hand coded legislation?</p>
]]></description><pubDate>Sun, 07 Dec 2025 04:55:36 +0000</pubDate><link>https://news.ycombinator.com/item?id=46179264</link><dc:creator>6gvONxR4sf7o</dc:creator><comments>https://news.ycombinator.com/item?id=46179264</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46179264</guid></item><item><title><![CDATA[New comment by 6gvONxR4sf7o in "Catala – Law to Code"]]></title><description><![CDATA[
<p>How's that account for language drift over centuries?</p>
]]></description><pubDate>Sun, 07 Dec 2025 04:50:01 +0000</pubDate><link>https://news.ycombinator.com/item?id=46179239</link><dc:creator>6gvONxR4sf7o</dc:creator><comments>https://news.ycombinator.com/item?id=46179239</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46179239</guid></item><item><title><![CDATA[New comment by 6gvONxR4sf7o in "Catala – Law to Code"]]></title><description><![CDATA[
<p>I have a potentially more optimistic (and simultaneously more pessimistic!) view to offer.<p>Some differing interpretations of the law distinguish between the lawmakers' intention vs the literal meaning (and keep in mind that language itself changes a lot in just a few centuries. The hard problem is that, in PL terms, the law is written in syntax without agreed upon semantics. So a decent step could be just using some agreed upon semantics, like we do in code! Then at least "interpreting" it would be unambiguous.<p>Maybe a decent analogy would be gcc vs clang might produce different programs for certain undefined behavior, and different combinations of pieces might lead to different behavior too (like race conditions), and somebody (the plaintiff/user) is asking you (the judge/compiler) to decide what's going to happen in this next loop/program/whatever.<p>Or maybe a decent analogy would be getting a ticket that the API is erroring in some rare user's case and having to look into the code and stacktrace to realize it's some weird unanticipated interaction between two different pieces of legacy code (150 year old law) that now interact due to a recent merge (a new law from last year), and now it's crashing, so we have to figure out how to interpret/compile/resolve this user's case.<p>If law was usable like code, we'd never have any of those issues, just like we never have those issues with actual literal programs. And when we do, it's just because we're using the wrong language/aren't encoding enough things in the types and semantics/shouldn't have used this niche compiler so now let's get a new interpretation from another Supreme Compiler/etc. Life would be easier \s<p>So it's maybe more optimistic than you, in that the run/read time power (judicial) doesn't get diminished, but more pessimistic in that I believe it because I believe that changing the language from english law jargon to some formal language doesn't actually eliminate the issues it might be intended to eliminate.</p>
]]></description><pubDate>Sun, 07 Dec 2025 04:48:58 +0000</pubDate><link>https://news.ycombinator.com/item?id=46179227</link><dc:creator>6gvONxR4sf7o</dc:creator><comments>https://news.ycombinator.com/item?id=46179227</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46179227</guid></item><item><title><![CDATA[New comment by 6gvONxR4sf7o in "When if is just a function"]]></title><description><![CDATA[
<p>10 days later... sorry, I didn't see your comment.<p>The example I gave had a few pieces:<p>- x is defined prior to the if/else, and overwritten in just one branch
- y is defined in both branches<p>So in the rest of the function, we have both x and y available, regardless of which branch is taken.<p>I just took a quick read of the context page and the context basics page, but it's still unclear to me whether you can program how scopes/contexts <i>interact</i> in rye.<p>In my example, we I'd say we have a few different scopes worth mentioning, and I'm curious how programmably we can make them interact in rye:<p>Scope 1. Right below the first x = ...: we have names available form <beginning of the function> and have x available as the ... stuff. Presumably the `foo` in `if foo` lives in this scope.<p>Scope 2T. Right after the true branch's y, we have scope 1 plus y introduced<p>Scope 2F. Right after the false branch's x and y, we have scope 1 plus x "pointing to" something new and y introduced.<p>Scope 3. Below the if/else, where <rest of the function> lives. This is either scope 2T or scope 2F. x is either scope 1's x or scope 2F's x, and y is either scope 2T's y or 2F's y.<p>In the original articles language,<p>So the scope relationships in an if/else are a diamond DAG taking the names from before it, making them available in each branch's scopes, and then making a sorta disjoint union of the branch's names available afterwards. Could that be programmed in rye, to allow the kinds of naming ergonomics in my previous example, but with the if/else being programmable in the sense of the original article? I'm especially interested in whether we could overload it in the traditional autodiff sense.<p>Responding to a different part of your comment about using names rarely in rye, I've found that I benefit a ton from handing out names more than most people do in functional languages, just for clarity and more self-documenting code. Like, the ide can say "`apples` is broken" instead of "error in location xyz" and I can rebuild my mental state better too when revisiting code.</p>
]]></description><pubDate>Wed, 29 Oct 2025 20:39:44 +0000</pubDate><link>https://news.ycombinator.com/item?id=45752716</link><dc:creator>6gvONxR4sf7o</dc:creator><comments>https://news.ycombinator.com/item?id=45752716</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45752716</guid></item><item><title><![CDATA[New comment by 6gvONxR4sf7o in "AI is making us work more"]]></title><description><![CDATA[
<p>As always, labor is a marketplace, and the supply side boils down to a) how much the next person else is willing to work (all else equal), and b) external forces (like overtime requirements kicking in at 40 hours).</p>
]]></description><pubDate>Tue, 21 Oct 2025 16:43:43 +0000</pubDate><link>https://news.ycombinator.com/item?id=45657967</link><dc:creator>6gvONxR4sf7o</dc:creator><comments>https://news.ycombinator.com/item?id=45657967</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45657967</guid></item></channel></rss>