<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: bfbf</title><link>https://news.ycombinator.com/user?id=bfbf</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Fri, 17 Apr 2026 11:13:40 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=bfbf" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by bfbf in "Bring Back Idiomatic Design"]]></title><description><![CDATA[
<p>But that’s the point, no? Prototyping is useful but beyond a proof of concept, you still need a suitable user interface. I have no problems if there’s a rationale behind UI changes, but often we have stakeholders telling us to do something inconsistent just so their pet project can be presented to the user. That’s not design.</p>
]]></description><pubDate>Sun, 12 Apr 2026 17:49:16 +0000</pubDate><link>https://news.ycombinator.com/item?id=47742411</link><dc:creator>bfbf</dc:creator><comments>https://news.ycombinator.com/item?id=47742411</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47742411</guid></item><item><title><![CDATA[New comment by bfbf in "Bring Back Idiomatic Design (2023)"]]></title><description><![CDATA[
<p>It’s amazing how many blank stares I get when I, as mobile engineer, tell stakeholders that we shouldn’t just implement some random interface idea they thought up in the shower and we instead need design input!<p>“But why can’t you just do it?” Because I recognise the importance of consistent UX and an IA that can actually be followed.<p>Just like developers, (proper) designers solve problems, an we need to stop asking them for faster bikes.</p>
]]></description><pubDate>Sun, 12 Apr 2026 16:04:27 +0000</pubDate><link>https://news.ycombinator.com/item?id=47741320</link><dc:creator>bfbf</dc:creator><comments>https://news.ycombinator.com/item?id=47741320</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47741320</guid></item><item><title><![CDATA[New comment by bfbf in "Writing code is cheap now"]]></title><description><![CDATA[
<p>In my experience, it’s even <i>more</i> effort to get good code with an agent-when writing by hand, I fully understand the rationale for each line I write. With ai, I have to assess every clause and think about why it’s there. Even when code reviewing juniors, there’s a level of trust that they had a reason for including each line (assuming they’re not using ai too for a moment); that’s not at all my experience with Codex.<p>Last month I did the majority of my work through an agent, and while I did review its work, I’m now finding edge cases and bugs of the kind that I’d never have expected a human to introduce. Obviously it’s on me to better review its output, but the perceived gains of just throwing a quick bug ticket at the ai quickly disappear when you want to have a scalable project.</p>
]]></description><pubDate>Tue, 24 Feb 2026 07:46:44 +0000</pubDate><link>https://news.ycombinator.com/item?id=47134100</link><dc:creator>bfbf</dc:creator><comments>https://news.ycombinator.com/item?id=47134100</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47134100</guid></item><item><title><![CDATA[New comment by bfbf in "Resizing windows on macOS Tahoe – the saga continues"]]></title><description><![CDATA[
<p>If you click the full screen window, your little window is now behind it…</p>
]]></description><pubDate>Fri, 13 Feb 2026 21:17:06 +0000</pubDate><link>https://news.ycombinator.com/item?id=47007952</link><dc:creator>bfbf</dc:creator><comments>https://news.ycombinator.com/item?id=47007952</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47007952</guid></item><item><title><![CDATA[New comment by bfbf in "Resizing windows on macOS Tahoe – the saga continues"]]></title><description><![CDATA[
<p>MacOS definitely has its issues but this just makes it sound like you have different expectations of how an OS should work. Different isn’t always bad. Hiding applications is a pretty key concept in MacOS. Shortcuts are pretty straightforward? Cmd+H to hide, Cmd+Q to quit. Spaces aren’t hidden- there’s lots of ways to access them, but it seems you haven’t bothered to learn them. In your example pressing ctrl+right would have switched the first full screen space. You could also have right clicked the Chrome icon in the dock for a list of windows.<p>BTW the dock doesn’t have to be hidden, and idk if it was a typo but alt+tab isn’t a default shortcut. Command is the key used for system shortcuts, so maybe you should have tried that? Like yeah it’s different but that doesn’t make it bad. If you been using it for 10 years without figuring that out…<p>—-<p>I’m with you on the 1st party apps though, and the stupid corners on Tahoe.</p>
]]></description><pubDate>Fri, 13 Feb 2026 21:14:20 +0000</pubDate><link>https://news.ycombinator.com/item?id=47007915</link><dc:creator>bfbf</dc:creator><comments>https://news.ycombinator.com/item?id=47007915</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47007915</guid></item><item><title><![CDATA[New comment by bfbf in "The unbearable frustration of figuring out APIs"]]></title><description><![CDATA[
<p>Gotta say as a Swift dev I agree—followed the link the to Translate docs and was pleasantly surprised to see a discussion section clearly explaining the usage, which is not always the case for Apple APIs! But this wasn’t really just an article about the API. It was about the complexity of trying to build on the stack of Swift/SPM/ParseableCommand/Foundation/Concurrency/Translation without having a good grasp of any of them. I was frustrated reading it, but I think it does point to the underlying knowledge that’s needed to be proficient at something like this. None of it is a particular indictment of Swift as an ecosystem (though there are lots of valid criticisms)-it’s just the nature of development and something that’s massively eroded by relying too much on these ghosts</p>
]]></description><pubDate>Wed, 14 Jan 2026 20:48:20 +0000</pubDate><link>https://news.ycombinator.com/item?id=46623087</link><dc:creator>bfbf</dc:creator><comments>https://news.ycombinator.com/item?id=46623087</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46623087</guid></item><item><title><![CDATA[New comment by bfbf in "The unbearable frustration of figuring out APIs"]]></title><description><![CDATA[
<p>As a Swift dev, I have to say this was a frustrating read.<p>Apple’s documentation is often very poor, and I will note that Swift Packages (especially CLIs) doesn’t always feel great. As another commenter noted, anything other than Xcode feels like fighting an uphill battle.<p>But many of your frustrations could be solved by checking not API docs, but just the Swift language guide. You seem perturbed, for example, that the Package initializer expects ordered arguments. It is a basic part of Swift’s design that arguments are always ordered and exclusively are either named or unnamed (never optionally both).<p>The ghost’s use of semaphores with async/await is a massive red flag in terms of mixing two asynchronous frameworks (Concurrency and GCD). I’d not be surprised if it worked, but that’s really against the grain in terms of how either framework were designed. This is the shortfall of relying on bottled ghosts to learn new tools. I know from experience that the documentation on Concurrency (async/await) is pretty good, and lays out a clear rationale for how it’s intended to be used, but that is a huge piece of documentation and it’s a big hill to climb when all you’re building is a small tool. This is the risk we run when asking AI for help when it itself is ignorant of the actual intended use of the apis and is only trained on the output of developers. Here it’s easy to see that it was faced with a problem of synchronous access to an async function and reached for a common solution (semaphore), despite the fact that semaphores are part of a 10 year old framework, and the async/await keywords are only 2-3 years old!<p>Anyway, the article reminded me of the challenges of learning a new (programming) language. There’s more to it than just following tutorials and blindly directing AI. I know the feeling, having to currently learn c# at the moment. I can write simple functions and follow the syntax, but I can’t intuitively understand what’s happening like I can with Swift. Is that because Swift is better than C#? Not really- it’s just that I’m fluent in one but not the other. Ironically I guess you probably get this already from learning Mandarin, but you’ve not written an article about how frustrating it is that it inexplicably insists on using tones to express meaning, when English is fine without it(!).<p>I’m sorry you had a bad experience with Swift. I do genuinely think it’s a great language to write, and the open source Swift Evolution team are great. They are continually pushing for more openness and more cross platform compatibility, and I do like the way that the core of the language is strongly opinionated in a way that makes it clear what’s happening if you do understand the syntax. What’s hard is then the application of Apple’s APIs which are wildly inconsistent and often incomplete. Some are maintained while others are still wrappers for 15 year old objective C that have no concept of modern Swift paradigms. That said, I’d still encourage you to persevere with Swift. Once you get past those rough edges of stdio and UI and get into the heart of a Package, I would expect most of these complaints to disappear!</p>
]]></description><pubDate>Wed, 14 Jan 2026 20:38:37 +0000</pubDate><link>https://news.ycombinator.com/item?id=46622890</link><dc:creator>bfbf</dc:creator><comments>https://news.ycombinator.com/item?id=46622890</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46622890</guid></item></channel></rss>