<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: goranmoomin</title><link>https://news.ycombinator.com/user?id=goranmoomin</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Sun, 25 Oct 2026 07:53:06 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=goranmoomin" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by goranmoomin in "Fuzzing the Gleam Compiler"]]></title><description><![CDATA[
<p>I do have a hunch in that we might be able to utilize tiny LLMs to figure out parts that might possibly be brittle and combine them with traditional generation/mutation-based fuzzing to generate fuzz targets that are more likely to trigger an edge case.<p>I did not think of applying LLMs on fuzzing at all until I saw llvm-hackme[0] which does both traditional mutation fuzzing as well as LLM-generated targeted regression test cases, where the LLM is pretty effective in understanding the PR and targeting edge cases! It was pretty impressive and I keep getting to think on how we can actually combine LLMs to make fuzzing much more efficient & effective.<p>// Sorry about the yet-another-LLM-comment. I really love PLs and I'm terribly sorry that I'm contributing yet another LLM-related content (instead of the more interesting stuff!)<p>[0]: <a href="https://github.com/dtcxzyw/llvm-hackme" rel="nofollow">https://github.com/dtcxzyw/llvm-hackme</a></p>
]]></description><pubDate>Tue, 25 Aug 2026 20:59:03 +0000</pubDate><link>https://news.ycombinator.com/item?id=49440550</link><dc:creator>goranmoomin</dc:creator><comments>https://news.ycombinator.com/item?id=49440550</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49440550</guid></item><item><title><![CDATA[New comment by goranmoomin in "Ox Alpha"]]></title><description><![CDATA[
<p>Or maybe it might be a model router, seems from the comments that there’s a lot of variation between responses that doesn’t seem to look like it’s all from one single model.</p>
]]></description><pubDate>Fri, 21 Aug 2026 05:13:39 +0000</pubDate><link>https://news.ycombinator.com/item?id=49384069</link><dc:creator>goranmoomin</dc:creator><comments>https://news.ycombinator.com/item?id=49384069</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49384069</guid></item><item><title><![CDATA[Framework: The first ePaper design system]]></title><description><![CDATA[
<p>Article URL: <a href="https://trmnl.com/blog/framework-design-system">https://trmnl.com/blog/framework-design-system</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=49295101">https://news.ycombinator.com/item?id=49295101</a></p>
<p>Points: 2</p>
<p># Comments: 0</p>
]]></description><pubDate>Fri, 14 Aug 2026 05:43:34 +0000</pubDate><link>https://trmnl.com/blog/framework-design-system</link><dc:creator>goranmoomin</dc:creator><comments>https://news.ycombinator.com/item?id=49295101</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49295101</guid></item><item><title><![CDATA[The Biology of Claude's Tokenizer: Reverse Engineered]]></title><description><![CDATA[
<p>Article URL: <a href="https://tokencontributions.substack.com/p/on-the-biology-of-claudes-tokenizer">https://tokencontributions.substack.com/p/on-the-biology-of-claudes-tokenizer</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=49288650">https://news.ycombinator.com/item?id=49288650</a></p>
<p>Points: 3</p>
<p># Comments: 0</p>
]]></description><pubDate>Thu, 13 Aug 2026 16:48:06 +0000</pubDate><link>https://tokencontributions.substack.com/p/on-the-biology-of-claudes-tokenizer</link><dc:creator>goranmoomin</dc:creator><comments>https://news.ycombinator.com/item?id=49288650</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49288650</guid></item><item><title><![CDATA[Porffor: An ahead-of-time JavaScript-to-native/WASM compiler]]></title><description><![CDATA[
<p>Article URL: <a href="https://porffor.dev/">https://porffor.dev/</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=49064972">https://news.ycombinator.com/item?id=49064972</a></p>
<p>Points: 6</p>
<p># Comments: 0</p>
]]></description><pubDate>Mon, 27 Jul 2026 03:43:17 +0000</pubDate><link>https://porffor.dev/</link><dc:creator>goranmoomin</dc:creator><comments>https://news.ycombinator.com/item?id=49064972</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49064972</guid></item><item><title><![CDATA[Code Was Our Medium for Thought]]></title><description><![CDATA[
<p>Article URL: <a href="https://wattenberger.com/thoughts/code-is-a-medium-for-thought/">https://wattenberger.com/thoughts/code-is-a-medium-for-thought/</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=48917501">https://news.ycombinator.com/item?id=48917501</a></p>
<p>Points: 7</p>
<p># Comments: 0</p>
]]></description><pubDate>Wed, 15 Jul 2026 07:40:53 +0000</pubDate><link>https://wattenberger.com/thoughts/code-is-a-medium-for-thought/</link><dc:creator>goranmoomin</dc:creator><comments>https://news.ycombinator.com/item?id=48917501</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48917501</guid></item><item><title><![CDATA[New comment by goranmoomin in "An agent in 100 lines of Lisp"]]></title><description><![CDATA[
<p>> A Lisp program that writes a Lisp program really just needs to produce a list of (nested lists) of tokens. A JavaScript program that writes a javascript program needs to generate a string that is syntactically valid JavaScript code. That is a much bigger task than just constructing a (nested) list.<p>> Because Lisp syntax is so much simpler than that of JavaScript etc. it is much easier to avoid errors when generating code. In JavaScript you can use JSON to generate data, but JSON can not carry functions around.<p>First of all, the LLM does not produce structured tokens, it produces (tokens of) text. It does not have a concept of nested or structured tokens. Which means that producing a Lisp program and a JavaScript program is basically the same difficulty, i.e. LLMs producing function foo () {} is about the same task as producing (defun foo () ()).<p>In fact, because most Lisps uses the same token ( and ) for almost all delimiters, the LLM in fact gets confused a lot more than Algol-family languages that uses various different tokens for different purposes. It generates thinking traces that are a few screens long while trying to count the closing parenthesis and the depth, something that I have not found to be the case for other languages, even with languages much more obscure than Lisp. (And no, it is not a training data issue, because the Lisp family as a whole is pretty well represented in the data set, due to Emacs Lisp.)<p>> I think this idea makes a lot sense. Instead of making the LLM generate JSON or XML, why not make it generate Lisp, which can carry both programs and data?<p>You do realize that all programming languages contains both programs and data, right? i.e. JSON is literally a subset of the JavaScript language, all JSON documents are valid JavaScript code, can be embedded in JavaScript programs, and so on. This isn't even a JavaScript-specific thing, almost all recent programming languages have data structure literals.<p>The thing that makes Lisp unique is that it can modify programs as data in the language easily, and why would that be a unique capability that would be beneficial for LLMs, when it can just sed/awk or tree-sitter-parse programs with more conventional languages and modify it as easily?</p>
]]></description><pubDate>Sun, 12 Jul 2026 07:12:54 +0000</pubDate><link>https://news.ycombinator.com/item?id=48879055</link><dc:creator>goranmoomin</dc:creator><comments>https://news.ycombinator.com/item?id=48879055</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48879055</guid></item><item><title><![CDATA[New comment by goranmoomin in "An agent in 100 lines of Lisp"]]></title><description><![CDATA[
<p>I like Lisp, I’ve used Common Lisp with a passion, but this doesn’t seem like a valid argument for Lisp.<p>Homoiconicity, as I understand, is that the code is <i>structured</i> data that is <i>easy</i> to programmatically modify, hence allowing Lisp macros. While some might disagree, I see Rust macros as the closest thing that demonstrates homoiconicity in mainstream Algol-based languages, as Rust macros modify the loosely structured token stream to produce new Rust code.<p>Eval, on the other hand, that’s more of a capability that comes from Lisp’s runtime, which used to be unique when Lisp was thriving, but not anymore — JS, Python, Ruby, all of the runtime-based languages have an eval function. The fact that they are not used as much is more of a security issue, not a capability issue, and I am not sure how having eval can be argued as Lisp being the language of agents.</p>
]]></description><pubDate>Sun, 12 Jul 2026 06:27:52 +0000</pubDate><link>https://news.ycombinator.com/item?id=48878843</link><dc:creator>goranmoomin</dc:creator><comments>https://news.ycombinator.com/item?id=48878843</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48878843</guid></item><item><title><![CDATA[The best WebAssembly runtime may still be no runtime at all]]></title><description><![CDATA[
<p>Article URL: <a href="https://00f.net/2026/07/08/webassembly-compilation-to-c-2026/">https://00f.net/2026/07/08/webassembly-compilation-to-c-2026/</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=48842934">https://news.ycombinator.com/item?id=48842934</a></p>
<p>Points: 4</p>
<p># Comments: 0</p>
]]></description><pubDate>Thu, 09 Jul 2026 08:55:07 +0000</pubDate><link>https://00f.net/2026/07/08/webassembly-compilation-to-c-2026/</link><dc:creator>goranmoomin</dc:creator><comments>https://news.ycombinator.com/item?id=48842934</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48842934</guid></item><item><title><![CDATA[New comment by goranmoomin in "Zig: All Package Management Functionality Moved from Compiler to Build System"]]></title><description><![CDATA[
<p>So this is the change that forced Zig to remove @cImport (and into the build system), right?<p>I know that it’s purely a UX concern, and that the changes (to decouple the build system and the compiler) are pretty critical for the maintainers, but it’s still a bit sad that development sanity comes first than the UX. (It’s the right call, just that it’s sad.) @cImport was a big killing feature imho to the language…</p>
]]></description><pubDate>Sun, 05 Jul 2026 03:53:49 +0000</pubDate><link>https://news.ycombinator.com/item?id=48791125</link><dc:creator>goranmoomin</dc:creator><comments>https://news.ycombinator.com/item?id=48791125</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48791125</guid></item><item><title><![CDATA[New comment by goranmoomin in "A native graphical shell for SSH"]]></title><description><![CDATA[
<p>> they still don't understand Electron is vastly superior technology<p>For the record, I'm one who loves the idea of Mac-assed Mac apps, I believe that the macOS ecosystem would have been much better if all macOS apps were written in AppKit instead of keep being rewritten into Electron. (See: 1Password, Raycast)<p>I hate Electron as much as the next person, and I hated Electron before hating Electron became a trendy thing to do. I loathe that Electron apps ship an entire Chromium instance for each app, and that it doesn't deduplicate. I am annoyed as hell that out of my 24GB of RAM that my MBA has, Slack, Linear, and Notion decided to each have a "Helper (Renderer)" process that uses 700MB of RAM each.<p>I do NOT think that Electron or the HTML/CSS/JS stack has an inherent advantage over other display technologies. I can list of at least 15 reasons on the spot on why it's inappropriate to use the web stack for desktop apps.<p>Yet, despite all of its flaws, people decided to commonly use it (with good reasons, the big one being cross-platform support!) as a display technology for desktop apps. And turns out that it works out okay-ish, they iterated on it and it improved a lot over the last 10 years, and at this point it's a pretty nice solution for the problem. And we already have a bunch of apps that run on it. Sometimes not the best tech wins, and that's okay.<p>My point was that despite all of the flaws, we developers as a whole decided to use web stuff for desktop apps, and it has properties that make it a good fit for some use cases that we have not solved yet, and we can use that to our advantage.<p>And if a lot of applications started to be written in the web stack, an OS could integrate an evergreen web browser as a first-class app runtime, and at least we might get less of the Chromium duplication that we currently have with Electron… at least I can dream. (Seems like Windows is going down this route.)</p>
]]></description><pubDate>Tue, 30 Jun 2026 08:24:16 +0000</pubDate><link>https://news.ycombinator.com/item?id=48729902</link><dc:creator>goranmoomin</dc:creator><comments>https://news.ycombinator.com/item?id=48729902</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48729902</guid></item><item><title><![CDATA[New comment by goranmoomin in "A native graphical shell for SSH"]]></title><description><![CDATA[
<p>It is pretty annoying to see all of the dismissive comments on this idea, in that it seems that the majority of HN audience are still stuck on the TUI-superiority mindset and they do not care about GUIs at all.<p>Two arguments:<p>- TUIs are not inherently superior to GUIs<p>- SSH, as a transport layer, should support not just forwarding a pty (as a TUI display layer), but a GUI display layer as well<p>In fact, these two arguments were already realized by UNIX 30 years ago, and we already have one solution: the X protocol and ssh -X.<p>Unfortunately, X did not win out. We did not get the promised future where one can ssh -X into a remote machine, run gnome-control-center, and a settings window pops up and I can configure my remote computer. (If you believe that this works, try it out yourself. It is an abysmal experience.)<p>However the above needs still needed to be satisfied by so much people, and apps that needed it started to be developed as web servers, stuff like jupyter notebooks. It turns out that the web’s document format coupled with a styling solution and a client-side scripting language, with all of its warts and drawbacks, became a viable solution as a display layer for interactive apps. In fact, since it started from remote documents, network transparency is built-in.<p>It would be dumb to not realize that the HTML/CSS/JS stack did win a dominant position for desktop apps, with all of the Electron apps, and utilize the web as a display layer for the above. I see the project in a similar vein, i.e. utilizing HTML/CSS/JS to provide a display layer for remote apps via SSH.<p>Also note that Electron apps has the same split with X, where the display server and the client are separated: it's called the "renderer process" and the "main process", and the two processes talk via IPC (where the display server would be the renderer process running embedded Chromium, the display client would be the Electron main process, and the stuff that the client sends to the server would be the contents of the renderer JS bundle). I think, theoretically, it would be possible to run the main process separated from the renderer process on a different machine, with an appropriate IPC transport. I think this would be not far from the above idea?</p>
]]></description><pubDate>Tue, 30 Jun 2026 05:22:27 +0000</pubDate><link>https://news.ycombinator.com/item?id=48728766</link><dc:creator>goranmoomin</dc:creator><comments>https://news.ycombinator.com/item?id=48728766</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48728766</guid></item><item><title><![CDATA[Zlib-rs in Firefox and working around an Intel bug]]></title><description><![CDATA[
<p>Article URL: <a href="https://trifectatech.org/blog/zlib-rs-in-firefox/">https://trifectatech.org/blog/zlib-rs-in-firefox/</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=48653628">https://news.ycombinator.com/item?id=48653628</a></p>
<p>Points: 2</p>
<p># Comments: 0</p>
]]></description><pubDate>Wed, 24 Jun 2026 00:34:57 +0000</pubDate><link>https://trifectatech.org/blog/zlib-rs-in-firefox/</link><dc:creator>goranmoomin</dc:creator><comments>https://news.ycombinator.com/item?id=48653628</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48653628</guid></item><item><title><![CDATA[Vulnerability reports are not special anymore]]></title><description><![CDATA[
<p>Article URL: <a href="https://words.filippo.io/vuln-reports/">https://words.filippo.io/vuln-reports/</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=48653216">https://news.ycombinator.com/item?id=48653216</a></p>
<p>Points: 387</p>
<p># Comments: 221</p>
]]></description><pubDate>Tue, 23 Jun 2026 23:42:46 +0000</pubDate><link>https://words.filippo.io/vuln-reports/</link><dc:creator>goranmoomin</dc:creator><comments>https://news.ycombinator.com/item?id=48653216</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48653216</guid></item><item><title><![CDATA[New comment by goranmoomin in "Ask HN: Has anyone replaced Claude/GPT with a local model for daily coding?"]]></title><description><![CDATA[
<p>I'm not using my models locally, but the majority (80% or more) of my coding agent sessions run on open source models, i.e. DeepSeek v4 Pro and Kimi K2.6 with thinking.<p>A point that I haven't seen come up a lot, but is very valuable to me is that for open source models, I can select the inference provider myself (even if it's not a local GPU), which means that I can enjoy superb speed (i.e. 300 tok/s) while still spending much less than the big providers.<p>My experience is that if you were fine with the coding models of yesterday (i.e. Claude Opus from Jan/Feb of 2026), you will be fine with either Kimi K2.6 or DeepSeek v4 Pro. Kimi is a bit more smart but has only 256K context and the performance deteriorates (and sometimes just gets stuck) when it fills up the context window. DeepSeek v4 has a 1M context and performs just as well with much less issues. And they both generate very idiomatic code, gives the same vibe of Opus a few months ago.<p>Since it's also fast (and does not fixate on trying to fix impossible problems, unlike the recent Opus/GPT 5.5 models), a big benefit is that you still control and steer the coding agent and you won't be losing focus like the major models. They are smart, but they don't fixate as much on trying to do stupid things, and since it's fast, you can just interject. It's a much more pleasant experience than the latest models.<p>I still use the latest models time to time when I expect the agent to fixate all of the problems and figure out everything themselves, but for me open source models are like 80~90% of all of my sessions.</p>
]]></description><pubDate>Tue, 16 Jun 2026 06:07:11 +0000</pubDate><link>https://news.ycombinator.com/item?id=48551176</link><dc:creator>goranmoomin</dc:creator><comments>https://news.ycombinator.com/item?id=48551176</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48551176</guid></item><item><title><![CDATA[New comment by goranmoomin in "Claude Fable 5"]]></title><description><![CDATA[
<p>My experience is that the GPT-family of models are very smart and figure out bugs, edge cases a bit better, but it produces code that is much less mergable – if you review the code, it introduces a lot more useless/inappropriate heavy abstractions and wrapper functions, compared to the Claude-family models which introduces the right amount of straightforward human-style code.<p>I can recognize so much of the GPT/Codex generated code long after it gets merged (not by me).<p>Additionally, the time spent on every agent turn on GPT 5.5 is much longer compared to Claude Opus 4.8, which means iterating on the code takes a lot more patience, and there's a lot more nitpicks to pick when actually using GPT 5.5 to do software engineering.<p>Feels like GPT-style models are more geared on doing one-shot software vibing (and handling the vibe coded mixture) compared to Claude's focus on actual software maintenance. I got a GPT Pro sub for free and wanted to cancel my Claude subscription so much, but I still keep reaching Claude models a lot more. Frustrating.</p>
]]></description><pubDate>Tue, 09 Jun 2026 18:34:52 +0000</pubDate><link>https://news.ycombinator.com/item?id=48465494</link><dc:creator>goranmoomin</dc:creator><comments>https://news.ycombinator.com/item?id=48465494</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48465494</guid></item><item><title><![CDATA[Auth.md: have agents to register accounts without a sign-up form]]></title><description><![CDATA[
<p>Article URL: <a href="https://workos.com/auth-md">https://workos.com/auth-md</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=48465194">https://news.ycombinator.com/item?id=48465194</a></p>
<p>Points: 2</p>
<p># Comments: 0</p>
]]></description><pubDate>Tue, 09 Jun 2026 18:17:32 +0000</pubDate><link>https://workos.com/auth-md</link><dc:creator>goranmoomin</dc:creator><comments>https://news.ycombinator.com/item?id=48465194</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48465194</guid></item><item><title><![CDATA[Let's compile Quake like it's 1997]]></title><description><![CDATA[
<p>Article URL: <a href="https://fabiensanglard.net/compile_like_1997/">https://fabiensanglard.net/compile_like_1997/</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=48318522">https://news.ycombinator.com/item?id=48318522</a></p>
<p>Points: 226</p>
<p># Comments: 79</p>
]]></description><pubDate>Fri, 29 May 2026 03:07:22 +0000</pubDate><link>https://fabiensanglard.net/compile_like_1997/</link><dc:creator>goranmoomin</dc:creator><comments>https://news.ycombinator.com/item?id=48318522</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48318522</guid></item><item><title><![CDATA[Breaking macOS App Sandbox with Archive Utility]]></title><description><![CDATA[
<p>Article URL: <a href="https://mysk.blog/2026/05/19/cve-2026-28910/">https://mysk.blog/2026/05/19/cve-2026-28910/</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=48305188">https://news.ycombinator.com/item?id=48305188</a></p>
<p>Points: 2</p>
<p># Comments: 0</p>
]]></description><pubDate>Thu, 28 May 2026 06:05:24 +0000</pubDate><link>https://mysk.blog/2026/05/19/cve-2026-28910/</link><dc:creator>goranmoomin</dc:creator><comments>https://news.ycombinator.com/item?id=48305188</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48305188</guid></item><item><title><![CDATA[Don't Build a General Purpose API (4 Years Later)]]></title><description><![CDATA[
<p>Article URL: <a href="https://max.engineer/server-informed-ui-p2">https://max.engineer/server-informed-ui-p2</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=48219404">https://news.ycombinator.com/item?id=48219404</a></p>
<p>Points: 2</p>
<p># Comments: 0</p>
]]></description><pubDate>Thu, 21 May 2026 08:12:25 +0000</pubDate><link>https://max.engineer/server-informed-ui-p2</link><dc:creator>goranmoomin</dc:creator><comments>https://news.ycombinator.com/item?id=48219404</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48219404</guid></item></channel></rss>