<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: hruk</title><link>https://news.ycombinator.com/user?id=hruk</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Wed, 29 Apr 2026 05:52:29 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=hruk" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by hruk in "Don't Forget the WAL: How I Lost SQLite Data in Podman Containers"]]></title><description><![CDATA[
<p>bruh</p>
]]></description><pubDate>Mon, 05 Jan 2026 02:50:49 +0000</pubDate><link>https://news.ycombinator.com/item?id=46494810</link><dc:creator>hruk</dc:creator><comments>https://news.ycombinator.com/item?id=46494810</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46494810</guid></item><item><title><![CDATA[New comment by hruk in "SQLite concurrency and why you should care about it"]]></title><description><![CDATA[
<p>Roughly 80/20 read to write. On the instance's gp3 EBS volume (which is pretty slow), we've pushed ~700 write transactions per second without much problem.</p>
]]></description><pubDate>Sat, 01 Nov 2025 16:06:32 +0000</pubDate><link>https://news.ycombinator.com/item?id=45782763</link><dc:creator>hruk</dc:creator><comments>https://news.ycombinator.com/item?id=45782763</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45782763</guid></item><item><title><![CDATA[New comment by hruk in "SQLite concurrency and why you should care about it"]]></title><description><![CDATA[
<p>This is just untrue - the naive implementation (make the API call, write a single row to the db) will work fine, as transactions are quite fast on modern hardware.<p>What do you consider "serious" work? We've served a SaaS product from SQLite (roughly 300-500 queries per second at peak) for several years without much pain. Plus, it's not like PG and MySQL are pain-free, either - they all have their quirks.</p>
]]></description><pubDate>Sat, 01 Nov 2025 14:52:37 +0000</pubDate><link>https://news.ycombinator.com/item?id=45782075</link><dc:creator>hruk</dc:creator><comments>https://news.ycombinator.com/item?id=45782075</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45782075</guid></item><item><title><![CDATA[New comment by hruk in "Introduction to Multi-Armed Bandits (2019)"]]></title><description><![CDATA[
<p>This is basically Breiman's "two cultures" at play. Do you care about optimizing y-hat, or do you care about doing inference on some parameters in your model? Depends on the business case, typically.</p>
]]></description><pubDate>Wed, 01 Oct 2025 11:25:06 +0000</pubDate><link>https://news.ycombinator.com/item?id=45436479</link><dc:creator>hruk</dc:creator><comments>https://news.ycombinator.com/item?id=45436479</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45436479</guid></item><item><title><![CDATA[New comment by hruk in "Introduction to Multi-Armed Bandits (2019)"]]></title><description><![CDATA[
<p>You can do fairly well here with ridge regression as a poor man's hierarchical model. We've used this library's Bayesian ridge regression to support a geo-pricing strategy (and it contains the Dirichlet-Multinomial approach as well): <a href="https://github.com/bayesianbandits/bayesianbandits" rel="nofollow">https://github.com/bayesianbandits/bayesianbandits</a></p>
]]></description><pubDate>Tue, 30 Sep 2025 23:40:10 +0000</pubDate><link>https://news.ycombinator.com/item?id=45432655</link><dc:creator>hruk</dc:creator><comments>https://news.ycombinator.com/item?id=45432655</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45432655</guid></item><item><title><![CDATA[New comment by hruk in "Rails on SQLite: new ways to cause outages"]]></title><description><![CDATA[
<p>All databases are painful in their own way. I've used all three at various times in my career, and I think SQLite behaves quite predictably, which has made it a lot easier for me personally to administrate.<p>If I had to start something new, I'd use SQLite until at least high 5 digit queries per second. Maybe more.</p>
]]></description><pubDate>Thu, 11 Sep 2025 23:17:21 +0000</pubDate><link>https://news.ycombinator.com/item?id=45217099</link><dc:creator>hruk</dc:creator><comments>https://news.ycombinator.com/item?id=45217099</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45217099</guid></item><item><title><![CDATA[New comment by hruk in "Use One Big Server (2022)"]]></title><description><![CDATA[
<p>Agree on many things here, but SQLite does support WAL mode which supports 1 writer/N writer readers with snapshot isolation on reads. Writes are serialized but still quite fast.<p>SQLite (actually SQL-ite, like a mineral) maybe be light, but so are many workloads these days. Even 1000 queries per second is quite doable with SQLite and modest hardware, and I've worked at billion dollar businesses handling fewer queries than that.</p>
]]></description><pubDate>Mon, 01 Sep 2025 01:58:12 +0000</pubDate><link>https://news.ycombinator.com/item?id=45088753</link><dc:creator>hruk</dc:creator><comments>https://news.ycombinator.com/item?id=45088753</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45088753</guid></item><item><title><![CDATA[New comment by hruk in "P-Hacking in Startups"]]></title><description><![CDATA[
<p>We've used this Python package to do this: <a href="https://github.com/bayesianbandits/bayesianbandits">https://github.com/bayesianbandits/bayesianbandits</a></p>
]]></description><pubDate>Sun, 22 Jun 2025 15:30:27 +0000</pubDate><link>https://news.ycombinator.com/item?id=44347722</link><dc:creator>hruk</dc:creator><comments>https://news.ycombinator.com/item?id=44347722</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44347722</guid></item><item><title><![CDATA[New comment by hruk in "LumoSQL"]]></title><description><![CDATA[
<p>Yep, we use Litestream. It's been very reliable.</p>
]]></description><pubDate>Wed, 28 May 2025 10:00:30 +0000</pubDate><link>https://news.ycombinator.com/item?id=44114369</link><dc:creator>hruk</dc:creator><comments>https://news.ycombinator.com/item?id=44114369</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44114369</guid></item><item><title><![CDATA[New comment by hruk in "LumoSQL"]]></title><description><![CDATA[
<p>FWIW, I've been running a system with roughly 100K users, about 25 qps on average, with a single SQLite file for several years. No issues with data.</p>
]]></description><pubDate>Tue, 27 May 2025 12:22:56 +0000</pubDate><link>https://news.ycombinator.com/item?id=44106236</link><dc:creator>hruk</dc:creator><comments>https://news.ycombinator.com/item?id=44106236</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44106236</guid></item><item><title><![CDATA[New comment by hruk in "Ask HN: Did bandits go out of fashion?"]]></title><description><![CDATA[
<p>We've used this library for Bayesian contextual bandits in production (we have a critical business use case supported by a ~200K feature sparse Linear UCB bandit). It's a small community, but it's also a small enough codebase that we've read through all of it and feel fine about maintaining it ourselves in case it goes inactive.<p><a href="https://github.com/bayesianbandits/bayesianbandits">https://github.com/bayesianbandits/bayesianbandits</a></p>
]]></description><pubDate>Sat, 22 Feb 2025 01:32:55 +0000</pubDate><link>https://news.ycombinator.com/item?id=43135191</link><dc:creator>hruk</dc:creator><comments>https://news.ycombinator.com/item?id=43135191</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43135191</guid></item><item><title><![CDATA[New comment by hruk in "Siren Call of SQLite on the Server"]]></title><description><![CDATA[
<p>We do zero-downtime deployments with a single Docker volume containing the db. Spin up a container running the new code, wait til it's healthy, then kill the old container.</p>
]]></description><pubDate>Wed, 19 Feb 2025 00:26:50 +0000</pubDate><link>https://news.ycombinator.com/item?id=43096983</link><dc:creator>hruk</dc:creator><comments>https://news.ycombinator.com/item?id=43096983</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43096983</guid></item><item><title><![CDATA[New comment by hruk in "Siren Call of SQLite on the Server"]]></title><description><![CDATA[
<p>We have some analytics queries powered by Airflow running on a separate box. We set up Litestream to replicate to that box via SFTP, and then dump changes hourly into Snowflake.</p>
]]></description><pubDate>Tue, 18 Feb 2025 16:35:28 +0000</pubDate><link>https://news.ycombinator.com/item?id=43091712</link><dc:creator>hruk</dc:creator><comments>https://news.ycombinator.com/item?id=43091712</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43091712</guid></item><item><title><![CDATA[New comment by hruk in "Siren Call of SQLite on the Server"]]></title><description><![CDATA[
<p>You are still correct for network filesystems, but there are no issues opening multiple connections on the same host (even across OCI container boundaries).</p>
]]></description><pubDate>Tue, 18 Feb 2025 14:32:40 +0000</pubDate><link>https://news.ycombinator.com/item?id=43089908</link><dc:creator>hruk</dc:creator><comments>https://news.ycombinator.com/item?id=43089908</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43089908</guid></item><item><title><![CDATA[New comment by hruk in "Siren Call of SQLite on the Server"]]></title><description><![CDATA[
<p>You can have as many connections from as many processes as you want.</p>
]]></description><pubDate>Tue, 18 Feb 2025 14:08:41 +0000</pubDate><link>https://news.ycombinator.com/item?id=43089627</link><dc:creator>hruk</dc:creator><comments>https://news.ycombinator.com/item?id=43089627</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43089627</guid></item><item><title><![CDATA[New comment by hruk in "Siren Call of SQLite on the Server"]]></title><description><![CDATA[
<p>Yes, we've used the Litestream + SQLite + Go webserver route in production for several years and while we've had to deal with all of these issues, on the whole I don't have a strong argument for going back and doing it differently.<p>I'm curious what issues the author had with high availability - I totally understand the issue in theory, but in practice our SQLite-backed service has had 6 minutes of downtime in the last 3 years when we were upgrading the host. That works out to being quite a few 9s.<p>I do agree with the article on a few points - distributed SQLite doesn't really seem all that worthwhile to me (yet, anyway).</p>
]]></description><pubDate>Tue, 18 Feb 2025 12:34:49 +0000</pubDate><link>https://news.ycombinator.com/item?id=43088778</link><dc:creator>hruk</dc:creator><comments>https://news.ycombinator.com/item?id=43088778</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43088778</guid></item><item><title><![CDATA[New comment by hruk in "Lines of code that beat A/B testing (2012)"]]></title><description><![CDATA[
<p>No, you definitely have to pick your battles. Something that you want to continuously optimize over time makes a lot more sense than something where it's reasonable to test and the commit to a path forever.</p>
]]></description><pubDate>Wed, 15 Jan 2025 15:05:17 +0000</pubDate><link>https://news.ycombinator.com/item?id=42711611</link><dc:creator>hruk</dc:creator><comments>https://news.ycombinator.com/item?id=42711611</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42711611</guid></item><item><title><![CDATA[New comment by hruk in "Lines of code that beat A/B testing (2012)"]]></title><description><![CDATA[
<p>Indeed, we are well aware.</p>
]]></description><pubDate>Wed, 15 Jan 2025 14:55:54 +0000</pubDate><link>https://news.ycombinator.com/item?id=42711469</link><dc:creator>hruk</dc:creator><comments>https://news.ycombinator.com/item?id=42711469</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42711469</guid></item><item><title><![CDATA[New comment by hruk in "Lines of code that beat A/B testing (2012)"]]></title><description><![CDATA[
<p>I don't know, all of these are pretty surmountable. We've done dynamic pricing with contextual multi-armed bandits, in which each context gets a single decision per time block and gross profit is summed up at the end of each block and used to reward the agent.<p>That being said, I agree that MABs are poor for experimentation (they produce biased estimates that depend on somewhat hard-to-quantify properties of your policy). But they're not for experimentation! They're for optimizing a target metric.</p>
]]></description><pubDate>Tue, 14 Jan 2025 03:20:16 +0000</pubDate><link>https://news.ycombinator.com/item?id=42693146</link><dc:creator>hruk</dc:creator><comments>https://news.ycombinator.com/item?id=42693146</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42693146</guid></item><item><title><![CDATA[New comment by hruk in "Lines of code that beat A/B testing (2012)"]]></title><description><![CDATA[
<p>We've been happy using Thompson sampling in production with this library <a href="https://github.com/bayesianbandits/bayesianbandits">https://github.com/bayesianbandits/bayesianbandits</a></p>
]]></description><pubDate>Mon, 13 Jan 2025 18:17:12 +0000</pubDate><link>https://news.ycombinator.com/item?id=42686565</link><dc:creator>hruk</dc:creator><comments>https://news.ycombinator.com/item?id=42686565</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42686565</guid></item></channel></rss>