<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: radimm</title><link>https://news.ycombinator.com/user?id=radimm</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Thu, 30 Apr 2026 10:35:50 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=radimm" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[A Gopher Meets a Crab]]></title><description><![CDATA[
<p>Article URL: <a href="https://miren.dev/blog/gopher-meets-crab">https://miren.dev/blog/gopher-meets-crab</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=47958944">https://news.ycombinator.com/item?id=47958944</a></p>
<p>Points: 1</p>
<p># Comments: 0</p>
]]></description><pubDate>Thu, 30 Apr 2026 06:30:53 +0000</pubDate><link>https://miren.dev/blog/gopher-meets-crab</link><dc:creator>radimm</dc:creator><comments>https://news.ycombinator.com/item?id=47958944</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47958944</guid></item><item><title><![CDATA[New comment by radimm in "Hot Updates in Postgres"]]></title><description><![CDATA[
<p>Somehow it feel HOT updates are very confusing. You can also try to play with interactive visualizer to understand it better <a href="https://boringsql.com/visualizers/hot-updates/" rel="nofollow">https://boringsql.com/visualizers/hot-updates/</a></p>
]]></description><pubDate>Thu, 30 Apr 2026 06:21:13 +0000</pubDate><link>https://news.ycombinator.com/item?id=47958872</link><dc:creator>radimm</dc:creator><comments>https://news.ycombinator.com/item?id=47958872</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47958872</guid></item><item><title><![CDATA[Hot Updates in Postgres]]></title><description><![CDATA[
<p>Article URL: <a href="https://boringsql.com/posts/hot-updates/">https://boringsql.com/posts/hot-updates/</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=47958861">https://news.ycombinator.com/item?id=47958861</a></p>
<p>Points: 1</p>
<p># Comments: 2</p>
]]></description><pubDate>Thu, 30 Apr 2026 06:20:14 +0000</pubDate><link>https://boringsql.com/posts/hot-updates/</link><dc:creator>radimm</dc:creator><comments>https://news.ycombinator.com/item?id=47958861</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47958861</guid></item><item><title><![CDATA[New comment by radimm in "Pgbackrest is no longer being maintained"]]></title><description><![CDATA[
<p>This is the message the author posted on LinkedIn:<p>After a lot of thought, I have decided to stop working on pgBackRest. I did not come to this decision lightly. pgBackRest has been my passion project for the last thirteen years, and I was fortunate to have corporate sponsorship for much of this time, but there were also many late nights and weekends as I worked to make pgBackRest the project it is today, aided by numerous contributors. Every open-source developer knows exactly what I mean and how much of your life gets devoted to a special project.<p>Since Crunchy Data was sold, I have been maintaining pgBackRest and looking for a position that would allow me to continue the work, but so far I have not been successful. Likewise, my efforts to secure sponsorship have also fallen far short of what I need to make the project viable.<p>Like everyone else, I need to make a living, and the range of pgBackRest-related roles is very limited. I can now consider a wider variety of opportunities, but those will not leave me time to work on pgBackRest, which requires a fair amount of time for maintenance, bug fixes, PR reviews, answering issues, etc. That does not even include time to write new features, which is what I really love to do. Rather than do the work poorly and/or sporadically, I think it makes more sense to have a hard stop.<p>I will post a notice of obsolescence and archive the repository. I imagine at some point pgBackRest will be forked, but that will be a new project with new maintainers, and they will need to build trust the same way we did.<p>Again, many thanks to all the pgBackRest contributors over the years. It was a pleasure working with you!</p>
]]></description><pubDate>Mon, 27 Apr 2026 13:18:03 +0000</pubDate><link>https://news.ycombinator.com/item?id=47921198</link><dc:creator>radimm</dc:creator><comments>https://news.ycombinator.com/item?id=47921198</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47921198</guid></item><item><title><![CDATA[PostgreSQL MVCC, Byte by Byte]]></title><description><![CDATA[
<p>Article URL: <a href="https://boringsql.com/posts/postgresql-mvcc-byte-by-byte/">https://boringsql.com/posts/postgresql-mvcc-byte-by-byte/</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=47830946">https://news.ycombinator.com/item?id=47830946</a></p>
<p>Points: 4</p>
<p># Comments: 0</p>
]]></description><pubDate>Mon, 20 Apr 2026 06:16:20 +0000</pubDate><link>https://boringsql.com/posts/postgresql-mvcc-byte-by-byte/</link><dc:creator>radimm</dc:creator><comments>https://news.ycombinator.com/item?id=47830946</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47830946</guid></item><item><title><![CDATA[PostgreSQL MVCC, Byte by Byte]]></title><description><![CDATA[
<p>Article URL: <a href="https://boringsql.com/posts/postgresql-mvcc-byte-by-byte/">https://boringsql.com/posts/postgresql-mvcc-byte-by-byte/</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=47805658">https://news.ycombinator.com/item?id=47805658</a></p>
<p>Points: 3</p>
<p># Comments: 0</p>
]]></description><pubDate>Fri, 17 Apr 2026 13:22:49 +0000</pubDate><link>https://boringsql.com/posts/postgresql-mvcc-byte-by-byte/</link><dc:creator>radimm</dc:creator><comments>https://news.ycombinator.com/item?id=47805658</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47805658</guid></item><item><title><![CDATA[New comment by radimm in "Show HN: DryRun – PostgreSQL MCP and schema advisor that works offline"]]></title><description><![CDATA[
<p>One of the benefit is that instead of LLM blindly advising you to do<p>> ALTER TABLE customers ALTER COLUMN email SET NOT NULL;<p>it can advise you to<p>-- Step 1: backfill NULLs
UPDATE customers
    SET email = 'unknown-' || id || '@example.com'
    WHERE email IS NULL;<p>-- Step 2: add constraint without full table scan
