<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: retrodaredevil</title><link>https://news.ycombinator.com/user?id=retrodaredevil</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Thu, 23 Apr 2026 09:08:18 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=retrodaredevil" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by retrodaredevil in "Android Developer Verification"]]></title><description><![CDATA[
<p>The thing is, the EU needs to be able to not only sell that the regulation they propose is good to the public, but also not piss off the US administration.<p>Most people are too non-technical to understand why this is a bad thing even when it's explained to them. Plus, whatever administration is in power in the US has a lot of influence.<p>Trump has already said that he wouldn't tolerate regulation that affects American companies [1], painting regulation that happens in another country as something that will affect US citizens. (I mean if you use the GDPR as an example, it's not wrong. Think of cookie pop ups while browsing the web in the US)<p>I would like the the EU would go harder with their regulations, because it usually results in other countries or states following their lead, but I dont see that happening. Regulation has been painted as "bad", and we have at least 3 more years until that changes.<p>[1] <a href="https://www.cnn.com/2026/01/12/tech/us-eu-tech-regulation-fight-explained" rel="nofollow">https://www.cnn.com/2026/01/12/tech/us-eu-tech-regulation-fi...</a></p>
]]></description><pubDate>Mon, 30 Mar 2026 23:10:46 +0000</pubDate><link>https://news.ycombinator.com/item?id=47580847</link><dc:creator>retrodaredevil</dc:creator><comments>https://news.ycombinator.com/item?id=47580847</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47580847</guid></item><item><title><![CDATA[New comment by retrodaredevil in "AI didn't simplify software engineering: It just made bad engineering easier"]]></title><description><![CDATA[
<p>Adding null checks where they aren't needed means adding branching complexity. It means handling cases that may never need to be handled. Doing all that makes it harder to understand "could this variable ever be null?" If you can't answer that question, it is now harder to write code in the future, often leading to even more unnecessary null checks.<p>I've seen legacy code bases during code review where someone will ask "should we have a null check there?" and often no-one knows the answer. The solution is to use nullability annotations IMO.<p>It's easy to just say "oh this is just something a junior would say", but come on, have an actual discussion about it rather than implying anyone who has that opinion is inexperienced.</p>
]]></description><pubDate>Sat, 14 Mar 2026 16:49:44 +0000</pubDate><link>https://news.ycombinator.com/item?id=47378526</link><dc:creator>retrodaredevil</dc:creator><comments>https://news.ycombinator.com/item?id=47378526</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47378526</guid></item><item><title><![CDATA[New comment by retrodaredevil in "Spotify Update on Developer Access and Platform Security"]]></title><description><![CDATA[
<p>The big news here is that you now need a premium subscription to use any of Spotify's APIs. This means that if you wish to use Spotify's APIs to more easily share music with others, you must have a premium subscription.<p>What's gross to me is the language:<p>> all newly created Development Mode Client IDs will be created under the updated Development Mode rules and will have the following restrictions applied by default
> Development Mode use will require a Spotify Premium account<p>The language acts as if it's possible to have some sort of non-development mode application. If you look further, you'll see that a non-development mode application must be owned by an organization with more than 250k users.</p>
]]></description><pubDate>Fri, 27 Feb 2026 23:47:47 +0000</pubDate><link>https://news.ycombinator.com/item?id=47187715</link><dc:creator>retrodaredevil</dc:creator><comments>https://news.ycombinator.com/item?id=47187715</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47187715</guid></item><item><title><![CDATA[New comment by retrodaredevil in "Git's Magic Files"]]></title><description><![CDATA[
<p>This is a well put together list. One thing that frustrates me is that not all tooling respects mailmap. IntelliJ has an open feature/bug request for integrating mailmap into its git functionality. Additionally, the .git-blame-ignore-revs is more of a convention because you still have to manually configure that to be the file name to use.</p>
]]></description><pubDate>Sun, 22 Feb 2026 18:15:53 +0000</pubDate><link>https://news.ycombinator.com/item?id=47113281</link><dc:creator>retrodaredevil</dc:creator><comments>https://news.ycombinator.com/item?id=47113281</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47113281</guid></item><item><title><![CDATA[New comment by retrodaredevil in "Using go fix to modernize Go code"]]></title><description><![CDATA[
<p>Yeah I've noticed the IDEs have this ability, but I think tooling outside of IDEs that can be applied in a repeatable way is much better than doing a bunch of mouse clicks in an IDE to change something.<p>I think the two things that make this a big deal are: callable from the command line (which means it can integrate with CI/CD or AI tools) and like I mentioned, the fact this is built into Go itself.</p>
]]></description><pubDate>Wed, 18 Feb 2026 00:33:19 +0000</pubDate><link>https://news.ycombinator.com/item?id=47055487</link><dc:creator>retrodaredevil</dc:creator><comments>https://news.ycombinator.com/item?id=47055487</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47055487</guid></item><item><title><![CDATA[New comment by retrodaredevil in "Using go fix to modernize Go code"]]></title><description><![CDATA[
<p>I think tooling that can modify your source code to make it more modern is really cool stuff. OpenRewrite comes to mind for Java, but nothing comes to the top of my mind for other languages. And heck, I into recently learned about OpenRewrite and I've been writing Java for a long time.<p>Even though I don't like Go, I acknowledge that tooling like this built right into the language is a huge deal for language popularity and maturity. Other languages just aren't this opinionated about build tools, testing frameworks, etc.<p>I suspect that as newer languages emerge over the years, they'll take notes from Go and how well it integrates stuff like this.</p>
]]></description><pubDate>Tue, 17 Feb 2026 18:16:28 +0000</pubDate><link>https://news.ycombinator.com/item?id=47050885</link><dc:creator>retrodaredevil</dc:creator><comments>https://news.ycombinator.com/item?id=47050885</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47050885</guid></item><item><title><![CDATA[New comment by retrodaredevil in "IKEA for Software"]]></title><description><![CDATA[
<p>I work full time as a software engineer, and I also spend time writing code on side projects. I love working on my side projects because it means I get to spend a bunch of time learning the quirks of whatever tooling and frameworks I decide to use. I often develop opinions and personal standards that I bring with me to future side projects (and sometimes $dayjob), although I've never quite stood up all the components of one of my projects "quickly". I'll always find something to tinker with and learn about, which I think is acceptable for my personal projects, desirable even.<p>As I get more personal projects under my belt, I believe I'll be able to stand up projects more and more quickly, although it's never perfect. Even though I've been using a similar stack among my side projects for a couple of years now, dependencies get outdated. Sometimes you gotta jump to a new major version. Sometimes you wanna try out the "new way".<p>I like the idea of building up my own personal stack of tooling, frameworks, and patterns that I use, and could even encourage the use of at $dayjob, but for the reasons outlined above, I agree with the conclusion of the article, which is that an "IKEA of software" doesn't exist currently.<p>For now I'll keep happily tinkering in my side projects. This article was a good read.</p>
]]></description><pubDate>Sat, 17 Jan 2026 06:08:25 +0000</pubDate><link>https://news.ycombinator.com/item?id=46655752</link><dc:creator>retrodaredevil</dc:creator><comments>https://news.ycombinator.com/item?id=46655752</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46655752</guid></item><item><title><![CDATA[New comment by retrodaredevil in "50% of U.S. vinyl buyers don't own a record player"]]></title><description><![CDATA[
<p>That's simply not true. If you scratch a vinyl record, you've introduced a defect to it. If you scratch a CD, it's probably fine. Some CD players don't like scratched CDs, but for the most part CDs are very durable.<p>Plus if you damage a CD, simply rip it and burn it to a CDr. (did I mention that ripping a damaged CD usually works?)<p>You are right about vinyl sleeves being more attractive, though. I think that's its main selling point.</p>
]]></description><pubDate>Sat, 03 Jan 2026 15:16:17 +0000</pubDate><link>https://news.ycombinator.com/item?id=46477603</link><dc:creator>retrodaredevil</dc:creator><comments>https://news.ycombinator.com/item?id=46477603</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46477603</guid></item><item><title><![CDATA[New comment by retrodaredevil in "Self-hosting is being enshittified"]]></title><description><![CDATA[
<p>I don't really like that "enshittified" is being used here. You could argue that Plex, MinIO or Mattermost is being enshittified, but definitely not self hosting as a whole.<p>Enshittification also usually implies that switching to an alternative is difficult (usually because creating a competing service is near impossible because you'd have to get users on it). That flaw doesn't really apply to self hosting like it does with centralized social media. You can just switch to Jellyfin or Garage or Zulip. Migration might be a pain, but it's doable.<p>You can't as easily stop using LinkedIn or GitHub or Facebook, etc.</p>
]]></description><pubDate>Mon, 29 Dec 2025 04:19:58 +0000</pubDate><link>https://news.ycombinator.com/item?id=46417438</link><dc:creator>retrodaredevil</dc:creator><comments>https://news.ycombinator.com/item?id=46417438</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46417438</guid></item><item><title><![CDATA[New comment by retrodaredevil in "Using TypeScript to obtain one of the rarest license plates"]]></title><description><![CDATA[
<p>There are a lot of incentives to lock people up. Cheap labor is one of them. We should support incentives such as "keeping society safe", but incentives such as "profits and cheap labor" are incentives that may actually incentivize locking up innocent people.<p>So it's not about which one is worse, it's about not supporting something that could lead to corruption or an unfair system.</p>
]]></description><pubDate>Fri, 19 Dec 2025 01:14:30 +0000</pubDate><link>https://news.ycombinator.com/item?id=46321148</link><dc:creator>retrodaredevil</dc:creator><comments>https://news.ycombinator.com/item?id=46321148</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46321148</guid></item><item><title><![CDATA[New comment by retrodaredevil in "Ask HN: What Are You Working On? (December 2025)"]]></title><description><![CDATA[
<p>I'm building an application that can communicate with my Plex server, and also communicate with APIs like MusicBrainz and Spotify. From there I want to be able to track my Plex music rating history, and export playlists on Plex to Spotify for easier sharing with others.<p>There don't seem to be many automated tools out there that fit my need for this, so building out my own solution I have complete control over makes sense. It's a lot of fun to build this out exactly as I want to, rather than trying to configure a bunch of tools that I'm not familiar with and that don't meet my needs exactly.<p>The tooling I'm building up around this should hopefully make it easier for myself to get my playlists and track ratings off of Plex if I ever decide to abandon it for music listening.</p>
]]></description><pubDate>Sun, 14 Dec 2025 20:45:09 +0000</pubDate><link>https://news.ycombinator.com/item?id=46266697</link><dc:creator>retrodaredevil</dc:creator><comments>https://news.ycombinator.com/item?id=46266697</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46266697</guid></item><item><title><![CDATA[New comment by retrodaredevil in "How Home Assistant became the most important project in your house"]]></title><description><![CDATA[
<p>Raspberry Pi is a bad choice for any application that frequently writes data to disk. Most Home Assistant setups will often have historical tracking of at least one data point, which means that it would be constantly writing to disk.<p>If you get a high quality SD card with more storage than you'll ever need (64GB, 128GB), you can have a stable system for a while until the SD card becomes corrupt. The larger SD cards help with longevity because it means the SD card can spread writes out over a larger area, which means it'll take longer for the SD card to go bad.<p>Make sure to always have RAM logging enabled on your Pi! DietPi defaults to RAM logging.</p>
]]></description><pubDate>Tue, 02 Dec 2025 20:12:55 +0000</pubDate><link>https://news.ycombinator.com/item?id=46126198</link><dc:creator>retrodaredevil</dc:creator><comments>https://news.ycombinator.com/item?id=46126198</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46126198</guid></item><item><title><![CDATA[New comment by retrodaredevil in "An overly aggressive mock can work fine, but break much later"]]></title><description><![CDATA[
<p>I agree with you, however convincing an entire team of devs to explicitly separate the interface of impure parts of code is very difficult.<p>If you introduce a mocking library to the test portion of the codebase, most developers will start to use it as a way to shortcut any refactoring they don't want to do. I think articles like this that try to explain how to better use mocks in tests are useful, although I wish they weren't necessary.</p>
]]></description><pubDate>Mon, 17 Nov 2025 04:23:50 +0000</pubDate><link>https://news.ycombinator.com/item?id=45950831</link><dc:creator>retrodaredevil</dc:creator><comments>https://news.ycombinator.com/item?id=45950831</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45950831</guid></item><item><title><![CDATA[New comment by retrodaredevil in "Revisiting Interface Segregation in Go"]]></title><description><![CDATA[
<p>I have written production Java code, but no production Go code. I think you skipped over the commenter's main point while replying to them: you need to be able to have a good mental model of the code.<p>A few well defined interfaces have the advantage of being easy to understand and see usages around the codebase without the overhead of many different variants of an interface. This is extremely important if you are not familiar with a given codebase.<p>I'm not against segregated interfaces, but I feel like over abstracting can result in code that's harder to understand. There's a balance to be had and thought should go into introducing new interfaces, especially when working on a project with many other devs contributing.<p>I'm a Java dev, so I'm biased. I love being to easily understand and reason about the type system. I understand that an interface is about a set of behaviors, but when I've worked with Go code I've found it much more difficult to get my IDE to point out all the different ways some interface could be implemented. I see the advantages that Go style interfaces bring, but I personally find it harder to keep a mental model when working with Go.</p>
]]></description><pubDate>Fri, 07 Nov 2025 23:21:43 +0000</pubDate><link>https://news.ycombinator.com/item?id=45852474</link><dc:creator>retrodaredevil</dc:creator><comments>https://news.ycombinator.com/item?id=45852474</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45852474</guid></item><item><title><![CDATA[New comment by retrodaredevil in "Asynchronous Error Handling Is Hard"]]></title><description><![CDATA[
<p>Checked exceptions you cannot handle in Java are designed to be caught and rethrown (usually wrapped in your own specific checked exception or some runtime exception).<p>Proper exception handling in Java can feel verbose. In general you should not be adding checked exceptions to method signatures to make the compiler happy. You should be catching them and rethrowing if you cannot handle them.</p>
]]></description><pubDate>Tue, 01 Jul 2025 22:30:44 +0000</pubDate><link>https://news.ycombinator.com/item?id=44438542</link><dc:creator>retrodaredevil</dc:creator><comments>https://news.ycombinator.com/item?id=44438542</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44438542</guid></item><item><title><![CDATA[New comment by retrodaredevil in "Why does my ripped CD have messed up track names? And why is one track missing?"]]></title><description><![CDATA[
<p>Mostly I just use Picard it for initial tagging, which usually only needs to happen once. Sometimes Picard has changes it wants to do such as updating to a higher resolution cover art, or to refer to a different MBID after a merge.<p>Yeah, not much to maintain, but Picard does keep my tags up to date if necessary.</p>
]]></description><pubDate>Fri, 13 Jun 2025 19:46:04 +0000</pubDate><link>https://news.ycombinator.com/item?id=44271637</link><dc:creator>retrodaredevil</dc:creator><comments>https://news.ycombinator.com/item?id=44271637</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44271637</guid></item><item><title><![CDATA[New comment by retrodaredevil in "Why does my ripped CD have messed up track names? And why is one track missing?"]]></title><description><![CDATA[
<p>A maintain my own digital music collection. The only two tools I use for maintaining the CD portion of my collection are k3b and MusicBrainz Picard. k3b can rip to flac and it will on embed metadata present on the CD itself. Then after I rip it, I add it to Picard.<p>I use the "lookup CD" feature in Picard, which gives me a selection of releases to choose from. Among the choices, I usually see a release matching the catalog number on my CD's case. When I don't see a matching release, I will typically add the disc ID to an existing release, or I will create a new release, or sometimes even creating a new release + new release group and add the necessary metadata to MusicBrainz.<p>I haven't tried any automatic tagging process like the ripping program the article talks about does, mostly because I want to use Picard to make sure the metadata is correct or contribute to MusicBrainz if it isn't.<p>I like MusicBrainz a lot because applications like Plex use it very well to group release groups together and will (usually) deduplicate identical recordings so that identical tracks can share a rating. It's a really great database and is kept up to date pretty well.</p>
]]></description><pubDate>Thu, 12 Jun 2025 17:37:09 +0000</pubDate><link>https://news.ycombinator.com/item?id=44260424</link><dc:creator>retrodaredevil</dc:creator><comments>https://news.ycombinator.com/item?id=44260424</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44260424</guid></item><item><title><![CDATA[New comment by retrodaredevil in "VPN providers in France ordered to block pirate sports IPTV"]]></title><description><![CDATA[
<p>It seems that the list of destination IPs would then be determined by whatever the domains listed resolve to (I assume). Since it's trivial to update DNS records, I wonder if they could lead to automated blocking of whatever IP those domains point to.<p>With that in place, I wonder if that could ever be abused by these pirate sites. Imagine temporarily pointing your pirate site domain name at a valid IP address. When you do that, in theory ISPs (and now VPNs) would automatically block perfectly valid IPs.<p>This would only happen if the owners of the pirate site domains actually try to do something malicious like that, but I know there are instances in the past of ISPs blocking cloudflare IPs (which is a separate issue, but the scenario I just made up reminds me of it).</p>
]]></description><pubDate>Fri, 06 Jun 2025 17:10:34 +0000</pubDate><link>https://news.ycombinator.com/item?id=44202941</link><dc:creator>retrodaredevil</dc:creator><comments>https://news.ycombinator.com/item?id=44202941</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44202941</guid></item><item><title><![CDATA[New comment by retrodaredevil in "VPN providers in France ordered to block pirate sports IPTV"]]></title><description><![CDATA[
<p>When these VPN providers comply with these court orders, do they only implement blocking at the DNS level? Couldn't you still use these VPNs, but use a DNS provider that isn't censored?</p>
]]></description><pubDate>Fri, 06 Jun 2025 16:04:37 +0000</pubDate><link>https://news.ycombinator.com/item?id=44202225</link><dc:creator>retrodaredevil</dc:creator><comments>https://news.ycombinator.com/item?id=44202225</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44202225</guid></item><item><title><![CDATA[New comment by retrodaredevil in "How reliable are MicroSD cards?"]]></title><description><![CDATA[
<p>I've started to exclusively install DietPi on all my Raspberry Pi devices. It has great defaults including RAM log. Additionally, it's not limited to Raspberry Pis, it can be installed on a range of SBCs.</p>
]]></description><pubDate>Mon, 02 Jun 2025 13:15:50 +0000</pubDate><link>https://news.ycombinator.com/item?id=44158532</link><dc:creator>retrodaredevil</dc:creator><comments>https://news.ycombinator.com/item?id=44158532</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44158532</guid></item></channel></rss>