<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: zadikian</title><link>https://news.ycombinator.com/user?id=zadikian</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Sat, 22 Aug 2026 01:51:15 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=zadikian" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by zadikian in "AI boosted homework scores, then exam scores dropped: study"]]></title><description><![CDATA[
<p>You do sometimes get to unlock it by being allowed to use calculators in more advanced classes</p>
]]></description><pubDate>Fri, 21 Aug 2026 18:08:49 +0000</pubDate><link>https://news.ycombinator.com/item?id=49391838</link><dc:creator>zadikian</dc:creator><comments>https://news.ycombinator.com/item?id=49391838</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49391838</guid></item><item><title><![CDATA[New comment by zadikian in "What ORMs have taught me: just learn SQL (2014)"]]></title><description><![CDATA[
<p>And then the 100 lines of JS/Py ends up being way slower than the manual SQL, plus the autogen'd SQL part of it is slow, plus you can't even get the SQL query to profile without running the actual thing with prints.</p>
]]></description><pubDate>Sat, 04 Jul 2026 16:35:37 +0000</pubDate><link>https://news.ycombinator.com/item?id=48786700</link><dc:creator>zadikian</dc:creator><comments>https://news.ycombinator.com/item?id=48786700</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48786700</guid></item><item><title><![CDATA[New comment by zadikian in "What ORMs have taught me: just learn SQL (2014)"]]></title><description><![CDATA[
<p>I never use ORMs. But slightly before 2014, there was still kind of a reason to use them, getting/setting a whole nested bag of fields at once that you don't care about individually. Json/jsonb now handles that better.</p>
]]></description><pubDate>Sat, 04 Jul 2026 16:34:02 +0000</pubDate><link>https://news.ycombinator.com/item?id=48786681</link><dc:creator>zadikian</dc:creator><comments>https://news.ycombinator.com/item?id=48786681</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48786681</guid></item><item><title><![CDATA[New comment by zadikian in "Postgres transactions are a distributed systems superpower"]]></title><description><![CDATA[
<p>The part about durable workflows is technically correct, but it's focusing on different things than what I've ever run into in practice. Any mildly complex system will have side effects outside your DB, then you want idempotency. If you have no side effects, you probably don't need a durable workflow in the first place? Maybe there's a more concrete example.<p>I have rolled my own little durable workflows in Postgres before, in fact before I even knew durable workflows were a thing with solutions like Temporal. That's fine for many cases where you aren't doing enough steps for it to be tedious, and/or you want permanent records. Would do it again, but not for atomicity reasons.<p>Other comments have already discussed the issue with the outbox UDF, your external system has to poll and retry either way. It works though. Maybe I'm misunderstanding this?</p>
]]></description><pubDate>Fri, 03 Jul 2026 00:30:11 +0000</pubDate><link>https://news.ycombinator.com/item?id=48769191</link><dc:creator>zadikian</dc:creator><comments>https://news.ycombinator.com/item?id=48769191</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48769191</guid></item><item><title><![CDATA[New comment by zadikian in "crustc: entirety of `rustc`, translated to C"]]></title><description><![CDATA[
<p>So the author made a Rust to C transpiler and immediately used it to transpile... the Rust compiler. I love it.</p>
]]></description><pubDate>Fri, 03 Jul 2026 00:11:31 +0000</pubDate><link>https://news.ycombinator.com/item?id=48769063</link><dc:creator>zadikian</dc:creator><comments>https://news.ycombinator.com/item?id=48769063</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48769063</guid></item><item><title><![CDATA[New comment by zadikian in "Google Hits 50% IPv6"]]></title><description><![CDATA[
<p>They have an AAAA for v6 as of right now, but it wasn't always there <a href="https://www.nslookup.io/domains/news.ycombinator.com/dns-records/aaaa/" rel="nofollow">https://www.nslookup.io/domains/news.ycombinator.com/dns-rec...</a></p>
]]></description><pubDate>Mon, 22 Jun 2026 19:13:00 +0000</pubDate><link>https://news.ycombinator.com/item?id=48634682</link><dc:creator>zadikian</dc:creator><comments>https://news.ycombinator.com/item?id=48634682</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48634682</guid></item><item><title><![CDATA[New comment by zadikian in "Google Hits 50% IPv6"]]></title><description><![CDATA[
<p>Almost all mobile carriers use v6, but not exclusively. They also hand out a v4 to every customer. The v6-only part is their internal network.</p>
]]></description><pubDate>Mon, 22 Jun 2026 02:54:58 +0000</pubDate><link>https://news.ycombinator.com/item?id=48625094</link><dc:creator>zadikian</dc:creator><comments>https://news.ycombinator.com/item?id=48625094</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48625094</guid></item><item><title><![CDATA[New comment by zadikian in "Prefer duplication over the wrong abstraction (2016)"]]></title><description><![CDATA[
<p>The saying is you build better abstractions if you don't build them too early.</p>
]]></description><pubDate>Sun, 21 Jun 2026 19:40:46 +0000</pubDate><link>https://news.ycombinator.com/item?id=48621928</link><dc:creator>zadikian</dc:creator><comments>https://news.ycombinator.com/item?id=48621928</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48621928</guid></item><item><title><![CDATA[New comment by zadikian in "Prefer duplication over the wrong abstraction (2016)"]]></title><description><![CDATA[
<p>Yep. Keyword "tried," as in they did it for a while then hit a point where it's impossible to faithfully follow the abstractions because they're wrong.</p>
]]></description><pubDate>Sun, 21 Jun 2026 19:37:38 +0000</pubDate><link>https://news.ycombinator.com/item?id=48621901</link><dc:creator>zadikian</dc:creator><comments>https://news.ycombinator.com/item?id=48621901</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48621901</guid></item><item><title><![CDATA[New comment by zadikian in "Prefer duplication over the wrong abstraction (2016)"]]></title><description><![CDATA[
<p>I always felt like I abstract and modularize things way less eagerly than other programmers. Was pleasantly surprised to find that LLMs do it mostly my way by default, then again they're also bad at abstracting when it's actually needed.</p>
]]></description><pubDate>Sun, 21 Jun 2026 19:31:01 +0000</pubDate><link>https://news.ycombinator.com/item?id=48621842</link><dc:creator>zadikian</dc:creator><comments>https://news.ycombinator.com/item?id=48621842</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48621842</guid></item><item><title><![CDATA[New comment by zadikian in "Google Hits 50% IPv6"]]></title><description><![CDATA[
<p>Not necessarily. I've gone down this rabbit hole in another thread, tldr there are alternatives that would've been easier initially but with the downside of leaving the routes fragmented.</p>
]]></description><pubDate>Sun, 21 Jun 2026 17:04:46 +0000</pubDate><link>https://news.ycombinator.com/item?id=48620540</link><dc:creator>zadikian</dc:creator><comments>https://news.ycombinator.com/item?id=48620540</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48620540</guid></item><item><title><![CDATA[New comment by zadikian in "I hate compilers"]]></title><description><![CDATA[
<p>I agree, also making it do useful work could detract from how well it works as bot-prevention. Recaptcha suffered from its own success eventually, having to ask people to read nearly impossible things, and now many sites are instead asking me to solve puzzles with no practical use.<p>P.S. Great to see you, omoikane</p>
]]></description><pubDate>Thu, 18 Jun 2026 19:43:43 +0000</pubDate><link>https://news.ycombinator.com/item?id=48590521</link><dc:creator>zadikian</dc:creator><comments>https://news.ycombinator.com/item?id=48590521</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48590521</guid></item><item><title><![CDATA[New comment by zadikian in "PgDog is funded and coming to a database near you"]]></title><description><![CDATA[
<p>This is exciting. INSERT (SELECT ...) doesn't work though, right? The docs only mention VALUES inserts.</p>
]]></description><pubDate>Thu, 11 Jun 2026 02:55:44 +0000</pubDate><link>https://news.ycombinator.com/item?id=48485722</link><dc:creator>zadikian</dc:creator><comments>https://news.ycombinator.com/item?id=48485722</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48485722</guid></item><item><title><![CDATA[New comment by zadikian in "Do we fear the serializable isolation level more than we fear subtle bugs (2024)"]]></title><description><![CDATA[
<p>The "transaction safety" part is confusing. What they mean is if you use SERIALIZABLE, transactions need to be retried, so your code inside the xact should be idempotent. I guess this is safer in Haskell because there are no variables, but that doesn't stop your code from having other side effects.</p>
]]></description><pubDate>Tue, 09 Jun 2026 23:14:50 +0000</pubDate><link>https://news.ycombinator.com/item?id=48469116</link><dc:creator>zadikian</dc:creator><comments>https://news.ycombinator.com/item?id=48469116</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48469116</guid></item><item><title><![CDATA[New comment by zadikian in "Do we fear the serializable isolation level more than we fear subtle bugs (2024)"]]></title><description><![CDATA[
<p>Oh I misremembered, yeah just tested and the second INSERT errors.</p>
]]></description><pubDate>Mon, 08 Jun 2026 15:22:56 +0000</pubDate><link>https://news.ycombinator.com/item?id=48446575</link><dc:creator>zadikian</dc:creator><comments>https://news.ycombinator.com/item?id=48446575</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48446575</guid></item><item><title><![CDATA[New comment by zadikian in "Do we fear the serializable isolation level more than we fear subtle bugs (2024)"]]></title><description><![CDATA[
<p>> TBH I think I've seen more database use than not specifically because it serves as the central race-resolver in a system<p>But you usually don't need serializable for this, cause READ COMMITTED locks the rows during updates.</p>
]]></description><pubDate>Mon, 08 Jun 2026 07:49:45 +0000</pubDate><link>https://news.ycombinator.com/item?id=48442438</link><dc:creator>zadikian</dc:creator><comments>https://news.ycombinator.com/item?id=48442438</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48442438</guid></item><item><title><![CDATA[New comment by zadikian in "Do we fear the serializable isolation level more than we fear subtle bugs (2024)"]]></title><description><![CDATA[
<p>Cause I want relations and SQL. But also I kinda get what you mean and would not use serializable in Postgres.</p>
]]></description><pubDate>Mon, 08 Jun 2026 06:18:22 +0000</pubDate><link>https://news.ycombinator.com/item?id=48441868</link><dc:creator>zadikian</dc:creator><comments>https://news.ycombinator.com/item?id=48441868</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48441868</guid></item><item><title><![CDATA[New comment by zadikian in "Do we fear the serializable isolation level more than we fear subtle bugs (2024)"]]></title><description><![CDATA[
<p>In my experience, the performance hit is so bad that it's not feasible to use that way. It's also not strictly safer behavior-wise because retries can trip people up.</p>
]]></description><pubDate>Mon, 08 Jun 2026 00:16:27 +0000</pubDate><link>https://news.ycombinator.com/item?id=48439997</link><dc:creator>zadikian</dc:creator><comments>https://news.ycombinator.com/item?id=48439997</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48439997</guid></item><item><title><![CDATA[New comment by zadikian in "Do we fear the serializable isolation level more than we fear subtle bugs (2024)"]]></title><description><![CDATA[
<p>Tbh I always forget the specifics soon after reading them. Basically you can do an atomic UPDATE WHERE if there are no subqueries involved. 90% of the time that's good enough, and for anything else I end up refreshing on features like SELECT FOR UPDATE.<p>Well also I know Postgres UNIQUE indexes provide additional locking. Like you can do an INSERT... WHERE NOT EXISTS or INSERT... ON CONFLICT that is guaranteed to succeed.</p>
]]></description><pubDate>Mon, 08 Jun 2026 00:15:22 +0000</pubDate><link>https://news.ycombinator.com/item?id=48439991</link><dc:creator>zadikian</dc:creator><comments>https://news.ycombinator.com/item?id=48439991</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48439991</guid></item><item><title><![CDATA[New comment by zadikian in "Do we fear the serializable isolation level more than we fear subtle bugs (2024)"]]></title><description><![CDATA[
<p>Was curious about the Flexcoin hack, but the article wasn't loading, so here's an archive: <a href="https://web.archive.org/web/20240423000007/https://hackingdistributed.com/2014/04/06/another-one-bites-the-dust-flexcoin/" rel="nofollow">https://web.archive.org/web/20240423000007/https://hackingdi...</a> Supposedly it was this simple:<p><pre><code>  mybalance = database.read("account-number")
  newbalance = mybalance - amount
  database.write("account-number", newbalance)
  dispense_cash(amount)   // or send bitcoins to customer
</code></pre>
and MongoDB didn't even have a way to do this atomically? An RDBMS with read-committed would handle this fine if you did "read for update" on that row.</p>
]]></description><pubDate>Sun, 07 Jun 2026 23:31:21 +0000</pubDate><link>https://news.ycombinator.com/item?id=48439733</link><dc:creator>zadikian</dc:creator><comments>https://news.ycombinator.com/item?id=48439733</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48439733</guid></item></channel></rss>