<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: davidsong</title><link>https://news.ycombinator.com/user?id=davidsong</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Tue, 15 Sep 2026 04:47:23 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=davidsong" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by davidsong in "Rars: a Rust RAR implementation, mostly written by LLMs"]]></title><description><![CDATA[
<p>Thanks. I'm downloading all these now and will do a proper pass and compare outputs for correctness once complete :)</p>
]]></description><pubDate>Sat, 23 May 2026 11:22:31 +0000</pubDate><link>https://news.ycombinator.com/item?id=48246751</link><dc:creator>davidsong</dc:creator><comments>https://news.ycombinator.com/item?id=48246751</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48246751</guid></item><item><title><![CDATA[New comment by davidsong in "Rars: a Rust RAR implementation, mostly written by LLMs"]]></title><description><![CDATA[
<p>The proper way to work with Claude or Codex is, IMO, to load up the context with a discussion about what you're doing and why. You go back and forth, pushing back on its opinions and shaping the context until the tokens are ready to flow into the right shape. Every angle you miss is an opportunity for them to slop out all over the place, and, until Codex was mature, the longer you ran the task for, the more it'd spread out and lose shape.<p>Re-shaping the context sometimes involves severe pressures like "wtf is this ugly crap?" or "did I just spot you laying a turd in my codebase again?" and other strong forms of disapproval, mixed with "hmm not sure I like the sound of that"s, to "yea that's much better" to pull it back in the other direction.<p>The trick is to shape the flow before the tide comes in and you end up like King Canute</p>
]]></description><pubDate>Thu, 14 May 2026 03:51:03 +0000</pubDate><link>https://news.ycombinator.com/item?id=48130905</link><dc:creator>davidsong</dc:creator><comments>https://news.ycombinator.com/item?id=48130905</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48130905</guid></item><item><title><![CDATA[New comment by davidsong in "Rars: a Rust RAR implementation, mostly written by LLMs"]]></title><description><![CDATA[
<p>I didn't actually read any code. I generated spec documents using Claude, then later on used Codex to generate from the spec docs. Are the specs tainted? If someone else independently develops from my spec, is that also tainted? What if they hear it second hand? It's an interesting legal situation for sure.</p>
]]></description><pubDate>Thu, 14 May 2026 03:34:51 +0000</pubDate><link>https://news.ycombinator.com/item?id=48130807</link><dc:creator>davidsong</dc:creator><comments>https://news.ycombinator.com/item?id=48130807</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48130807</guid></item><item><title><![CDATA[New comment by davidsong in "Rars: a Rust RAR implementation, mostly written by LLMs"]]></title><description><![CDATA[
<p>Yeah the main things are DoS attacks and path traversal issues. I intentionally guarded against these with resource limits and checks, but I can't guarantee that it's safe. I mean, basically anyone who carefully reads it knows more about it than me - you play the AI slot machine at this scale and who knows what prizes you'll win!</p>
]]></description><pubDate>Thu, 14 May 2026 03:29:23 +0000</pubDate><link>https://news.ycombinator.com/item?id=48130777</link><dc:creator>davidsong</dc:creator><comments>https://news.ycombinator.com/item?id=48130777</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48130777</guid></item><item><title><![CDATA[New comment by davidsong in "Rars: a Rust RAR implementation, mostly written by LLMs"]]></title><description><![CDATA[
<p>Thanks!<p>I guess you could save the state to a file on SIGINT, flush what's been written and pick it back up again if the state file exists when you restart, and use the CRCs of the files to abort if things have changed. I don't fancy doing that for so many versions of RAR, but it would be a cool feature to add it to an `xz` fork. I like the idea.</p>
]]></description><pubDate>Thu, 14 May 2026 03:23:50 +0000</pubDate><link>https://news.ycombinator.com/item?id=48130739</link><dc:creator>davidsong</dc:creator><comments>https://news.ycombinator.com/item?id=48130739</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48130739</guid></item><item><title><![CDATA[New comment by davidsong in "Rars: a Rust RAR implementation, mostly written by LLMs"]]></title><description><![CDATA[
<p>I compressed thousands of files, went through libarchive's and Sembiance's test data at least for the decompressor side. I recompressed the files, and round-tripped them against 7zip, unrar, every later version of winrar.
It failed a lot at the start, and codex burned a lot of tokens instrumenting the binaries and dividing and conquering until things settled down and round-trips worked properly.<p>I can't really say it works in every case as I honestly didn't spend that much time on it. But it works in the majority of cases. There's likely some nasty bugs hiding in there.</p>
]]></description><pubDate>Thu, 14 May 2026 03:19:31 +0000</pubDate><link>https://news.ycombinator.com/item?id=48130713</link><dc:creator>davidsong</dc:creator><comments>https://news.ycombinator.com/item?id=48130713</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48130713</guid></item><item><title><![CDATA[New comment by davidsong in "Rars: a Rust RAR implementation, mostly written by LLMs"]]></title><description><![CDATA[
<p>I generally don't anyway. Since the WTFPL came out I've been licensing under that with a warranty clause (don't blame me).<p>My main goal here was an experiment to see how far I could push the technique, and learn things along the way. Regardless of whether people dare to use it commercially or not, we have interoperability for the foreseeable future. As an archivist/computing historian I think that's important.</p>
]]></description><pubDate>Thu, 14 May 2026 03:12:17 +0000</pubDate><link>https://news.ycombinator.com/item?id=48130663</link><dc:creator>davidsong</dc:creator><comments>https://news.ycombinator.com/item?id=48130663</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48130663</guid></item><item><title><![CDATA[New comment by davidsong in "Rars: a Rust RAR implementation, mostly written by LLMs"]]></title><description><![CDATA[
<p>Well, it is every version of RAR. Documenting the quirks of rar 1.4, 1.5, 2.0, 2.9, 3.0, 4.0, 5.0 and 7.0, multiple compression strategies, PPMd, RARVM, compression levels, encryption, multi volume support, a huge test corpus, round trips for compatibility... The spec docs are linked.</p>
]]></description><pubDate>Thu, 14 May 2026 03:08:07 +0000</pubDate><link>https://news.ycombinator.com/item?id=48130635</link><dc:creator>davidsong</dc:creator><comments>https://news.ycombinator.com/item?id=48130635</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48130635</guid></item><item><title><![CDATA[Rars: a Rust RAR implementation, mostly written by LLMs]]></title><description><![CDATA[
<p>I spent a fortnight using Claude to create specs for every version of RAR, then another using gpt-5.5 to write compressors in Rust.<p>It's not fast and it's not pretty, but it works.</p>
<hr>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=48126675">https://news.ycombinator.com/item?id=48126675</a></p>
<p>Points: 94</p>
<p># Comments: 84</p>
]]></description><pubDate>Wed, 13 May 2026 19:59:35 +0000</pubDate><link>https://bitplane.net/log/2026/05/rars/</link><dc:creator>davidsong</dc:creator><comments>https://news.ycombinator.com/item?id=48126675</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48126675</guid></item><item><title><![CDATA[New comment by davidsong in "How to Draw Animals (1930)"]]></title><description><![CDATA[
<p>Thanks for doing this.<p>It's a pretty big file, so I compressed it down to 11mb:<p><a href="https://www.docdroid.net/A5g0tzk/les-animaux-compressed.pdf" rel="nofollow">https://www.docdroid.net/A5g0tzk/les-animaux-compressed.pdf</a></p>
]]></description><pubDate>Thu, 06 Jun 2019 07:32:05 +0000</pubDate><link>https://news.ycombinator.com/item?id=20112338</link><dc:creator>davidsong</dc:creator><comments>https://news.ycombinator.com/item?id=20112338</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=20112338</guid></item><item><title><![CDATA[New comment by davidsong in "How to Draw Animals (1930)"]]></title><description><![CDATA[
<p>When I was six I learned that variables are little boxes, strings are made of bunting and there was some kind of octopus called INKEY$ that grabbed keys from the keyboard.<p>I think the most important thing to learn is enthusiasm, if you've not got that then proper methods are of no use. This book looks like it'll be great tool for nurturing that.</p>
]]></description><pubDate>Thu, 06 Jun 2019 07:19:40 +0000</pubDate><link>https://news.ycombinator.com/item?id=20112290</link><dc:creator>davidsong</dc:creator><comments>https://news.ycombinator.com/item?id=20112290</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=20112290</guid></item><item><title><![CDATA[New comment by davidsong in "Vanishing Violence"]]></title><description><![CDATA[
<p>Theft is illegally depriving someone of something. Burglary includes an unlawful entry component.</p>
]]></description><pubDate>Thu, 21 Mar 2019 18:22:50 +0000</pubDate><link>https://news.ycombinator.com/item?id=19455613</link><dc:creator>davidsong</dc:creator><comments>https://news.ycombinator.com/item?id=19455613</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=19455613</guid></item><item><title><![CDATA[New comment by davidsong in "A few simple steps to vastly increase your privacy online"]]></title><description><![CDATA[
<p>Where would you point the upstream? Doesn't it just push the problem up one server?</p>
]]></description><pubDate>Thu, 21 Mar 2019 16:38:17 +0000</pubDate><link>https://news.ycombinator.com/item?id=19454325</link><dc:creator>davidsong</dc:creator><comments>https://news.ycombinator.com/item?id=19454325</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=19454325</guid></item><item><title><![CDATA[New comment by davidsong in "As Facebook Raised a Privacy Wall, It Carved an Opening for Tech Giants"]]></title><description><![CDATA[
<p>I once dropped my work laptop and snapped the plastic housing on the charger plug. I only discussed it verbally with my manager and said that I, as a consultant, would replace it at my own expense. Before I'd had chance to search for and price one up adverts for laptop chargers started following me around the web.<p>It could have been that she then searched for a charger and being a small company we all shared an external IP address, that we also shared the ads... or it could have been that spy software on my phone had sold our conversation to advertisers. Either way, mic privileges were locked down and ad and tracker blocking efforts doubled after that.</p>
]]></description><pubDate>Wed, 19 Dec 2018 08:02:25 +0000</pubDate><link>https://news.ycombinator.com/item?id=18714012</link><dc:creator>davidsong</dc:creator><comments>https://news.ycombinator.com/item?id=18714012</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=18714012</guid></item><item><title><![CDATA[New comment by davidsong in "Is Firefox lying to users about viruses in downloads?"]]></title><description><![CDATA[
<p>Also dodgy files can contain multiple exploits, potentially for different platforms. Problem here from the malicious actor's point of view is that each vector for attack is also a vector for detection, so rather than a cesspool of exploits it makes more sense to use single new and mostly unknown exploit that targets software used by the greatest number of victims.</p>
]]></description><pubDate>Wed, 04 Jul 2018 16:37:47 +0000</pubDate><link>https://news.ycombinator.com/item?id=17458139</link><dc:creator>davidsong</dc:creator><comments>https://news.ycombinator.com/item?id=17458139</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=17458139</guid></item><item><title><![CDATA[New comment by davidsong in "Is Firefox lying to users about viruses in downloads?"]]></title><description><![CDATA[
<p>Or put it anywhere a vulnerable PDF viewer or OS might stumble upon, where an overzealous scanner has write access to, or where some snitch might grab a copy from and blacklist your domains.</p>
]]></description><pubDate>Wed, 04 Jul 2018 16:24:01 +0000</pubDate><link>https://news.ycombinator.com/item?id=17458056</link><dc:creator>davidsong</dc:creator><comments>https://news.ycombinator.com/item?id=17458056</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=17458056</guid></item><item><title><![CDATA[New comment by davidsong in "Is Firefox lying to users about viruses in downloads?"]]></title><description><![CDATA[
<p>Well yes, and in this case we're talking files that contain an exploit for a version of Acrobat from 2006 or so and an infection vector that only works on Windows XP, and connects to a botnet that is either long dead or now an NSA/CIA asset.<p>But Windows Defender quite rightly still quarantines the file.</p>
]]></description><pubDate>Wed, 04 Jul 2018 16:14:14 +0000</pubDate><link>https://news.ycombinator.com/item?id=17458006</link><dc:creator>davidsong</dc:creator><comments>https://news.ycombinator.com/item?id=17458006</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=17458006</guid></item><item><title><![CDATA[New comment by davidsong in "Is Firefox lying to users about viruses in downloads?"]]></title><description><![CDATA[
<p>There are several ebooks that have been uploaded to libgen that contain PDF exploits, and from what I understand there's no way to remove them.<p>The way that their library database works is by linking a book number to a file's md5 sum. On the filesystem they are stored something like `$drive:\$batch\$sum` where `$drive` is a Windows drive letter, `$batch` is the primary key of the document rounded to the nearest 1k, 10k or 100k depending on collection and `$sum` is the `md5sum` of the file data. The archive's file data is shared via torrents, usenet and other means in those batches, and to keep that in sync they have a policy of the primary key and sum of each file being immutable.<p>So if you do happen to download the literary works of mankind via their torrents, you have to do so with your antivirus turned off and hope nobody has uploaded anything too illegal over the last decade.</p>
]]></description><pubDate>Wed, 04 Jul 2018 15:52:39 +0000</pubDate><link>https://news.ycombinator.com/item?id=17457876</link><dc:creator>davidsong</dc:creator><comments>https://news.ycombinator.com/item?id=17457876</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=17457876</guid></item><item><title><![CDATA[New comment by davidsong in "Becoming a 10x Developer"]]></title><description><![CDATA[
<p>Entertaining? This is deadly serious. I think you might need extra diversity training.</p>
]]></description><pubDate>Wed, 13 Jun 2018 17:56:43 +0000</pubDate><link>https://news.ycombinator.com/item?id=17305490</link><dc:creator>davidsong</dc:creator><comments>https://news.ycombinator.com/item?id=17305490</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=17305490</guid></item><item><title><![CDATA[New comment by davidsong in "Bitcoin’s Price Was Artificially Inflated Last Year, Researchers Say"]]></title><description><![CDATA[
<p>A little over two more orders of magnitude price increase before the next two halfenings and it's guaranteed to cause a world energy crisis.</p>
]]></description><pubDate>Wed, 13 Jun 2018 17:54:43 +0000</pubDate><link>https://news.ycombinator.com/item?id=17305472</link><dc:creator>davidsong</dc:creator><comments>https://news.ycombinator.com/item?id=17305472</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=17305472</guid></item></channel></rss>