<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: Scaevolus</title><link>https://news.ycombinator.com/user?id=Scaevolus</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Thu, 29 Oct 2026 17:47:08 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=Scaevolus" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by Scaevolus in "Decompiling Fast Food Tycoon 2: Drawing the World"]]></title><description><![CDATA[
<p>Rather than loading the raw approximate decompile code into SQLite, you'll likely get better results using Ghidra directly with tool calls through an MCP adapter. This is especially important when the analysis tracing fails, like with some complex indirect jump patterns with vtables. Xrefs and pattern searches are of course natively supported, and you can load in memory snapshots.<p>A simple "/goal analyze this codebase, assign names for each function, and creates named structs for parameters." works well, even with quite weak agents. Remember, parsing through heaps of text is their forte!<p>This setup also works for more exotic non-x86 architectures with more dynamic code loading, like PS2, N64, etc.</p>
]]></description><pubDate>Wed, 28 Oct 2026 14:39:49 +0000</pubDate><link>https://news.ycombinator.com/item?id=50274444</link><dc:creator>Scaevolus</dc:creator><comments>https://news.ycombinator.com/item?id=50274444</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=50274444</guid></item><item><title><![CDATA[New comment by Scaevolus in "Twelve years of distributed SQLite"]]></title><description><![CDATA[
<p>"Honesty" is what crossed the threshold for me. It's pretty weird to spend 12 years on something and not bother to write the thousand word history yourself.</p>
]]></description><pubDate>Sat, 24 Oct 2026 06:31:58 +0000</pubDate><link>https://news.ycombinator.com/item?id=50218785</link><dc:creator>Scaevolus</dc:creator><comments>https://news.ycombinator.com/item?id=50218785</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=50218785</guid></item><item><title><![CDATA[New comment by Scaevolus in "Redesigning source control at Anthropic"]]></title><description><![CDATA[
<p>Making scalable source control is much easier when you can rely on a distributed database (Spanner) and object storage (GCS/S3/...)!</p>
]]></description><pubDate>Tue, 13 Oct 2026 20:25:08 +0000</pubDate><link>https://news.ycombinator.com/item?id=50078159</link><dc:creator>Scaevolus</dc:creator><comments>https://news.ycombinator.com/item?id=50078159</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=50078159</guid></item><item><title><![CDATA[New comment by Scaevolus in "REA Reverse – Engineer Anything"]]></title><description><![CDATA[
<p>Reverse engineering and decompilation is not currently blocked by the models, leading to the proliferation of LLM-assisted decomps/recomps. If you ask it to find <i>bugs</i> you're more likely to get a refusal, but simply pointing an LLM at a Ghidra MCP server and telling it to trace program flow, rename functions, or answer questions behaves like normal.</p>
]]></description><pubDate>Sat, 10 Oct 2026 04:25:46 +0000</pubDate><link>https://news.ycombinator.com/item?id=50029557</link><dc:creator>Scaevolus</dc:creator><comments>https://news.ycombinator.com/item?id=50029557</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=50029557</guid></item><item><title><![CDATA[New comment by Scaevolus in "Best-selling Zigbee temperature sensors tested and compared"]]></title><description><![CDATA[
<p>I agree on active devices, and most of the ecosystem is similarly frustrating to deal with.<p>And why rely on someone else's software for this in 2026? I vibecoded a Rust+Starlark zigbee hub software that uses a few MB of RAM on my router and can directly dispatch HTTP for alerting, as well as exposing prometheus metrics. Zigbee2MQTT apparently wants several hundred MB of RAM.<p>For passive monitoring, I have six water leak sensors and two temperature/humidity sensors.<p>The crucial thing is that I can fix it if it breaks. I can debug the low level network packets, support whatever hardware I want, and not have to rely on someone else's cloud ecosystem.<p>It's great!</p>
]]></description><pubDate>Wed, 07 Oct 2026 00:28:58 +0000</pubDate><link>https://news.ycombinator.com/item?id=49986226</link><dc:creator>Scaevolus</dc:creator><comments>https://news.ycombinator.com/item?id=49986226</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49986226</guid></item><item><title><![CDATA[New comment by Scaevolus in "Photopea creator weighs in on Photosuite project"]]></title><description><![CDATA[
<p>Wine-style PS5 emulation has advanced far enough that I would bet money on there being a pirated GTA6 PC release based on the PS5 version available within six months.</p>
]]></description><pubDate>Tue, 06 Oct 2026 03:40:43 +0000</pubDate><link>https://news.ycombinator.com/item?id=49973883</link><dc:creator>Scaevolus</dc:creator><comments>https://news.ycombinator.com/item?id=49973883</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49973883</guid></item><item><title><![CDATA[New comment by Scaevolus in "How Singapore's government-run dating service works"]]></title><description><![CDATA[
<p>Given how women initiate most divorces, it's probably best to set it up so they are the proposing side.<p>But this isn't raw Gale-Shapley-- the participants aren't ranking all hundreds/thousands of others. In particular, the preference matrix is based on identical mutual compatibility scores, so there's a unique stable solution (not multiple stable ones!), and there's no "side" that benefits, since the solution is identical no matter who does the "proposing".</p>
]]></description><pubDate>Fri, 02 Oct 2026 05:09:10 +0000</pubDate><link>https://news.ycombinator.com/item?id=49930026</link><dc:creator>Scaevolus</dc:creator><comments>https://news.ycombinator.com/item?id=49930026</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49930026</guid></item><item><title><![CDATA[New comment by Scaevolus in "Platform-Independent SIMD in Go"]]></title><description><![CDATA[
<p>It creates multiple versions of functions referencing SIMD and lifts the dispatch switching cost to their callers.<p>> The AST rewrite creates multiple specialized copies of functions, variables, and types that mention simd types, where simd types are replaced with references to size-specialized types in simd/internal/bridge. Each of these bridge types is defined as an archsimd type, but with a restricted set of methods. The specialized functions, variables, and types acquire a suffix of the form @simdNNN, where NNN is either a vector length (128, 256, or 512) or 0, indicating emulation. Functions that mention simd internally, but not in their signature, are converted to wrappers that switch on the SIMD level detected at program start, and call the appropriate specialized version of that function. Specialized functions call other specialized functions directly without dispatch overhead (and perhaps with inlining). This rewrite strategy was chosen as a compromise between code duplication and SIMD performance; the overhead is hoisted as high as necessary to avoid dispatch within SIMD computations, but not higher. If SIMD dispatch appears “too low” in a computation, a gratuitous mention of a simd type will move it upwards, as in this example:</p>
]]></description><pubDate>Fri, 25 Sep 2026 14:27:08 +0000</pubDate><link>https://news.ycombinator.com/item?id=49845159</link><dc:creator>Scaevolus</dc:creator><comments>https://news.ycombinator.com/item?id=49845159</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49845159</guid></item><item><title><![CDATA[New comment by Scaevolus in "Show HN: Cactus Needle 3: 8-29MB automation models can match DeepSeek V4 Flash"]]></title><description><![CDATA[
<p>This is a solid improvement over Needle 2, which I tried using for a tool-calling interface to a Runescape database site. Unfortunately it's still not quite capable enough for my target compared to FunctionGemma.<p><pre><code>   Model                            Correct tool shape    Exact arguments
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━  ━━━━━━━━━━━━━━━━━━━━  ━━━━━━━━━━━━━━━━━
   FunctionGemma fine-tune, BF16       209/230 (90.9%)    196/230 (85.2%)
  ───────────────────────────────  ────────────────────  ─────────────────
   Needle 3 fine-tuned W4A8             74/230 (32.2%)     47/230 (20.4%)
  ───────────────────────────────  ────────────────────  ─────────────────
   Needle 2 fine-tuned W4               59/230 (25.7%)     43/230 (18.7%)</code></pre></p>
]]></description><pubDate>Fri, 18 Sep 2026 21:30:08 +0000</pubDate><link>https://news.ycombinator.com/item?id=49760514</link><dc:creator>Scaevolus</dc:creator><comments>https://news.ycombinator.com/item?id=49760514</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49760514</guid></item><item><title><![CDATA[New comment by Scaevolus in "The case against JPEG XL"]]></title><description><![CDATA[
<p>It also compares the total time for jxl-rs's benchmark mode (which does a warmup and a test decode) for 16-bit RGB against 8-bit WebP to 4:2:0 YUV.</p>
]]></description><pubDate>Mon, 14 Sep 2026 15:33:49 +0000</pubDate><link>https://news.ycombinator.com/item?id=49698712</link><dc:creator>Scaevolus</dc:creator><comments>https://news.ycombinator.com/item?id=49698712</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49698712</guid></item><item><title><![CDATA[New comment by Scaevolus in "YuE2 · Frontier Music with Symbolic Planning"]]></title><description><![CDATA[
<p>Engineers understand that every technology represents inherent tradeoffs.</p>
]]></description><pubDate>Fri, 11 Sep 2026 01:42:49 +0000</pubDate><link>https://news.ycombinator.com/item?id=49652542</link><dc:creator>Scaevolus</dc:creator><comments>https://news.ycombinator.com/item?id=49652542</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49652542</guid></item><item><title><![CDATA[New comment by Scaevolus in "Ask HN: Fable hacked my piano, can I release the results?"]]></title><description><![CDATA[
<p>Aside: if you want a source of high quality Piano MIDI recordings, you should check out the MAESTRO dataset: <a href="https://magenta.withgoogle.com/datasets/maestro" rel="nofollow">https://magenta.withgoogle.com/datasets/maestro</a><p>> The dataset contains about 200 hours of paired audio and MIDI recordings from ten years of International Piano-e-Competition. The MIDI data includes key strike velocities and sustain/sostenuto/una corda pedal positions. Audio and MIDI files are aligned with ∼3 ms accuracy and sliced to individual musical pieces, which are annotated with composer, title, and year of performance. Uncompressed audio is of CD quality or higher (44.1–48 kHz 16-bit PCM stereo).</p>
]]></description><pubDate>Mon, 07 Sep 2026 05:54:02 +0000</pubDate><link>https://news.ycombinator.com/item?id=49594374</link><dc:creator>Scaevolus</dc:creator><comments>https://news.ycombinator.com/item?id=49594374</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49594374</guid></item><item><title><![CDATA[New comment by Scaevolus in "Recreating Minecraft Is Not a Benchmark"]]></title><description><![CDATA[
<p>Did you try blender MCP and prompt for low-poly vertex colored assets?</p>
]]></description><pubDate>Sun, 06 Sep 2026 17:40:14 +0000</pubDate><link>https://news.ycombinator.com/item?id=49588887</link><dc:creator>Scaevolus</dc:creator><comments>https://news.ycombinator.com/item?id=49588887</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49588887</guid></item><item><title><![CDATA[New comment by Scaevolus in "Artificial Analysis Intelligence Index v4.2"]]></title><description><![CDATA[
<p>GPT-6 has a looped transformer / recurrent depth architecture, so it gets some internal CoT reasoning "for free" with no output tokens.<p>This also makes it <i>much</i> harder to monitor its reasoning.</p>
]]></description><pubDate>Sat, 05 Sep 2026 01:48:12 +0000</pubDate><link>https://news.ycombinator.com/item?id=49572296</link><dc:creator>Scaevolus</dc:creator><comments>https://news.ycombinator.com/item?id=49572296</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49572296</guid></item><item><title><![CDATA[New comment by Scaevolus in "Codefloe Is a Professionally Hosted Public Git Forge"]]></title><description><![CDATA[
<p>See Cursor's recent blog post on launching a Github competitor, particularly the architectural history.</p>
]]></description><pubDate>Tue, 25 Aug 2026 00:27:38 +0000</pubDate><link>https://news.ycombinator.com/item?id=49427654</link><dc:creator>Scaevolus</dc:creator><comments>https://news.ycombinator.com/item?id=49427654</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49427654</guid></item><item><title><![CDATA[New comment by Scaevolus in "Firefox intent to ship: JPEG XL"]]></title><description><![CDATA[
<p>Chrome doesn't use hardware acceleration for decoding any image codecs-- not for JPEG or WebP or AVIF. It has some code for it (using VA-API), but it's disabled by default. Hardware video decoders are generally hard to use for image decoding tasks.<p>Safari appears to be the only shipping browser using hardware decoding for JPEG and HEIF (HEVC based images). This is probably because vertical integration lets them make the decoders appropriate for image use.<p>Also, "AVIF video" is incorrect. AVIF is the image codec based on AV1 intra frames.</p>
]]></description><pubDate>Mon, 24 Aug 2026 17:34:34 +0000</pubDate><link>https://news.ycombinator.com/item?id=49423228</link><dc:creator>Scaevolus</dc:creator><comments>https://news.ycombinator.com/item?id=49423228</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49423228</guid></item><item><title><![CDATA[New comment by Scaevolus in "Accelerating GPT-5.6 Sol Ultrafast"]]></title><description><![CDATA[
<p>"delivering up to 750 output tokens per second and without any quality compromise" seems pretty definitive.</p>
]]></description><pubDate>Thu, 13 Aug 2026 19:33:58 +0000</pubDate><link>https://news.ycombinator.com/item?id=49290859</link><dc:creator>Scaevolus</dc:creator><comments>https://news.ycombinator.com/item?id=49290859</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49290859</guid></item><item><title><![CDATA[New comment by Scaevolus in "G# – A modern .NET language with Go, Kotlin, and Swift ergonomics"]]></title><description><![CDATA[
<p>- it's easy to prompt an LLM to do it for you, especially if you're targeting a pre-existing runtime like CLR or transpiling to another language. previously you'd have to grind out the parser and compiler for a new language, but a lot of that work is mechanical<p>- "I want a language that works a little differently"<p>- programming language theory (PLT), generally<p>- languages are tools. the authors should explain what their languages are best suited for<p>- Obj C and C++ were both developed around the same time as extensions of C. Obj C was focused on message passing and Smalltalk's object system, while C++ was focused on adding as many abstractions as possible to C. Neither language has good support for avoiding null pointer dereferences, one of the primary things Swift addresses with its richer type system and Optionals.</p>
]]></description><pubDate>Thu, 16 Jul 2026 06:23:45 +0000</pubDate><link>https://news.ycombinator.com/item?id=48930969</link><dc:creator>Scaevolus</dc:creator><comments>https://news.ycombinator.com/item?id=48930969</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48930969</guid></item><item><title><![CDATA[New comment by Scaevolus in "Netstrings (1997)"]]></title><description><![CDATA[
<p>BitTorrent's bencoding format, used in .torrent files, effectively uses netstrings-- but without the trailing commas, so it uses "5:hello" to represent filenames and similar.</p>
]]></description><pubDate>Thu, 16 Jul 2026 06:15:32 +0000</pubDate><link>https://news.ycombinator.com/item?id=48930931</link><dc:creator>Scaevolus</dc:creator><comments>https://news.ycombinator.com/item?id=48930931</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48930931</guid></item><item><title><![CDATA[New comment by Scaevolus in "Nul Characters in Strings in SQLite"]]></title><description><![CDATA[
<p>It's not really a big problem. You <i>should</i> be storing arbitrary binary strings as blobs (and length() works properly with them), but the underlying encoding is nearly identical: <a href="https://www.sqlite.org/fileformat.html#record_format" rel="nofollow">https://www.sqlite.org/fileformat.html#record_format</a></p>
]]></description><pubDate>Thu, 16 Jul 2026 00:50:10 +0000</pubDate><link>https://news.ycombinator.com/item?id=48929169</link><dc:creator>Scaevolus</dc:creator><comments>https://news.ycombinator.com/item?id=48929169</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48929169</guid></item></channel></rss>