<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: shalabhc</title><link>https://news.ycombinator.com/user?id=shalabhc</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Wed, 30 Sep 2026 04:20:43 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=shalabhc" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by shalabhc in "Show HN: Skir – like Protocol Buffer but better"]]></title><description><![CDATA[
<p>> meaning being able to rename fields freely, is a must.<p>avro supports field renames though.<p>3. on second thought i believe you'd only have to deploy when you choose. the next build will force you to provide values (or opt into the default). so forcing inspection of construction sites seems good.</p>
]]></description><pubDate>Sun, 08 Mar 2026 21:58:09 +0000</pubDate><link>https://news.ycombinator.com/item?id=47301988</link><dc:creator>shalabhc</dc:creator><comments>https://news.ycombinator.com/item?id=47301988</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47301988</guid></item><item><title><![CDATA[New comment by shalabhc in "Show HN: Skir – like Protocol Buffer but better"]]></title><description><![CDATA[
<p>Did you look at other formats like Avro, Ion etc? Some feedback:<p>1. Dense json<p>Interesting idea. You can also just keep the compact binary if you just tag each payload with a schema id (see Avro). This also allows a generic reader to decode any binary format by reading the schema and then interpreting the binary payload, which is really useful. A secondary benefit is you never ever misinterpret a payload. I have seen bugs with protobufs misinterpreted since there is no connection handshake and interpretation is akin to 'cast'.<p>2. Compatibility checks<p>+100 there's not reason to allow breaking changes by default<p>3. Adding fields to a type: should you have to update all call sites?<p>I'm not so sure this is the right default. If I add a field to a core type used by 10 services, this requires rebuilding and deploying all of them.<p>4. enum looks great. what about backcompat when adding new enum fields? or sometimes when you need to 'upgrade' an atomic to an enum?</p>
]]></description><pubDate>Sun, 08 Mar 2026 21:06:19 +0000</pubDate><link>https://news.ycombinator.com/item?id=47301458</link><dc:creator>shalabhc</dc:creator><comments>https://news.ycombinator.com/item?id=47301458</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47301458</guid></item><item><title><![CDATA[New comment by shalabhc in "What is a database transaction?"]]></title><description><![CDATA[
<p>For all interested in this topic, I highly recommend the book Designing Data Intensive Applications <a href="https://www.goodreads.com/book/show/23463279-designing-data-intensive-applications" rel="nofollow">https://www.goodreads.com/book/show/23463279-designing-data-...</a>.<p>It goes into not only different isolation levels, but also some ambiguity in the traditional ACID definition.<p>I believe a 2nd edition is imminent.</p>
]]></description><pubDate>Sun, 22 Feb 2026 18:33:46 +0000</pubDate><link>https://news.ycombinator.com/item?id=47113434</link><dc:creator>shalabhc</dc:creator><comments>https://news.ycombinator.com/item?id=47113434</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47113434</guid></item><item><title><![CDATA[New comment by shalabhc in "Postgres UUIDv7 and per-back end monotonicity"]]></title><description><![CDATA[
<p>+1<p>What could be useful here is if postgres provided a way to determine the latest frozen uuid. This could be a few ms behind the last committed uuid but should guarantee that no new rows will land before the frozen uuid. Then we can use a single cursor track previously seen.</p>
]]></description><pubDate>Thu, 02 Jan 2025 18:56:03 +0000</pubDate><link>https://news.ycombinator.com/item?id=42577477</link><dc:creator>shalabhc</dc:creator><comments>https://news.ycombinator.com/item?id=42577477</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42577477</guid></item><item><title><![CDATA[New comment by shalabhc in "Pex: A tool for generating .pex (Python EXecutable) files, lock files and venvs"]]></title><description><![CDATA[
<p>We have been using pex to deploy code to running docker containers in ECS to avoid the cold start delay. Cuts down the iteration loop time for development significantly.<p><a href="https://dagster.io/blog/fast-deploys-with-pex-and-docker" rel="nofollow">https://dagster.io/blog/fast-deploys-with-pex-and-docker</a></p>
]]></description><pubDate>Sun, 17 Nov 2024 05:28:33 +0000</pubDate><link>https://news.ycombinator.com/item?id=42162192</link><dc:creator>shalabhc</dc:creator><comments>https://news.ycombinator.com/item?id=42162192</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42162192</guid></item><item><title><![CDATA[New comment by shalabhc in "What If Data Is a Bad Idea?"]]></title><description><![CDATA[
<p>The question is whether the concept of data is essential to how we structure computation.<p>Computation is a physical process and any model we use to build or describe this process is imposed by us. Whether this model should include the concept of data (and their counterparts "functions") is really the question here. While I don't think the data/function concept is essential to modeling computation, I also have a hard time diverging too far from these ideas because that is all I have seen for decades. I believe Kay is challenging us to explore the space of other concepts that can model computation.</p>
]]></description><pubDate>Thu, 22 Aug 2024 18:56:42 +0000</pubDate><link>https://news.ycombinator.com/item?id=41323357</link><dc:creator>shalabhc</dc:creator><comments>https://news.ycombinator.com/item?id=41323357</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41323357</guid></item><item><title><![CDATA[New comment by shalabhc in "Thoughts on Canonical S-Expressions (2019)"]]></title><description><![CDATA[
<p>I would suggest the author also look at Amazon Ion:<p>* It can be used as schema-less<p>* allows attaching metadata tags to values (which can serve as type hints[1]), and<p>* encodes blobs efficiently<p>I have not used it, but in the space of flexible formats it appears to have other interesting properties. For instance it can encode a symbol table making symbols really compact in the rest of the message. Symbol tables can be shared out of band.<p>[1] <a href="https://amazon-ion.github.io/ion-docs/docs/spec.html#annot" rel="nofollow">https://amazon-ion.github.io/ion-docs/docs/spec.html#annot</a></p>
]]></description><pubDate>Thu, 08 Aug 2024 22:29:19 +0000</pubDate><link>https://news.ycombinator.com/item?id=41197052</link><dc:creator>shalabhc</dc:creator><comments>https://news.ycombinator.com/item?id=41197052</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41197052</guid></item><item><title><![CDATA[Scalable Data Orchestration at Discord]]></title><description><![CDATA[
<p>Article URL: <a href="https://discord.com/blog/how-discord-uses-open-source-tools-for-scalable-data-orchestration-transformation">https://discord.com/blog/how-discord-uses-open-source-tools-for-scalable-data-orchestration-transformation</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=40948774">https://news.ycombinator.com/item?id=40948774</a></p>
<p>Points: 1</p>
<p># Comments: 0</p>
]]></description><pubDate>Fri, 12 Jul 2024 19:49:10 +0000</pubDate><link>https://discord.com/blog/how-discord-uses-open-source-tools-for-scalable-data-orchestration-transformation</link><dc:creator>shalabhc</dc:creator><comments>https://news.ycombinator.com/item?id=40948774</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=40948774</guid></item><item><title><![CDATA[New comment by shalabhc in "A Mathematical Theory of Communication [pdf]"]]></title><description><![CDATA[
<p>While well known for this paper and "information theory", Shannon's master's thesis* is worth checking out as well. It demonstrated some equivalence between electrical circuits and boolean algebra, and was one of the key ideas that enabled digital computers.<p>* <a href="https://en.wikipedia.org/wiki/A_Symbolic_Analysis_of_Relay_and_Switching_Circuits" rel="nofollow">https://en.wikipedia.org/wiki/A_Symbolic_Analysis_of_Relay_a...</a></p>
]]></description><pubDate>Fri, 03 May 2024 16:43:30 +0000</pubDate><link>https://news.ycombinator.com/item?id=40249638</link><dc:creator>shalabhc</dc:creator><comments>https://news.ycombinator.com/item?id=40249638</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=40249638</guid></item><item><title><![CDATA[New comment by shalabhc in "How Convex Works"]]></title><description><![CDATA[
<p>> Instead, we can check whether any of the writes between the begin timestamp and commit timestamp overlap with our transaction’s read set.<p>Do you handle the case where the actual objects don't overlap but result of an aggregate query is still affected? For instance a `count(*) where ..` query is affected by an insert.</p>
]]></description><pubDate>Mon, 15 Apr 2024 05:07:20 +0000</pubDate><link>https://news.ycombinator.com/item?id=40037235</link><dc:creator>shalabhc</dc:creator><comments>https://news.ycombinator.com/item?id=40037235</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=40037235</guid></item><item><title><![CDATA[New comment by shalabhc in "How Figma's databases team lived to tell the scale"]]></title><description><![CDATA[
<p>"Lots of Little Databases" reminded me of <a href="https://www.actordb.com/" rel="nofollow">https://www.actordb.com/</a> which does lots of server-side sqlite instances, but the project now looks defunct.</p>
]]></description><pubDate>Fri, 15 Mar 2024 02:20:45 +0000</pubDate><link>https://news.ycombinator.com/item?id=39711431</link><dc:creator>shalabhc</dc:creator><comments>https://news.ycombinator.com/item?id=39711431</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=39711431</guid></item><item><title><![CDATA[New comment by shalabhc in "How Figma's databases team lived to tell the scale"]]></title><description><![CDATA[
<p>Global consistency is expensive, both latency-wise and cost-wise. In reality most apps don't need global serializability across all objects. For instance, you probably don't need serializability across different tenants, organizations, workspaces, etc. Spanner provides serializability across all objects IIUC - so you pay for it whether you need it or not.<p>The other side of something like Spanner is the quorum-based latency is often optimized by adding another cache on top, which instantly defeats the original consistency guarantees. The consistency of (spanner+my_cache) is not the same as the consistency of spanner. So if we're back to app level consistency guarantees anyway, turns out the "managed" solution is only partial.<p>Ideally the managed db systems would have flexible consistency, allowing me to configure not just which object sets need consistency but also letting me configure caches with lag tolerance. This would let me choose trade-offs without having to implement consistent caching and other optimization tricks on top of globally consistent/serializable databases.</p>
]]></description><pubDate>Thu, 14 Mar 2024 18:37:02 +0000</pubDate><link>https://news.ycombinator.com/item?id=39707441</link><dc:creator>shalabhc</dc:creator><comments>https://news.ycombinator.com/item?id=39707441</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=39707441</guid></item><item><title><![CDATA[New comment by shalabhc in "Firefox 1.0 New York Times ad (2004)"]]></title><description><![CDATA[
<p>Check out jwz's blog posts, eg <a href="https://www.jwz.org/blog/2023/01/mozilla-orgs-25th-anniversary/" rel="nofollow noreferrer">https://www.jwz.org/blog/2023/01/mozilla-orgs-25th-anniversa...</a><p>You may find other interesting articles linked from here:<a href="https://en.wikipedia.org/wiki/Jamie_Zawinski" rel="nofollow noreferrer">https://en.wikipedia.org/wiki/Jamie_Zawinski</a>, eg <a href="https://www.jwz.org/gruntle/nomo.html" rel="nofollow noreferrer">https://www.jwz.org/gruntle/nomo.html</a></p>
]]></description><pubDate>Sun, 27 Aug 2023 04:53:50 +0000</pubDate><link>https://news.ycombinator.com/item?id=37279524</link><dc:creator>shalabhc</dc:creator><comments>https://news.ycombinator.com/item?id=37279524</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=37279524</guid></item><item><title><![CDATA[New comment by shalabhc in "Pydantic V2 rewritten in Rust is 5-50x faster than Pydantic V1"]]></title><description><![CDATA[
<p>I'd be curious is Cython was evaluated as an alternative. With less of an impedance mismatch with Python and capable of similar speedups it might be a good fit for this use case.</p>
]]></description><pubDate>Sat, 08 Apr 2023 21:50:44 +0000</pubDate><link>https://news.ycombinator.com/item?id=35497992</link><dc:creator>shalabhc</dc:creator><comments>https://news.ycombinator.com/item?id=35497992</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=35497992</guid></item><item><title><![CDATA[New comment by shalabhc in "How we deploy faster with warm Docker containers"]]></title><description><![CDATA[
<p>Is EKS safe for multi-tenant use? When we looked it appeared unsafe if we want to run our users code next to each other because of possible isolation issues.</p>
]]></description><pubDate>Thu, 09 Mar 2023 20:28:46 +0000</pubDate><link>https://news.ycombinator.com/item?id=35086231</link><dc:creator>shalabhc</dc:creator><comments>https://news.ycombinator.com/item?id=35086231</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=35086231</guid></item><item><title><![CDATA[New comment by shalabhc in "How we deploy faster with warm Docker containers"]]></title><description><![CDATA[
<p>I agree with your sentiment.<p>K8s may have some more controls for the "incremental deployment" case but I'm less confident about the isolation between pods to run user provided code.</p>
]]></description><pubDate>Thu, 09 Mar 2023 18:18:26 +0000</pubDate><link>https://news.ycombinator.com/item?id=35084655</link><dc:creator>shalabhc</dc:creator><comments>https://news.ycombinator.com/item?id=35084655</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=35084655</guid></item><item><title><![CDATA[New comment by shalabhc in "How we deploy faster with warm Docker containers"]]></title><description><![CDATA[
<p>(author here)<p>There are two sides to the problem: the build and the deploy.<p>> it feels like just having a build machine with storage would immediately solve the problem, there would be no remote pulling. Is that not a solution?<p>Indeed, ephemeral builders are an issue and this would be an alternative solution. However doing this for an arbitrary numbers of users who want on-demand deploys for a variety of projects is non trivial. Most CI environments give you a "clean environment" at startup.<p>Even if the build takes 0 seconds, the other part is re-running this docker image (where 100s of MB is unchanged and say the final 1MB layer changed). You need to ship all these layers to a provisioned container and boot it up. Even this is possible to optimize by heavy caching and optimizing the container service - but that's an alternative solution with different trade-offs. With pex, we can update any docker image in-place so it is container service agnostic. It also works with our current service (Fargate) which has famously slow startup times.</p>
]]></description><pubDate>Wed, 08 Mar 2023 15:30:50 +0000</pubDate><link>https://news.ycombinator.com/item?id=35070209</link><dc:creator>shalabhc</dc:creator><comments>https://news.ycombinator.com/item?id=35070209</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=35070209</guid></item><item><title><![CDATA[New comment by shalabhc in "How we deploy faster with warm Docker containers"]]></title><description><![CDATA[
<p>Thanks for the interesting links - I'll check them out! We would need not just another CI but also another container platform because launching a docker container is also slow.<p>Irrespective of the CI, I believe all cached Docker layers will need to be downloaded onto the build machine before it can be rebuilt.<p>Still, I believe it is possible to build and deploy faster even with a "docker image only" design and it's something we are still looking at. The question is what is the lower bound here - would be hard to beat "sync a file to a warm container and run it". Pex gives us a pretty good lower bound that is also container platform agnostic.</p>
]]></description><pubDate>Wed, 08 Mar 2023 08:29:46 +0000</pubDate><link>https://news.ycombinator.com/item?id=35066630</link><dc:creator>shalabhc</dc:creator><comments>https://news.ycombinator.com/item?id=35066630</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=35066630</guid></item><item><title><![CDATA[New comment by shalabhc in "How we deploy faster with warm Docker containers"]]></title><description><![CDATA[
<p>Getting the message to the right container is one bottleneck. Currently this is routed through a couple of hops and includes some polling. This could all be optimized (if we had a direct line to the container) but the same messaging model is used in other contexts and would need architectural changes. Another bottleneck is running `source.pex` itself takes a few seconds to start up because it analyzes user code (and in some cases may do expensive computation.)
But you're right: if `source.pex` as a hello world program, just downloading and running it should be pretty fast - I'd expect around 1s.</p>
]]></description><pubDate>Wed, 08 Mar 2023 07:52:54 +0000</pubDate><link>https://news.ycombinator.com/item?id=35066400</link><dc:creator>shalabhc</dc:creator><comments>https://news.ycombinator.com/item?id=35066400</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=35066400</guid></item><item><title><![CDATA[New comment by shalabhc in "How we deploy faster with warm Docker containers"]]></title><description><![CDATA[
<p>(author here)<p>Firecracker is definitely very interesting. Would require more ops work for us to run bare metal EC2 (we currently use Fargate). IIUC reusing pre-existing environments would require us to share ext4 filesystems across the VMs. Not sure if antistrano helps here but will look into it.</p>
]]></description><pubDate>Wed, 08 Mar 2023 06:01:29 +0000</pubDate><link>https://news.ycombinator.com/item?id=35065772</link><dc:creator>shalabhc</dc:creator><comments>https://news.ycombinator.com/item?id=35065772</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=35065772</guid></item></channel></rss>