<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: kiitos</title><link>https://news.ycombinator.com/user?id=kiitos</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Wed, 15 Apr 2026 07:41:59 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=kiitos" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by kiitos in "100k TPS over a billion rows: the unreasonable effectiveness of SQLite"]]></title><description><![CDATA[
<p>1h of downtime per month means you're delivering at best two 9s of availability. again that may be fine for lots of applications but it's trivial scale, and certainly a couple orders of magnitude below what aws and cloudflare provide<p>taking a step back, if your application's db requirements can be satisfied by sqlite [+replication] then that's great, but that set of requirements is much narrower, and much easier to solve, than what postgres is for</p>
]]></description><pubDate>Wed, 03 Dec 2025 00:31:55 +0000</pubDate><link>https://news.ycombinator.com/item?id=46128839</link><dc:creator>kiitos</dc:creator><comments>https://news.ycombinator.com/item?id=46128839</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46128839</guid></item><item><title><![CDATA[New comment by kiitos in "100k TPS over a billion rows: the unreasonable effectiveness of SQLite"]]></title><description><![CDATA[
<p>> You're going to have down time for migrations unless you're very clever with your schema and/or replicas.<p>probably worth stating these kinds of design considerations/assumptions up-front<p>i'm sure lots of applications are fine with "downtime for [database] migrations" but lots more are definitely not, especially those interested in synthetic metrics like TPS</p>
]]></description><pubDate>Tue, 02 Dec 2025 21:08:13 +0000</pubDate><link>https://news.ycombinator.com/item?id=46126898</link><dc:creator>kiitos</dc:creator><comments>https://news.ycombinator.com/item?id=46126898</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46126898</guid></item><item><title><![CDATA[New comment by kiitos in "100k TPS over a billion rows: the unreasonable effectiveness of SQLite"]]></title><description><![CDATA[
<p>and that your application doesn't need to be resilient to host or network faults</p>
]]></description><pubDate>Tue, 02 Dec 2025 20:28:10 +0000</pubDate><link>https://news.ycombinator.com/item?id=46126377</link><dc:creator>kiitos</dc:creator><comments>https://news.ycombinator.com/item?id=46126377</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46126377</guid></item><item><title><![CDATA[New comment by kiitos in "A million ways to die from a data race in Go"]]></title><description><![CDATA[
<p>"setting a field to true" clearly means `x.field = value` and not `x.field.Set(value)`</p>
]]></description><pubDate>Wed, 26 Nov 2025 20:28:14 +0000</pubDate><link>https://news.ycombinator.com/item?id=46061960</link><dc:creator>kiitos</dc:creator><comments>https://news.ycombinator.com/item?id=46061960</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46061960</guid></item><item><title><![CDATA[New comment by kiitos in "A million ways to die from a data race in Go"]]></title><description><![CDATA[
<p>> I have been writing production applications in Go for a few years now.<p>sorry, what?<p><a href="https://gaultier.github.io/blog/a_million_ways_to_data_race_in_go.html#improper-lifetime-of-a-mutex" rel="nofollow">https://gaultier.github.io/blog/a_million_ways_to_data_race_...</a><p>this code is obviously wrong, <i>fractally</i> wrong<p>why would you create a new PricingService for every request? what makes you think a mutex in each of those (obviously unique) PricingService values would somehow protect the (inexplicably shared) PricingInfo value??<p>> the fix<p><a href="https://gaultier.github.io/blog/a_million_ways_to_data_race_in_go.html#the-fix-2" rel="nofollow">https://gaultier.github.io/blog/a_million_ways_to_data_race_...</a><p>what? this is in no way a fix to the problem.<p>it's impossible to believe the author's claims about their experience in the language, this is just absolute beginner stuff..</p>
]]></description><pubDate>Tue, 25 Nov 2025 18:32:00 +0000</pubDate><link>https://news.ycombinator.com/item?id=46049012</link><dc:creator>kiitos</dc:creator><comments>https://news.ycombinator.com/item?id=46049012</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46049012</guid></item><item><title><![CDATA[New comment by kiitos in "A million ways to die from a data race in Go"]]></title><description><![CDATA[
<p>> setting a field to true from potentially multiple threads can be a completely meaningful operation e.g. if you only care about if ANY of the threads have finished execution.<p>this only works when the language defines a memory model where bools are guaranteed to have atomic reads and writes<p>so you can't make a claim like "setting a field to true from ... multiple threads ... can be a meaningful operation e.g. if you only care about if ANY of the threads have finished execution"<p>as that claim only holds when the memory model allows it<p>which is not true in general, and definitely not true in go<p>assumptions everywhere!!</p>
]]></description><pubDate>Tue, 25 Nov 2025 18:08:38 +0000</pubDate><link>https://news.ycombinator.com/item?id=46048718</link><dc:creator>kiitos</dc:creator><comments>https://news.ycombinator.com/item?id=46048718</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46048718</guid></item><item><title><![CDATA[New comment by kiitos in "A million ways to die from a data race in Go"]]></title><description><![CDATA[
<p>the distinction between "concurrent use" and "concurrent modification" in go is in no way subtle<p>there is this whole demographic of folks, including the OP author, who seem to believe that they can start writing go programs without reading and understanding the language spec, the memory model, or any core docs, and that if the program compiles and runs that any error is the fault of the language rather than the programmer. this just ain't how it works. you have to understand the thing before you can use the thing. all of the bugs in the code in this blog post are immediately obvious to anyone who has even a basic understanding of the rules of the language. this stuff just isn't interesting.</p>
]]></description><pubDate>Tue, 25 Nov 2025 17:28:35 +0000</pubDate><link>https://news.ycombinator.com/item?id=46048198</link><dc:creator>kiitos</dc:creator><comments>https://news.ycombinator.com/item?id=46048198</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46048198</guid></item><item><title><![CDATA[New comment by kiitos in "Several core problems with Rust"]]></title><description><![CDATA[
<p>"running into memory issues" doesn't relate to memory safety as a property</p>
]]></description><pubDate>Mon, 24 Nov 2025 21:49:13 +0000</pubDate><link>https://news.ycombinator.com/item?id=46039792</link><dc:creator>kiitos</dc:creator><comments>https://news.ycombinator.com/item?id=46039792</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46039792</guid></item><item><title><![CDATA[New comment by kiitos in "Verifying your Matrix devices is becoming mandatory"]]></title><description><![CDATA[
<p>> Matrix wants to be an encrypted IRC or Slack<p>matrix's <i>users</i> want it to be a decentralized/encrypted irc/slack, but unfortunately matrix's <i>maintainers</i> believe their mandate is to build a next-gen tcp/ip (or something very close to that)<p>which dooms the project</p>
]]></description><pubDate>Thu, 20 Nov 2025 22:36:30 +0000</pubDate><link>https://news.ycombinator.com/item?id=45998828</link><dc:creator>kiitos</dc:creator><comments>https://news.ycombinator.com/item?id=45998828</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45998828</guid></item><item><title><![CDATA[New comment by kiitos in "Measuring political bias in Claude"]]></title><description><![CDATA[
<p><a href="https://www.promptfoo.dev/blog/grok-4-political-bias/" rel="nofollow">https://www.promptfoo.dev/blog/grok-4-political-bias/</a><p>> Grok is more right leaning than most other AIs, but it's still left of center.<p><a href="https://github.com/promptfoo/promptfoo/tree/main/examples/grok-4-political-bias" rel="nofollow">https://github.com/promptfoo/promptfoo/tree/main/examples/gr...</a><p>> Universal Left Bias: All major AI models (GPT-4.1, Gemini 2.5 Pro, Claude Opus 4, Grok 4) lean left of center<p>if every AI "leans left" then that should hopefully indicate to you that your notion of "center" is actually right-wing<p>or, as you said: reality has a left bias -- for sure!</p>
]]></description><pubDate>Thu, 20 Nov 2025 18:11:10 +0000</pubDate><link>https://news.ycombinator.com/item?id=45995700</link><dc:creator>kiitos</dc:creator><comments>https://news.ycombinator.com/item?id=45995700</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45995700</guid></item><item><title><![CDATA[New comment by kiitos in "Ditch your mutex, you deserve better"]]></title><description><![CDATA[
<p>this is an overly simplistic and somewhat reductive perspective on a pretty fundamental concept/primitive<p>> they were designed to turn single-threaded code into multi-threaded<p>not really<p>> usually a single point of contention quickly becomes a problem.<p>not generally, no<p>> They're liable to deadlocks/livelocks,<p>deadlocks/livelocks are orthogonal to any specific primitive<p>> They're also often backed byOS primitives (with big overheads) with inconsistent behaviors between platforms (spinlocks, waiting etc).<p>the mutex as a primitive is orthogonal to any specific implementation...<p>etc. etc.</p>
]]></description><pubDate>Tue, 18 Nov 2025 22:14:33 +0000</pubDate><link>https://news.ycombinator.com/item?id=45972962</link><dc:creator>kiitos</dc:creator><comments>https://news.ycombinator.com/item?id=45972962</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45972962</guid></item><item><title><![CDATA[New comment by kiitos in "AirPods libreated from Apple's ecosystem"]]></title><description><![CDATA[
<p>what? stone ages?<p>god forbid someone prioritize concrete user experience over abstract interoperability</p>
]]></description><pubDate>Mon, 17 Nov 2025 13:35:58 +0000</pubDate><link>https://news.ycombinator.com/item?id=45953431</link><dc:creator>kiitos</dc:creator><comments>https://news.ycombinator.com/item?id=45953431</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45953431</guid></item><item><title><![CDATA[New comment by kiitos in "Switching from GPG to Age"]]></title><description><![CDATA[
<p>I think you're wildly over-indexing on a statistically insignificant number of users and their expectations</p>
]]></description><pubDate>Sun, 16 Nov 2025 21:02:07 +0000</pubDate><link>https://news.ycombinator.com/item?id=45948371</link><dc:creator>kiitos</dc:creator><comments>https://news.ycombinator.com/item?id=45948371</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45948371</guid></item><item><title><![CDATA[New comment by kiitos in "Switching from GPG to Age"]]></title><description><![CDATA[
<p>you're just affirming the consequent here, listing various properties of pgp as requirements<p>in practice, few, if any, of your enumerated "wants" are valuable enough to outweigh their costs to complexity<p>this should be pretty clear from the fact that statistically nobody uses pgp</p>
]]></description><pubDate>Sun, 16 Nov 2025 21:00:43 +0000</pubDate><link>https://news.ycombinator.com/item?id=45948360</link><dc:creator>kiitos</dc:creator><comments>https://news.ycombinator.com/item?id=45948360</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45948360</guid></item><item><title><![CDATA[New comment by kiitos in "AirPods libreated from Apple's ecosystem"]]></title><description><![CDATA[
<p>why would apple do this? it's all cost and no benefit.<p>companies actually can build and ship stuff that isn't inter-operable with the world, this is Actually Good for user experience</p>
]]></description><pubDate>Sun, 16 Nov 2025 20:54:03 +0000</pubDate><link>https://news.ycombinator.com/item?id=45948308</link><dc:creator>kiitos</dc:creator><comments>https://news.ycombinator.com/item?id=45948308</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45948308</guid></item><item><title><![CDATA[New comment by kiitos in "AI Code Is Going to Kill Your Startup (and You're Going to Let It)"]]></title><description><![CDATA[
<p>much more than that -- more often than not, IME</p>
]]></description><pubDate>Sun, 16 Nov 2025 19:59:48 +0000</pubDate><link>https://news.ycombinator.com/item?id=45947935</link><dc:creator>kiitos</dc:creator><comments>https://news.ycombinator.com/item?id=45947935</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45947935</guid></item><item><title><![CDATA[New comment by kiitos in "Zig and the design choices within"]]></title><description><![CDATA[
<p>my point with memory safety is that it is not a single well defined concept<p>so if you wanna talk about it you at least gotta say which definition you're using</p>
]]></description><pubDate>Mon, 10 Nov 2025 18:18:33 +0000</pubDate><link>https://news.ycombinator.com/item?id=45878952</link><dc:creator>kiitos</dc:creator><comments>https://news.ycombinator.com/item?id=45878952</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45878952</guid></item><item><title><![CDATA[New comment by kiitos in "Zig and the design choices within"]]></title><description><![CDATA[
<p>probably should define memory safety before using it as an evaluation criterion<p>otherwise, not sure who the audience of this piece is supposed to be, but it's written in a pretty combative tone, which will not be persuasive to anyone who isn't already persuaded, so i guess more of a rant than anything worth sharing here</p>
]]></description><pubDate>Mon, 10 Nov 2025 17:22:52 +0000</pubDate><link>https://news.ycombinator.com/item?id=45878223</link><dc:creator>kiitos</dc:creator><comments>https://news.ycombinator.com/item?id=45878223</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45878223</guid></item><item><title><![CDATA[New comment by kiitos in "I analyzed the lineups at the most popular nightclubs"]]></title><description><![CDATA[
<p>dunno about the rest of your post but phonobar is legit, it's tiny but it has a dance floor and regularly hosts top-tier talent</p>
]]></description><pubDate>Thu, 06 Nov 2025 22:02:22 +0000</pubDate><link>https://news.ycombinator.com/item?id=45841018</link><dc:creator>kiitos</dc:creator><comments>https://news.ycombinator.com/item?id=45841018</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45841018</guid></item><item><title><![CDATA[New comment by kiitos in "Free software scares normal people"]]></title><description><![CDATA[
<p>i think what the author is characterizing as "free software" is probably better described as "software with bad UX"</p>
]]></description><pubDate>Thu, 30 Oct 2025 21:42:26 +0000</pubDate><link>https://news.ycombinator.com/item?id=45765723</link><dc:creator>kiitos</dc:creator><comments>https://news.ycombinator.com/item?id=45765723</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45765723</guid></item></channel></rss>