<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: skribanto</title><link>https://news.ycombinator.com/user?id=skribanto</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Mon, 26 Oct 2026 14:12:29 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=skribanto" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by skribanto in "Bringing uv and ty together"]]></title><description><![CDATA[
<p>I routinely run into issues, where Claude will try to add functionality to a dict-heavy API and messup the keys, I just do an initial pass converting everything to dataclasses, and it can iterate on it's own with the typechecker to fix everything on it's own, but otherwise I have to do a bunch of manual iterations.</p>
]]></description><pubDate>Sun, 25 Oct 2026 00:13:31 +0000</pubDate><link>https://news.ycombinator.com/item?id=50226843</link><dc:creator>skribanto</dc:creator><comments>https://news.ycombinator.com/item?id=50226843</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=50226843</guid></item><item><title><![CDATA[New comment by skribanto in "Bringing uv and ty together"]]></title><description><![CDATA[
<p>The use case in the article though is type checking standalone scripts with declared dependencies. So it kind of needs some kind of package management + type checking utility at the same time.</p>
]]></description><pubDate>Sat, 24 Oct 2026 22:48:35 +0000</pubDate><link>https://news.ycombinator.com/item?id=50226211</link><dc:creator>skribanto</dc:creator><comments>https://news.ycombinator.com/item?id=50226211</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=50226211</guid></item><item><title><![CDATA[New comment by skribanto in "Vibe Coding is the new Internet Dating?"]]></title><description><![CDATA[
<p>Thats like the same point the article is making</p>
]]></description><pubDate>Tue, 15 Sep 2026 21:34:38 +0000</pubDate><link>https://news.ycombinator.com/item?id=49719181</link><dc:creator>skribanto</dc:creator><comments>https://news.ycombinator.com/item?id=49719181</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49719181</guid></item><item><title><![CDATA[New comment by skribanto in "jj – the CLI for Jujutsu"]]></title><description><![CDATA[
<p>From my understanding git reflog works on refs and jj op log works on fhe repo as a whole.<p>E.g. if I rebase some stacked branches then I want to undo it, with git I would reset each branch separately.<p>With jj you can timetravel the state of the repo in ine command</p>
]]></description><pubDate>Thu, 16 Apr 2026 11:06:47 +0000</pubDate><link>https://news.ycombinator.com/item?id=47791351</link><dc:creator>skribanto</dc:creator><comments>https://news.ycombinator.com/item?id=47791351</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47791351</guid></item><item><title><![CDATA[New comment by skribanto in "Git Rebase for the Terrified"]]></title><description><![CDATA[
<p>rerere can help, but OP probably has their own workflow</p>
]]></description><pubDate>Tue, 13 Jan 2026 17:30:31 +0000</pubDate><link>https://news.ycombinator.com/item?id=46604401</link><dc:creator>skribanto</dc:creator><comments>https://news.ycombinator.com/item?id=46604401</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46604401</guid></item><item><title><![CDATA[New comment by skribanto in "Rust's Block Pattern"]]></title><description><![CDATA[
<p>Why couldnt you flatten it?</p>
]]></description><pubDate>Sat, 20 Dec 2025 14:32:35 +0000</pubDate><link>https://news.ycombinator.com/item?id=46336450</link><dc:creator>skribanto</dc:creator><comments>https://news.ycombinator.com/item?id=46336450</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46336450</guid></item><item><title><![CDATA[New comment by skribanto in "Performance hacks for faster Python code"]]></title><description><![CDATA[
<p>swap with last element then truncate at the end</p>
]]></description><pubDate>Thu, 20 Nov 2025 17:50:02 +0000</pubDate><link>https://news.ycombinator.com/item?id=45995428</link><dc:creator>skribanto</dc:creator><comments>https://news.ycombinator.com/item?id=45995428</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45995428</guid></item><item><title><![CDATA[New comment by skribanto in "Rating 26 years of Java changes"]]></title><description><![CDATA[
<p>Well, it can make some chained function composition easier.<p><pre><code>  Ick1 result1 = potentiallyNull1();
  Ick2 result2 = (result1 == null) ? null : potentiallyNull2(result1);
  Ick3 result3 = (result2 == null) ? null : potentiallyNull3(result2);
