HNHacker News
TopNewBestAskShowJobs

interpol_p

4,550 karma · joined September 23, 2012

submissionscomments
interpol_p··on Xcode 27.1 Beta Release Notes
I started adding support for iPhone Duo in some of my apps. Here's an example of some of the work required https://mastodon.social/@simsaens/117296064810231465 — all my apps are hobby apps. Even though they all support iPad / resizability, it's still a large amount of work
interpol_p··on New Mac Studio with M5 Max and M5 Ultra
They used to support that. Isn’t possible to do unified memory in those configurations? If not, then I expect it’s a headache Apple does not want to deal with. For example, earlier versions of Metal have unified/discrete memory modes with different API availability and behaviour in each - what a nightmare to support and maintain and keep bugs out it would be
interpol_p··on Why we write our own C and C++ inference engines
I've always used em-dash. I got familiar with the hotkeys when I started using Mac OS X in 2002. Option+Hyphen for en-dash, Option+Shift+Hyphen for em-dash. It's unfortunate that it's an LLM tell. I'm glad the LLMs haven't subsumed proper ellipses yet…
interpol_p··on Why we write our own C and C++ inference engines
I stopped reading almost immediately. The stylistic choices in the writing just felt like LLM to me. Examples:

"depth estimation that beats PyTorch on CPU in half the memory" — "…beats X in Y…"

"Most LocalAI backends wrap somebody else’s engine, and that is the right default." — "…and that is the right"

"MLX and the rest are maintained by people who are better at those models than we are" — "better at those models than we are" — it's this thing that LLMs do where they are kind of weirdly confident but overly deferential

"This post is about what those ports buy" — "…buy" used in this context

"Same model, 1.31x the speed" — "Same X, something Y" — it's this overconfident yet deferential writing style

The further I read, the more tells there are. I find it incredibly tiring to read LLM generated prose and I'm not sure why. Is it because I'm aware it's not human written and have an unconscious bias? Or is it because the style is just full-on, "Not X but Y. Those performance gains are bought, not earned. This stops, that starts. Read on, or don't, that's the follow-up"

interpol_p··on SwiftUI After 7 Years
SwiftUI has a lot of failings, but it can also do a lot of things that are really tricky in UIKit.

I can render Metal shaders trivially in SwiftUI. Rendering glows, and blurs, and animated effects is much easier in SwiftUI than in UIKit, just use `.blur(radius:)` or `.blendMode(...)`

I have used AppKit and then UIKit since its inception. Creating visual effects like layer masks that modulate the opacity of underlying views is trivially easy in SwiftUI — far easier than the boilerplate and constant bookkeeping that CALayer's mask requires.

So a lot of the advanced full-screen animations in some of my games and apps are SwiftUI, because they are performant, provide the cool effects and animations, and work great. A lot of the simple get-the-job-done views and tool palettes in my apps are also SwiftUI, again because they don't ask much and get the job done, and look great.

However, where SwiftUI falls down is exactly what was demoed in the video: large collections of thumbnails that fetch asynchronously? Use UIKit. Multi-thousands of items in large, complicated lists? You can try SwiftUI, but you'll need to learn how to optimize it.

Other things, not mentioned in the video, that are more annoying in SwiftUI: want to take control of a transition between views, end-to-end? Not really possible in SwiftUI. There are bugs with ZoomNavigationTransition that affect all of Apple's own apps, and you aren't gonna be able to fix them without switching to UIKit.

interpol_p··on Lego building instructions through time
It’s incredible some of the little details in LEGO instructions.

My son and I were assembling a set, and one of the corner pieces was strangely absent. My son asked, “why can’t we put this piece in yet?”

The answer came when we turned the page and saw the model had to be flipped. That missing corner piece was the only thing we could use to guide our placement of pieces on the underside of the model.

Similar things in more complex sets include using different, bright colours for bricks on the left/right sides of the internal parts of models. It makes it easy to keep your place as the model rotates through the steps.

interpol_p··on Lore – Open source version control system designed for scalability
Their docs seem entirely LLM written. It seems especially obvious in the FAQ. While I'm not against using LLMs for writing assistance, they've left a lot of the unnecessary language and typical stylistic choices in there, which erodes my trust in the project a bit. Perhaps it's a very good game-oriented version control system, but the lack of human attention on the docs makes me wonder how much they care
interpol_p··on I don't think AI will make your processes go faster
There are a lot of ways that AI speeds up software development processes that aren't the actual software development.

