<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: dvratil</title><link>https://news.ycombinator.com/user?id=dvratil</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Fri, 26 Jun 2026 23:54:59 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=dvratil" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by dvratil in "Bohemia Interactive: Cold War Assault Remastered Source Code on GitHub"]]></title><description><![CDATA[
<p>I learned HTML thanks to Operation Flashpoint so that I could write mission briefings in the editor...one thing led to another, and I have a successful career as a software developer. Thanks, Bohemia Interactive.</p>
]]></description><pubDate>Thu, 25 Jun 2026 10:04:52 +0000</pubDate><link>https://news.ycombinator.com/item?id=48671288</link><dc:creator>dvratil</dc:creator><comments>https://news.ycombinator.com/item?id=48671288</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48671288</guid></item><item><title><![CDATA[New comment by dvratil in "Let's talk about EU Sovereignty (2025)"]]></title><description><![CDATA[
<p>For me (as an EU citizen), sovereignty is about being independent of companies operating under law that I have no control of (can't vote in the US) and is veeery unpredictible (Trump administration). I don't want to wake up one day I find out my bill tripped because of some tax imposed on EU or completely cut off, because the president woke up in bad mood that morning. EU is very fat from perfect, but for me it is still closer to home, and I truly root for any EU company that tries to take on the US behemoths. I moved everything from GCP and AWS to Hetzner, and am moving from Github to Codeberg.<p>Unfortunately, it's realty hard. The US giants have offerings that no one in EU has and I am investing huge amounts of time into working around them (e.g. Windows and MacOS CI runners on Github - try to get this for free in EU). I'm fine with paying a bit for this, but even then it's a huge hassle to set it up to be able to get CI checks for my projects on Windows/MacOS. And it's not cheap either. I can afford it, but it is still very expensive.</p>
]]></description><pubDate>Sat, 30 May 2026 19:34:39 +0000</pubDate><link>https://news.ycombinator.com/item?id=48339834</link><dc:creator>dvratil</dc:creator><comments>https://news.ycombinator.com/item?id=48339834</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48339834</guid></item><item><title><![CDATA[New comment by dvratil in "OpenRouter raises $113M Series B"]]></title><description><![CDATA[
<p>One thing I haven't seen mentioned here yet and really like about OpenRouter is their openrouter "meta" model, that automatically routes the prompt to an appropriately capable model. Saves me a ton of money on not routing everything through Opus, but not giving me bad results when I ask something more complex, which gets autorouted to Opus.</p>
]]></description><pubDate>Sat, 30 May 2026 19:11:15 +0000</pubDate><link>https://news.ycombinator.com/item?id=48339661</link><dc:creator>dvratil</dc:creator><comments>https://news.ycombinator.com/item?id=48339661</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48339661</guid></item><item><title><![CDATA[New comment by dvratil in "Rockstar Games Hacked, Hackers Threaten a Massive Data Leak If Not Paid Ransom"]]></title><description><![CDATA[
<p>Maybe I'm missing something, but how would GTA6 source leak really harm Rockstar? I mean it's unlikely it would be possible to compile a full working game from the leak, and even if so, it's such a non-trivial task, that I don't believe it would hurt sales /that/ much.<p>The only thing I can imagine is the story would get spoiled on the internet, but that's about it.</p>
]]></description><pubDate>Sat, 11 Apr 2026 17:59:36 +0000</pubDate><link>https://news.ycombinator.com/item?id=47732628</link><dc:creator>dvratil</dc:creator><comments>https://news.ycombinator.com/item?id=47732628</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47732628</guid></item><item><title><![CDATA[New comment by dvratil in "LibreOffice and the art of overreacting"]]></title><description><![CDATA[
<p>Just yesterday I used Jellyfin2Samsung to install Moonlight on my TV. After the installation, the app shown a popup to donate to the author ("buy me a beer"). And I figured why not? The software turned a tedious process into a one-click solution, letting me do what I wanted to do (stream games to my TV) rather than spending an evening messing with Tizen Studio. Absolutely worth a few dollars.<p>KDE's Plasma will popup a notification every once in a while asking for donation. When you close it, you won't hear from it again until the next fundraiser. I almost always donate as well.<p>If a software asks in a non-obtrusive way, ideally after I used it (either for a while or like in case of Jellyfin2Samsung after doing the one thing it's supposed to do), I don't mind at all.<p>I dislike apps (mostly websites) that keep asking for money, regardless of whether you already donated or not every single time you visit them.</p>
]]></description><pubDate>Thu, 26 Mar 2026 19:02:21 +0000</pubDate><link>https://news.ycombinator.com/item?id=47534320</link><dc:creator>dvratil</dc:creator><comments>https://news.ycombinator.com/item?id=47534320</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47534320</guid></item><item><title><![CDATA[New comment by dvratil in "Gitas – A tool for Git account switching"]]></title><description><![CDATA[
<p>I used to have a git post-checkout hook that set the repo identity based on the repo origin url [0] on checkout - maybe there's some post-clone hook these days, but 10 years ago when I wrote it there was only post-checkout hook.<p>[0] <a href="https://www.dvratil.cz/2015/12/git-trick-%23628-automatically-set-commit-author-based-on-repo-url/" rel="nofollow">https://www.dvratil.cz/2015/12/git-trick-%23628-automaticall...</a></p>
]]></description><pubDate>Sat, 21 Feb 2026 10:53:55 +0000</pubDate><link>https://news.ycombinator.com/item?id=47099531</link><dc:creator>dvratil</dc:creator><comments>https://news.ycombinator.com/item?id=47099531</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47099531</guid></item><item><title><![CDATA[New comment by dvratil in "The Unix Pipe Card Game"]]></title><description><![CDATA[
<p>Well, there's a SELinux coloring book - you need to start with SELinux while they are still young!
 <a href="https://people.redhat.com/duffy/selinux/selinux-coloring-book_A4-Stapled.pdf" rel="nofollow">https://people.redhat.com/duffy/selinux/selinux-coloring-boo...</a></p>
]]></description><pubDate>Tue, 20 Jan 2026 22:45:29 +0000</pubDate><link>https://news.ycombinator.com/item?id=46698707</link><dc:creator>dvratil</dc:creator><comments>https://news.ycombinator.com/item?id=46698707</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46698707</guid></item><item><title><![CDATA[New comment by dvratil in "The Dangers of SSL Certificates"]]></title><description><![CDATA[
<p>Happened on the first day of my first  on-call rotation - a cert for one of the key services expired. Autorenew failed, because one of the subdomains on the cert no longer resolved.<p>The main lesson we took from this was: you absolutely need monitoring for cert expiration, with alert when (valid_to - now) becomes less than typical refresh window.<p>It's easy to forget this, especially when it's not strictly part of your app, but essential nonetheless.</p>
]]></description><pubDate>Sat, 27 Dec 2025 23:59:30 +0000</pubDate><link>https://news.ycombinator.com/item?id=46406842</link><dc:creator>dvratil</dc:creator><comments>https://news.ycombinator.com/item?id=46406842</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46406842</guid></item><item><title><![CDATA[New comment by dvratil in "How SQLite is tested"]]></title><description><![CDATA[
<p>I believe every sensible open-source developer strives to keep their software performant. To me, a performance regression is a bug like any other and I got and fix it. Sure, there's no warranty guaranteed in the license, yet no-one who takes their project even a little seriously takes it as "I can break this any way I want".</p>
]]></description><pubDate>Wed, 17 Dec 2025 22:58:33 +0000</pubDate><link>https://news.ycombinator.com/item?id=46306766</link><dc:creator>dvratil</dc:creator><comments>https://news.ycombinator.com/item?id=46306766</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46306766</guid></item><item><title><![CDATA[New comment by dvratil in "8M users' AI conversations sold for profit by "privacy" extensions"]]></title><description><![CDATA[
<p>The question is, does Mozilla rigorously review every single update of every featured extension? Or did they just vet it once, and a malicious developer may now introduce data collection or similar "features" though a minor update of the extension and keep enjoying the "recommended" badge by Mozilla?</p>
]]></description><pubDate>Tue, 16 Dec 2025 07:31:50 +0000</pubDate><link>https://news.ycombinator.com/item?id=46285765</link><dc:creator>dvratil</dc:creator><comments>https://news.ycombinator.com/item?id=46285765</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46285765</guid></item><item><title><![CDATA[New comment by dvratil in "Heavy metal is healing teens on the Blackfeet Nation"]]></title><description><![CDATA[
<p>I always enjoyed being a metal head, the music is the main reason of course (I like it), but the community is a very big aspect of it too.<p>I always thought about metal shows and festivals as a "safe space", where people can really be themselves, because you don't have to suffer judgmental remarks about what you wear, what you look like or what you listen to. And most people there get this and feel this as well, which is why the community feels so welcoming and chill. Plus as someone else posted here, it's also all a bit silly and I think most people get that as well.</p>
]]></description><pubDate>Sun, 14 Dec 2025 12:47:10 +0000</pubDate><link>https://news.ycombinator.com/item?id=46262643</link><dc:creator>dvratil</dc:creator><comments>https://news.ycombinator.com/item?id=46262643</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46262643</guid></item><item><title><![CDATA[New comment by dvratil in "Largest cargo sailboat completes first Atlantic crossing"]]></title><description><![CDATA[
<p>But that's extra time when the ship is sitting idle, while it could've already been on its way with new cargo, making more money.</p>
]]></description><pubDate>Sun, 09 Nov 2025 08:23:26 +0000</pubDate><link>https://news.ycombinator.com/item?id=45863881</link><dc:creator>dvratil</dc:creator><comments>https://news.ycombinator.com/item?id=45863881</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45863881</guid></item><item><title><![CDATA[New comment by dvratil in "Do you know that there is an HTML tables API?"]]></title><description><![CDATA[
<p>It's not that long ago that tables were the only reliable layout tool for HTML emails (mostly due to Outlook supporting only very limited subset of CSS).</p>
]]></description><pubDate>Sat, 01 Nov 2025 13:46:51 +0000</pubDate><link>https://news.ycombinator.com/item?id=45781611</link><dc:creator>dvratil</dc:creator><comments>https://news.ycombinator.com/item?id=45781611</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45781611</guid></item><item><title><![CDATA[New comment by dvratil in "Futurelock: A subtle risk in async Rust"]]></title><description><![CDATA[
<p>I would guess this is just to make the explanation of the bug easier.<p>In real world, the futurelock could occur even with very short locks, it just wouldn't be so deterministic. Having a minimal reproducer that you have to run a thousand times and it will maybe futurelock doesn't really make for a good example :)</p>
]]></description><pubDate>Sat, 01 Nov 2025 09:51:06 +0000</pubDate><link>https://news.ycombinator.com/item?id=45780445</link><dc:creator>dvratil</dc:creator><comments>https://news.ycombinator.com/item?id=45780445</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45780445</guid></item><item><title><![CDATA[New comment by dvratil in "The QNX Operating System"]]></title><description><![CDATA[
<p>I was involved in porting some software to Qt back when Photon was deprecated, and I always found the system very interesting. This is the first time I'm actually learning more about its history. Thanks for the great read.<p>I was also a huge fan of BlackBerry phones (having used Q5 and Z10 as daily drivers). The system was solid and had some really cool ideas. Too bad it didn't work out...</p>
]]></description><pubDate>Sun, 05 Oct 2025 19:26:32 +0000</pubDate><link>https://news.ycombinator.com/item?id=45484438</link><dc:creator>dvratil</dc:creator><comments>https://news.ycombinator.com/item?id=45484438</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45484438</guid></item><item><title><![CDATA[New comment by dvratil in "The AI coding trap"]]></title><description><![CDATA[
<p>It's more about having the LLM give you a plan of what it wants to do and how it wants to do it, rather rhan code. Then you can mold the plan to fit what you really want. Then you ask it to actually start writing code.<p>Even Claude Code lets you approve each change, but it's already writing code according to a plan that you reviewed and approved.</p>
]]></description><pubDate>Sun, 28 Sep 2025 17:10:09 +0000</pubDate><link>https://news.ycombinator.com/item?id=45406003</link><dc:creator>dvratil</dc:creator><comments>https://news.ycombinator.com/item?id=45406003</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45406003</guid></item><item><title><![CDATA[New comment by dvratil in "The repercussions of missing an Ampersand in C++ and Rust"]]></title><description><![CDATA[
<p>This is my gripe with C++ - I have to have a CI pipeline that runs a  job with clang-tidy (which is slow), jobs with asan, memsan and tsan, each running the entire test-suite, and ideally also one job for clang and one for gcc to catch all compiler warnings, then finally a job that produces optimized binaries.<p>With Rust I have one job that runs tests and another that runs cargo build --release and I'm done...</p>
]]></description><pubDate>Sat, 06 Sep 2025 08:19:34 +0000</pubDate><link>https://news.ycombinator.com/item?id=45147542</link><dc:creator>dvratil</dc:creator><comments>https://news.ycombinator.com/item?id=45147542</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45147542</guid></item><item><title><![CDATA[New comment by dvratil in "One-Click RCE in Asus's Preinstalled Driver Software"]]></title><description><![CDATA[
<p>The problem I found about the adaptors is that you can't charge your phone and listen to music at the same time.<p>I have an older car with an old stereo where the only external input is via jack. Worked perfectly fine with my old phone. When I got a new Samsung, I went through the hassle of trying several "combined usb-c charger and audio jack adaptor" only to eventually find out they can only work in on mode or the other, not both at the same time. I ended up throwing away my old phone holder and spending even more money on one with built-in wireless charging so I could both listen to a damn music and charge my phone at the same time while driving.</p>
]]></description><pubDate>Sun, 11 May 2025 12:31:19 +0000</pubDate><link>https://news.ycombinator.com/item?id=43953345</link><dc:creator>dvratil</dc:creator><comments>https://news.ycombinator.com/item?id=43953345</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43953345</guid></item><item><title><![CDATA[New comment by dvratil in "Matt Godbolt sold me on Rust by showing me C++"]]></title><description><![CDATA[
<p>The one thing that sold me on Rust (going from C++) was that there is a single way errors are propagated: the Result type. No need to bother with exceptions, functions returning bool, functions returning 0 on success, functions returning 0 on error, functions returning -1 on error, functions returning negative errno on error, functions taking optional pointer to bool to indicate error (optionally), functions taking reference to std::error_code to set an error (and having an overload with the same name that throws an exception on error if you forget to pass the std::error_code)...I understand there's 30 years of history, but it still is annoying, that even the standard library is not consistent (or striving for consistency).<p>Then you top it on with `?` shortcut and the functional interface of Result and suddenly error handling becomes fun and easy to deal with, rather than just "return false" with a "TODO: figure out error handling".</p>
]]></description><pubDate>Tue, 06 May 2025 18:20:34 +0000</pubDate><link>https://news.ycombinator.com/item?id=43908097</link><dc:creator>dvratil</dc:creator><comments>https://news.ycombinator.com/item?id=43908097</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43908097</guid></item><item><title><![CDATA[New comment by dvratil in "The Beauty of Having a Pi-Hole (2024)"]]></title><description><![CDATA[
<p>With pi-hole, you can also block telemetry from smart devices (TVs, dish washers and stuff), and if you run it on a VPN that your phone is connected to, you can also block ads and tracking in phone apps.<p>As mentioned in the article, pi-hole complements a browser ad block, doesn't replace it.</p>
]]></description><pubDate>Mon, 05 May 2025 16:36:56 +0000</pubDate><link>https://news.ycombinator.com/item?id=43896911</link><dc:creator>dvratil</dc:creator><comments>https://news.ycombinator.com/item?id=43896911</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43896911</guid></item></channel></rss>