<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, 07 Apr 2026 05:47:40 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=leontrolski" rel="self" type="application/rss+xml"></atom:link><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><item><title><![CDATA[Cheeky Python Shell Script]]></title><description><![CDATA[
<p>Article URL: <a href="https://leontrolski.github.io/python-script.html">https://leontrolski.github.io/python-script.html</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=44580676">https://news.ycombinator.com/item?id=44580676</a></p>
<p>Points: 3</p>
<p># Comments: 1</p>
]]></description><pubDate>Wed, 16 Jul 2025 10:35:25 +0000</pubDate><link>https://leontrolski.github.io/python-script.html</link><dc:creator>leontrolski</dc:creator><comments>https://news.ycombinator.com/item?id=44580676</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44580676</guid></item><item><title><![CDATA[New comment by leontrolski in "Postgres LISTEN/NOTIFY does not scale"]]></title><description><![CDATA[
<p>> also fast when transactions are held open<p>In my linked example, on getting the item from the queue, you immediately set the status to something that you're not polling for - does Postgres still have to skip past these tuples (even in an index) until they're vacuumed up?</p>
]]></description><pubDate>Fri, 11 Jul 2025 04:36:32 +0000</pubDate><link>https://news.ycombinator.com/item?id=44528430</link><dc:creator>leontrolski</dc:creator><comments>https://news.ycombinator.com/item?id=44528430</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44528430</guid></item><item><title><![CDATA[New comment by leontrolski in "Postgres LISTEN/NOTIFY does not scale"]]></title><description><![CDATA[
<p>I'd be interested as to how dumb-ol' polling would compare here (the FOR UPDATE SKIP LOCKED method <a href="https://leontrolski.github.io/postgres-as-queue.html" rel="nofollow">https://leontrolski.github.io/postgres-as-queue.html</a>). One day I will set up some benchmarks as this is the kind of thing people argue about a lot without much evidence either way.<p>Wasn't aware of this AccessExclusiveLock behaviour - a reminder (and shameless plug 2) of how Postgres locks interact: <a href="https://leontrolski.github.io/pglockpy.html" rel="nofollow">https://leontrolski.github.io/pglockpy.html</a></p>
]]></description><pubDate>Thu, 10 Jul 2025 21:00:49 +0000</pubDate><link>https://news.ycombinator.com/item?id=44525560</link><dc:creator>leontrolski</dc:creator><comments>https://news.ycombinator.com/item?id=44525560</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44525560</guid></item><item><title><![CDATA[Senior Engineer tries Vibe Coding [video]]]></title><description><![CDATA[
<p>Article URL: <a href="https://www.youtube.com/watch?v=_2C2CNmK7dQ">https://www.youtube.com/watch?v=_2C2CNmK7dQ</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=44462091">https://news.ycombinator.com/item?id=44462091</a></p>
<p>Points: 2</p>
<p># Comments: 0</p>
]]></description><pubDate>Fri, 04 Jul 2025 07:36:00 +0000</pubDate><link>https://www.youtube.com/watch?v=_2C2CNmK7dQ</link><dc:creator>leontrolski</dc:creator><comments>https://news.ycombinator.com/item?id=44462091</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44462091</guid></item><item><title><![CDATA[Show HN: trolskgen – Ergonomic Codegen for Python]]></title><description><![CDATA[
<p>Article URL: <a href="https://github.com/leontrolski/trolskgen">https://github.com/leontrolski/trolskgen</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=44387972">https://news.ycombinator.com/item?id=44387972</a></p>
<p>Points: 2</p>
<p># Comments: 1</p>
]]></description><pubDate>Thu, 26 Jun 2025 14:45:30 +0000</pubDate><link>https://github.com/leontrolski/trolskgen</link><dc:creator>leontrolski</dc:creator><comments>https://news.ycombinator.com/item?id=44387972</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44387972</guid></item><item><title><![CDATA[My dream thermostat (2024)]]></title><description><![CDATA[
<p>Article URL: <a href="https://leontrolski.github.io/thermostat.html">https://leontrolski.github.io/thermostat.html</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=43910155">https://news.ycombinator.com/item?id=43910155</a></p>
<p>Points: 48</p>
<p># Comments: 68</p>
]]></description><pubDate>Tue, 06 May 2025 22:11:24 +0000</pubDate><link>https://leontrolski.github.io/thermostat.html</link><dc:creator>leontrolski</dc:creator><comments>https://news.ycombinator.com/item?id=43910155</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43910155</guid></item><item><title><![CDATA[New comment by leontrolski in "Show HN: Tkintergalactic - Declarative Tcl/Tk UI Library for Python"]]></title><description><![CDATA[
<p>I plan on using it for semi throw away UIs for things where I don't want the user to have to spin up a Web server. Right now there's no canvas support, but there is that kind of thing in the Tk/Tcl docs (linked in the project). I probably need to add a way to reference a specific Widget so you can access the raw name and run taw Tcl against it.</p>
]]></description><pubDate>Mon, 05 May 2025 21:23:13 +0000</pubDate><link>https://news.ycombinator.com/item?id=43899586</link><dc:creator>leontrolski</dc:creator><comments>https://news.ycombinator.com/item?id=43899586</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43899586</guid></item><item><title><![CDATA[New comment by leontrolski in "Show HN: Tkintergalactic - Declarative Tcl/Tk UI Library for Python"]]></title><description><![CDATA[
<p>Well that was dumb - fixed, sorry</p>
]]></description><pubDate>Mon, 05 May 2025 18:36:55 +0000</pubDate><link>https://news.ycombinator.com/item?id=43898030</link><dc:creator>leontrolski</dc:creator><comments>https://news.ycombinator.com/item?id=43898030</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43898030</guid></item><item><title><![CDATA[Show HN: Tkintergalactic - Declarative Tcl/Tk UI Library for Python]]></title><description><![CDATA[
<p>Article URL: <a href="https://github.com/leontrolski/tkintergalactic">https://github.com/leontrolski/tkintergalactic</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=43897719">https://news.ycombinator.com/item?id=43897719</a></p>
<p>Points: 86</p>
<p># Comments: 10</p>
]]></description><pubDate>Mon, 05 May 2025 18:02:20 +0000</pubDate><link>https://github.com/leontrolski/tkintergalactic</link><dc:creator>leontrolski</dc:creator><comments>https://news.ycombinator.com/item?id=43897719</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43897719</guid></item><item><title><![CDATA[New comment by leontrolski in "Show HN: TinyJs React like framework in 35 lines of code"]]></title><description><![CDATA[
<p>33 line React  <a href="https://news.ycombinator.com/item?id=22776753">https://news.ycombinator.com/item?id=22776753</a></p>
]]></description><pubDate>Thu, 30 Jan 2025 08:36:17 +0000</pubDate><link>https://news.ycombinator.com/item?id=42876051</link><dc:creator>leontrolski</dc:creator><comments>https://news.ycombinator.com/item?id=42876051</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42876051</guid></item><item><title><![CDATA[My Dream Thermostat]]></title><description><![CDATA[
<p>Article URL: <a href="https://leontrolski.github.io/thermostat.html">https://leontrolski.github.io/thermostat.html</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=42206602">https://news.ycombinator.com/item?id=42206602</a></p>
<p>Points: 27</p>
<p># Comments: 26</p>
]]></description><pubDate>Thu, 21 Nov 2024 17:34:01 +0000</pubDate><link>https://leontrolski.github.io/thermostat.html</link><dc:creator>leontrolski</dc:creator><comments>https://news.ycombinator.com/item?id=42206602</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42206602</guid></item></channel></rss>