<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: reikonomusha</title><link>https://news.ycombinator.com/user?id=reikonomusha</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Thu, 09 Apr 2026 08:48:10 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=reikonomusha" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by reikonomusha in "Herbie: Automatically improve imprecise floating point formulas"]]></title><description><![CDATA[
<p>This is an awesome piece of software, one of my favorite little pieces of magic. Finding more precise or more stable floating point formulas is often arduous and requires a lot of familiarity with the behavior of floats. This finds good formulas completely automatically. Super useful for numerical computation.</p>
]]></description><pubDate>Sat, 04 Apr 2026 04:09:40 +0000</pubDate><link>https://news.ycombinator.com/item?id=47635641</link><dc:creator>reikonomusha</dc:creator><comments>https://news.ycombinator.com/item?id=47635641</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47635641</guid></item><item><title><![CDATA[Almighty Lisp]]></title><description><![CDATA[
<p>Article URL: <a href="https://almightylisp.com/">https://almightylisp.com/</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=47600496">https://news.ycombinator.com/item?id=47600496</a></p>
<p>Points: 16</p>
<p># Comments: 4</p>
]]></description><pubDate>Wed, 01 Apr 2026 13:21:10 +0000</pubDate><link>https://almightylisp.com/</link><dc:creator>reikonomusha</dc:creator><comments>https://news.ycombinator.com/item?id=47600496</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47600496</guid></item><item><title><![CDATA[New comment by reikonomusha in "Dulce et Decorum Est (1921)"]]></title><description><![CDATA[
<p>Logan Skelton, a music professor at the University of Michigan, really made be find profundity in this poem, not just for its message, but also its construction. I was blown away by his video about it [1]. Really, it was a mind-blown thing for me.
 I really recommend watching it, it's reasonably short, but the TL;DR is that the meter and choice of silence can be interpreted as meaningfully as the words and context in which it was written.<p>[1] <a href="https://youtu.be/DiCXBn18XYw?t=3m35s" rel="nofollow">https://youtu.be/DiCXBn18XYw?t=3m35s</a></p>
]]></description><pubDate>Fri, 06 Mar 2026 00:02:42 +0000</pubDate><link>https://news.ycombinator.com/item?id=47268947</link><dc:creator>reikonomusha</dc:creator><comments>https://news.ycombinator.com/item?id=47268947</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47268947</guid></item><item><title><![CDATA[New comment by reikonomusha in "Steel Bank Common Lisp"]]></title><description><![CDATA[
<p>Three (in part or full; presently or recently historically): DWave, Rigetti, HRL</p>
]]></description><pubDate>Wed, 25 Feb 2026 06:29:42 +0000</pubDate><link>https://news.ycombinator.com/item?id=47148067</link><dc:creator>reikonomusha</dc:creator><comments>https://news.ycombinator.com/item?id=47148067</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47148067</guid></item><item><title><![CDATA[New comment by reikonomusha in "Steel Bank Common Lisp"]]></title><description><![CDATA[
<p>Coalton [1] adds Haskell-style types (so typed lists, type classes, parametric polymorphism, ...) to Common Lisp, and compiles to especially efficient code in SBCL.<p>[1] <a href="https://coalton-lang.github.io/" rel="nofollow">https://coalton-lang.github.io/</a></p>
]]></description><pubDate>Wed, 25 Feb 2026 06:26:41 +0000</pubDate><link>https://news.ycombinator.com/item?id=47148044</link><dc:creator>reikonomusha</dc:creator><comments>https://news.ycombinator.com/item?id=47148044</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47148044</guid></item><item><title><![CDATA[New comment by reikonomusha in "I Wrote a Scheme in 2025"]]></title><description><![CDATA[
<p>I mean the following with all due respect—and I have a lot of respect for your many efforts and contributions—but it will sound a little blunt, especially as a written comment.<p>"We have one," no, this is a consistent problem with people who evangelize Lisp. We have had "IDEs" for decades. Most of them, except the couple commercially supported ones, were "experimental", "incomplete", "buggy", etc. This includes the one you link here.<p>Are these projects valuable as a starting point for other hackers to join in and help? Sure, maybe. Are they helpful for a new programmer? Almost always the answer has been "no". I have first-hand experience subjecting a programmer to one of these tools, and I myself getting incredibly frustrated at how broken it is. Imagine somebody completely new.<p>You in particular love to advertise these different projects as a form of Lisp evangelism. Advertising the projects is great—I hope they attract helpers—but I think your language around them is deceiving.<p>> Because yes, before 2023 we could complain there were no JetBrains IDE plugin for Common Lisp, since 2023, we have one.<p>"We have one" in the absolutely most rudimentary interpretation of that phrase. What we don't have is a working JetBrains Common Lisp IDE suitable for production use.<p>In order to try to promote a realistic view as to why Lisp doesn't attract more programmers in 2026, I myself will continue to point out Lisp's highly substandard tooling offering until there's an actual product that works. Any Joe can spend a weekend making a 1/2 baked, proof of concept IDE. Even more so now with all the AI vibecoding tools we have at our disposal. It takes much more to make something that checks all the boxes.</p>
]]></description><pubDate>Fri, 13 Feb 2026 00:22:59 +0000</pubDate><link>https://news.ycombinator.com/item?id=46997239</link><dc:creator>reikonomusha</dc:creator><comments>https://news.ycombinator.com/item?id=46997239</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46997239</guid></item><item><title><![CDATA[New comment by reikonomusha in "I Wrote a Scheme in 2025"]]></title><description><![CDATA[
<p>This is not true.<p><pre><code>    (defun f (x)
      (let ((y x))
        (setf y (* y x))
        (block foo
          (if (minusp y)
              (return-from foo y))
          (loop :for i :from 1 :to 10 :do
            ...
</code></pre>
This is absolutely typical bog-standard left-to-right top-to-bottom structured programming type code. It also must be executed like so:<p><pre><code>  - Define the function 
  - Bind the variable 
  - Mutate the variable
  - Set up a named block
  - Do a conditional return
  - Run a loop
  - ...
</code></pre>
The order of execution literally matches the order it's written. But not unlike almost all other languages on the planet, expressions are evaluated inside-out.<p>Haskell's whole raison d'etre is to allow arbitrary nesting and substitution of terms, and all or none of these terms may or may not be evaluated depending on need. De-nesting happens with a copious number of syntax to bind names to values, sometimes before the expression (via let), sometimes after the expression (via where), and sometimes in the middle of an expression (via do).</p>
]]></description><pubDate>Thu, 12 Feb 2026 23:01:14 +0000</pubDate><link>https://news.ycombinator.com/item?id=46996509</link><dc:creator>reikonomusha</dc:creator><comments>https://news.ycombinator.com/item?id=46996509</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46996509</guid></item><item><title><![CDATA[New comment by reikonomusha in "I Wrote a Scheme in 2025"]]></title><description><![CDATA[
<p>- Ease of setup and install. Turnkey. Good defaults.<p>- Non-buffer based workflows.<p>- Easy access to settings.<p>- Easy ways to change or switch my compiler.<p>- Integrated with typical lisp tooling for library, system, and package management. (For example, what Emacs button do I press to set or clear my ASDF compile cache?)<p>- Better integration of the profiler and debugger. When a Lisp error happens, yet another buffer pops up (breaking the arrangement of all your code windows you set up), this buffer may not even be the only one (but the others are hidden somewhere), and it's not clear what you can even click or expand to see more information (there's a <i>tremendous</i> amount, extremely non-discoverable).<p>- Good getting started: built in guide for structural editing, REPL workflow, etc.<p>...and much much more. I say all of this as someone who basically has only used and invested in Emacs for 20 years. I love sharing Emacs with people who like weird technologies and rabbit holes, the real "hacker"-type people. I hate sharing Emacs with people who want to be productive in an hour or so with a Lisp project, because I know within 5 minutes they'll be disappointed, and never get the best of the experience because it's too much uninteresting investment.<p>I prefer writing Lisp with Emacs+SLIME over anything else. It's extraordinarily powerful, and with enough grit, you can get it to do almost anything you want. But I'm also jealous of people who get to use, say, polished JetBrains products whose goal is to try to give you the best experience possible for your specific programming language.</p>
]]></description><pubDate>Thu, 12 Feb 2026 22:53:55 +0000</pubDate><link>https://news.ycombinator.com/item?id=46996429</link><dc:creator>reikonomusha</dc:creator><comments>https://news.ycombinator.com/item?id=46996429</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46996429</guid></item><item><title><![CDATA[New comment by reikonomusha in "I Wrote a Scheme in 2025"]]></title><description><![CDATA[
<p>Lisp code is written top to bottom, left to right. Is your grievance more to do with expression-oriented—as opposed to statement-oriented—languages? "Do this" (statement) vs "represent this" (expression)? For instance, do Haskell, OCaml, etc. also irk you in similar ways?</p>
]]></description><pubDate>Thu, 12 Feb 2026 22:41:07 +0000</pubDate><link>https://news.ycombinator.com/item?id=46996311</link><dc:creator>reikonomusha</dc:creator><comments>https://news.ycombinator.com/item?id=46996311</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46996311</guid></item><item><title><![CDATA[New comment by reikonomusha in "I Wrote a Scheme in 2025"]]></title><description><![CDATA[
<p>Lisp isn't solely defined by DEFMACRO. There are other reasons to use it too, in ways that can complement or compete with DEFMACRO. I also don't really know or understand what the term "flexible" is supposed to mean precisely. What makes a Rust macro less flexible than a Lisp macro in the context of this discussion? In particular, what do Rust macros tamp down on in terms of power that make them more justified for occasional use compared to a Lisp macro?<p>Lisp has a handful of language features that allow the definition of new syntactic abstractions: form level (DEFMACRO) and character level (SET-MACRO-CHARACTER). Just like it has operators to define new data structures (DEFSTRUCT and DEFCLASS). Just like it had operators to define new functions (DEFUN, DEFGENERIC, DEFMETHOD). Each of these defining forms materially change the way a programmer writes code. You don't need to add new syntax to change the language, and each kind of language change comes with its own tools and practices for working with them, debugging them, documenting them, and so on. All of this is to say: I don't see a good reason to have all of these remarks about syntactic abstraction when they very well could be made about data abstraction or control abstraction.<p>A useful language feature isn't something that needs to be maximized in idiomatic code. Syntactic abstraction is useful when it's useful, and when it is useful, it's usually extraordinarily useful—typically because a new syntactic abstraction allows a programmer to specify something much more directly or correctly than otherwise. (Other languages frequently resort to external processors or code generators to the same effect. Anybody who has used them knows how frustrating and difficult to debug they can be. But nonetheless, it's not that people do or don't want syntactic abstractions—they clearly
do—it's more a matter of how accessible we want to make it to the programmer.)<p>I did not suggest disallowing it anymore than I suggested we should disallow the definition of new classes in Java. Being judicious and deciding when it's worth it is key, and there are few general statements we can make about this without additional context.</p>
]]></description><pubDate>Thu, 12 Feb 2026 22:35:23 +0000</pubDate><link>https://news.ycombinator.com/item?id=46996262</link><dc:creator>reikonomusha</dc:creator><comments>https://news.ycombinator.com/item?id=46996262</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46996262</guid></item><item><title><![CDATA[New comment by reikonomusha in "I Wrote a Scheme in 2025"]]></title><description><![CDATA[
<p>This is a common reaction/belief but usually from people who have not actually managed a team of Lisp devs.<p>Lisp devs are managed in the same way as any other: You have style guidelines, design review, code review, etc. Sometimes a new macro is good and vastly simplifies code. It's accepted as a PR and documented like anything else. Sometimes a new macro is bad, and it's promptly rejected by the team. It's a persistent myth that Lisp programmers are just going to design their own little languages everywhere in a shared code base and it'll be impossible to understand.<p>(Case in point: Look at open source Lisp code. There isn't even management or code review there! Yet the vast majority of Lisp code is actually just functions and classes, with the occasional macro to reduce boilerplate. In some circumstances, you have a library offering a macro, and it's actually well documented and easy to understand. See Iterate, SERIES, etc. for actual examples.)<p>Rust or Elixir or Java or whatever aren't at all immune to monstrosities created by astronomically complex or baroque abstractions, FactoryFactoryFactories, and so on. How do teams avoid those? Style guidelines, design review, code review, etc.</p>
]]></description><pubDate>Thu, 12 Feb 2026 17:32:35 +0000</pubDate><link>https://news.ycombinator.com/item?id=46991924</link><dc:creator>reikonomusha</dc:creator><comments>https://news.ycombinator.com/item?id=46991924</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46991924</guid></item><item><title><![CDATA[New comment by reikonomusha in "I Wrote a Scheme in 2025"]]></title><description><![CDATA[
<p>Three thoughts (in the context of Common Lisp specifically):<p>- Every day that passes, the gulf between Lisp's tooling and what a typical user expects grows wider. It needs to escape Emacs and SLIME to something that feels complete and polished.<p>- There needs to be a little bit of a culture shift around Lisp to actually write programs that do things. How many programs can you download via apt or brew that are written in Lisp? They're executables at the end of the day so nothing in principle stops this from happening, but there's just a thread of modern Lisp culture where it's more fun to play around in the REPL and write creative libraries than to ship. (There are notable exceptions of course.)<p>- I personally like the quirkiness of Common Lisp, but there are so many ways to write it (imperative, functional, etc.), so many ways to structure your programs (one package, package per file, package inferred system, etc.), and so many ways to offer APIs (plain old data and functions, generic function protocols, etc.) that it makes it a combination of confusing and intimidating. I think shifting toward something a little more structured and disciplined like Coalton, while still giving the escape hatches to all of Common Lisp, would help a lot of people "join in" on building new code or building upon existing code.</p>
]]></description><pubDate>Thu, 12 Feb 2026 17:22:11 +0000</pubDate><link>https://news.ycombinator.com/item?id=46991724</link><dc:creator>reikonomusha</dc:creator><comments>https://news.ycombinator.com/item?id=46991724</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46991724</guid></item><item><title><![CDATA[New comment by reikonomusha in "Quirks of Common Lisp Types"]]></title><description><![CDATA[
<p>The value NIL has type NULL.<p>No value has type NIL.</p>
]]></description><pubDate>Tue, 02 Sep 2025 20:30:55 +0000</pubDate><link>https://news.ycombinator.com/item?id=45108602</link><dc:creator>reikonomusha</dc:creator><comments>https://news.ycombinator.com/item?id=45108602</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45108602</guid></item><item><title><![CDATA[New comment by reikonomusha in "Quirks of Common Lisp Types"]]></title><description><![CDATA[
<p>I think this article over-sells (to a point of being misleading) the amount of static type checking offered in Common Lisp even by a relatively good implementation like SBCL.<p>SBCL's static type checking provides in practice virtually zero guarantees about whether compiling your code actually implies the inexistence of type errors. In that regard, I like to consider SBCL's static type errors to be a mere courtesy [1].<p>Typically, the static type errors TFA demonstrates are nullified as soon as anything is abstracted away into a function. To show a trivial example:<p><pre><code>    (+ 2 "2")
</code></pre>
may error statically because the Common Lisp implementation has special rules and knowledge about the + function, but<p><pre><code>    (defun id (x) x)

    (+ 2 (id "2"))