ALTER TABLE customers
    ADD CONSTRAINT customers_email_not_null
    CHECK (email IS NOT NULL) NOT VALID;<p>-- Step 3: validate in the background with a weaker lock
ALTER TABLE customers
    VALIDATE CONSTRAINT customers_email_not_null;</p>
]]></description><pubDate>Wed, 08 Apr 2026 10:46:20 +0000</pubDate><link>https://news.ycombinator.com/item?id=47688295</link><dc:creator>radimm</dc:creator><comments>https://news.ycombinator.com/item?id=47688295</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47688295</guid></item><item><title><![CDATA[Show HN: DryRun – PostgreSQL MCP and schema advisor that works offline]]></title><description><![CDATA[
<p>Article URL: <a href="https://github.com/boringSQL/dryrun">https://github.com/boringSQL/dryrun</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=47688190">https://news.ycombinator.com/item?id=47688190</a></p>
<p>Points: 2</p>
<p># Comments: 1</p>
]]></description><pubDate>Wed, 08 Apr 2026 10:34:47 +0000</pubDate><link>https://github.com/boringSQL/dryrun</link><dc:creator>radimm</dc:creator><comments>https://news.ycombinator.com/item?id=47688190</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47688190</guid></item><item><title><![CDATA[Don't let AI touch your production database]]></title><description><![CDATA[
<p>Article URL: <a href="https://boringsql.com/posts/dont-let-ai-to-prod/">https://boringsql.com/posts/dont-let-ai-to-prod/</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=47671463">https://news.ycombinator.com/item?id=47671463</a></p>
<p>Points: 4</p>
<p># Comments: 0</p>
]]></description><pubDate>Tue, 07 Apr 2026 06:34:49 +0000</pubDate><link>https://boringsql.com/posts/dont-let-ai-to-prod/</link><dc:creator>radimm</dc:creator><comments>https://news.ycombinator.com/item?id=47671463</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47671463</guid></item><item><title><![CDATA[New comment by radimm in "Good CTE, Bad CTE"]]></title><description><![CDATA[
<p>Thanks - I will recheck later today.</p>
]]></description><pubDate>Tue, 31 Mar 2026 08:13:53 +0000</pubDate><link>https://news.ycombinator.com/item?id=47584181</link><dc:creator>radimm</dc:creator><comments>https://news.ycombinator.com/item?id=47584181</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47584181</guid></item><item><title><![CDATA[New comment by radimm in "Good CTE, Bad CTE"]]></title><description><![CDATA[
<p>OP here, damn - that's a very good point. Can't believe I missed it.</p>
]]></description><pubDate>Tue, 31 Mar 2026 07:45:00 +0000</pubDate><link>https://news.ycombinator.com/item?id=47583996</link><dc:creator>radimm</dc:creator><comments>https://news.ycombinator.com/item?id=47583996</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47583996</guid></item><item><title><![CDATA[New comment by radimm in "I am definitely missing the pre-AI writing era"]]></title><description><![CDATA[
<p>This is exactly same struggle for me. Writing technical content about PostgreSQL and balancing my voice without sounding like LLM written is genuinely difficult.<p>As English is not my first language, I do run into problem where the line between fix my clumsy sentence and rewrite my thought is very thin. Same with writing "boring" technical explanation and more approachable content. I'm getting pushed back for both.</p>
]]></description><pubDate>Mon, 30 Mar 2026 07:39:58 +0000</pubDate><link>https://news.ycombinator.com/item?id=47571537</link><dc:creator>radimm</dc:creator><comments>https://news.ycombinator.com/item?id=47571537</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47571537</guid></item><item><title><![CDATA[Good CTE, Bad CTE]]></title><description><![CDATA[
<p>Article URL: <a href="https://boringsql.com/posts/good-cte-bad-cte/">https://boringsql.com/posts/good-cte-bad-cte/</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=47571330">https://news.ycombinator.com/item?id=47571330</a></p>
<p>Points: 203</p>
<p># Comments: 45</p>
]]></description><pubDate>Mon, 30 Mar 2026 07:11:11 +0000</pubDate><link>https://boringsql.com/posts/good-cte-bad-cte/</link><dc:creator>radimm</dc:creator><comments>https://news.ycombinator.com/item?id=47571330</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47571330</guid></item><item><title><![CDATA[PostgreSQL Statistics: Why queries run slow]]></title><description><![CDATA[
<p>Article URL: <a href="https://boringsql.com/posts/postgresql-statistics/">https://boringsql.com/posts/postgresql-statistics/</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=47177884">https://news.ycombinator.com/item?id=47177884</a></p>
<p>Points: 3</p>
<p># Comments: 0</p>
]]></description><pubDate>Fri, 27 Feb 2026 08:03:44 +0000</pubDate><link>https://boringsql.com/posts/postgresql-statistics/</link><dc:creator>radimm</dc:creator><comments>https://news.ycombinator.com/item?id=47177884</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47177884</guid></item><item><title><![CDATA[The 8KB Page: PostgreSQL Page Layout Visualized]]></title><description><![CDATA[
<p>Article URL: <a href="https://boringsql.com/visualizers/8kb-page/">https://boringsql.com/visualizers/8kb-page/</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=47084871">https://news.ycombinator.com/item?id=47084871</a></p>
<p>Points: 2</p>
<p># Comments: 0</p>
]]></description><pubDate>Fri, 20 Feb 2026 07:33:37 +0000</pubDate><link>https://boringsql.com/visualizers/8kb-page/</link><dc:creator>radimm</dc:creator><comments>https://news.ycombinator.com/item?id=47084871</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47084871</guid></item><item><title><![CDATA[PostgreSQL's 8KB Page]]></title><description><![CDATA[
<p>Article URL: <a href="https://boringsql.com/posts/inside-the-8kb-page/">https://boringsql.com/posts/inside-the-8kb-page/</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=47084754">https://news.ycombinator.com/item?id=47084754</a></p>
<p>Points: 3</p>
<p># Comments: 0</p>
]]></description><pubDate>Fri, 20 Feb 2026 07:16:33 +0000</pubDate><link>https://boringsql.com/posts/inside-the-8kb-page/</link><dc:creator>radimm</dc:creator><comments>https://news.ycombinator.com/item?id=47084754</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47084754</guid></item><item><title><![CDATA[Reading Buffer statistics in EXPLAIN output]]></title><description><![CDATA[
<p>Article URL: <a href="https://boringsql.com/posts/explain-buffers/">https://boringsql.com/posts/explain-buffers/</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=46942749">https://news.ycombinator.com/item?id=46942749</a></p>
<p>Points: 1</p>
<p># Comments: 0</p>
]]></description><pubDate>Mon, 09 Feb 2026 07:59:54 +0000</pubDate><link>https://boringsql.com/posts/explain-buffers/</link><dc:creator>radimm</dc:creator><comments>https://news.ycombinator.com/item?id=46942749</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46942749</guid></item><item><title><![CDATA[PostgreSQL Shared Buffers Visualized]]></title><description><![CDATA[
<p>Article URL: <a href="https://boringsql.com/visualizers/shared-buffers/">https://boringsql.com/visualizers/shared-buffers/</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=46757892">https://news.ycombinator.com/item?id=46757892</a></p>
<p>Points: 1</p>
<p># Comments: 0</p>
]]></description><pubDate>Sun, 25 Jan 2026 20:35:15 +0000</pubDate><link>https://boringsql.com/visualizers/shared-buffers/</link><dc:creator>radimm</dc:creator><comments>https://news.ycombinator.com/item?id=46757892</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46757892</guid></item><item><title><![CDATA[Introduction to Buffers in PostgreSQL]]></title><description><![CDATA[
<p>Article URL: <a href="https://boringsql.com/posts/introduction-to-buffers/">https://boringsql.com/posts/introduction-to-buffers/</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=46756510">https://news.ycombinator.com/item?id=46756510</a></p>
<p>Points: 2</p>
<p># Comments: 0</p>
]]></description><pubDate>Sun, 25 Jan 2026 18:13:58 +0000</pubDate><link>https://boringsql.com/posts/introduction-to-buffers/</link><dc:creator>radimm</dc:creator><comments>https://news.ycombinator.com/item?id=46756510</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46756510</guid></item><item><title><![CDATA[New comment by radimm in "Show HN: pgwire-replication - pure rust client for Postgres CDC"]]></title><description><![CDATA[
<p>Not OP - but definitely no. In such a case use just physical or - if you have special use case - logical replication that’s built in.</p>
]]></description><pubDate>Fri, 16 Jan 2026 13:13:05 +0000</pubDate><link>https://news.ycombinator.com/item?id=46646048</link><dc:creator>radimm</dc:creator><comments>https://news.ycombinator.com/item?id=46646048</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46646048</guid></item></channel></rss>