<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: leontrolski</title><link>https://news.ycombinator.com/user?id=leontrolski</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Tue, 08 Sep 2026 15:29:44 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=leontrolski" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by leontrolski in "Pgtestdb's template cloning approach to testing is fast"]]></title><description><![CDATA[
<p>Agreed, benchmarking, I only see a slight speedup on MacOS - <a href="https://github.com/leontrolski/postgresql-testing#:~:text=ramdisk" rel="nofollow">https://github.com/leontrolski/postgresql-testing#:~:text=ra...</a></p>
]]></description><pubDate>Sat, 01 Aug 2026 18:23:33 +0000</pubDate><link>https://news.ycombinator.com/item?id=49136973</link><dc:creator>leontrolski</dc:creator><comments>https://news.ycombinator.com/item?id=49136973</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49136973</guid></item><item><title><![CDATA[New comment by leontrolski in "Pgtestdb's template cloning approach to testing is fast"]]></title><description><![CDATA[
<p>Being to lazy to think or test it - does the above reset SEQUENCEs?</p>
]]></description><pubDate>Sat, 01 Aug 2026 18:21:55 +0000</pubDate><link>https://news.ycombinator.com/item?id=49136958</link><dc:creator>leontrolski</dc:creator><comments>https://news.ycombinator.com/item?id=49136958</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49136958</guid></item><item><title><![CDATA[New comment by leontrolski in "Pgtestdb's template cloning approach to testing is fast"]]></title><description><![CDATA[
<p>I concur with this approach. TRANSACTION-y tests (the default in Django) often don't quite line up with reality and make it hard to eg. drop in a breakpoint and run a server against the test's db state.<p>I've experimented (see below) with TEMPLATE dbs and such in Python (with inspiration from this library). IMHO the "around 100ms" mark is pretty slow for a big test suite. Interestingly, pg_restore is only twice as slow as TEMPLATEs.<p><a href="https://github.com/leontrolski/postgresql-testing" rel="nofollow">https://github.com/leontrolski/postgresql-testing</a><p>I'd be interested about how all this compares to snapshotting the postrgres dir with ZFS and restoring to that, but don't have a Linux box to hand.</p>
]]></description><pubDate>Sat, 01 Aug 2026 18:20:49 +0000</pubDate><link>https://news.ycombinator.com/item?id=49136945</link><dc:creator>leontrolski</dc:creator><comments>https://news.ycombinator.com/item?id=49136945</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49136945</guid></item><item><title><![CDATA[New comment by leontrolski in "Pip install Postgres – no Docker/Brew/apt"]]></title><description><![CDATA[
<p>Some discussion on (ab?)using pypi to distribute binaries - <a href="https://discuss.python.org/t/use-of-pypi-as-a-generic-storage-platform-for-binaries/106044/57" rel="nofollow">https://discuss.python.org/t/use-of-pypi-as-a-generic-storag...</a></p>
]]></description><pubDate>Thu, 23 Jul 2026 21:19:39 +0000</pubDate><link>https://news.ycombinator.com/item?id=49028195</link><dc:creator>leontrolski</dc:creator><comments>https://news.ycombinator.com/item?id=49028195</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49028195</guid></item><item><title><![CDATA[Pip install Postgres – no Docker/Brew/apt]]></title><description><![CDATA[
<p>Article URL: <a href="https://github.com/leontrolski/postgresql-testing">https://github.com/leontrolski/postgresql-testing</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=49028169">https://news.ycombinator.com/item?id=49028169</a></p>
<p>Points: 29</p>
<p># Comments: 8</p>
]]></description><pubDate>Thu, 23 Jul 2026 21:17:34 +0000</pubDate><link>https://github.com/leontrolski/postgresql-testing</link><dc:creator>leontrolski</dc:creator><comments>https://news.ycombinator.com/item?id=49028169</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49028169</guid></item><item><title><![CDATA[Prism: An Impure Functional Language with Typed Effects]]></title><description><![CDATA[
<p>Article URL: <a href="https://www.stephendiehl.com/posts/prism/">https://www.stephendiehl.com/posts/prism/</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=48705562">https://news.ycombinator.com/item?id=48705562</a></p>
<p>Points: 6</p>
<p># Comments: 0</p>
]]></description><pubDate>Sun, 28 Jun 2026 08:48:34 +0000</pubDate><link>https://www.stephendiehl.com/posts/prism/</link><dc:creator>leontrolski</dc:creator><comments>https://news.ycombinator.com/item?id=48705562</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48705562</guid></item><item><title><![CDATA[New comment by leontrolski in "(How to Write a (Lisp) Interpreter (In Python)) (2010)"]]></title><description><![CDATA[
<p>Similarly - 80 line LISP interpreter with integers, lexical scope, first class functions<p><a href="https://leontrolski.github.io/interpreter.html" rel="nofollow">https://leontrolski.github.io/interpreter.html</a></p>
]]></description><pubDate>Mon, 22 Jun 2026 06:25:34 +0000</pubDate><link>https://news.ycombinator.com/item?id=48626469</link><dc:creator>leontrolski</dc:creator><comments>https://news.ycombinator.com/item?id=48626469</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48626469</guid></item><item><title><![CDATA[New comment by leontrolski in "All of human cooking compressed into 2 megabytes"]]></title><description><![CDATA[
<p>Neat.<p>I'm trying to compress recipes into little schematics <a href="https://leontrolski.github.io/recipes.html" rel="nofollow">https://leontrolski.github.io/recipes.html</a></p>
]]></description><pubDate>Wed, 27 May 2026 12:10:14 +0000</pubDate><link>https://news.ycombinator.com/item?id=48293036</link><dc:creator>leontrolski</dc:creator><comments>https://news.ycombinator.com/item?id=48293036</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48293036</guid></item><item><title><![CDATA[New comment by leontrolski in "Generalised plusequals"]]></title><description><![CDATA[
<p>What would be the equivalent to this in Haskell (with or without lens):<p><pre><code>    cat = Cat(age=3)
    l = [1, [2, cat], 4]
    alt l[1][1].age.=9
