<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: arnsholt</title><link>https://news.ycombinator.com/user?id=arnsholt</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Sat, 27 Jun 2026 00:54:11 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=arnsholt" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by arnsholt in "A treasure trove of fossils rewrites the story of early life"]]></title><description><![CDATA[
<p>If I had to guess, they probably have some ideas. In <i>Your inner fish</i> (an excellent book, BTW) Neil Shubin has an afterword where he describes roughly how they went about deciding where to look for Tiktaalik. Basically, you start with whatever thing you want to find out more about; in the case of Tiktaalik, the transition of tetrapods from aquatic to terrestrial living. So you start by finding out where you have exposed sedimentary rocks of the correct age likely to be contain fossils. Next, you also need to the rocks to expose the right kind of environment: desert sands or deep ocean environments aren't going to help you find Tiktaalik, for that you need shallow waters and intertidal zones. Finally, it needs to be somewhere you can get to. So in this case, I wouldn't be surprised if they were purposefully looking for soft body preservation (especially since I think Cambrian fauna generally was quite soft and squishy).<p>From memory, to get fossilised soft tissues you want the remains to be buried extremely rapidly in an environment where the soft tissues don't decay (typically an anoxic environment, so for a shale basically covered in mud). So a mudslide is one option, and I think there are some lovely fossils North American from the end of the Cretaceous that are hypothesised to have been buried by the tidal wave caused by the Chicxulub impact.<p>Edit: After some googling, the Cretaceous fossils I was thinking of is Tanis,[0] which is in fact plausibly (but not universally) thought to be covered by the earthquake caused by the impact, <i>before</i> the tidal wave arrived.<p>0: <a href="https://en.wikipedia.org/wiki/Tanis_(fossil_site)" rel="nofollow">https://en.wikipedia.org/wiki/Tanis_(fossil_site)</a></p>
]]></description><pubDate>Mon, 04 May 2026 14:02:58 +0000</pubDate><link>https://news.ycombinator.com/item?id=48008934</link><dc:creator>arnsholt</dc:creator><comments>https://news.ycombinator.com/item?id=48008934</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48008934</guid></item><item><title><![CDATA[New comment by arnsholt in "Smalltalk's Browser: Unbeatable, yet Not Enough"]]></title><description><![CDATA[
<p>I worked as a Smalltalk developer for a few years, and it spoiled to such an extent that I’ve tried to make an extension for IntelliJ to replicate the browser for Java development. Maybe I should revive that project, actually…</p>
]]></description><pubDate>Thu, 05 Mar 2026 15:39:27 +0000</pubDate><link>https://news.ycombinator.com/item?id=47262889</link><dc:creator>arnsholt</dc:creator><comments>https://news.ycombinator.com/item?id=47262889</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47262889</guid></item><item><title><![CDATA[New comment by arnsholt in "The challenges of soft delete"]]></title><description><![CDATA[
<p>I wasn’t involved in the day to day operations of the system, but it had records going back to the 90s at least I think. I think data related to non accepted offers were deleted fairly quickly (since they didn’t end up being actual customers), but outside of that I think everything was kept more or less indefinitely.</p>
]]></description><pubDate>Wed, 21 Jan 2026 13:46:07 +0000</pubDate><link>https://news.ycombinator.com/item?id=46705640</link><dc:creator>arnsholt</dc:creator><comments>https://news.ycombinator.com/item?id=46705640</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46705640</guid></item><item><title><![CDATA[New comment by arnsholt in "The challenges of soft delete"]]></title><description><![CDATA[
<p>Yeah, basically. The full system actually has more date stuff going on, to support some other more advanced stuff than just tracking objects themselves, but that's the overall idea. When you need to join stuff it can be annoying to get the SQL right in order to join the correct records from a different table onto your table of interest (thank Bob for JOIN LATERAL), but once you get the hang of it it's fairly straightforward. And it gives you the full history, which is great.</p>
]]></description><pubDate>Wed, 21 Jan 2026 12:34:38 +0000</pubDate><link>https://news.ycombinator.com/item?id=46704809</link><dc:creator>arnsholt</dc:creator><comments>https://news.ycombinator.com/item?id=46704809</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46704809</guid></item><item><title><![CDATA[New comment by arnsholt in "The challenges of soft delete"]]></title><description><![CDATA[
<p>The core system at my previous employer (an insurance company) worked along the lines of the solution you outline at the end: each table is an append only log of point in time information about some object. So the current state is in the row with the highest timestamp, and all previous stars can be observed with appropriate filters. It’s a really powerful approach.</p>
]]></description><pubDate>Wed, 21 Jan 2026 11:49:37 +0000</pubDate><link>https://news.ycombinator.com/item?id=46704352</link><dc:creator>arnsholt</dc:creator><comments>https://news.ycombinator.com/item?id=46704352</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46704352</guid></item><item><title><![CDATA[New comment by arnsholt in "How to store a chess position in 26 bytes (2022)"]]></title><description><![CDATA[
<p>Lichess uses a scheme which is probably more efficient on average, described on revoof's blog[0]. Basically, it's a variable length scheme where the first 64 bits encode square occupancies, followed by piece codes (including castling, side to move, and ep with some trickery), followed by half-move clocks if necessary.<p>0: <a href="https://lichess.org/@/revoof/blog/adapting-nnue-pytorchs-binary-position-format-for-lichess/cpeeAMeY" rel="nofollow">https://lichess.org/@/revoof/blog/adapting-nnue-pytorchs-bin...</a></p>
]]></description><pubDate>Fri, 09 Jan 2026 20:06:51 +0000</pubDate><link>https://news.ycombinator.com/item?id=46558603</link><dc:creator>arnsholt</dc:creator><comments>https://news.ycombinator.com/item?id=46558603</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46558603</guid></item><item><title><![CDATA[New comment by arnsholt in "I program without syntax highlighting"]]></title><description><![CDATA[
<p>For about two and a half years I worked on a Smalltalk system, written in a quite old Smalltalk, which gave me two idiosyncrasies editor-wise: I no longer care very much about syntax highlighting (though I don't really bother to turn it <i>off</i>), and I now prefer to use proportional fonts for my programming. The only syntax highlighting I missed in the Smalltalk was a fading out of comments (which would in fact have prevented a stupid issue similar to the comment thing shown in the OP).</p>
]]></description><pubDate>Thu, 08 Jan 2026 13:57:17 +0000</pubDate><link>https://news.ycombinator.com/item?id=46540994</link><dc:creator>arnsholt</dc:creator><comments>https://news.ycombinator.com/item?id=46540994</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46540994</guid></item><item><title><![CDATA[New comment by arnsholt in "Property-Based Testing Caught a Security Bug I Never Would Have Found"]]></title><description><![CDATA[
<p>Good PBT code doesn't simply generate values at random, they skew the distributions so that known problematic values are more likely to appear. In JS "__proto__" is a good candidate for strings as shown here, for floating point numbers you'll probably want skew towards generating stuff like infinities, nans, denormals, negative zero and so on. It'll depend on your exact domain.</p>
]]></description><pubDate>Fri, 19 Dec 2025 11:55:01 +0000</pubDate><link>https://news.ycombinator.com/item?id=46324828</link><dc:creator>arnsholt</dc:creator><comments>https://news.ycombinator.com/item?id=46324828</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46324828</guid></item><item><title><![CDATA[New comment by arnsholt in "Swedish publishers file police report against Meta's Zuckerberg for fraud"]]></title><description><![CDATA[
<p>I'm pretty sure the publishers are alleging that a crime has been committed. In that case, private parties <i>can't</i> open a suit (at least if Swedish criminal law is at all similar to Norwegian law), so this asks the police to open a criminal investigation into the matter. What happens next in the Norwegian system at least is that the police will conduct their investigation, and at some point when the police consider their investigations complete the prosecutor's office will decide what to do next. Next steps can be concluding that no crime has occured, to ask the police to investigate further, that a crime has been committed but the evidence are insufficient for a trial, or that someone should be tried.</p>
]]></description><pubDate>Fri, 28 Nov 2025 16:26:42 +0000</pubDate><link>https://news.ycombinator.com/item?id=46080055</link><dc:creator>arnsholt</dc:creator><comments>https://news.ycombinator.com/item?id=46080055</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46080055</guid></item><item><title><![CDATA[New comment by arnsholt in "Ruby and Its Neighbors: Smalltalk"]]></title><description><![CDATA[
<p>I found the Smalltalk way of working in the running environment to be very programmer efficient too, and that it was by far the smoothest development experience I’ve had, even in a pretty dated and clunky Smalltalk at that point. And debugging wasn’t really a problem in my experience, but we stored application state outside of the image in an SQL database (initially Sybase, then MSSQL), which probably removes some «haha, the image has some weird data saved in the dark and dusty corners» issues.</p>
]]></description><pubDate>Wed, 05 Nov 2025 18:11:00 +0000</pubDate><link>https://news.ycombinator.com/item?id=45825962</link><dc:creator>arnsholt</dc:creator><comments>https://news.ycombinator.com/item?id=45825962</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45825962</guid></item><item><title><![CDATA[New comment by arnsholt in "Ruby and Its Neighbors: Smalltalk"]]></title><description><![CDATA[
<p>I worked on a Smalltalk system which ran on Visual Smalltalk Enterprise, and in that system the image opened its windows as native Windows GDI windows, which made the application quite seamless in the OS (except this was in 2016-2018 and VSE was last updated in ‘99, so the look and feel was a bit dated :D).</p>
]]></description><pubDate>Wed, 05 Nov 2025 17:41:47 +0000</pubDate><link>https://news.ycombinator.com/item?id=45825638</link><dc:creator>arnsholt</dc:creator><comments>https://news.ycombinator.com/item?id=45825638</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45825638</guid></item><item><title><![CDATA[New comment by arnsholt in "Hypothesis: Property-Based Testing for Python"]]></title><description><![CDATA[
<p>I've only used PBT a few times, but when it fits it's been extremely useful. A concrete example from my practice of what has been pointed out in this thread, that you want to <i>properties</i> of your function's output rather than the output itself: I was implementing a fairly involved algorithm (the Zhang-Shasha edit distance algorithm for ordered trees), and PBT was extremely useful in weeding out bugs. What I did was writing a function that generated random tree structures in the form I needed for my code, and tested the four properties that all distance functions should have:<p>1. d(x, x) = 0 for all x
2. d(x, y) >= 0 for all x, y
3. d(x, y) = d(y, x) for all x, y
4. d(x, z) <= d(x, y) + d(y, z) for all x, y, z (the triangle inequality)<p>Especially the triangle inequality check weeded out some tricky corner cases I probably wouldn't have figured out on my own. Some will object that you're not guaranteed to find bugs with this kind of random-generation strategy, but if you blast through a few thousand cases every time you run your test suite, and the odd overnight run testing a few million, you quickly get fairly confident that the properties you test actually hold. Of course any counterexamples the PBT finds should get lifted to regression tests in addition, to make sure they're always caught if they crop up again. And as with any testing approach, there are no guarantees, but it adds a nice layer of defense in depth IMO.</p>
]]></description><pubDate>Wed, 05 Nov 2025 12:03:36 +0000</pubDate><link>https://news.ycombinator.com/item?id=45821949</link><dc:creator>arnsholt</dc:creator><comments>https://news.ycombinator.com/item?id=45821949</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45821949</guid></item><item><title><![CDATA[New comment by arnsholt in "Upcoming Rust language features for kernel development"]]></title><description><![CDATA[
<p>In discussions like this, I sometimes feel that the importance of related work like the increasing use of Rust in Android and MS land is under-appreciated. Those who think C is fine often (it seems to me) make arguments along the lines that C just needs to have a less UB-prone variant along the lines of John Regehr and colleagues' "Friendly C" proposal,[0] which unfortunately Regehr about a year and a half later concluded couldn't really be landed by a consensus approach.[1] But he does suggest a way forwards: "an influential group such as the Android team could create a friendly C dialect and use it to build the C code (or at least the security-sensitive C code) in their project", which is what I would argue is happening; it's just that rather than nailing down a better C, several important efforts are all deciding that Rust is the way forward.<p>The avalanche has already started. It is too late for the pebbles to vote.<p>0: <a href="https://blog.regehr.org/archives/1180" rel="nofollow">https://blog.regehr.org/archives/1180</a>
1: <a href="https://blog.regehr.org/archives/1287" rel="nofollow">https://blog.regehr.org/archives/1287</a></p>
]]></description><pubDate>Thu, 16 Oct 2025 13:58:44 +0000</pubDate><link>https://news.ycombinator.com/item?id=45605419</link><dc:creator>arnsholt</dc:creator><comments>https://news.ycombinator.com/item?id=45605419</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45605419</guid></item><item><title><![CDATA[New comment by arnsholt in "Getting syntax highlighting wrong"]]></title><description><![CDATA[
<p>After a couple of years working in Smalltalk, I’ve acquired the hot take that <i>all</i> the code should be in a proportional font. Admittedly it doesn’t work quite as well for brace syntax languages, but in Smalltalk and Python it’s great.</p>
]]></description><pubDate>Wed, 15 Oct 2025 20:01:54 +0000</pubDate><link>https://news.ycombinator.com/item?id=45597677</link><dc:creator>arnsholt</dc:creator><comments>https://news.ycombinator.com/item?id=45597677</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45597677</guid></item><item><title><![CDATA[New comment by arnsholt in "A 12,000-year-old obelisk with a human face was found in Karahan Tepe"]]></title><description><![CDATA[
<p>KT is obviously (from context here) Karahan Tepe, and GT thus Göbleki Tepe. ANE is a standard abbreviation for Ancient Near East. For PPNA Wikipeda supplies Pre-Pottery Neolithic A, which is a subdivision of the Early Neolithic period.</p>
]]></description><pubDate>Wed, 15 Oct 2025 11:50:48 +0000</pubDate><link>https://news.ycombinator.com/item?id=45590987</link><dc:creator>arnsholt</dc:creator><comments>https://news.ycombinator.com/item?id=45590987</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45590987</guid></item><item><title><![CDATA[New comment by arnsholt in "Git, JSON and Markdown walk into bar"]]></title><description><![CDATA[
<p>Underscore for italics probably has its origins in the use of a solid underline as markup in a manuscript/typescript instructing the typesetter to set that fragment in italics (underscore generally being frowned upon in professionally set material otherwise, I think).</p>
]]></description><pubDate>Wed, 08 Oct 2025 10:53:47 +0000</pubDate><link>https://news.ycombinator.com/item?id=45514643</link><dc:creator>arnsholt</dc:creator><comments>https://news.ycombinator.com/item?id=45514643</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45514643</guid></item><item><title><![CDATA[New comment by arnsholt in "Rule-Based Expert Systems: The Mycin Experiments (1984)"]]></title><description><![CDATA[
<p>Oh yeah, the good hand crafted grammars are really good. For my PhD I worked in a group that was deep in the DelphIN/ERG collaboration, and they did some amazing things with that.</p>
]]></description><pubDate>Mon, 06 Oct 2025 10:34:49 +0000</pubDate><link>https://news.ycombinator.com/item?id=45489846</link><dc:creator>arnsholt</dc:creator><comments>https://news.ycombinator.com/item?id=45489846</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45489846</guid></item><item><title><![CDATA[New comment by arnsholt in "How Israeli actions caused famine in Gaza, visualized"]]></title><description><![CDATA[
<p>Because the Rafah crossing is currently controlled by the Israeli army. Egypt can allow all the aid it wants, it’ll still get stopped by the Israelis.</p>
]]></description><pubDate>Thu, 02 Oct 2025 17:54:38 +0000</pubDate><link>https://news.ycombinator.com/item?id=45453055</link><dc:creator>arnsholt</dc:creator><comments>https://news.ycombinator.com/item?id=45453055</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45453055</guid></item><item><title><![CDATA[New comment by arnsholt in "A 3K-year-old copper smelting site could be key to understanding origins of iron"]]></title><description><![CDATA[
<p>To expand on "tin was hard to come by", I believe two major sources of tin have been identified for bronze used in the Fertile Crescent: one in Cornwall, and one in Afghanistan. They had to travel <i>really far</i> abroad to make this stuff.</p>
]]></description><pubDate>Thu, 02 Oct 2025 11:52:51 +0000</pubDate><link>https://news.ycombinator.com/item?id=45448476</link><dc:creator>arnsholt</dc:creator><comments>https://news.ycombinator.com/item?id=45448476</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45448476</guid></item><item><title><![CDATA[New comment by arnsholt in "Map of Near and Middle East Oil 1965"]]></title><description><![CDATA[
<p>Arabic script as written in Iran (and Pakistan I think) is in a different style than most of the rest of the world. The style is called Nastaliq (the more common one being Naskh).</p>
]]></description><pubDate>Mon, 29 Sep 2025 17:21:22 +0000</pubDate><link>https://news.ycombinator.com/item?id=45416350</link><dc:creator>arnsholt</dc:creator><comments>https://news.ycombinator.com/item?id=45416350</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45416350</guid></item></channel></rss>