<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: kjmr</title><link>https://news.ycombinator.com/user?id=kjmr</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Sat, 23 May 2026 00:25:45 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=kjmr" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by kjmr in "Uv is fantastic, but its package management UX is a mess"]]></title><description><![CDATA[
<p>Author here. It wasn't a recommendation, it was just the only way I knew how to. "uv pip list --outdated" indeed has much better output, thanks!<p>Though this makes me wonder why are there 2 ways of viewing outdated packages, with wildly different output? The UX is mess...</p>
]]></description><pubDate>Fri, 22 May 2026 09:47:27 +0000</pubDate><link>https://news.ycombinator.com/item?id=48233815</link><dc:creator>kjmr</dc:creator><comments>https://news.ycombinator.com/item?id=48233815</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48233815</guid></item><item><title><![CDATA[New comment by kjmr in "Uv is fantastic, but its package management UX is a mess"]]></title><description><![CDATA[
<p>“Removing upper version bounds is important when publishing libraries.”<p>That makes total sense! The article however was written as someone creating websites, not libraries. And when I consume dependencies in my web project, I do want those upper bounds to prevent breaking changes (assuming the dependencies respect SemVer of course).<p>Thanks for pointing out that config, I’ve updated the article.</p>
]]></description><pubDate>Fri, 22 May 2026 07:15:53 +0000</pubDate><link>https://news.ycombinator.com/item?id=48232954</link><dc:creator>kjmr</dc:creator><comments>https://news.ycombinator.com/item?id=48232954</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48232954</guid></item><item><title><![CDATA[New comment by kjmr in "Uv is fantastic, but its package management UX is a mess"]]></title><description><![CDATA[
<p>Once you know what the ^ means (I always think of “roof”), I do think that one character is easier to read than >=,<</p>
]]></description><pubDate>Fri, 22 May 2026 01:40:28 +0000</pubDate><link>https://news.ycombinator.com/item?id=48230972</link><dc:creator>kjmr</dc:creator><comments>https://news.ycombinator.com/item?id=48230972</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48230972</guid></item><item><title><![CDATA[New comment by kjmr in "Uv is fantastic, but its package management UX is a mess"]]></title><description><![CDATA[
<p>What you’re saying makes sense for library authors. But when I make a website and I depend on a bunch of packages, that’s where I want to be safe when upgrading and I want that upper bound. The —-bound flag really helps, but is one more thing to type and remember.<p>Maybe when uv knows the project isn’t a library it could default to upper bounds?</p>
]]></description><pubDate>Fri, 22 May 2026 01:34:58 +0000</pubDate><link>https://news.ycombinator.com/item?id=48230926</link><dc:creator>kjmr</dc:creator><comments>https://news.ycombinator.com/item?id=48230926</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48230926</guid></item><item><title><![CDATA[New comment by kjmr in "Uv is fantastic, but its package management UX is a mess"]]></title><description><![CDATA[
<p>The lack of an upper bound in pyproject.toml isn’t the real problem. The real problem is that `uv lock —-upgrade` does a wholesale upgrade of everything without an upper bound. If there was a way to upgrade packages without updating the major version, this command would be a lot safer to run.</p>
]]></description><pubDate>Fri, 22 May 2026 01:21:54 +0000</pubDate><link>https://news.ycombinator.com/item?id=48230826</link><dc:creator>kjmr</dc:creator><comments>https://news.ycombinator.com/item?id=48230826</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48230826</guid></item><item><title><![CDATA[New comment by kjmr in "Uv is fantastic, but its package management UX is a mess"]]></title><description><![CDATA[
<p>Author of the article here. Sorry it comes across as “clickbait style” when actually it’s simply Dutch bluntness and honesty<p>poetry update also updates the lockfile. I really think the way the uv cli is organized makes it quite annoying to work with. It’s designed for correctness, for machines, not for user-friendliness.</p>
]]></description><pubDate>Fri, 22 May 2026 00:57:40 +0000</pubDate><link>https://news.ycombinator.com/item?id=48230678</link><dc:creator>kjmr</dc:creator><comments>https://news.ycombinator.com/item?id=48230678</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48230678</guid></item><item><title><![CDATA[New comment by kjmr in "Tim Cook sold Apple's soul"]]></title><description><![CDATA[
<p>The article links to <a href="https://www.notesfromthecircus.com/p/the-crisis-no-5" rel="nofollow">https://www.notesfromthecircus.com/p/the-crisis-no-5</a>, which goes deep into China and manufacturing.</p>
]]></description><pubDate>Mon, 02 Feb 2026 15:10:59 +0000</pubDate><link>https://news.ycombinator.com/item?id=46856879</link><dc:creator>kjmr</dc:creator><comments>https://news.ycombinator.com/item?id=46856879</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46856879</guid></item><item><title><![CDATA[Tim Cook sold Apple's soul]]></title><description><![CDATA[
<p>Article URL: <a href="https://www.loopwerk.io/articles/2026/tim-cook-sold-apples-soul/">https://www.loopwerk.io/articles/2026/tim-cook-sold-apples-soul/</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=46856133">https://news.ycombinator.com/item?id=46856133</a></p>
<p>Points: 34</p>
<p># Comments: 12</p>
]]></description><pubDate>Mon, 02 Feb 2026 14:01:41 +0000</pubDate><link>https://www.loopwerk.io/articles/2026/tim-cook-sold-apples-soul/</link><dc:creator>kjmr</dc:creator><comments>https://news.ycombinator.com/item?id=46856133</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46856133</guid></item><item><title><![CDATA[Coolify accidentally broke Docker layer caching (and what you can do now)]]></title><description><![CDATA[
<p>Article URL: <a href="https://www.loopwerk.io/articles/2025/coolify-docker-layer-caching/">https://www.loopwerk.io/articles/2025/coolify-docker-layer-caching/</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=45939872">https://news.ycombinator.com/item?id=45939872</a></p>
<p>Points: 2</p>
<p># Comments: 0</p>
]]></description><pubDate>Sat, 15 Nov 2025 19:20:38 +0000</pubDate><link>https://www.loopwerk.io/articles/2025/coolify-docker-layer-caching/</link><dc:creator>kjmr</dc:creator><comments>https://news.ycombinator.com/item?id=45939872</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45939872</guid></item><item><title><![CDATA[New comment by kjmr in "Are there any CLI-only tools that are monetized, no web UI at all?"]]></title><description><![CDATA[
<p>Yeah, you'd have to outsource the payment processing completely to a third party, which handles everything like updating payment methods etc. Stripe payment links might work well, although I have no experience with them.</p>
]]></description><pubDate>Tue, 30 Sep 2025 20:43:13 +0000</pubDate><link>https://news.ycombinator.com/item?id=45430990</link><dc:creator>kjmr</dc:creator><comments>https://news.ycombinator.com/item?id=45430990</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45430990</guid></item><item><title><![CDATA[New comment by kjmr in "Are there any CLI-only tools that are monetized, no web UI at all?"]]></title><description><![CDATA[
<p>I wouldn't want to give my credit card info to a CLI. When it's on the web I can see if the connection is encrypted, I can (usually) see who the payment processor is (like Stripe). What happens with my credit card number that I enter into the CLI? How is it sent, where does it get stored, etc.<p>You also wouldn't be able to support Apple Pay or Google Pay, or international payment methods (like iDEAL in The Netherlands).<p>Payments seem like a huge problem to go pure CLI without a web UI.</p>
]]></description><pubDate>Tue, 30 Sep 2025 20:27:22 +0000</pubDate><link>https://news.ycombinator.com/item?id=45430795</link><dc:creator>kjmr</dc:creator><comments>https://news.ycombinator.com/item?id=45430795</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45430795</guid></item><item><title><![CDATA[An archive of Spamusement.com (which went offline in 2020)]]></title><description><![CDATA[
<p>Article URL: <a href="https://www.spamusement.cc">https://www.spamusement.cc</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=45430658">https://news.ycombinator.com/item?id=45430658</a></p>
<p>Points: 3</p>
<p># Comments: 0</p>
]]></description><pubDate>Tue, 30 Sep 2025 20:14:11 +0000</pubDate><link>https://www.spamusement.cc</link><dc:creator>kjmr</dc:creator><comments>https://news.ycombinator.com/item?id=45430658</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45430658</guid></item><item><title><![CDATA[A quarter century of chasing simplicity]]></title><description><![CDATA[
<p>Article URL: <a href="https://www.loopwerk.io/articles/2025/25-years-chasing-simplicity/">https://www.loopwerk.io/articles/2025/25-years-chasing-simplicity/</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=45177179">https://news.ycombinator.com/item?id=45177179</a></p>
<p>Points: 3</p>
<p># Comments: 0</p>
]]></description><pubDate>Tue, 09 Sep 2025 03:48:21 +0000</pubDate><link>https://www.loopwerk.io/articles/2025/25-years-chasing-simplicity/</link><dc:creator>kjmr</dc:creator><comments>https://news.ycombinator.com/item?id=45177179</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45177179</guid></item><item><title><![CDATA[Show HN: I built a Trump filter for RSS feeds]]></title><description><![CDATA[
<p>I love RSS feeds - it’s how I keep up with all of my (tech) news. The big downside with RSS though? You get all the articles that are in the feed. And unless your RSS reader of choice offers built-in mute or filter functionality, you’re just stuck with those articles.<p>So I built RSSfilter.com, a service that filters public RSS feeds, and spits out a new RSS feed without the articles that match keywords or categories you’re not interested in.<p>Announcement: <a href="https://www.loopwerk.io/articles/2025/announding-rssfilter-com/" rel="nofollow">https://www.loopwerk.io/articles/2025/announding-rssfilter-c...</a><p>Site: <a href="https://rssfilter.com" rel="nofollow">https://rssfilter.com</a><p>Django code: <a href="https://github.com/loopwerk/django-rss-filter">https://github.com/loopwerk/django-rss-filter</a></p>
<hr>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=43604460">https://news.ycombinator.com/item?id=43604460</a></p>
<p>Points: 1</p>
<p># Comments: 0</p>
]]></description><pubDate>Sun, 06 Apr 2025 20:00:22 +0000</pubDate><link>https://rssfilter.com</link><dc:creator>kjmr</dc:creator><comments>https://news.ycombinator.com/item?id=43604460</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43604460</guid></item><item><title><![CDATA[Our Conspiracy to Educate the World]]></title><description><![CDATA[
<p>Article URL: <a href="https://www.astralcopilot.com/master-plan-dont-share">https://www.astralcopilot.com/master-plan-dont-share</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=43535702">https://news.ycombinator.com/item?id=43535702</a></p>
<p>Points: 2</p>
<p># Comments: 0</p>
]]></description><pubDate>Mon, 31 Mar 2025 14:51:31 +0000</pubDate><link>https://www.astralcopilot.com/master-plan-dont-share</link><dc:creator>kjmr</dc:creator><comments>https://news.ycombinator.com/item?id=43535702</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43535702</guid></item><item><title><![CDATA[Uv: An In-Depth Guide to Python's Fast and Ambitious New Package Manager]]></title><description><![CDATA[
<p>Article URL: <a href="https://www.saaspegasus.com/guides/uv-deep-dive/">https://www.saaspegasus.com/guides/uv-deep-dive/</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=42386104">https://news.ycombinator.com/item?id=42386104</a></p>
<p>Points: 4</p>
<p># Comments: 0</p>
]]></description><pubDate>Wed, 11 Dec 2024 09:12:45 +0000</pubDate><link>https://www.saaspegasus.com/guides/uv-deep-dive/</link><dc:creator>kjmr</dc:creator><comments>https://news.ycombinator.com/item?id=42386104</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42386104</guid></item><item><title><![CDATA[New comment by kjmr in "Revisiting Uv"]]></title><description><![CDATA[
<p>Dependency groups were not supported in uv before version 0.4.7, no matter how hard you edited pyproject.toml by hand.</p>
]]></description><pubDate>Mon, 25 Nov 2024 20:50:40 +0000</pubDate><link>https://news.ycombinator.com/item?id=42240039</link><dc:creator>kjmr</dc:creator><comments>https://news.ycombinator.com/item?id=42240039</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42240039</guid></item></channel></rss>