<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: burntcaramel</title><link>https://news.ycombinator.com/user?id=burntcaramel</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Tue, 18 Aug 2026 04:12:09 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=burntcaramel" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by burntcaramel in "Mojo 1.0"]]></title><description><![CDATA[
<p>From listening to Chris Lattner in interviews my guess it’s learning from when Swift became open source. The beta versions of Swift had massive language changes in how value types worked like with Array. Mojo is trying to get this language design locked down first, which is easier to do behind closed doors.<p>A compiler promising source stability is a different commitment than the compiler’s code being ready for outside contributors. Which is also different to having ABI stability, which took until 5.0 for Swift to achieve (I think Mojo does not have ABI stability as a goal as it doesn’t have to link to OS frameworks).</p>
]]></description><pubDate>Wed, 12 Aug 2026 03:14:44 +0000</pubDate><link>https://news.ycombinator.com/item?id=49267444</link><dc:creator>burntcaramel</dc:creator><comments>https://news.ycombinator.com/item?id=49267444</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49267444</guid></item><item><title><![CDATA[New comment by burntcaramel in "Cool URIs Don't Change (1998)"]]></title><description><![CDATA[
<p>They didn’t follow their own advice for their accessibility practices page <a href="https://www.w3.org/TR/wai-aria-practices/" rel="nofollow">https://www.w3.org/TR/wai-aria-practices/</a></p>
]]></description><pubDate>Mon, 10 Aug 2026 01:20:37 +0000</pubDate><link>https://news.ycombinator.com/item?id=49238167</link><dc:creator>burntcaramel</dc:creator><comments>https://news.ycombinator.com/item?id=49238167</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49238167</guid></item><item><title><![CDATA[New comment by burntcaramel in "The Difference Between a Button and a Link"]]></title><description><![CDATA[
<p>If you have a cancel button inside a form, you can point that button to another form dedicated to deleting with the form attribute: <a href="https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Attributes/form" rel="nofollow">https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/...</a><p>I agree with some of this post but the argument feels muddled. "Clicking a logout button navigates the current page to a logged-out one" is wrong — it changes the state of the session, which is more than just a navigation. "Relative links can jump around the current page" — this _is_ a navigation.<p>I too weighed up the differences between a button and link and referenced the now sadly defunct WAI-ARIA Practices document which I found pretty clear: <a href="https://components.guide/accessibility-first/navigation" rel="nofollow">https://components.guide/accessibility-first/navigation</a></p>
]]></description><pubDate>Wed, 29 Jul 2026 07:34:52 +0000</pubDate><link>https://news.ycombinator.com/item?id=49094456</link><dc:creator>burntcaramel</dc:creator><comments>https://news.ycombinator.com/item?id=49094456</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49094456</guid></item><item><title><![CDATA[New comment by burntcaramel in "The Tower Keeps Rising"]]></title><description><![CDATA[
<p>I love the line “This friction synchronizes people.”<p>Part of the understanding that is missed being learned by the team are the failure modes: how can this system fail and how catastrophic is it?<p>Now I fear only the users will learn via data loss, leaks, and hacks.</p>
]]></description><pubDate>Wed, 15 Jul 2026 13:13:38 +0000</pubDate><link>https://news.ycombinator.com/item?id=48920369</link><dc:creator>burntcaramel</dc:creator><comments>https://news.ycombinator.com/item?id=48920369</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48920369</guid></item><item><title><![CDATA[New comment by burntcaramel in "Just Let Me Write Digits"]]></title><description><![CDATA[
<p>Yet another example where using <form method="post"> and <input> with zero JavaScript would be a better user experience. If you are going to write custom code you have to clear the minimum bar of what the browser provides.</p>
]]></description><pubDate>Tue, 14 Jul 2026 13:07:36 +0000</pubDate><link>https://news.ycombinator.com/item?id=48906265</link><dc:creator>burntcaramel</dc:creator><comments>https://news.ycombinator.com/item?id=48906265</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48906265</guid></item><item><title><![CDATA[Agents of Our Own Illiteracy]]></title><description><![CDATA[
<p>Article URL: <a href="https://royalicing.com/2026/agents-of-our-own-illiteracy">https://royalicing.com/2026/agents-of-our-own-illiteracy</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=48866724">https://news.ycombinator.com/item?id=48866724</a></p>
<p>Points: 2</p>
<p># Comments: 0</p>
]]></description><pubDate>Fri, 10 Jul 2026 23:33:03 +0000</pubDate><link>https://royalicing.com/2026/agents-of-our-own-illiteracy</link><dc:creator>burntcaramel</dc:creator><comments>https://news.ycombinator.com/item?id=48866724</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48866724</guid></item><item><title><![CDATA[Rise of the Gen-Z Luddite]]></title><description><![CDATA[
<p>Article URL: <a href="https://economist.com/united-states/2026/07/09/rise-of-the-gen-z-luddite">https://economist.com/united-states/2026/07/09/rise-of-the-gen-z-luddite</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=48853618">https://news.ycombinator.com/item?id=48853618</a></p>
<p>Points: 3</p>
<p># Comments: 0</p>
]]></description><pubDate>Thu, 09 Jul 2026 23:09:42 +0000</pubDate><link>https://economist.com/united-states/2026/07/09/rise-of-the-gen-z-luddite</link><dc:creator>burntcaramel</dc:creator><comments>https://news.ycombinator.com/item?id=48853618</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48853618</guid></item><item><title><![CDATA[Carson Block: If you thought the global financial crisis was bad]]></title><description><![CDATA[
<p>Article URL: <a href="https://www.economist.com/by-invitation/2026/06/28/if-you-thought-the-global-financial-crisis-was-bad">https://www.economist.com/by-invitation/2026/06/28/if-you-thought-the-global-financial-crisis-was-bad</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=48756422">https://news.ycombinator.com/item?id=48756422</a></p>
<p>Points: 4</p>
<p># Comments: 0</p>
]]></description><pubDate>Thu, 02 Jul 2026 04:03:02 +0000</pubDate><link>https://www.economist.com/by-invitation/2026/06/28/if-you-thought-the-global-financial-crisis-was-bad</link><dc:creator>burntcaramel</dc:creator><comments>https://news.ycombinator.com/item?id=48756422</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48756422</guid></item><item><title><![CDATA[New comment by burntcaramel in "Death by a Thousand Comments"]]></title><description><![CDATA[
<p>Thanks for your honest thoughts. It bothers me because there’s many places to check all the time. It seems every tool has an inbox and wants to send me notifications about it. I have to read them all to keep up to date, and my job becomes piecing them all together into a cohesive story just to make sense of what’s going on at work.<p>It can feel super useful as an engineer to find a line of code in PR or a sentence in a Notion document, and then add your feedback directly there. But then I find the conversation half happens on Slack, and then continues in a Zoom meeting, and then the comment on the Notion doc is out of date. So I have to keep track of all of this in my head with which piece of feedback is stale and which one is still relevant, and then reconcile that with feedback from others.<p>It’s assumed that we need another tool, something that can do the job of retrieving all of these comments and reconciling them into a total order. My article asks whether reconciling decisions into a total order is actually part of the job of leadership. If we defer to AI to make sense of what we’re saying and deciding then we risk the people and the org becoming weaker from lack of clarity.</p>
]]></description><pubDate>Tue, 23 Jun 2026 08:32:49 +0000</pubDate><link>https://news.ycombinator.com/item?id=48642040</link><dc:creator>burntcaramel</dc:creator><comments>https://news.ycombinator.com/item?id=48642040</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48642040</guid></item><item><title><![CDATA[Death by a Thousand Comments]]></title><description><![CDATA[
<p>Article URL: <a href="https://royalicing.com/2026/death-by-a-thousand-comments">https://royalicing.com/2026/death-by-a-thousand-comments</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=48638850">https://news.ycombinator.com/item?id=48638850</a></p>
<p>Points: 39</p>
<p># Comments: 4</p>
]]></description><pubDate>Tue, 23 Jun 2026 01:10:33 +0000</pubDate><link>https://royalicing.com/2026/death-by-a-thousand-comments</link><dc:creator>burntcaramel</dc:creator><comments>https://news.ycombinator.com/item?id=48638850</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48638850</guid></item><item><title><![CDATA[New comment by burntcaramel in "Elixir v1.20: Now a gradually typed language"]]></title><description><![CDATA[
<p>> if you can use AI to achieve full test coverage, are there actual benefits in static typing for coding agents?<p>Full test coverage doesn’t tell you if the tests behave correctly. So you could prompt an AI agent to write 100% test coverage where those tests could be exercising all code paths yet contribute 0% to the story of what the code does. You need human understanding of what the desired contract is that the tests check.<p>Imagine a contract lawyer who blindly signs any contract that they are given: they aren’t doing their job. They ought to have an idea in mind of what their client’s goals and limits are so they can determine if a given contract fulfils those needs.<p>Types are a declarative contract, so they can be a lighter yet more limited way to enforce a contract. The compiler can verify if all the declared types across the program agree with each other. This is especially helpful with refactoring, such as ensuring the adding a field has been rolled out everywhere.<p>Types aren’t to be just checked by the compiler, but checked by the human authors too. That’s why explicit type signatures are valuable, especially if they are kept intelligible. They encode the different variations in state and possible branching on that state. So you can whittle your types down as a way of whittling the solution down to be more focused. The problem in your head is reflected in the types, and any simplifications in the types then simplify the problem in your head, and any tests derived from that understanding.</p>
]]></description><pubDate>Thu, 04 Jun 2026 17:34:41 +0000</pubDate><link>https://news.ycombinator.com/item?id=48401903</link><dc:creator>burntcaramel</dc:creator><comments>https://news.ycombinator.com/item?id=48401903</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48401903</guid></item><item><title><![CDATA[New comment by burntcaramel in "Saying goodbye to asm.js"]]></title><description><![CDATA[
<p>It definitely wasn’t “working great”, I’ve now fixed a bug in the event system that was causing loops. The performance should be improved now.<p>Yes, accessibility is a key concern of mine, I’m keen to explore html-in-canvas as a way to have an accessibility tree combined with a rendered interaction.<p>I’m personally at a stage where React and CSS have pushed to DOM to extremes of complexity and difficultly in optimization that I desire simpler ARIA-based HTML combined with custom rendering. I’m hopeful that it will be easier to test, lighter for users, and faster for everyone.</p>
]]></description><pubDate>Thu, 21 May 2026 17:46:42 +0000</pubDate><link>https://news.ycombinator.com/item?id=48226479</link><dc:creator>burntcaramel</dc:creator><comments>https://news.ycombinator.com/item?id=48226479</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48226479</guid></item><item><title><![CDATA[New comment by burntcaramel in "Saying goodbye to asm.js"]]></title><description><![CDATA[
<p>Thanks, I had shipped a bug in the event system. The performance should be much improved now.</p>
]]></description><pubDate>Thu, 21 May 2026 17:40:37 +0000</pubDate><link>https://news.ycombinator.com/item?id=48226398</link><dc:creator>burntcaramel</dc:creator><comments>https://news.ycombinator.com/item?id=48226398</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48226398</guid></item><item><title><![CDATA[New comment by burntcaramel in "Saying goodbye to asm.js"]]></title><description><![CDATA[
<p>I’ve found canvas + WebAssembly works great together!<p>Here’s an example of Sudoku running in WebAssembly (it was vibe coded in Zig) and then rendered to canvas. The interface between the wasm module and the browser is function calls for keyboard and mouse events, and then another that renders to a pixel buffer to copy to the canvas.<p><a href="https://qip.dev/play-sudoku" rel="nofollow">https://qip.dev/play-sudoku</a><p>And this approach also works for simple forms, such as a URL input that gets turned into a QR code. Again the interface is simple, here converted a URL into SVG markup. As you type in the input we call the WebAssembly render function again.<p><a href="https://qip.dev/qr" rel="nofollow">https://qip.dev/qr</a></p>
]]></description><pubDate>Wed, 20 May 2026 22:32:11 +0000</pubDate><link>https://news.ycombinator.com/item?id=48215184</link><dc:creator>burntcaramel</dc:creator><comments>https://news.ycombinator.com/item?id=48215184</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48215184</guid></item><item><title><![CDATA[New comment by burntcaramel in "If AI writes your code, why use Python?"]]></title><description><![CDATA[
<p>Exactly, this is why I’m using AI to write C or Zig that compiles to WebAssembly.<p>The purpose of a scripting language was to make authoring easier, but now it’s mostly a middle layer. There’s still getting the investment of a great standard library to keep you on track, but if you pick parts to make modular wasm and which parts to use reliably, proven code you can find a good balance.<p>For qip I chose to use Golang as its standard library is batteries-included with fs & networking.<p>Then everything else is AI-coded wasm plugins.<p><a href="https://github.com/royalicing/qip" rel="nofollow">https://github.com/royalicing/qip</a></p>
]]></description><pubDate>Tue, 12 May 2026 13:38:53 +0000</pubDate><link>https://news.ycombinator.com/item?id=48108140</link><dc:creator>burntcaramel</dc:creator><comments>https://news.ycombinator.com/item?id=48108140</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48108140</guid></item><item><title><![CDATA[Oil markets are still in La-La land]]></title><description><![CDATA[
<p>Article URL: <a href="https://economist.com/leaders/2026/04/30/oil-markets-are-still-in-la-la-land">https://economist.com/leaders/2026/04/30/oil-markets-are-still-in-la-la-land</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=47960286">https://news.ycombinator.com/item?id=47960286</a></p>
<p>Points: 6</p>
<p># Comments: 0</p>
]]></description><pubDate>Thu, 30 Apr 2026 09:59:29 +0000</pubDate><link>https://economist.com/leaders/2026/04/30/oil-markets-are-still-in-la-la-land</link><dc:creator>burntcaramel</dc:creator><comments>https://news.ycombinator.com/item?id=47960286</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47960286</guid></item><item><title><![CDATA[New comment by burntcaramel in "Ask HN: What Are You Working On? (April 2026)"]]></title><description><![CDATA[
<p>In a world of AI coding it seems like we can create or copy almost anything. So after some denial I’m thinking let’s embrace that and bring back “view source”.<p>qip lets you write tiny WebAssembly modules in Zig or C and compose them together. The modules have a simple input -> output interface and cannot access anything else, no file system, no network, no env vars, not even the time. You chain modules together so the output of one becomes the input of another e.g. there’s a CommonMark module that converts to markdown-to-html. There’s a file-based router that lets you serve a website with these same modules.<p>I want these modules to be open and shared, so you can decide to have a `/view-source` page that lists all the wasm modules and all the source content (markdown, images, etc) and source code (zig, c). So you can choose to fork the ingredients of the qip website if you like: <a href="https://qip.dev/view-source" rel="nofollow">https://qip.dev/view-source</a><p>I chose wasm because it’s fast, runs anywhere (browser/server/native), and has a strong yet lightweight sandbox. I’m working on collaborative web hosting that I hope will bring back web 1.0 vibes.<p><a href="https://github.com/royalicing/qip" rel="nofollow">https://github.com/royalicing/qip</a></p>
]]></description><pubDate>Mon, 13 Apr 2026 20:19:25 +0000</pubDate><link>https://news.ycombinator.com/item?id=47757297</link><dc:creator>burntcaramel</dc:creator><comments>https://news.ycombinator.com/item?id=47757297</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47757297</guid></item><item><title><![CDATA[New comment by burntcaramel in "Meta builds AI version of Mark Zuckerberg to interact with staff"]]></title><description><![CDATA[
<p>Can we ask virtual Mark “What’s the strategic thinking behind making a virtual version of yourself?”</p>
]]></description><pubDate>Mon, 13 Apr 2026 15:06:01 +0000</pubDate><link>https://news.ycombinator.com/item?id=47753085</link><dc:creator>burntcaramel</dc:creator><comments>https://news.ycombinator.com/item?id=47753085</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47753085</guid></item><item><title><![CDATA[New comment by burntcaramel in "Project Glasswing: Securing critical software for the AI era"]]></title><description><![CDATA[
<p>Previously Anthropic subscribers got access to the latest AI but it seems like there’s a League of Software forming who have special privileges. To make or maintain critical software will you have to be inside the circle?<p>Who gates access to the circle? Anthropic or existing circle members or some other governance? If you are outside the circle will you be certain to die from software diseases?<p>Having been impressed by LLMs but not believing the AGI hype, I now see how having access to an information generator could be so powerful. With the right information you can hack other information systems. Without access to the best information you may not be able to protect your own system.<p>I think we have found the moat for AI. The question is are you inside or outside the castle walls?</p>
]]></description><pubDate>Wed, 08 Apr 2026 10:58:34 +0000</pubDate><link>https://news.ycombinator.com/item?id=47688452</link><dc:creator>burntcaramel</dc:creator><comments>https://news.ycombinator.com/item?id=47688452</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47688452</guid></item><item><title><![CDATA[New comment by burntcaramel in "A better streams API is possible for JavaScript"]]></title><description><![CDATA[
<p>Can optimize in theory, or are you saying this is what JavaScript engines do today?</p>
]]></description><pubDate>Sun, 01 Mar 2026 00:45:40 +0000</pubDate><link>https://news.ycombinator.com/item?id=47202333</link><dc:creator>burntcaramel</dc:creator><comments>https://news.ycombinator.com/item?id=47202333</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47202333</guid></item></channel></rss>