<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: rtheunissen</title><link>https://news.ycombinator.com/user?id=rtheunissen</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Thu, 01 Oct 2026 15:07:38 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=rtheunissen" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[Show HN: Factorio Machine Solver]]></title><description><![CDATA[
<p>Article URL: <a href="https://rtheunissen.github.io/factorio-solver/">https://rtheunissen.github.io/factorio-solver/</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=45892538">https://news.ycombinator.com/item?id=45892538</a></p>
<p>Points: 3</p>
<p># Comments: 0</p>
]]></description><pubDate>Tue, 11 Nov 2025 20:42:06 +0000</pubDate><link>https://rtheunissen.github.io/factorio-solver/</link><dc:creator>rtheunissen</dc:creator><comments>https://news.ycombinator.com/item?id=45892538</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45892538</guid></item><item><title><![CDATA[New comment by rtheunissen in "Relaxed Radix Balanced Trees (2024)"]]></title><description><![CDATA[
<p>I would love to add a good RRB implementation to the persistent benchmarks at [1] to get a state-of-the-art comparison between RRB and BST in a persistent context. Duration, of course, but also number of bytes copied etc.<p><a href="https://rtheunissen.github.io/bst" rel="nofollow">https://rtheunissen.github.io/bst</a></p>
]]></description><pubDate>Wed, 19 Feb 2025 20:57:19 +0000</pubDate><link>https://news.ycombinator.com/item?id=43107563</link><dc:creator>rtheunissen</dc:creator><comments>https://news.ycombinator.com/item?id=43107563</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43107563</guid></item><item><title><![CDATA[Just Another GPT Wrapper]]></title><description><![CDATA[
<p>Article URL: <a href="https://www.resourcely.io/post/just-another-gpt-wrapper">https://www.resourcely.io/post/just-another-gpt-wrapper</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=41237436">https://news.ycombinator.com/item?id=41237436</a></p>
<p>Points: 6</p>
<p># Comments: 1</p>
]]></description><pubDate>Tue, 13 Aug 2024 17:26:39 +0000</pubDate><link>https://www.resourcely.io/post/just-another-gpt-wrapper</link><dc:creator>rtheunissen</dc:creator><comments>https://news.ycombinator.com/item?id=41237436</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41237436</guid></item><item><title><![CDATA[New comment by rtheunissen in "Ask HN: How did you learn Regex?"]]></title><description><![CDATA[
<p>Practice, the more you use them the easier they become. I never studied them but knew when to use them, then just tinkered and iterated until the pattern did what I needed it to. After a while you can mostly just write and read them without much tinkering.<p>Regex101 is an excellent tool.</p>
]]></description><pubDate>Thu, 08 Aug 2024 20:18:08 +0000</pubDate><link>https://news.ycombinator.com/item?id=41195749</link><dc:creator>rtheunissen</dc:creator><comments>https://news.ycombinator.com/item?id=41195749</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41195749</guid></item><item><title><![CDATA[New comment by rtheunissen in "B-Trees Require Fewer Comparisons Than Balanced Binary Search Trees"]]></title><description><![CDATA[
<p>Learning a lot here, thank you.</p>
]]></description><pubDate>Tue, 25 Jun 2024 05:54:06 +0000</pubDate><link>https://news.ycombinator.com/item?id=40784950</link><dc:creator>rtheunissen</dc:creator><comments>https://news.ycombinator.com/item?id=40784950</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=40784950</guid></item><item><title><![CDATA[New comment by rtheunissen in "B-Trees Require Fewer Comparisons Than Balanced Binary Search Trees"]]></title><description><![CDATA[
<p>That does not mean that b-trees are unequivocally better than binary search trees. There are some applications, like concurrency or persistence, where comparison count is not as important.<p>For instance, fewer values per node means less information to copy when copying the node. Locking is more granular with fewer values per node because fewer values are locked at a time.<p>The binary structure also makes it possible to support randomized balancing and self-adjusting strategies like splay trees.<p>I am disappointed to still see frequent mention of red-black trees –  I see no reason for red-black trees to ever be the best choice in practice, or in theory, or in school. LBST's (logarithmic binary search trees) [1] are generally simpler, more intuitive, and more efficient [2] than red-black trees. They also support positional access inherently, so the balancing information is useful (subtree size).<p>[1] <a href="https://www.semanticscholar.org/paper/A-New-Method-for-Balancing-Binary-Search-Trees-Roura/f50d33d56a11b6c3423cf003d13f717d137d1154" rel="nofollow">https://www.semanticscholar.org/paper/A-New-Method-for-Balan...</a>
[2] <a href="https://rtheunissen.github.io/bst" rel="nofollow">https://rtheunissen.github.io/bst</a></p>
]]></description><pubDate>Mon, 24 Jun 2024 08:12:15 +0000</pubDate><link>https://news.ycombinator.com/item?id=40773575</link><dc:creator>rtheunissen</dc:creator><comments>https://news.ycombinator.com/item?id=40773575</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=40773575</guid></item><item><title><![CDATA[New comment by rtheunissen in "As Lovely as a Tree"]]></title><description><![CDATA[
<p>I love the various top-down binary search tree partition/split/join algorithms.<p><a href="https://github.com/rtheunissen/bst/blob/main/trees%2Fbalancers.go#L15">https://github.com/rtheunissen/bst/blob/main/trees%2Fbalance...</a></p>
]]></description><pubDate>Sun, 16 Jun 2024 23:07:30 +0000</pubDate><link>https://news.ycombinator.com/item?id=40700853</link><dc:creator>rtheunissen</dc:creator><comments>https://news.ycombinator.com/item?id=40700853</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=40700853</guid></item><item><title><![CDATA[New comment by rtheunissen in "What Cannot be Skipped About the Skiplist"]]></title><description><![CDATA[
<p>Zip trees are novel but their performance (and therefore also skip lists, since they are isomorphic) lacks behind other linked structures like Treaps and especially LBSTs. [1] I personally find skip lists to be overhyped binary search trees in disguise.<p>[1] <a href="https://rtheunissen.github.io/bst" rel="nofollow">https://rtheunissen.github.io/bst</a></p>
]]></description><pubDate>Sat, 09 Mar 2024 20:54:37 +0000</pubDate><link>https://news.ycombinator.com/item?id=39654652</link><dc:creator>rtheunissen</dc:creator><comments>https://news.ycombinator.com/item?id=39654652</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=39654652</guid></item><item><title><![CDATA[New comment by rtheunissen in "Go run"]]></title><description><![CDATA[
<p>Maybe it is because the simple way requires knowledge of packages, which are covered later perhaps, since many tutorials go straight to "go run helloworld.go"</p>
]]></description><pubDate>Thu, 22 Feb 2024 00:48:59 +0000</pubDate><link>https://news.ycombinator.com/item?id=39461687</link><dc:creator>rtheunissen</dc:creator><comments>https://news.ycombinator.com/item?id=39461687</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=39461687</guid></item><item><title><![CDATA[Show HN: Binary search tree shape animations using Go and WASM]]></title><description><![CDATA[
<p>Article URL: <a href="https://rtheunissen.github.io/bst/docs/animations/">https://rtheunissen.github.io/bst/docs/animations/</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=37304600">https://news.ycombinator.com/item?id=37304600</a></p>
<p>Points: 3</p>
<p># Comments: 0</p>
]]></description><pubDate>Tue, 29 Aug 2023 07:50:23 +0000</pubDate><link>https://rtheunissen.github.io/bst/docs/animations/</link><dc:creator>rtheunissen</dc:creator><comments>https://news.ycombinator.com/item?id=37304600</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=37304600</guid></item><item><title><![CDATA[New comment by rtheunissen in "Show HN: Aviation navigation log on $20 receipt printer"]]></title><description><![CDATA[
<p>Might be a CMS of some kind because I doubt anyone would purposefully type out "alt text".</p>
]]></description><pubDate>Sat, 19 Aug 2023 19:26:38 +0000</pubDate><link>https://news.ycombinator.com/item?id=37192215</link><dc:creator>rtheunissen</dc:creator><comments>https://news.ycombinator.com/item?id=37192215</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=37192215</guid></item><item><title><![CDATA[New comment by rtheunissen in "Exploring the design space of binary search trees"]]></title><description><![CDATA[
<p>That was how I received your feedback. :)<p>My inclination towards lower abstraction in this project is entirely for the sake of reading and reference, to minimize the need for the reader to re-compose from various components split across files.<p>During development, abstraction helps because it makes prototyping faster and more consistent, but once everything is mostly "done", it can help the reader/student to maximize local reasoning.<p>Another comment mentioned they found it difficult to find the LBST implementation - this is exactly the sort of experience I hope to avoid.</p>
]]></description><pubDate>Thu, 17 Aug 2023 19:44:20 +0000</pubDate><link>https://news.ycombinator.com/item?id=37166935</link><dc:creator>rtheunissen</dc:creator><comments>https://news.ycombinator.com/item?id=37166935</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=37166935</guid></item><item><title><![CDATA[New comment by rtheunissen in "Exploring the design space of binary search trees"]]></title><description><![CDATA[
<p>Thank you for sharing this resource, I was not aware of it. I am happy to see the inclusion of LBSTs there too.<p>Re: binary symmetry, if I'm understanding correctly, another author that makes use of the symmetry is Ben Pfaff in libavl [1]. At the top of [2], which seems a bit misplaced now, I wrote:<p>>A choice was made to not unify the symmetric cases using the direction-based technique of Ben Pfaff and others because it makes the logic more difficult to follow even though there would be less code overall.<p>The choice of Go was to provide implementations that are both reliable to benchmark (though not as robust as C or Rust for example) but also easy to read. I would like to further reduce abstraction by decomposing common parts such that all the strategies are "one-file" references. This is then effectively the opposite of what the macro-based implementation achieves. Both have value, of course.<p>[1] <a href="https://adtinfo.org/libavl.html/BST-Node-Structure.html" rel="nofollow noreferrer">https://adtinfo.org/libavl.html/BST-Node-Structure.html</a><p>[2] <a href="https://github.com/rtheunissen/bst/blob/main/trees/avl_bottomup.go">https://github.com/rtheunissen/bst/blob/main/trees/avl_botto...</a></p>
]]></description><pubDate>Thu, 17 Aug 2023 17:56:21 +0000</pubDate><link>https://news.ycombinator.com/item?id=37165579</link><dc:creator>rtheunissen</dc:creator><comments>https://news.ycombinator.com/item?id=37165579</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=37165579</guid></item><item><title><![CDATA[New comment by rtheunissen in "Exploring the design space of binary search trees"]]></title><description><![CDATA[
<p>I was inspired by <i>Stick & Rudder</i>, which is a very easy book to recommend to most people in this community. I'm sure I'll keep coming back to make adjustments, but the end result is what I hoped to achieve.<p>The Charter font was a particularly good find as part of the "transitional" system font stack. I'll definitely use it for other projects in the future.</p>
]]></description><pubDate>Thu, 17 Aug 2023 02:01:28 +0000</pubDate><link>https://news.ycombinator.com/item?id=37156250</link><dc:creator>rtheunissen</dc:creator><comments>https://news.ycombinator.com/item?id=37156250</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=37156250</guid></item><item><title><![CDATA[New comment by rtheunissen in "Exploring the design space of binary search trees"]]></title><description><![CDATA[
<p>Haha true, that's a good point. There's also WAVL and RAVL for weak AVL and relaxed AVL, but no equivalent acronyms for the red-black variants. RRB is the same as Relaxed Radix-Balanced! In my notes I found it easier to avoid acronyms, and then "logarithmic binary search tree" became ambiguous because "aren't they all logarithmic (in height and complexity)?" I found that grouping them as part of the weight-balanced class of trees is the most intuitive, and I wish the original paper did the same, but that's okay.<p>What I'll do for now is mention specifically that the literature refer to them as LBSTs, and I'll add an index to each tree in the repository to make them easier to navigate. Thanks again.</p>
]]></description><pubDate>Thu, 17 Aug 2023 01:55:31 +0000</pubDate><link>https://news.ycombinator.com/item?id=37156216</link><dc:creator>rtheunissen</dc:creator><comments>https://news.ycombinator.com/item?id=37156216</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=37156216</guid></item><item><title><![CDATA[New comment by rtheunissen in "Exploring the design space of binary search trees"]]></title><description><![CDATA[
<p>Part 2 defines that "a node is logarithmically weight-balanced if the binary log of the weights of its subtrees differ by no more than 1" and references Roura directly there. Roura uses the acronym LBST, which corresponds to the file trees/lbst.go in the repository. I hoped that this would be intuitive enough to follow.<p>They are definitely part of the class of weight-balanced trees, using the exact same algorithms as BB[a] trees, which are the classic weight-balanced trees.<p>When I started this project, it was unclear that the conclusion would advocate for them. In fact, I did not even know about them when I started. My intention was to focus on the exploration more than the conclusion. I'm in the process of writing another conclusion around relaxed balance as a concept, which could just as well be the title.<p>I appreciate this feedback very much. Perhaps the paper could mention specifically that Roura and Frias call the <i>logarithmic binary search trees</i>, abbreviated as LBST. The repository's README could also provide an index to each tree in the source.<p>For reference: the weight-balanced algorithms can be found in [1], [2] and [3]. The logarithmic weight-balance rules are defined in [4].<p>[1] <a href="https://github.com/rtheunissen/bst/blob/main/trees/wbst_bottomup.go">https://github.com/rtheunissen/bst/blob/main/trees/wbst_bott...</a><p>[2] <a href="https://github.com/rtheunissen/bst/blob/main/trees/wbst_topdown.go">https://github.com/rtheunissen/bst/blob/main/trees/wbst_topd...</a><p>[3] <a href="https://github.com/rtheunissen/bst/blob/main/trees/wbst_relaxed.go">https://github.com/rtheunissen/bst/blob/main/trees/wbst_rela...</a><p>[4] <a href="https://github.com/rtheunissen/bst/blob/main/trees/lbst.go">https://github.com/rtheunissen/bst/blob/main/trees/lbst.go</a></p>
]]></description><pubDate>Wed, 16 Aug 2023 23:27:04 +0000</pubDate><link>https://news.ycombinator.com/item?id=37155231</link><dc:creator>rtheunissen</dc:creator><comments>https://news.ycombinator.com/item?id=37155231</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=37155231</guid></item><item><title><![CDATA[New comment by rtheunissen in "Exploring the design space of binary search trees"]]></title><description><![CDATA[
<p>What if some future technology or material breakthrough provides a sort of self-adjusting liquid memory that provides true constant time access to any address? I'm not being entirely serious of course, as I dream about sequences across nodes on planets through other solar systems.<p>Focusing on fundamental algorithms in the abstract provides a fun playground to explore and learn and teach, before you learn about memory hierarchy when all your hopes and dreams of the ideal data structure fades away.<p>I don't think there is any time wasted exploring the fundamental. Who knows what technology might see renaissance in the future as hardware continues to change. Analog computers, binary search trees, who knows.<p>It's fun to dream and take a break from reality sometimes, digging deep into a simple concept with a rich design space and complex analysis.</p>
]]></description><pubDate>Wed, 16 Aug 2023 17:56:36 +0000</pubDate><link>https://news.ycombinator.com/item?id=37150957</link><dc:creator>rtheunissen</dc:creator><comments>https://news.ycombinator.com/item?id=37150957</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=37150957</guid></item><item><title><![CDATA[New comment by rtheunissen in "Exploring the design space of binary search trees"]]></title><description><![CDATA[
<p>This has now been fixed, thank you for reminding me.</p>
]]></description><pubDate>Wed, 16 Aug 2023 09:45:16 +0000</pubDate><link>https://news.ycombinator.com/item?id=37144751</link><dc:creator>rtheunissen</dc:creator><comments>https://news.ycombinator.com/item?id=37144751</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=37144751</guid></item><item><title><![CDATA[New comment by rtheunissen in "Exploring the design space of binary search trees"]]></title><description><![CDATA[
<p>You are correct, they have not been covered <i>yet</i>. I've added a note in the "work in progress" section.<p>There are also LLRB trees that would be interesting to see compared within this framework. All the red-black trees are implemented as rank-balanced trees, so there is no concept of "color" exactly, but the authors do mention the left-leaning 2-3 rule and the left-leaning red-black rule -- I just haven't implemented those yet.<p>See Pg. 5 of <a href="https://citeseerx.ist.psu.edu/document?type=pdf&doi=52330eed3864490c8bc30c3bc2f824d2ad609be0" rel="nofollow noreferrer">https://citeseerx.ist.psu.edu/document?type=pdf&doi=52330eed...</a></p>
]]></description><pubDate>Wed, 16 Aug 2023 09:42:12 +0000</pubDate><link>https://news.ycombinator.com/item?id=37144729</link><dc:creator>rtheunissen</dc:creator><comments>https://news.ycombinator.com/item?id=37144729</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=37144729</guid></item><item><title><![CDATA[New comment by rtheunissen in "Exploring the design space of binary search trees"]]></title><description><![CDATA[
<p>This is tragic! Supporting noscript was a primary design goal but I forgot to only enable the knuth/plass justification in print media. The math expressions I'm moving to build time now. So sorry.</p>
]]></description><pubDate>Wed, 16 Aug 2023 06:39:35 +0000</pubDate><link>https://news.ycombinator.com/item?id=37143545</link><dc:creator>rtheunissen</dc:creator><comments>https://news.ycombinator.com/item?id=37143545</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=37143545</guid></item></channel></rss>