<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: ananthakumaran</title><link>https://news.ycombinator.com/user?id=ananthakumaran</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Wed, 10 Jun 2026 04:23:15 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=ananthakumaran" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[ClickHouse Table per Tenant in Production]]></title><description><![CDATA[
<p>Article URL: <a href="https://ananthakumaran.in/2026/06/02/clickhouse-table-per-tenant-in-production.html">https://ananthakumaran.in/2026/06/02/clickhouse-table-per-tenant-in-production.html</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=48368476">https://news.ycombinator.com/item?id=48368476</a></p>
<p>Points: 2</p>
<p># Comments: 0</p>
]]></description><pubDate>Tue, 02 Jun 2026 10:49:26 +0000</pubDate><link>https://ananthakumaran.in/2026/06/02/clickhouse-table-per-tenant-in-production.html</link><dc:creator>ananthakumaran</dc:creator><comments>https://news.ycombinator.com/item?id=48368476</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48368476</guid></item><item><title><![CDATA[New comment by ananthakumaran in "Slumber a TUI HTTP Client"]]></title><description><![CDATA[
<p>For those who are using Emacs, <a href="https://github.com/federicotdn/verb" rel="nofollow">https://github.com/federicotdn/verb</a> provides similar UX, I have been using it as a postman alternative for quite some time.</p>
]]></description><pubDate>Fri, 22 May 2026 07:52:07 +0000</pubDate><link>https://news.ycombinator.com/item?id=48233175</link><dc:creator>ananthakumaran</dc:creator><comments>https://news.ycombinator.com/item?id=48233175</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48233175</guid></item><item><title><![CDATA[OpenAI deprecation notice: upcoming model shutdowns in 2026]]></title><description><![CDATA[
<p>Article URL: <a href="https://developers.openai.com/api/docs/deprecations">https://developers.openai.com/api/docs/deprecations</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=47873124">https://news.ycombinator.com/item?id=47873124</a></p>
<p>Points: 3</p>
<p># Comments: 0</p>
]]></description><pubDate>Thu, 23 Apr 2026 07:37:55 +0000</pubDate><link>https://developers.openai.com/api/docs/deprecations</link><dc:creator>ananthakumaran</dc:creator><comments>https://news.ycombinator.com/item?id=47873124</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47873124</guid></item><item><title><![CDATA[Moving a tenant across PostgreSQL instances]]></title><description><![CDATA[
<p>Article URL: <a href="https://ananthakumaran.in/2026/04/22/moving-tenant-across-postgresql-instances.html">https://ananthakumaran.in/2026/04/22/moving-tenant-across-postgresql-instances.html</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=47858780">https://news.ycombinator.com/item?id=47858780</a></p>
<p>Points: 1</p>
<p># Comments: 0</p>
]]></description><pubDate>Wed, 22 Apr 2026 03:57:00 +0000</pubDate><link>https://ananthakumaran.in/2026/04/22/moving-tenant-across-postgresql-instances.html</link><dc:creator>ananthakumaran</dc:creator><comments>https://news.ycombinator.com/item?id=47858780</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47858780</guid></item><item><title><![CDATA[New comment by ananthakumaran in "The Future of SCIP"]]></title><description><![CDATA[
<p>I have been using <a href="https://github.com/jacktasia/dumb-jump" rel="nofollow">https://github.com/jacktasia/dumb-jump</a> to quickly jump to definitions. LSP is hit or miss; in some languages, it works great, while in others, the implementation is not so good. I have been thinking about a middle ground based on Tree-sitter. GitHub uses Tree-sitter to power code navigation, but unfortunately, I can't find anything good that I can use offline. Why is there no ctags equivalent powered by Tree-sitter?</p>
]]></description><pubDate>Sat, 28 Mar 2026 01:22:02 +0000</pubDate><link>https://news.ycombinator.com/item?id=47550547</link><dc:creator>ananthakumaran</dc:creator><comments>https://news.ycombinator.com/item?id=47550547</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47550547</guid></item><item><title><![CDATA[Overlay Bar Chart]]></title><description><![CDATA[
<p>Article URL: <a href="https://ananthakumaran.in/2026/03/14/overlay-bar-chart.html">https://ananthakumaran.in/2026/03/14/overlay-bar-chart.html</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=47373758">https://news.ycombinator.com/item?id=47373758</a></p>
<p>Points: 1</p>
<p># Comments: 0</p>
]]></description><pubDate>Sat, 14 Mar 2026 05:55:56 +0000</pubDate><link>https://ananthakumaran.in/2026/03/14/overlay-bar-chart.html</link><dc:creator>ananthakumaran</dc:creator><comments>https://news.ycombinator.com/item?id=47373758</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47373758</guid></item><item><title><![CDATA[New comment by ananthakumaran in "Bridging Elixir and Python with Oban"]]></title><description><![CDATA[
<p>No, it's a background job. We can easily control the Python process count by controlling the job queue concurrency on the Elixir side.</p>
]]></description><pubDate>Thu, 19 Feb 2026 18:26:33 +0000</pubDate><link>https://news.ycombinator.com/item?id=47077155</link><dc:creator>ananthakumaran</dc:creator><comments>https://news.ycombinator.com/item?id=47077155</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47077155</guid></item><item><title><![CDATA[New comment by ananthakumaran in "Bridging Elixir and Python with Oban"]]></title><description><![CDATA[
<p>We have a similar use case. All Elixir code base, but need to use Python for ML libraries. We decided to use IPC. Elixir will spawn a process and communicate over stdio. <a href="https://github.com/akash-akya/ex_cmd" rel="nofollow">https://github.com/akash-akya/ex_cmd</a> makes it a breeze to stream stdin and stdout. This also has the added benefit of keeping the Python side completely stateless and keeping all the domain logic on the Elixir side. Spawning a process might be slower compared to enqueuing a job, but in our case the job usually takes long enough to make it irrelevant.</p>
]]></description><pubDate>Thu, 19 Feb 2026 14:57:26 +0000</pubDate><link>https://news.ycombinator.com/item?id=47074462</link><dc:creator>ananthakumaran</dc:creator><comments>https://news.ycombinator.com/item?id=47074462</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47074462</guid></item><item><title><![CDATA[New comment by ananthakumaran in "Elasticsearch was never a database"]]></title><description><![CDATA[
<p>ES should be thought of as a json key value store and search engine. The json key value store is fully consistent and supports read after write semantics, refresh is needed for search api. In some cases it does make sense to treat it as a database provided the key value store semantics is enough.<p>I used it about 7 years ago. Text search was not that heavily used, but we utilized the keyword filter heavily. It's like having a database where you can throw any query at it and it would return a response in reasonable time, because you are just creating an index on all fields.</p>
]]></description><pubDate>Sat, 17 Jan 2026 02:31:09 +0000</pubDate><link>https://news.ycombinator.com/item?id=46654734</link><dc:creator>ananthakumaran</dc:creator><comments>https://news.ycombinator.com/item?id=46654734</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46654734</guid></item><item><title><![CDATA[New comment by ananthakumaran in "Ask HN: Share your personal website"]]></title><description><![CDATA[
<p><a href="https://ananthakunaran.in" rel="nofollow">https://ananthakunaran.in</a></p>
]]></description><pubDate>Thu, 15 Jan 2026 02:51:04 +0000</pubDate><link>https://news.ycombinator.com/item?id=46627443</link><dc:creator>ananthakumaran</dc:creator><comments>https://news.ycombinator.com/item?id=46627443</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46627443</guid></item><item><title><![CDATA[New comment by ananthakumaran in "Stacked Diffs with git rebase —onto"]]></title><description><![CDATA[
<p>Exactly, I was reading the blog and wondering the whole time how it's better than --update-refs, which I have been using a lot recently.</p>
]]></description><pubDate>Fri, 05 Dec 2025 15:17:24 +0000</pubDate><link>https://news.ycombinator.com/item?id=46162392</link><dc:creator>ananthakumaran</dc:creator><comments>https://news.ycombinator.com/item?id=46162392</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46162392</guid></item><item><title><![CDATA[Moving tables across PostgreSQL instances]]></title><description><![CDATA[
<p>Article URL: <a href="https://ananthakumaran.in/2025/11/02/moving-tables-across-postgres-instances.html">https://ananthakumaran.in/2025/11/02/moving-tables-across-postgres-instances.html</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=45788086">https://news.ycombinator.com/item?id=45788086</a></p>
<p>Points: 85</p>
<p># Comments: 5</p>
]]></description><pubDate>Sun, 02 Nov 2025 05:47:46 +0000</pubDate><link>https://ananthakumaran.in/2025/11/02/moving-tables-across-postgres-instances.html</link><dc:creator>ananthakumaran</dc:creator><comments>https://news.ycombinator.com/item?id=45788086</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45788086</guid></item><item><title><![CDATA[PostgreSQL Upgrade Using GCP DMS]]></title><description><![CDATA[
<p>Article URL: <a href="https://ananthakumaran.in/2025/06/11/postgresql-upgrade.html">https://ananthakumaran.in/2025/06/11/postgresql-upgrade.html</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=44253902">https://news.ycombinator.com/item?id=44253902</a></p>
<p>Points: 1</p>
<p># Comments: 0</p>
]]></description><pubDate>Thu, 12 Jun 2025 02:56:50 +0000</pubDate><link>https://ananthakumaran.in/2025/06/11/postgresql-upgrade.html</link><dc:creator>ananthakumaran</dc:creator><comments>https://news.ycombinator.com/item?id=44253902</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44253902</guid></item><item><title><![CDATA[Hybrid Query Engine: ClickHouse and PostgreSQL]]></title><description><![CDATA[
<p>Article URL: <a href="https://ananthakumaran.in/2025/03/18/hybrid-query-engine.html">https://ananthakumaran.in/2025/03/18/hybrid-query-engine.html</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=43395431">https://news.ycombinator.com/item?id=43395431</a></p>
<p>Points: 2</p>
<p># Comments: 1</p>
]]></description><pubDate>Tue, 18 Mar 2025 03:19:25 +0000</pubDate><link>https://ananthakumaran.in/2025/03/18/hybrid-query-engine.html</link><dc:creator>ananthakumaran</dc:creator><comments>https://news.ycombinator.com/item?id=43395431</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43395431</guid></item><item><title><![CDATA[New comment by ananthakumaran in "Show HN: LogLayer – Unified logger that routes logs to various logging libraries"]]></title><description><![CDATA[
<p>This is one of the things Elixir got right on day 1, all the libraries in the ecosystem use the standard library and it makes dealing with logs so much easier compared to other languages.</p>
]]></description><pubDate>Mon, 06 Jan 2025 03:52:59 +0000</pubDate><link>https://news.ycombinator.com/item?id=42607500</link><dc:creator>ananthakumaran</dc:creator><comments>https://news.ycombinator.com/item?id=42607500</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42607500</guid></item><item><title><![CDATA[Fine Tuning the Erlang Virtual Machine]]></title><description><![CDATA[
<p>Article URL: <a href="https://ananthakumaran.in/2025/01/04/erlang-vm-tuning.html">https://ananthakumaran.in/2025/01/04/erlang-vm-tuning.html</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=42592786">https://news.ycombinator.com/item?id=42592786</a></p>
<p>Points: 6</p>
<p># Comments: 0</p>
]]></description><pubDate>Sat, 04 Jan 2025 05:59:47 +0000</pubDate><link>https://ananthakumaran.in/2025/01/04/erlang-vm-tuning.html</link><dc:creator>ananthakumaran</dc:creator><comments>https://news.ycombinator.com/item?id=42592786</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42592786</guid></item><item><title><![CDATA[ETS vs Redis]]></title><description><![CDATA[
<p>Article URL: <a href="https://ananthakumaran.in/2024/10/26/ets-vs-redis.html">https://ananthakumaran.in/2024/10/26/ets-vs-redis.html</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=41953121">https://news.ycombinator.com/item?id=41953121</a></p>
<p>Points: 4</p>
<p># Comments: 0</p>
]]></description><pubDate>Sat, 26 Oct 2024 07:11:23 +0000</pubDate><link>https://ananthakumaran.in/2024/10/26/ets-vs-redis.html</link><dc:creator>ananthakumaran</dc:creator><comments>https://news.ycombinator.com/item?id=41953121</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41953121</guid></item><item><title><![CDATA[New comment by ananthakumaran in "Lezer: A parsing system for CodeMirror, inspired by Tree-sitter"]]></title><description><![CDATA[
<p>Have you checked the js grammar? It has a regex grammar, though not sure if that's what you are looking for</p>
]]></description><pubDate>Mon, 25 Mar 2024 01:16:58 +0000</pubDate><link>https://news.ycombinator.com/item?id=39812065</link><dc:creator>ananthakumaran</dc:creator><comments>https://news.ycombinator.com/item?id=39812065</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=39812065</guid></item><item><title><![CDATA[New comment by ananthakumaran in "How does Sidekiq really work?"]]></title><description><![CDATA[
<p>> For example, you don’t need sidekiq or Redis as Elixir/Erlang is a concurrent, distributed platform. This simplifies operations and is cheaper to run.<p>This is simply wrong. You need a Sidekiq alternative (There is Exq which is protocol compatible with Sidekiq, others like Oban are available as well) because Erlang processes are not durable, nor do you get retry, concurrency control, etc. Everyone loves to claim Erlang is distributed and you can connect them so Redis is useless? but this is rarely utilized in the context of the web server. I have been using Elixir for more than 5+ years now, and I have never seen a valid use case for connecting two nodes.<p>In reality, the tech stack of the Elixir web app is mostly similar, but it makes life a lot easier if you ever have to deal with any kind of concurrency. Making concurrent requests is as simple as doing a map over a list and they just work, unlike other languages where you have to double-guess whether the library you use is thread-safe.</p>
]]></description><pubDate>Mon, 05 Feb 2024 16:29:12 +0000</pubDate><link>https://news.ycombinator.com/item?id=39262998</link><dc:creator>ananthakumaran</dc:creator><comments>https://news.ycombinator.com/item?id=39262998</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=39262998</guid></item><item><title><![CDATA[New comment by ananthakumaran in "Apple built iCloud to store billions of databases"]]></title><description><![CDATA[
<p>It depends on the layer, some of the layers might be able to take advantage of how the data is persisted. For example, if you use avro/protobuf, the decoder will handle it for you. If that's not the case, you would have to implement the migration by yourself. There is a paper[1] on this subject called "Online, asynchronous schema change in F1", which explains how to implement it.<p>1: <a href="https://dl.acm.org/doi/abs/10.14778/2536222.2536230" rel="nofollow">https://dl.acm.org/doi/abs/10.14778/2536222.2536230</a></p>
]]></description><pubDate>Wed, 17 Jan 2024 17:14:45 +0000</pubDate><link>https://news.ycombinator.com/item?id=39030519</link><dc:creator>ananthakumaran</dc:creator><comments>https://news.ycombinator.com/item?id=39030519</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=39030519</guid></item></channel></rss>