I am finding that lately I do not allow LLMs to write any code I am interested in maintaining. Or if they do, I have to micromanage them and it usually takes longer. They produce mediocre solutions, and often add redundant state ("Why did you add that state?" "Because we might need it in the future")

That said, they are extremely good at:

- Dev tools: creating debug tooling, debug screens, scripts that get the job done - Auxiliary development: landing pages, "what's new" screens, tedious boilerplate, gathering strings for localization - Prototyping: building full implementations quickly so you can see all the problems rather than having to anticipate them - Pure transformation: porting from one language or paradigm to another

So while I agree with the article that the actual spec of the feature you are building needs just as much human thought, regardless of AI, the speed-ups around that are worth exploring

An example I have from a recent feature development is adding CarPlay support to an existing app. We could have talked about it and designed it for weeks, but with an LLM I was able to get it running in my car in an hour, go for a drive, and feel it to understand whether it was a valuable direction.

The code was a mess, most of it had to be thrown away, and the LLM couldn't even get the initial build functional (not much CarPlay training data, I expect). But it was an accelerator to answer the question "is it worth investing more time in this?"

interpol_p··on Write some software, give it away for free
To repurpose a quote from Walt Disney, I don’t make software to make money, I make money to make more software.

I want my hobby project to be my job, because I don’t want to work for someone else. I want creative control, freedom to explore and ship ideas, and financial stability.

The only way to get there, that I can see, is to charge for my work.

interpol_p··on Bitmap and tilemap generation from a single example
I always wondered how this compares to the 1999 algorithm Texture Synthesis by Non-parametric Sampling [1]. The results look very similar to my eyes. Implementation here [2] — has anyone tried both?

[1] https://www2.eecs.berkeley.edu/Research/Projects/CS/vision/p...

[2] https://github.com/goldbema/TextureSynthesis

interpol_p··on Dad brains: How fatherhood rewires the male mind
I was unclear. I meant it's not difficult to feel nurturing towards them and form a bond. That's what I thought the OP meant about being difficult.
interpol_p··on Dad brains: How fatherhood rewires the male mind
Woah. As an adult man with five kids, two of them infants, the most natural thing in the world is for them to be present in almost every second of my life.

It’s not difficult at all. Minutes after birth, naked baby was on my naked chest, and bonding started. This never felt contrary to my instinct.

interpol_p··on I still prefer MCP over skills
We had a contention between MCP / Skills for our product and ended up offering both. We built a CLI tool that could interface with the MCP server [1]. It seems redundant but our app is a coding app on iOS (Codea), and the issue with offering a plain MCP server meant that the agentic coding harness found it harder to do its job.

With the CLI the agent could check out the project, work on it locally with its standard file editing / patching / reading tools, then push the work back to device. Run and debug on device, edit locally, push.

With MCP the agent had to query the MCP server for every read and write and was no longer operating in its normal coding loop. It still works, though, and as a user you can choose to bypass the CLI and connect directly via MCP.

The MCP server was valuable as it gave us a consistent and deterministic language to speak. The CLI tool + Skill was valuable for agentic coding because it allowed the coding work to happen with the standard editing tools used by agents.

The CLI also gave us device discovery. So the agent can simply discover nearby devices running Codea and get to work, instead of a user having to add a specific device via its IP address to their agent.

[1] https://codea.io/cli

interpol_p··on Native Instant Space Switching on macOS
I tried to live like this for a while but found I could not separate applications into spaces

I would try setting up a space for, eg, all my communication stuff. But suddenly I’d need to drag-and-drop an image from my image editor into Slack. Or I’d want to drag a graphic from Safari into Final Cut Pro. Or any number of cross-workspace operations

How do you handle this with spaces? Do you initiate the drag, tap the space hot key, then drop?

interpol_p··on 1M context is now generally available for Opus 4.6 and Sonnet 4.6
I had Opus 4.6 running on a backend bug for hours. It got nowhere. Turned out the problem was in AWS X-ray swizzling the fetch method and not handling the same argument types as the original, which led to cryptic errors.