</code></pre>
will not. Furthermore, Common Lisp has no way to label the type of the function ID to constrain its input type to be the same as its output type that works for all possible types. That is, there's nothing like the Haskell declaration<p><pre><code>    id :: a -> a
    id x = x
</code></pre>
or the C++<p><pre><code>    template <typename A>
    A id(A x) {
        return x;
    }
</code></pre>
In Common Lisp, the closest you can get is either to declare ID to be monomorphic (i.e., just select a <i>single</i> type it can work with), as in<p><pre><code>    (declaim (ftype (function (string) string) id))
</code></pre>
or to say that ID can take <i>anything</i> as input and produce <i>anything</i> (possibly different from the input) as output, as in<p><pre><code>    (declaim (ftype (function (t) t) id))
</code></pre>
Here, T is not a type variable, but instead the name of the "top" type, the supertype of all types.<p>[1] SBCL and CMUCL aren't totally random in what static type checking they perform, and the programmer can absolutely make profitable use of this checking, but you have to be quite knowledgeable of the implementation to know what exactly you can rely on.</p>
]]></description><pubDate>Tue, 02 Sep 2025 20:18:30 +0000</pubDate><link>https://news.ycombinator.com/item?id=45108449</link><dc:creator>reikonomusha</dc:creator><comments>https://news.ycombinator.com/item?id=45108449</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45108449</guid></item><item><title><![CDATA[New comment by reikonomusha in "Cognitive load is what matters"]]></title><description><![CDATA[
<p>I think the criticism is relevant because TFA isn't the first to exercise the term "cognitive load" in the context of computing. It's a term thrown around quite often, so we should cross reference its alleged meaning to literature.<p>I myself find it to be a term that's effectively used as a thought-terminating cliche, sometimes as a way to defend a critic's preferred coding style and organization.</p>
]]></description><pubDate>Sat, 30 Aug 2025 16:27:11 +0000</pubDate><link>https://news.ycombinator.com/item?id=45075881</link><dc:creator>reikonomusha</dc:creator><comments>https://news.ycombinator.com/item?id=45075881</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45075881</guid></item><item><title><![CDATA[New comment by reikonomusha in "Dynamically patch a Python function's source code at runtime"]]></title><description><![CDATA[
<p>S-expressions make the user interface to code generation, a component to hot-reloading, more facile. It's not a triviality or gimmick in this context.<p>We can see from OP that it's actually quite annoying to specify code in a non-S-expression language (or really any language lacking a meta-syntax), usually requiring either<p>- stuffing and interpolating strings<p>- building ASTs with API functions provided by the implementation in a tiresome or verbose manner<p>But you're right that there are more aspects to hot-reloading than just the syntax and data structure.<p>Common Lisp gets away with it because it actually defines the semantics of redefinition of functions and classes. For instance, the standard says what will happen to all existing FOO object instances in memory if I change<p><pre><code>    (defclass foo ()
      ((a :initarg :a)))