</code></pre>
That would give us l equal to:<p><pre><code>    [1, [2, Cat(age=9)], 4]</code></pre></p>
]]></description><pubDate>Sat, 25 Apr 2026 08:55:08 +0000</pubDate><link>https://news.ycombinator.com/item?id=47899853</link><dc:creator>leontrolski</dc:creator><comments>https://news.ycombinator.com/item?id=47899853</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47899853</guid></item><item><title><![CDATA[New comment by leontrolski in "Generalised plusequals"]]></title><description><![CDATA[
<p>This is surprising to me:<p><pre><code>  l[1][1].age:9
  # (1,(2,{"age":9}),4)
</code></pre>
How come it doesn't return just:<p><pre><code>  {"age":9}
</code></pre>
Or is there something totally different going on with references here? As in, how is this different to:<p><pre><code>  l_inner = l[1][1]
  l_inner.age:9</code></pre></p>
]]></description><pubDate>Sat, 25 Apr 2026 08:41:13 +0000</pubDate><link>https://news.ycombinator.com/item?id=47899789</link><dc:creator>leontrolski</dc:creator><comments>https://news.ycombinator.com/item?id=47899789</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47899789</guid></item><item><title><![CDATA[Generalised plusequals]]></title><description><![CDATA[
<p>Article URL: <a href="https://leontrolski.github.io/alt.html">https://leontrolski.github.io/alt.html</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=47896086">https://news.ycombinator.com/item?id=47896086</a></p>
<p>Points: 16</p>
<p># Comments: 11</p>
]]></description><pubDate>Fri, 24 Apr 2026 21:34:25 +0000</pubDate><link>https://leontrolski.github.io/alt.html</link><dc:creator>leontrolski</dc:creator><comments>https://news.ycombinator.com/item?id=47896086</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47896086</guid></item><item><title><![CDATA[“Disregard That” Attacks]]></title><description><![CDATA[
<p>Article URL: <a href="https://calpaterson.com/disregard.html">https://calpaterson.com/disregard.html</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=47524519">https://news.ycombinator.com/item?id=47524519</a></p>
<p>Points: 129</p>
<p># Comments: 94</p>
]]></description><pubDate>Wed, 25 Mar 2026 23:11:34 +0000</pubDate><link>https://calpaterson.com/disregard.html</link><dc:creator>leontrolski</dc:creator><comments>https://news.ycombinator.com/item?id=47524519</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47524519</guid></item><item><title><![CDATA[New comment by leontrolski in "Is anybody else bored of talking about AI?"]]></title><description><![CDATA[
<p>Yes, AI or no AI, tell me about something actually interesting that you're working on.<p>Currently it feels a bit like everyone is talking about what new editor they're using. I don't care about that type of developer tooling very much. AI isn't coming up with some exciting new database, type system, etc etc.<p>"Look at how I'm able to web dev x% faster" because of LLMs is boring.</p>
]]></description><pubDate>Tue, 24 Mar 2026 21:58:54 +0000</pubDate><link>https://news.ycombinator.com/item?id=47510042</link><dc:creator>leontrolski</dc:creator><comments>https://news.ycombinator.com/item?id=47510042</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47510042</guid></item><item><title><![CDATA[Aldo's Game of Music]]></title><description><![CDATA[
<p>Article URL: <a href="https://www.aldodevos.nl/game_of_music/">https://www.aldodevos.nl/game_of_music/</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=47254933">https://news.ycombinator.com/item?id=47254933</a></p>
<p>Points: 1</p>
<p># Comments: 0</p>
]]></description><pubDate>Wed, 04 Mar 2026 22:34:28 +0000</pubDate><link>https://www.aldodevos.nl/game_of_music/</link><dc:creator>leontrolski</dc:creator><comments>https://news.ycombinator.com/item?id=47254933</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47254933</guid></item><item><title><![CDATA[National Raisin Reserve]]></title><description><![CDATA[
<p>Article URL: <a href="https://en.wikipedia.org/wiki/National_Raisin_Reserve">https://en.wikipedia.org/wiki/National_Raisin_Reserve</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=46409705">https://news.ycombinator.com/item?id=46409705</a></p>
<p>Points: 6</p>
<p># Comments: 0</p>
]]></description><pubDate>Sun, 28 Dec 2025 09:30:37 +0000</pubDate><link>https://en.wikipedia.org/wiki/National_Raisin_Reserve</link><dc:creator>leontrolski</dc:creator><comments>https://news.ycombinator.com/item?id=46409705</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46409705</guid></item><item><title><![CDATA[Show HN: I 3D printed a running buggy]]></title><description><![CDATA[
<p>Article URL: <a href="https://leontrolski.github.io/buggy.html">https://leontrolski.github.io/buggy.html</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=45958194">https://news.ycombinator.com/item?id=45958194</a></p>
<p>Points: 1</p>
<p># Comments: 0</p>
]]></description><pubDate>Mon, 17 Nov 2025 20:57:29 +0000</pubDate><link>https://leontrolski.github.io/buggy.html</link><dc:creator>leontrolski</dc:creator><comments>https://news.ycombinator.com/item?id=45958194</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45958194</guid></item><item><title><![CDATA[New comment by leontrolski in "Venn Diagram for 7 Sets"]]></title><description><![CDATA[
<p>Ditto, another Upset blog post - <a href="https://leontrolski.github.io/upset.html" rel="nofollow">https://leontrolski.github.io/upset.html</a></p>
]]></description><pubDate>Sat, 08 Nov 2025 11:13:52 +0000</pubDate><link>https://news.ycombinator.com/item?id=45855868</link><dc:creator>leontrolski</dc:creator><comments>https://news.ycombinator.com/item?id=45855868</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45855868</guid></item><item><title><![CDATA[Using Python 3.14 template strings to write Python]]></title><description><![CDATA[
<p>Article URL: <a href="https://leontrolski.github.io/trolskgen.html">https://leontrolski.github.io/trolskgen.html</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=45508428">https://news.ycombinator.com/item?id=45508428</a></p>
<p>Points: 3</p>
<p># Comments: 1</p>
]]></description><pubDate>Tue, 07 Oct 2025 20:30:28 +0000</pubDate><link>https://leontrolski.github.io/trolskgen.html</link><dc:creator>leontrolski</dc:creator><comments>https://news.ycombinator.com/item?id=45508428</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45508428</guid></item><item><title><![CDATA[New comment by leontrolski in "A Early History of Algebraic Data Types"]]></title><description><![CDATA[
<p>Lovely writeup!<p>> Pascal did not have sum types because Wirth thought they were less flexible than untagged unions<p>I'm not sure whether my dream language would have tagged or untagged unions (Scala 3 has both it seems). I'd be interested if anyone has any further points of comparison beyond:<p>Tagged unions, eg. in Rust: enum Tagged {A(i64), B(String), C(f64)}
Untagged unions, eg. in typed Python: Tagged = int | str | float<p>Tagged unions are better as you can represent duplicated types and types with no data, eg: enum Tagged {A, B(f64), C(f64)}<p>Untagged unions are better as you can willy nilly create new subsets and intersections of types. I find often in AST-ish work I want to express eg: def f(x: A | B | C) -> A | B</p>
]]></description><pubDate>Thu, 25 Sep 2025 19:18:32 +0000</pubDate><link>https://news.ycombinator.com/item?id=45377594</link><dc:creator>leontrolski</dc:creator><comments>https://news.ycombinator.com/item?id=45377594</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45377594</guid></item><item><title><![CDATA[New comment by leontrolski in "Do not download the app, use the website"]]></title><description><![CDATA[
<p>A reminder of all the features available right now with PWAs - <a href="https://whatpwacando.today" rel="nofollow">https://whatpwacando.today</a></p>
]]></description><pubDate>Sat, 26 Jul 2025 09:03:01 +0000</pubDate><link>https://news.ycombinator.com/item?id=44692589</link><dc:creator>leontrolski</dc:creator><comments>https://news.ycombinator.com/item?id=44692589</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44692589</guid></item></channel></rss>