I had Opus 4.6 tell me I was "seeing things wrong" when I tried to have it correct some graphical issues. It got stuck in a loop of re-introducing the same bug every hour or so in an attempt to fix the issue.

I'm not disagreeing with your experience, but in my experience it is largely the same as what I had with Opus 4.5 / Codex / etc.

interpol_p··on Agents that run while I sleep
The example given in the article is acceptance criteria for a login/password entry flow. This is fairly easy to spec-out in terms of AC and TDD.

I have been asking these tools to build other types of projects where it (seems?) much more difficult to verify without a human-in-the-loop. One example is I had asked Codex to build a simulation of the solar system using a Metal renderer. It produced a fun working app quickly.

I asked it to add bloom. It looped for hours, failing. I would have to manually verify — because even from images — it couldn't tell what was right and wrong. It only got it right when I pasted a how-to-write-a-bloom-shader-pass-in-Metal blog post into it.

Then I noticed that all of the planet textures were rotating oddly every time I orbited the camera. Codex got stuck in another endless loop of "Oh, the lookAt matrix is in column major, let me fix that <proceeds to break everything>." or focusing (incorrectly) on UV coordinates and shader code. Eventually Codex told me what I was seeing "was expected" and that I just "felt like it was wrong."

When I finally realised the problem was that Codex had drawn the planets with back-facing polygons only, I reported the error, to which Codex replied, "Good hypothesis, but no"

I insisted that it change the culling configuration and then it worked fine.

These tools are fun, and great time savers (at times), but take them out of their comfort zone and it becomes real hard to steer them without domain knowledge and close human review.

interpol_p··on macOS Tahoe windows have different corner radiuses
That's a pretty extreme take. I've been using the Mac since about 2001. I like Tahoe and a well designed Tahoe app can look really nice on the platform. There are bugs, inconsistencies and other issues, but it doesn't feel that different than many previous macOS / OS X releases
interpol_p··on I'm making a game engine based on dynamic signed distance fields (SDFs) [video]
I believe you can do regular hard edged intersections. You can see in his operator list some are listed as “smoothSubtract” and some are just “subtract”

It’s just easy to do the melding thing with SDFs so a lot of people do it

interpol_p··on Changes to Android Open Source Project
The reason this happens is because big companies get their software pen tested. Part of the pen test report will include something like “accessible from jailbroken devices.”

The pen test results get put into the ticket system as immovable entries. Engineers will question them, only to be shot down by the cyber security department who organized the pen test. The engineers will eventually accept that they cannot convince cyber to drop the issue, and implement the jail break detection.

Why does cyber mandate it? Because no one in a large company wants to accept the risk, even imaginary risk. They want to be able to say, when security is breached, “we did our due diligence. Look at the report, we implemented everything in it”

Why do firms offering penetration testing keep putting junk like this into their reports? Because their automated tools list them out and they’re getting paid to find issues. The more the better.

It’s insane and entirely about passing off risk.

interpol_p··on Instagram chief orders staff back to the office five days a week in 2026
Depends what you see as “abusing” the system. By working from home, I can take a walk in the garden when I find it hard to think, it energises me. At my office I can (and do) take a walk in the car park, but inevitably I leave the office with a headache caused by constant noise and fluorescent lighting

At home, I can put my family first if needed. When I’m at the office and something comes up at the kids’ school that I need to deal with, it’s a mad dash to get away soon enough that I almost have to drop everything and run

The times working in the office has been good as a software engineer: when we are prototyping on physical hardware I do not have at home. That’s it

It’s great if people love to go to the office. That’s fine. It’s managers that enforce it who are the problem — the people who work for you aren’t children and if you feel like you can’t trust them to make the decision to work from home, why on earth would you trust them in your office?

interpol_p··on Android and iPhone users can now share files, starting with the Pixel 10
It's fast, but it's not that fast.

My son regularly borrows my iPhone 14 Pro for shooting video, and I inevitably have to do a large AirDrop transfer to him of all his footage. We usually see about 10 GB per minute, which is really fast

interpol_p··on RTO: WTAF
Sure. I catch up with many of them on weekends anyway — we hike together, our families know each other, some live nearby etc.