</code></pre>
vs<p><pre><code>  Ick3 result3 = potentiallyNone1()
    .flatMap(potentiallyNone2)
    .flatMap(potentiallyNone3);
</code></pre>
You could maybe move the null check inside the method in the former and it cleans it up a bit, but in the latter you can have methods that are explicitly marked as taking NonNull in their type signature which is nice.</p>
]]></description><pubDate>Sun, 12 Oct 2025 20:49:40 +0000</pubDate><link>https://news.ycombinator.com/item?id=45561771</link><dc:creator>skribanto</dc:creator><comments>https://news.ycombinator.com/item?id=45561771</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45561771</guid></item><item><title><![CDATA[New comment by skribanto in "Open Steno Project"]]></title><description><![CDATA[
<p>maybe it’s better now, but at last time I checked (~2 years ago) humans are still better in jargon heavy contexts - legal as you mentioned, tech/medical/etc. also accents, muffled audio, noise in general, humans are (were?) much better at accounting for that</p>
]]></description><pubDate>Sun, 15 Jun 2025 23:41:57 +0000</pubDate><link>https://news.ycombinator.com/item?id=44285675</link><dc:creator>skribanto</dc:creator><comments>https://news.ycombinator.com/item?id=44285675</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44285675</guid></item><item><title><![CDATA[New comment by skribanto in "You can choose tools that make you happy"]]></title><description><![CDATA[
<p>My interpretation is that as engineers, we attempt to justify all of our choices through purely rational means. However, as humans, we cannot really make said choices without also being at least somewhat influenced by our subjective affections.<p>Perhaps I'm stretching the author's message, but at least I believe that the argument extends to all engineering conclusions. The author's call is that we acknowledge this subjective side.<p>Essentially, true engineering is about tradeoffs, there is no X that is objectively better than Y in all circumstances and contexts.</p>
]]></description><pubDate>Mon, 26 May 2025 01:37:47 +0000</pubDate><link>https://news.ycombinator.com/item?id=44093103</link><dc:creator>skribanto</dc:creator><comments>https://news.ycombinator.com/item?id=44093103</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44093103</guid></item><item><title><![CDATA[New comment by skribanto in "Programming languages should have a tree traversal primitive"]]></title><description><![CDATA[
<p>Well, recursion is well-structured and can be reasoned about through induction. Goto is unstructured…</p>
]]></description><pubDate>Tue, 29 Apr 2025 22:33:30 +0000</pubDate><link>https://news.ycombinator.com/item?id=43838829</link><dc:creator>skribanto</dc:creator><comments>https://news.ycombinator.com/item?id=43838829</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43838829</guid></item><item><title><![CDATA[New comment by skribanto in "My Favorite C++ Pattern: X Macros (2023)"]]></title><description><![CDATA[
<p>I don’t think I follow, do you mind giving a concrete example?</p>
]]></description><pubDate>Tue, 25 Mar 2025 16:57:12 +0000</pubDate><link>https://news.ycombinator.com/item?id=43473439</link><dc:creator>skribanto</dc:creator><comments>https://news.ycombinator.com/item?id=43473439</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43473439</guid></item><item><title><![CDATA[New comment by skribanto in "The Rise of Worse Is Better (1991)"]]></title><description><![CDATA[
<p>Well the main point is that there are changes that for most languages would need a change in the compiler/interpreter itself. However in lisp those kinds of things can be done in userspace</p>
]]></description><pubDate>Mon, 07 Oct 2024 20:17:52 +0000</pubDate><link>https://news.ycombinator.com/item?id=41770554</link><dc:creator>skribanto</dc:creator><comments>https://news.ycombinator.com/item?id=41770554</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41770554</guid></item><item><title><![CDATA[New comment by skribanto in "Lesser known tricks, quirks and features of C"]]></title><description><![CDATA[
<p>I believe int[6] can still be passed to static 5 but I would have to double check</p>
]]></description><pubDate>Fri, 27 Sep 2024 16:49:35 +0000</pubDate><link>https://news.ycombinator.com/item?id=41672791</link><dc:creator>skribanto</dc:creator><comments>https://news.ycombinator.com/item?id=41672791</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41672791</guid></item><item><title><![CDATA[New comment by skribanto in "Why is a Guillotine blade diagonal?"]]></title><description><![CDATA[
<p>Looks fine to me</p>
]]></description><pubDate>Sun, 25 Aug 2024 21:59:50 +0000</pubDate><link>https://news.ycombinator.com/item?id=41351848</link><dc:creator>skribanto</dc:creator><comments>https://news.ycombinator.com/item?id=41351848</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41351848</guid></item><item><title><![CDATA[New comment by skribanto in "Show HN: Vdm, a sane alternative to e.g. Git submodules"]]></title><description><![CDATA[
<p>I like to wrap it in a venv (pure python project) or nix flake (mixed languages)</p>
]]></description><pubDate>Mon, 29 Jul 2024 06:18:47 +0000</pubDate><link>https://news.ycombinator.com/item?id=41098295</link><dc:creator>skribanto</dc:creator><comments>https://news.ycombinator.com/item?id=41098295</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41098295</guid></item><item><title><![CDATA[New comment by skribanto in "B-Trees Require Fewer Comparisons Than Balanced Binary Search Trees"]]></title><description><![CDATA[
<p>Left leaning red black trees enforce extra constraints, which remove symmetries. This actually adds an edge case when instead you can just treat left/right rotations and comparisons as symmetric operations.<p>Left Leaning Red Black Trees Considerer Harmful: <a href="https://www.read.seas.harvard.edu/~kohler/notes/llrb.html" rel="nofollow">https://www.read.seas.harvard.edu/~kohler/notes/llrb.html</a></p>
]]></description><pubDate>Mon, 24 Jun 2024 16:29:52 +0000</pubDate><link>https://news.ycombinator.com/item?id=40778039</link><dc:creator>skribanto</dc:creator><comments>https://news.ycombinator.com/item?id=40778039</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=40778039</guid></item><item><title><![CDATA[New comment by skribanto in "Discussions: Flat or Threaded? (2006)"]]></title><description><![CDATA[
<p>A follow up from the same author<p><a href="https://blog.codinghorror.com/web-discussions-flat-by-design/" rel="nofollow">https://blog.codinghorror.com/web-discussions-flat-by-design...</a></p>
]]></description><pubDate>Mon, 10 Jun 2024 09:53:34 +0000</pubDate><link>https://news.ycombinator.com/item?id=40631835</link><dc:creator>skribanto</dc:creator><comments>https://news.ycombinator.com/item?id=40631835</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=40631835</guid></item><item><title><![CDATA[New comment by skribanto in "Common Lisp Is Not a Single Language, It Is Lots"]]></title><description><![CDATA[
<p>Interesting side note: the blog is generated with the C preprocessor<p><a href="https://aartaka.me/this-post-is-cpp" rel="nofollow">https://aartaka.me/this-post-is-cpp</a></p>
]]></description><pubDate>Fri, 24 May 2024 21:57:56 +0000</pubDate><link>https://news.ycombinator.com/item?id=40470823</link><dc:creator>skribanto</dc:creator><comments>https://news.ycombinator.com/item?id=40470823</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=40470823</guid></item><item><title><![CDATA[New comment by skribanto in "Static Chess"]]></title><description><![CDATA[
<p>e4 d5 e5 f5 exf6
This simple en passant works</p>
]]></description><pubDate>Tue, 14 May 2024 00:12:47 +0000</pubDate><link>https://news.ycombinator.com/item?id=40350125</link><dc:creator>skribanto</dc:creator><comments>https://news.ycombinator.com/item?id=40350125</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=40350125</guid></item></channel></rss>