<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: francislavoie</title><link>https://news.ycombinator.com/user?id=francislavoie</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Thu, 14 May 2026 15:30:26 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=francislavoie" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by francislavoie in "Show HN: PHP-fts – Full-text search engine in pure PHP, no extensions"]]></title><description><![CDATA[
<p>We've been using <a href="https://github.com/loupe-php/loupe" rel="nofollow">https://github.com/loupe-php/loupe</a>, works quite well for small-to-medium single-instance apps.</p>
]]></description><pubDate>Wed, 06 May 2026 23:57:03 +0000</pubDate><link>https://news.ycombinator.com/item?id=48043561</link><dc:creator>francislavoie</dc:creator><comments>https://news.ycombinator.com/item?id=48043561</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48043561</guid></item><item><title><![CDATA[New comment by francislavoie in "Why I forked httpx"]]></title><description><![CDATA[
<p>What, Go's net/http is fantastic. I don't understand that take. Many servers are built on it because it's so fully featured out of the box.</p>
]]></description><pubDate>Wed, 25 Mar 2026 10:01:48 +0000</pubDate><link>https://news.ycombinator.com/item?id=47515332</link><dc:creator>francislavoie</dc:creator><comments>https://news.ycombinator.com/item?id=47515332</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47515332</guid></item><item><title><![CDATA[New comment by francislavoie in "RFC 9849. TLS Encrypted Client Hello"]]></title><description><![CDATA[
<p>(Disclosure: I'm a Caddy maintainer), Caddy already supports ECH, leaning on the DNS plugins to automate setting the DNS HTTPS records to wire it up. Here's a lot of technical detail about it <a href="https://caddyserver.com/docs/automatic-https#encrypted-clienthello-ech" rel="nofollow">https://caddyserver.com/docs/automatic-https#encrypted-clien...</a></p>
]]></description><pubDate>Wed, 04 Mar 2026 10:15:45 +0000</pubDate><link>https://news.ycombinator.com/item?id=47245452</link><dc:creator>francislavoie</dc:creator><comments>https://news.ycombinator.com/item?id=47245452</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47245452</guid></item><item><title><![CDATA[New comment by francislavoie in "Physics Girl: Super-Kamiokande – Imaging the sun by detecting neutrinos [video]"]]></title><description><![CDATA[
<p>Is it a "Ship of Theseus" photon? Hehe</p>
]]></description><pubDate>Wed, 04 Mar 2026 04:38:12 +0000</pubDate><link>https://news.ycombinator.com/item?id=47243116</link><dc:creator>francislavoie</dc:creator><comments>https://news.ycombinator.com/item?id=47243116</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47243116</guid></item><item><title><![CDATA[New comment by francislavoie in "British Columbia is permanently adopting daylight time"]]></title><description><![CDATA[
<p>Changing timezones suck, but sunset happening at 4:30pm before I leave work to go home massively contributes to winter depression. It's like "well that was a tiring day" and then instantly served with _darkness_. It sucks. If you get at least SOME light on the way home, it's a bit of a bright spot in the day, especially if the sunset is particularly pretty that day, as it often happens to be in Canadian winters. So I am extremely happy to see they chose the correct option for mental health of Canadians in the winter, and I really hope the rest of the provinces follow suit.</p>
]]></description><pubDate>Tue, 03 Mar 2026 08:25:28 +0000</pubDate><link>https://news.ycombinator.com/item?id=47229718</link><dc:creator>francislavoie</dc:creator><comments>https://news.ycombinator.com/item?id=47229718</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47229718</guid></item><item><title><![CDATA[New comment by francislavoie in "British Columbia is permanently adopting daylight time"]]></title><description><![CDATA[
<p>Hell noooo. 4:30pm sunsets are ultra depressing in the winter. Less light in the morning is not at all a problem in comparison.</p>
]]></description><pubDate>Tue, 03 Mar 2026 04:34:52 +0000</pubDate><link>https://news.ycombinator.com/item?id=47228101</link><dc:creator>francislavoie</dc:creator><comments>https://news.ycombinator.com/item?id=47228101</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47228101</guid></item><item><title><![CDATA[New comment by francislavoie in "Show HN: Moonshine Open-Weights STT models – higher accuracy than WhisperLargev3"]]></title><description><![CDATA[
<p>I've helped many Twitch streamers set up <a href="https://github.com/royshil/obs-localvocal" rel="nofollow">https://github.com/royshil/obs-localvocal</a> to plug transcription & translation into their streams, mainly for German audio to English subtitles.<p>I'd love a faster and more accurate option than Whisper, but streamers need something off-the-shelf they can install in their pipeline, like an OBS plugin which can just grab the audio from their OBS audio sources.<p>I see a couple obvious problems: this doesn't seem to support translation which is unfortunate, that's pretty key for this usecase. Also it only supports one language at a time, which is problematic with how streamers will frequently code-switch while talking to their chat in different languages or on Discord with their gameplay partners. Maybe such a plugin would be able to detect which language is spoken and route to one or the other model as needed?</p>
]]></description><pubDate>Wed, 25 Feb 2026 01:40:17 +0000</pubDate><link>https://news.ycombinator.com/item?id=47146208</link><dc:creator>francislavoie</dc:creator><comments>https://news.ycombinator.com/item?id=47146208</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47146208</guid></item><item><title><![CDATA[New comment by francislavoie in "Modern CSS Code Snippets: Stop writing CSS like it's 2015"]]></title><description><![CDATA[
<p>It's much more than that because it can make use of CSS pseudo selectors like hover, which is not possible with inline styles.</p>
]]></description><pubDate>Mon, 16 Feb 2026 05:52:06 +0000</pubDate><link>https://news.ycombinator.com/item?id=47031329</link><dc:creator>francislavoie</dc:creator><comments>https://news.ycombinator.com/item?id=47031329</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47031329</guid></item><item><title><![CDATA[New comment by francislavoie in "Instant database clones with PostgreSQL 18"]]></title><description><![CDATA[
<p>Unfortunately a lot of our tests use transactions themselves because we lock the user row when we do anything to ensure consistency, and I'm pretty sure nested transactions are still not a thing.</p>
]]></description><pubDate>Tue, 23 Dec 2025 17:59:25 +0000</pubDate><link>https://news.ycombinator.com/item?id=46367467</link><dc:creator>francislavoie</dc:creator><comments>https://news.ycombinator.com/item?id=46367467</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46367467</guid></item><item><title><![CDATA[New comment by francislavoie in "Instant database clones with PostgreSQL 18"]]></title><description><![CDATA[
<p>But how does the reset happen fast, the problem isn't with preventing permanent writes or w/e, it's with actually resetting for the next test. Also using overlayfs will immediately be slower at runtime than tmpfs which we're already doing.</p>
]]></description><pubDate>Tue, 23 Dec 2025 15:16:17 +0000</pubDate><link>https://news.ycombinator.com/item?id=46365951</link><dc:creator>francislavoie</dc:creator><comments>https://news.ycombinator.com/item?id=46365951</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46365951</guid></item><item><title><![CDATA[New comment by francislavoie in "Instant database clones with PostgreSQL 18"]]></title><description><![CDATA[
<p>Yeah there's absolutely no way restarting the container will be faster.</p>
]]></description><pubDate>Tue, 23 Dec 2025 15:14:14 +0000</pubDate><link>https://news.ycombinator.com/item?id=46365930</link><dc:creator>francislavoie</dc:creator><comments>https://news.ycombinator.com/item?id=46365930</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46365930</guid></item><item><title><![CDATA[New comment by francislavoie in "Instant database clones with PostgreSQL 18"]]></title><description><![CDATA[
<p>Restarting the DB is unfortunately way too slow. We run the DB in a docker container with a tmpfs (in-memory) volume which helps a lot with speed, but the problem is still the raw compute needed to wipe the tables and re-fill them with the fixtures every time.</p>
]]></description><pubDate>Tue, 23 Dec 2025 13:51:07 +0000</pubDate><link>https://news.ycombinator.com/item?id=46365309</link><dc:creator>francislavoie</dc:creator><comments>https://news.ycombinator.com/item?id=46365309</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46365309</guid></item><item><title><![CDATA[New comment by francislavoie in "Instant database clones with PostgreSQL 18"]]></title><description><![CDATA[
<p>Is anyone aware of something like this for MariaDB?<p>Something we've been trying to solve for a long time is having instant DB resets between acceptance tests (in CI or locally) back to our known fixture state, but right now it takes decently long (like half a second to a couple seconds, I haven't benchmarked it in a while) and that's by far the slowest thing in our tests.<p>I just want fast snapshotted resets/rewinds to a known DB state, but I need to be using MariaDB since it's what we use in production, we can't switch DB tech at this stage of the project, even though Postgres' grass looks greener.</p>
]]></description><pubDate>Tue, 23 Dec 2025 13:43:35 +0000</pubDate><link>https://news.ycombinator.com/item?id=46365259</link><dc:creator>francislavoie</dc:creator><comments>https://news.ycombinator.com/item?id=46365259</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46365259</guid></item><item><title><![CDATA[New comment by francislavoie in "Next Steps for the Caddy Project Maintainership"]]></title><description><![CDATA[
<p>You can easily customize Caddy's browse template to your liking. It's just a text file, you can take the default and modify it, or write your own from scratch if you like. See <a href="https://caddyserver.com/docs/caddyfile/directives/file_server#browse" rel="nofollow">https://caddyserver.com/docs/caddyfile/directives/file_serve...</a> Some users have posted theirs on the forums as well if you need more inspiration.</p>
]]></description><pubDate>Thu, 16 Oct 2025 20:15:36 +0000</pubDate><link>https://news.ycombinator.com/item?id=45610139</link><dc:creator>francislavoie</dc:creator><comments>https://news.ycombinator.com/item?id=45610139</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45610139</guid></item><item><title><![CDATA[New comment by francislavoie in "Next Steps for the Caddy Project Maintainership"]]></title><description><![CDATA[
<p>Yes, for Caddy v0, which is no longer relevant because Caddy v2 was a rewrite from the ground up. No issues have been opened by anyone who cares about this since Caddy v2 was released over 5 years ago.</p>
]]></description><pubDate>Thu, 16 Oct 2025 20:12:25 +0000</pubDate><link>https://news.ycombinator.com/item?id=45610118</link><dc:creator>francislavoie</dc:creator><comments>https://news.ycombinator.com/item?id=45610118</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45610118</guid></item><item><title><![CDATA[New comment by francislavoie in "Next Steps for the Caddy Project Maintainership"]]></title><description><![CDATA[
<p>Yes calling it a grudge is kneejerk, but no I won't apologize for it because of how intensely frustrating the prior discussions (and today's, no help to you) were to deal with (take today's, multiply it by two for the intensity, then multiply it by ten for the amount of times it happened). You aren't me, you don't know what I've experienced and you don't know all the details, so please stop making assumptions.</p>
]]></description><pubDate>Thu, 16 Oct 2025 05:43:48 +0000</pubDate><link>https://news.ycombinator.com/item?id=45601819</link><dc:creator>francislavoie</dc:creator><comments>https://news.ycombinator.com/item?id=45601819</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45601819</guid></item><item><title><![CDATA[New comment by francislavoie in "Next Steps for the Caddy Project Maintainership"]]></title><description><![CDATA[
<p>I thought I was clear enough about this already, but clearly not: I encourage anyone who believes there's a bug with Caddy to report it to us on GitHub, where bug reports belong, where we can have focused discussion about it and see it to its natural conclusion. I do not discriminate bug reports based on who makes it.<p>An HN thread is not the place to report a bug. Nor do I think it's fair to form opinions about project maintenance (which doesn't happen on HN) based on comments in HN.</p>
]]></description><pubDate>Thu, 16 Oct 2025 04:47:57 +0000</pubDate><link>https://news.ycombinator.com/item?id=45601550</link><dc:creator>francislavoie</dc:creator><comments>https://news.ycombinator.com/item?id=45601550</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45601550</guid></item><item><title><![CDATA[New comment by francislavoie in "Next Steps for the Caddy Project Maintainership"]]></title><description><![CDATA[
<p>IMO a big reason is simply because they're written in C, which greatly slows down progress due to having to write a lot more code to do the same thing as higher level languages, and having to take significantly more care about memory safety issues. Caddy and Traefik being written in Go inherently solves both those problems, in addition to being built on top of Go's fantastic http and crypto stdlib packages which does the vast majority of the heavy lifting for implementing a compliant server. The remainder is mostly the config layer and middleware/admin/compatibility pieces (oversimplifying of course) which is where we can spend all our focus, being freed from having to be concerned about protocol level stuff (for the most part).<p>Admittedly there are some decisions we made with Caddy v2.0 that we would like to revisit eventually with a Caddy v3.0 in some future, but we haven't gotten to the point we've felt the need to plan that, most of those issues are minor enough that they haven't been deal-breakers. (And for context, v2.0 being a rewrite and rearchitecture from v0/v1 was necessary to unlock the potential that Caddy has realized today).</p>
]]></description><pubDate>Thu, 16 Oct 2025 04:37:49 +0000</pubDate><link>https://news.ycombinator.com/item?id=45601506</link><dc:creator>francislavoie</dc:creator><comments>https://news.ycombinator.com/item?id=45601506</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45601506</guid></item><item><title><![CDATA[New comment by francislavoie in "Next Steps for the Caddy Project Maintainership"]]></title><description><![CDATA[
<p>And you're still locked into this idea that you'll convince me that I shouldn't care, when I've expressed how it makes me feel due to the history. Can you respect that there are topics I'd just like not to be reminded of in a certain way? If it was brought up in a _constructive_ way, I would accept it (i.e. offering help or a solution via a PR with tests). If it was brought up by someone who I didn't specifically interact with negatively on this topic before, I would accept it.<p>> I believe that, but I also believe your attitude is a bigger threat to security than either.<p>I can't change your belief, nor do I care to, but I think that's absurd. Show me an actual security threat relating to this and I will address it. But this problem as stated is not one.</p>
]]></description><pubDate>Thu, 16 Oct 2025 04:20:08 +0000</pubDate><link>https://news.ycombinator.com/item?id=45601424</link><dc:creator>francislavoie</dc:creator><comments>https://news.ycombinator.com/item?id=45601424</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45601424</guid></item><item><title><![CDATA[New comment by francislavoie in "Next Steps for the Caddy Project Maintainership"]]></title><description><![CDATA[
<p>It's the fact they bring it up again when we've made it clear our stance is the problem, not so much the actual words in today's post. It's also off-topic (not relating to project maintainership) and it's on a post I submitted myself to HN.<p>I know you've already made up your mind, but look at our track record of answering support questions on the forums and tickets on GitHub, and you'll see that the picture you've formed in your mind from this thread is not accurate.<p>Those comparisons are very straw-man and I won't entertain them. As I've already said, IMO there's more risk in introducing a new security bug in trying to fix this issue than there is leaving it as-is (failing fast and hard).</p>
]]></description><pubDate>Thu, 16 Oct 2025 04:02:41 +0000</pubDate><link>https://news.ycombinator.com/item?id=45601330</link><dc:creator>francislavoie</dc:creator><comments>https://news.ycombinator.com/item?id=45601330</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45601330</guid></item></channel></rss>