</code></pre>
to<p><pre><code>    (defclass foo ()
      ((a :initarg :a)
       (b :initarg :b)))
</code></pre>
and even lets the programmer customize the behavior of such a redefinition.<p>Few if any languages go through the trouble of actually defining these semantics, especially in the context of a compiled language (like Common Lisp), making all but the simplest instances of reloading code well defined.</p>
]]></description><pubDate>Sun, 24 Aug 2025 15:34:29 +0000</pubDate><link>https://news.ycombinator.com/item?id=45005017</link><dc:creator>reikonomusha</dc:creator><comments>https://news.ycombinator.com/item?id=45005017</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45005017</guid></item><item><title><![CDATA[New comment by reikonomusha in "Dynamically patch a Python function's source code at runtime"]]></title><description><![CDATA[
<p>You asked where Lisp is useful, and I supplied a list of companies that find (or, in some cases of recent history, found) Lisp useful. Your Google example is pertinent, because Google had the resources to wholesale eliminate its use of Lisp any time within the last 15 years, but for some reason worth pondering, hasn't. Instead, they continue to develop the product in Lisp, and continue to contribute to the Common Lisp open-source ecosystem.<p>But that aside, if you want a fresh look at what people are thinking about with Lisp, maybe check out the talks that were given this year at the 2025 European Lisp Symposium [1,2]. Or perhaps look at how someone shipped a platformer game on Steam with Common Lisp [3,4], and is in the finishing lap porting it to the Nintendo Switch [5].<p>I realize, though, that this kind of "debate" (?) is never satisfying to the instigator. If it does satisfy though, I will agree with you that—despite all of the claims of alleged productivity and power the language offers—Common Lisp remains far less popular than Python, which I assume is your only real point here.<p>[1] A presentation about how adding a static type system to Common Lisp à la Haskell helps write mission critical programs in defense and quantum computing: <a href="https://youtu.be/of92m4XNgrM" rel="nofollow">https://youtu.be/of92m4XNgrM</a><p>[2] A talk from employees of Keepit, a company that supplies a SaaS backup service, discussed how they train people on Common Lisp when employing them: <a href="https://youtu.be/UCxy1tvsjMs?t=66m51s" rel="nofollow">https://youtu.be/UCxy1tvsjMs?t=66m51s</a><p>[3] Discusses technical details of how Lisp
was used to implement a game that was actually shipped: <a href="https://reader.tymoon.eu/article/413" rel="nofollow">https://reader.tymoon.eu/article/413</a><p>[4] The actual game that you can buy: <a href="https://store.steampowered.com/app/1261430/Kandria/" rel="nofollow">https://store.steampowered.com/app/1261430/Kandria/</a> (This is not intended to be an advertisement and I'm unaffiliated. It's just a demonstration of a recently "shipped" product written in Common Lisp where you might not expect it.)<p>[5] Technical discussion of the Nintendo Switch port: <a href="https://youtu.be/kiMmo0yWGKI?t=113m20s" rel="nofollow">https://youtu.be/kiMmo0yWGKI?t=113m20s</a></p>
]]></description><pubDate>Sun, 24 Aug 2025 15:15:10 +0000</pubDate><link>https://news.ycombinator.com/item?id=45004850</link><dc:creator>reikonomusha</dc:creator><comments>https://news.ycombinator.com/item?id=45004850</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45004850</guid></item><item><title><![CDATA[New comment by reikonomusha in "Dynamically patch a Python function's source code at runtime"]]></title><description><![CDATA[
<p><a href="https://github.com/azzamsa/awesome-lisp-companies" rel="nofollow">https://github.com/azzamsa/awesome-lisp-companies</a></p>
]]></description><pubDate>Sun, 24 Aug 2025 14:24:22 +0000</pubDate><link>https://news.ycombinator.com/item?id=45004485</link><dc:creator>reikonomusha</dc:creator><comments>https://news.ycombinator.com/item?id=45004485</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45004485</guid></item><item><title><![CDATA[New comment by reikonomusha in "Seed: Interactive software environment based on Common Lisp"]]></title><description><![CDATA[
<p>CLOG [1] seems to do something similar (though it's hard to tell; Seed's README isn't terribly informative), except CLOG has more tutorials, is better documented, has a more fleshed out README, and has ongoing support.<p>[1] <a href="https://github.com/rabbibotton/clog" rel="nofollow">https://github.com/rabbibotton/clog</a></p>
]]></description><pubDate>Sun, 24 Aug 2025 10:50:49 +0000</pubDate><link>https://news.ycombinator.com/item?id=45003140</link><dc:creator>reikonomusha</dc:creator><comments>https://news.ycombinator.com/item?id=45003140</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45003140</guid></item><item><title><![CDATA[New comment by reikonomusha in "An interactive guide to sensor fusion with quaternions"]]></title><description><![CDATA[
<p>It doesn't make sense in and of itself. We usually think
of division as a closed operation: we divide two things (like real numbers) and we get the same kind of thing out (another real number).<p>In Hamilton's original view of quaternions, he <i>defined</i> a "geometric quotient" of two 3d directed lines (one kind of object) as being a quaternion (another kind of object), and gave all sorts of complicated geometric formulas for how to calculate it.</p>
]]></description><pubDate>Sat, 16 Aug 2025 02:08:22 +0000</pubDate><link>https://news.ycombinator.com/item?id=44919493</link><dc:creator>reikonomusha</dc:creator><comments>https://news.ycombinator.com/item?id=44919493</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44919493</guid></item></channel></rss>