Regarding knowledge sharing, that happens equally well via Slack. (Actually, I'd say a screen share works better than over-the-shouldering someone else's screen in person)

interpol_p··on RTO: WTAF
We have some sort of hybrid policy. Every single time I have showed up at the office, I either end up socialising far too much and get nothing done (I find it extremely hard to work next to people without talking to them).

Or nobody is there and I end up having driven (40 minutes each way) to the office to have Teams meetings with a wonderful view of the car park, under fluorescent lights, using a cheap low-resolution office monitor. When I could have been having those Teams meetings with a view of my garden and a much nicer monitor I have invested in

interpol_p··on iPhone Air
I'm in the market for this

I've been hoping for Apple to return to "thin" and it's nice that they're trying. I don't know whether I would buy this, but my current iPhone 14 Pro feels like a brick — thick stainless steel

When I go for a run, it's uncomfortable to have in a pocket depending on what running clothes I am wearing. The heaviness makes it feel far more likely to break all the times I have dropped it (and I have dropped it many times, without a case)

interpol_p··on OpenAI Progress
I really like the brevity of text-davinci-001. Attempting to read the other answers felt laborious
interpol_p··on Blurry rendering of games on Mac
Safe area can account for things that are not just a notch. It's used across Apple platforms to indicate anything that might need to occupy a dedicated region on the screen: notch on iPhones, home indicator, iPadOS traffic light buttons, menu bar, curved edges of displays, and so on

Your container views can extend the safe areas for their children as well. In our apps, which allow users to run their own custom projects, we increase the safe area for our UI so that users can avoid it in their own rendering

Safe area is a fairly neat and functional API. The unfortunate thing is the older `CGDisplayCopyAllDisplayModes` API is just lumping all resolutions together

interpol_p··on Claude Code is all you need
I've been diving into Claude Code after reading articles constantly praising its abilities. But I think perhaps it's better suited to web development

Using it for iOS development is interesting. It does produce working output (sometimes!) but it's very hit-or-miss. Recently I gave it a couple hours to build a CarPlay prototype of one of my apps. It was completely unable to refactor the codebase to correctly support CarPlay (even though I passed the entire CarPlay documentation into it). I gave it three attempts at it. Then I intervened and added support for CarPlay manually, following that I added a lot of skeleton code for it to flesh out. Claude was then able to build a prototype

However, over the next few days as I tried to maintain the code I ended up rewriting 60% of it because it was not maintainable or correct. (By "not correct" I mean it had logic errors and was updating the display multiple times with incorrect information before replacing it with correct information, causing the data displayed to randomly refresh)

I also tried getting it to add some new screens to a game I develop. I wanted it to add some of the purchase flows into the app (boring code that I hate writing). It managed to do it with compile errors, and was unable to fix its own build output despite having the tools to do so. Instead of fixing the build errors it caused, Claude Code decided it would manually verify that only its own changes were correct by running `swiftc` on only files that it touched. Which was nonsense

All that said, there was a benefit in that Claude Code writing all this code and getting something up on the screen motivated me to finally pick up the work and do some of these tasks. I had been putting them off for months and just having the work "get started" no matter how bad, was a good kick start

interpol_p··on Apple vs the Law
I don't have sympathy for them. I just happen to agree that it's a lot of engineering work to comply now.

Perhaps if they had opened parts of their infrastructure much earlier, they wouldn't be legally compelled to do it now, and have to invest significant resources to do so.

interpol_p··on Apple vs the Law
Yeah, who knows if the EU would see it that way. They may require Apple to provide first-party APIs that are equivalent in power to what they offer developers who submit via the App Store. Either way, my post was pointing out that it is non-trivial engineering effort to do this, and I think that's still the case.

Hell, just releasing my own personal code as open source — auditing it, decoupling libraries, removing internal stuff, it's a huge multi-week effort for me to do. For any company with as much code as Apple, it's pretty daunting

interpol_p··on Apple vs the Law
Sure, I'd be into that. But that would not comply with the DMA I think? As in, Apple still has a ton of work to do, engineering wise, if they are to make their platform available to all in the way specified by the DMA

For example, I don't think it would fly that they could say to the EU: users who want a third-party browser just have to enable root access and lose access to all Apple services and authentication

Page 1 of 34Next →