<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>Mon, 01 Jun 2026 18:48:29 +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 "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><item><title><![CDATA[New comment by burntcaramel in "Understanding the Go Runtime: The Memory Allocator"]]></title><description><![CDATA[
<p>Thank you, I stand corrected! I must have been tired originally reading this.</p>
]]></description><pubDate>Sun, 01 Mar 2026 00:44:38 +0000</pubDate><link>https://news.ycombinator.com/item?id=47202328</link><dc:creator>burntcaramel</dc:creator><comments>https://news.ycombinator.com/item?id=47202328</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47202328</guid></item><item><title><![CDATA[New comment by burntcaramel in "A better streams API is possible for JavaScript"]]></title><description><![CDATA[
<p>The allocation of each object still has overhead though, even if they all live side-by-side. You get memory overhead for each value. A Uint8Array is tailor-made for an array of bytes and there’s a constant overhead. Plus the garbage collector doesn’t even have to peer inside a Uint8Array instance.</p>
]]></description><pubDate>Sat, 28 Feb 2026 00:50:49 +0000</pubDate><link>https://news.ycombinator.com/item?id=47188439</link><dc:creator>burntcaramel</dc:creator><comments>https://news.ycombinator.com/item?id=47188439</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47188439</guid></item><item><title><![CDATA[New comment by burntcaramel in "Let's discuss sandbox isolation"]]></title><description><![CDATA[
<p>WebAssembly is particularly attractive for agentic coding because prompting it to write Zig or C is no harder than prompting it to write JavaScript. So you can get the authoring speed of a scripting language via LLMs but the performance close to native via wasm.<p>This is the approach I’m using for my open source project qip that lets you pipeline wasm modules together to process text, images & data: <a href="https://github.com/royalicing/qip" rel="nofollow">https://github.com/royalicing/qip</a><p>qip modules follow a really simple contract: there’s some input provided to the WebAssembly module, and there’s some output it produces. They can’t access fs/net/time. You can pipe in from your other CLIs though, e.g. from curl.<p>I have example modules for markdown-to-html, bmp-to-ico (great for favicons), ical events, a basic svg rasterizer, and a static site builder. You compose them together and then can run them on the command line, in the browser, or in the provided dev server. Because the module contract is so simple they’ll work on native too.</p>
]]></description><pubDate>Sat, 28 Feb 2026 00:34:22 +0000</pubDate><link>https://news.ycombinator.com/item?id=47188273</link><dc:creator>burntcaramel</dc:creator><comments>https://news.ycombinator.com/item?id=47188273</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47188273</guid></item><item><title><![CDATA[New comment by burntcaramel in "Understanding the Go Runtime: The Memory Allocator"]]></title><description><![CDATA[
<p>> We said the runtime asks the OS for large chunks of memory. Those chunks are called arenas, and on most 64-bit systems each one is 64MB (4MB on Windows and 32-bit systems, 512KB on WebAssembly).<p>Incorrect. You ask the OS for pages. (Golang does internally appear to manage its heap into “arenas”.) On WebAssembly the page size is 64KiB. Window 64-bit it’s 4KiB, Apple Silicon 16KiB, Linux x86_64 4KiB.</p>
]]></description><pubDate>Thu, 26 Feb 2026 23:28:24 +0000</pubDate><link>https://news.ycombinator.com/item?id=47173755</link><dc:creator>burntcaramel</dc:creator><comments>https://news.ycombinator.com/item?id=47173755</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47173755</guid></item><item><title><![CDATA[New comment by burntcaramel in "An AI agent published a hit piece on me"]]></title><description><![CDATA[
<p>If people who wore Google Glass without respect for others were Glassholes, perhaps people who unleash their OpenClaw instance onto the internet without respect are Clawholes?</p>
]]></description><pubDate>Fri, 13 Feb 2026 05:02:21 +0000</pubDate><link>https://news.ycombinator.com/item?id=46999101</link><dc:creator>burntcaramel</dc:creator><comments>https://news.ycombinator.com/item?id=46999101</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46999101</guid></item><item><title><![CDATA[New comment by burntcaramel in "Ask HN: What are you working on? (February 2026)"]]></title><description><![CDATA[
<p>I’m working on qip, a cli for running fast sandboxed WebAssembly modules.<p><a href="https://github.com/royalicing/qip" rel="nofollow">https://github.com/royalicing/qip</a><p>We have LLMs that generate code but that code should be untrusted: perhaps it overflows or tries to read ssh keys. If we aren’t reviewing code closely a major security hole could be on any line.<p>And since LLMs can generate in whatever language, it makes sense for them to write fast imperative code like C or Zig. We don’t have to pick our favorite scripting language for the ergonomics any more.<p>So qip tries to solve both problems by running .wasm modules in a sandbox. You can pipe from other cli tools and you can chain multiple modules together. It has conventions for text, raw bytes, and image shaders, with more to come.<p>I am excited by the capabilities of probabilistic coding agents, but I want to combine them deterministic code and that what these qip modules are. They are pure functions with imperative guts.</p>
]]></description><pubDate>Tue, 10 Feb 2026 08:52:54 +0000</pubDate><link>https://news.ycombinator.com/item?id=46956994</link><dc:creator>burntcaramel</dc:creator><comments>https://news.ycombinator.com/item?id=46956994</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46956994</guid></item><item><title><![CDATA[Don't use escaping closures in SwiftUI]]></title><description><![CDATA[
<p>Article URL: <a href="https://rensbr.eu/blog/swiftui-escaping-closures/">https://rensbr.eu/blog/swiftui-escaping-closures/</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=46954333">https://news.ycombinator.com/item?id=46954333</a></p>
<p>Points: 1</p>
<p># Comments: 0</p>
]]></description><pubDate>Tue, 10 Feb 2026 01:52:14 +0000</pubDate><link>https://rensbr.eu/blog/swiftui-escaping-closures/</link><dc:creator>burntcaramel</dc:creator><comments>https://news.ycombinator.com/item?id=46954333</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46954333</guid></item><item><title><![CDATA[New comment by burntcaramel in "Compiling Scheme to WebAssembly"]]></title><description><![CDATA[
<p>WebAssembly Text Format (wat) is fine to use. You declare functions that run imperative code over primitive i32/i64/f32/f64 values, and write to a block of memory. Many algorithms are easy enough to port, and LLMs are pretty great at generating wat now.<p>I made Orb as a DSL over raw WebAssembly in Elixir. This gives you extract niceties like |> piping, macros so you can add language features like arenas or tuples, and reusability of code in modules (you can even publish to the package manager Hex). By manipulating the raw WebAssembly instructions it lets you compile to kilobytes instead of megabytes.
I’m tinkering on the project over at: <a href="https://github.com/RoyalIcing/Orb" rel="nofollow">https://github.com/RoyalIcing/Orb</a></p>
]]></description><pubDate>Fri, 23 Jan 2026 01:53:41 +0000</pubDate><link>https://news.ycombinator.com/item?id=46727454</link><dc:creator>burntcaramel</dc:creator><comments>https://news.ycombinator.com/item?id=46727454</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46727454</guid></item><item><title><![CDATA[New comment by burntcaramel in "Data is the only moat"]]></title><description><![CDATA[
<p>Don’t forget people’s minds.<p>- Which brands do people trust?
- Which people do people of power trust?<p>You can have all the information in the world but if no one listens to you then it’s worthless.</p>
]]></description><pubDate>Thu, 15 Jan 2026 23:45:44 +0000</pubDate><link>https://news.ycombinator.com/item?id=46641129</link><dc:creator>burntcaramel</dc:creator><comments>https://news.ycombinator.com/item?id=46641129</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46641129</guid></item><item><title><![CDATA[Levers of Light]]></title><description><![CDATA[
<p>Article URL: <a href="https://royalicing.com/2026/levers-of-light">https://royalicing.com/2026/levers-of-light</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=46623819">https://news.ycombinator.com/item?id=46623819</a></p>
<p>Points: 2</p>
<p># Comments: 0</p>
]]></description><pubDate>Wed, 14 Jan 2026 21:30:43 +0000</pubDate><link>https://royalicing.com/2026/levers-of-light</link><dc:creator>burntcaramel</dc:creator><comments>https://news.ycombinator.com/item?id=46623819</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46623819</guid></item><item><title><![CDATA[New comment by burntcaramel in "Ask HN: Share your personal website"]]></title><description><![CDATA[
<p><a href="https://royalicing.com/" rel="nofollow">https://royalicing.com/</a> — I write about WebAssembly, design, and thoughts about writing software</p>
]]></description><pubDate>Wed, 14 Jan 2026 21:26:44 +0000</pubDate><link>https://news.ycombinator.com/item?id=46623755</link><dc:creator>burntcaramel</dc:creator><comments>https://news.ycombinator.com/item?id=46623755</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46623755</guid></item></channel></rss>