<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: VerifiedReports</title><link>https://news.ycombinator.com/user?id=VerifiedReports</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Tue, 18 Aug 2026 15:06:30 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=VerifiedReports" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by VerifiedReports in "SwiftUI After 7 Years"]]></title><description><![CDATA[
<p>Thanks, but I did read all the doc on this several times. Looking at it again, it reminds me of the fundamental problem conveyed that page: It assumes that you're using a different datatype for every view, and can thus set up NavigationDestinations for them.<p>But what if you're walking the user through several steps of acting upon the same datatype? Building some kind of message, for example. First add a recipient to the message. Then create and add some content to the message. Then choose delivery options for it. In each case I'm handing the Message object to the view.<p>Every avenue for using this thing seemed to be crippled by some blundering assumption. Until someone came up with making a special enum for every page, which is just another piece of hokey gymnastics and extra work to "trick" the UI into doing what you want.</p>
]]></description><pubDate>Mon, 10 Aug 2026 19:35:46 +0000</pubDate><link>https://news.ycombinator.com/item?id=49248601</link><dc:creator>VerifiedReports</dc:creator><comments>https://news.ycombinator.com/item?id=49248601</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49248601</guid></item><item><title><![CDATA[New comment by VerifiedReports in "SwiftUI After 7 Years"]]></title><description><![CDATA[
<p>Thanks. I was referring to NavigationPath. I do have it working with a bunch of custom enums. It took a while for that solution to come along; I just remember looking at NavigationPath initially and thinking it solved the whole problem, but being disappointed about its bizarrely limited design.</p>
]]></description><pubDate>Mon, 10 Aug 2026 19:24:49 +0000</pubDate><link>https://news.ycombinator.com/item?id=49248473</link><dc:creator>VerifiedReports</dc:creator><comments>https://news.ycombinator.com/item?id=49248473</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49248473</guid></item><item><title><![CDATA[New comment by VerifiedReports in "SwiftUI After 7 Years"]]></title><description><![CDATA[
<p>Thanks for your observations. I don't think I've looked at NavigationStack changes since iOS 17, so I will catch up on it. But I do have NavigationPath working well enough with an enum type for each screen, which is admittedly better than the absurd endless binding of "isDisplayed" flags all the way through the stack of views.<p>And I will have another look at @Environment; I guess I'm thinking of @EnvironmentObject, which is a hack that I'd never choose over a singleton. My only current exposure to @Environment is as a workaround to other missing functions or properties, like this on a custom button:<p>@Environment(\.isEnabled) private var isEnabled<p>Or to allow a view to dismiss itself:<p>@Environment(\.dismiss) private var dismiss</p>
]]></description><pubDate>Mon, 10 Aug 2026 19:22:56 +0000</pubDate><link>https://news.ycombinator.com/item?id=49248440</link><dc:creator>VerifiedReports</dc:creator><comments>https://news.ycombinator.com/item?id=49248440</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49248440</guid></item><item><title><![CDATA[New comment by VerifiedReports in "SwiftUI After 7 Years"]]></title><description><![CDATA[
<p>"@environment is super cool"<p>Strong disagree on that. @environment is an amateurish hack, basically sugar-coating global variables as a solution to SwiftUI's poor design.<p>I had a strong background in UIKit; then for a product I'm building for myself, I decided to go all-in on SwiftUI. This was after it had been around for four years or more.<p>SwiftUI turned development, which I used to enjoy and feel good about, into a tedious trudge. I read everything I could, did the Stanford class, adopted "best practices," and really made an effort to do it right. It blows.<p>Unless your app is a trivial master/detail data-viewing app (as pretty much every SwiftUI example is), you wind up thrashing and performing all kinds of state-tweaking gymnastics to herd your application along through whatever tasks the user is supposed to be doing. Heaven forbid you need to walk the user through a series of steps to do or create something.<p>It's going to be a testing nightmare, and it suffers from every bit as much opportunity for data to get out of sync between the model and the UI as "traditional" app structure. Apple touts the "single source of truth" as gospel in SwiftUI, but you can't have that.
First of all, Swift's official position is that you should "prefer structs" over classes. But (and this is one of Swift's hokier characteristics) structs are passed by value (copied) instead of by reference. So your "single source of truth" is broken after the first function call; your data are copied all over the place.<p>But there's another problem with the single-source mantra: You can't just expose your core model to the UI for direct manipulation, so you have an intermediary (the so-called "viewmodel"). But that intermediary must have temporary data structures to shadow those in the core model, so the UI isn't messing directly with the model, and the user can cancel or fail when changing things without messing up the integrity of the model.<p>So now, once again, you don't have a "single source of truth."<p>The problem isn't understanding the paradigm; it's making it do useful work. Some people love to mock OO for its early and obviously cumbersome and pointless idioms, which were quickly abandoned by experienced programmers. What remains of OO is still quite useful.
I predict the same for... whatever the this mess is called. You waste so much time trying to follow the gospel of "MVVM" for no actual benefit. As I went through it, re-reading and re-digesting various pundits' viewpoints... I realized that I just had to start from scratch and build something that pays off instead of a bunch of useless ceremony.<p>I switched everything to classes, built managers (controllers) for the big categories of data and tasks I need to organize, and inject whatever objects I need into each view.<p>As for the rest of SwiftUI, its state is disgraceful. It excels at scaling UI for different screen resolutions; something that Apple neglected for waayyyyy toooo long. But there was no excuse for Apple to release a UI framework that basically didn't support the most fundamental UI paradigm of phone applications: a stack of progressive views that are programmatically manageable.<p>How many half-assed attempts has Apple trotted out, to do what UIKit does with ease? The latest is NavigationStack, which is still pathetic. The only way to navigate more than a level deep is to create an array of one datatype to serve as NavigationStack's "path." But this is designed to be an array of a single datatype. Look at the examples for this thing: They're applications that present a stack of views that each show... an INTEGER. In decades, I have never written an application that needed to stack up a pile of views that all show the same datatype.<p>And yes, I know the workaround for this where you create your own struct datatype and then fill it with enums, one for each view. But come on; the fact that Apple even rolled out this ludicrous design tells you that the talented architects have left the building.</p>
]]></description><pubDate>Mon, 03 Aug 2026 06:26:09 +0000</pubDate><link>https://news.ycombinator.com/item?id=49151924</link><dc:creator>VerifiedReports</dc:creator><comments>https://news.ycombinator.com/item?id=49151924</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49151924</guid></item><item><title><![CDATA[New comment by VerifiedReports in "Ghost Cut – Or why Cut and Paste is broken everywhere"]]></title><description><![CDATA[
<p>Exactly, you've nailed it.</p>
]]></description><pubDate>Wed, 22 Jul 2026 20:14:30 +0000</pubDate><link>https://news.ycombinator.com/item?id=49012748</link><dc:creator>VerifiedReports</dc:creator><comments>https://news.ycombinator.com/item?id=49012748</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49012748</guid></item><item><title><![CDATA[New comment by VerifiedReports in "Ghost Cut – Or why Cut and Paste is broken everywhere"]]></title><description><![CDATA[
<p>Yes, I disagree that the cited behavior is defective. But I respect his pointing-out of the shortcomings and offering other options.<p>I find myself using the clipboard-erasure "defect" somewhat frequently to cut something to the clipboard, and then undoing the change and using the clipboard contents. And this is specifically useful in a way that merely copying isn't... but at the moment I can't remember why, or whether I use this when programming or working around InDesign's many defects.</p>
]]></description><pubDate>Wed, 22 Jul 2026 17:13:52 +0000</pubDate><link>https://news.ycombinator.com/item?id=49010067</link><dc:creator>VerifiedReports</dc:creator><comments>https://news.ycombinator.com/item?id=49010067</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49010067</guid></item><item><title><![CDATA[New comment by VerifiedReports in "A flaky test exposed a Redis client use-after-free"]]></title><description><![CDATA[
<p>I don't think you're replying to the right comment, since I didn't mention anything working.</p>
]]></description><pubDate>Wed, 22 Jul 2026 01:57:10 +0000</pubDate><link>https://news.ycombinator.com/item?id=49000899</link><dc:creator>VerifiedReports</dc:creator><comments>https://news.ycombinator.com/item?id=49000899</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49000899</guid></item><item><title><![CDATA[New comment by VerifiedReports in "Microsoft Confirms Windows GDID Device Identifier That Cannot Be Disabled"]]></title><description><![CDATA[
<p>Vast majority of what?</p>
]]></description><pubDate>Wed, 22 Jul 2026 01:55:26 +0000</pubDate><link>https://news.ycombinator.com/item?id=49000884</link><dc:creator>VerifiedReports</dc:creator><comments>https://news.ycombinator.com/item?id=49000884</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49000884</guid></item><item><title><![CDATA[New comment by VerifiedReports in "Microsoft Confirms Windows GDID Device Identifier That Cannot Be Disabled"]]></title><description><![CDATA[
<p>So?</p>
]]></description><pubDate>Wed, 22 Jul 2026 01:55:01 +0000</pubDate><link>https://news.ycombinator.com/item?id=49000880</link><dc:creator>VerifiedReports</dc:creator><comments>https://news.ycombinator.com/item?id=49000880</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49000880</guid></item><item><title><![CDATA[New comment by VerifiedReports in "A flaky test exposed a Redis client use-after-free"]]></title><description><![CDATA[
<p>That makes no grammatical sense.</p>
]]></description><pubDate>Wed, 22 Jul 2026 01:50:45 +0000</pubDate><link>https://news.ycombinator.com/item?id=49000854</link><dc:creator>VerifiedReports</dc:creator><comments>https://news.ycombinator.com/item?id=49000854</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49000854</guid></item><item><title><![CDATA[New comment by VerifiedReports in "Apple defeats liability for not scanning iCloud for CSAM"]]></title><description><![CDATA[
<p>Whatever "CSAM" is...</p>
]]></description><pubDate>Wed, 22 Jul 2026 01:50:08 +0000</pubDate><link>https://news.ycombinator.com/item?id=49000849</link><dc:creator>VerifiedReports</dc:creator><comments>https://news.ycombinator.com/item?id=49000849</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49000849</guid></item><item><title><![CDATA[New comment by VerifiedReports in "Arduino Launches Plug-and-Play Modules for Long-Range Sensor Projects"]]></title><description><![CDATA[
<p>And with such poor value for the money. When an Arduino costs as much as a Raspberry Pi 4, it's eliminated from contention.</p>
]]></description><pubDate>Tue, 21 Jul 2026 13:45:56 +0000</pubDate><link>https://news.ycombinator.com/item?id=48992288</link><dc:creator>VerifiedReports</dc:creator><comments>https://news.ycombinator.com/item?id=48992288</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48992288</guid></item><item><title><![CDATA[New comment by VerifiedReports in "The Great Steam Deck Crash of 2026: How the New Pricing Decreased Demand by 80%"]]></title><description><![CDATA[
<p>Virtue signal received.</p>
]]></description><pubDate>Tue, 21 Jul 2026 13:41:50 +0000</pubDate><link>https://news.ycombinator.com/item?id=48992236</link><dc:creator>VerifiedReports</dc:creator><comments>https://news.ycombinator.com/item?id=48992236</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48992236</guid></item><item><title><![CDATA[New comment by VerifiedReports in "Kaiser nurses say AI, workplace surveillance are making their jobs, care worse"]]></title><description><![CDATA[
<p>And Kaiser already sucks big-time, so... that's not good.</p>
]]></description><pubDate>Sat, 18 Jul 2026 03:30:10 +0000</pubDate><link>https://news.ycombinator.com/item?id=48954937</link><dc:creator>VerifiedReports</dc:creator><comments>https://news.ycombinator.com/item?id=48954937</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48954937</guid></item><item><title><![CDATA[New comment by VerifiedReports in "Microsoft Confirms Windows GDID Device Identifier That Cannot Be Disabled"]]></title><description><![CDATA[
<p>"Old" people? How about the vast majority of the public, which is not represented on HN?<p>Not to mention that one of the many major UI regressions in Windows is the removal of title bars from application windows, which is fundamental to this "trick." Try opening a PDF in Edge and also in Acrobat. Neither window has a title bar, and they are otherwise almost identical. You have to scrutinize the very few controls around the window to determine which app you're looking at.<p>Microsoft and its software are trash now.</p>
]]></description><pubDate>Wed, 15 Jul 2026 15:37:02 +0000</pubDate><link>https://news.ycombinator.com/item?id=48922476</link><dc:creator>VerifiedReports</dc:creator><comments>https://news.ycombinator.com/item?id=48922476</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48922476</guid></item><item><title><![CDATA[New comment by VerifiedReports in "TypeScript 7"]]></title><description><![CDATA[
<p>Thanks for the reply. I don't understand what a TypeScript version bump has to do with import statements, though.</p>
]]></description><pubDate>Thu, 09 Jul 2026 05:48:44 +0000</pubDate><link>https://news.ycombinator.com/item?id=48841463</link><dc:creator>VerifiedReports</dc:creator><comments>https://news.ycombinator.com/item?id=48841463</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48841463</guid></item><item><title><![CDATA[New comment by VerifiedReports in "Show HN: Davit, a Apple Containers UI"]]></title><description><![CDATA[
<p>Why would someone downvote this perfectly relevant question?<p>Pathetic.</p>
]]></description><pubDate>Wed, 08 Jul 2026 06:57:48 +0000</pubDate><link>https://news.ycombinator.com/item?id=48828527</link><dc:creator>VerifiedReports</dc:creator><comments>https://news.ycombinator.com/item?id=48828527</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48828527</guid></item><item><title><![CDATA[New comment by VerifiedReports in "Qwen 3.6 27B is the sweet spot for local development"]]></title><description><![CDATA[
<p>Exactly. The distinction between the various layers in "AI" systems is pretty vague to the newcomer. What is the "model" vs. the engine "running" it vs. weights?<p>I don't recall any previous tech stack that was barfed onto the scene with so little background or reference material, going from zero to endless undefined jargon... and no primer in sight.<p>For people who demand an understanding of their tools, it's a lot of work. I recognize the value of "AI" in performing the tasks I'd have to do manually; for example, keeping the data structures of my front- and back-ends in sync in a project. But do I want to interrupt my development and take weeks off to digest all of these tools?<p>And if I do, I want to run the show and fully understand it. And like you, I think that's best done locally.</p>
]]></description><pubDate>Mon, 29 Jun 2026 20:13:00 +0000</pubDate><link>https://news.ycombinator.com/item?id=48724529</link><dc:creator>VerifiedReports</dc:creator><comments>https://news.ycombinator.com/item?id=48724529</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48724529</guid></item><item><title><![CDATA[New comment by VerifiedReports in "A Fundamental Principle of Aeronautical Engineering Has Been Overturned"]]></title><description><![CDATA[
<p>If this is the previously-discussed one, the difference here is that it's not ribbing so it's not directional.</p>
]]></description><pubDate>Mon, 08 Jun 2026 00:22:02 +0000</pubDate><link>https://news.ycombinator.com/item?id=48440029</link><dc:creator>VerifiedReports</dc:creator><comments>https://news.ycombinator.com/item?id=48440029</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48440029</guid></item><item><title><![CDATA[New comment by VerifiedReports in "Tracing a powerful GNSS interference source over Europe"]]></title><description><![CDATA[
<p>The disturbing thing is that anyone was surprised by this. GPS is very fragile.<p>This made news in the U.S. a few years ago because Ajit Pai had the brilliant idea to allow so-called "5G" telecom service on frequencies too close to those of GPS. I don't think this case is resolved yet: <a href="https://physicstoday.aip.org/news/new-5g-exemption-may-jam-gps-devices" rel="nofollow">https://physicstoday.aip.org/news/new-5g-exemption-may-jam-g...</a></p>
]]></description><pubDate>Fri, 05 Jun 2026 20:46:29 +0000</pubDate><link>https://news.ycombinator.com/item?id=48418019</link><dc:creator>VerifiedReports</dc:creator><comments>https://news.ycombinator.com/item?id=48418019</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48418019</guid></item></channel></rss>