Archive for January 23, 2026

Friday, January 23, 2026

Improving the Usability of C Libraries in Swift

Doug Gregor:

The Swift code above has a very “C” feel to it. It has global function calls with prefixed names like wgpuInstanceCreateSurface and global integer constants like WGPUStatus_Error. It pervasively uses unsafe pointers, some of which are managed with explicit reference counting, where the user provides calls to wpuXYZAddRef and wgpuXYZRelease functions. It works, but it doesn’t feel like Swift, and inherits various safety problems of C.

Fortunately, we can improve this situation, providing a safer and more ergonomic interface to WebGPU from Swift that feels like it belongs in Swift. More importantly, we can do so without changing the WebGPU implementation: Swift provides a suite of annotations that you can apply to C headers to improve the way in which the C APIs are expressed in Swift. These annotations describe common conventions in C that match up with Swift constructs, projecting a more Swift-friendly interface on top of the C code.

[…]

The problem of needing to layer information on top of existing C headers is not a new one. As noted earlier, Swift relies on a Clang feature called API notes to let us express this same information in a separate file, so we don’t have to edit the header.

Previously:

TikTok US Joint Venture

David McCabe and Emmett Lindner (MacRumors, The Verge):

TikTok said on Thursday that its Chinese owner, ByteDance, had struck a deal with a group of non-Chinese investors to create a new U.S. TikTok, concluding a six-year legal saga that saw the app banned by Congress and ensnared in politicking between two global superpowers.

Investors including the software giant Oracle; MGX, an Emirati investment firm; and Silver Lake, another investment firm, will own more than 80 percent of the new venture. That list also includes the personal investment entity for Michael Dell, the tech billionaire behind Dell Technologies, and other firms, TikTok said. Adam Presser, TikTok’s former head of operations, will be the chief executive for the U.S. TikTok.

[…]

The agreement, which was hammered out over more than a year, resolves existential questions about TikTok’s future. The app — with its unceasing feed of lip-syncs, political endorsements, conspiracy theories and skin care tutorials — would have had to leave the American market if it did not separate from ByteDance.

Ashley Belanger:

The law requires the divestment “to end any ‘operational relationship’ between ByteDance and TikTok in the United States,” critics told the NYT. That could be a problem, since TikTok’s release makes it clear that ByteDance will maintain some control over the TikTok US app’s operations.

Previously:

A Lament for Aperture

Daniel Kennett (BasicAppleGuy):

An exception to that, however, is Apple’s Aperture. I’m still grumpy that Apple discontinued it back in 2015, and I’m not alone. Start spending time in the online photography sphere and you’ll start to notice a small but undeniable undercurrent of lament of its loss to this day. Find an article about Adobe hiking their subscription prices because they added AI for some reason, and amongst the complaining in the comments you’ll invariably find it: “I miss Aperture.”

[…]

So, I dug out the ‘ol Trashcan Mac Pro I lovingly reviewed here on this very blog over eleven years ago and fired up Aperture to document — at least partially — just why it was so special.

[…]

This sort of design is common in apps like Photos, and especially in “shoebox” apps. Every feature is in its own place, and if you want to use that feature you need to pick up your thing (in this case, a photo) and take it over to where the feature is. In this example, the journey from the map to the editor is through a separate list of images, the fullscreen viewer, then finally to the editor.

In contrast, Aperture comes to you.

[…]

In Aperture, the loupe is a little round zoomy thing you can either drag around to view a zoomed-in portion of the image it’s on top of, or attach to the mouse so you can just point at stuff to zoom in. […] Aperture’s technical brilliance is remarkable in how quiet it is.

Nick Heer:

The 2015 discontinuation of Aperture continues to break my heart for two reasons: the loss of support for a tremendous piece of software, of course, and also for what it represents. It was, for reasons Kennett writes about and plenty more, a pinnacle of software design and engineering. It felt like it was built by people who took two crafts — software and photography — very seriously.

John Gruber:

This week’s announcement of the Creator Studio bundle included no news about the future of Photomator. However, my spidey-sense says this is a case where no news might be good news.

[…]

Perhaps the biggest omission in this first release of Apple Creator Studio is the lack of a Lightroom rival, which is exactly what Photomator is — and Aperture was. My guess is that Apple and the acquired Pixelmator team are hard at work on a new Creator Studio version of Photomator, including a version for iPad, and it just isn’t finished yet.

I doubt this would be a Pro tool like Aperture was, though.

Joe Rosensteel:

Why not forecast that possibility by telling us what will happen with the multi-platform app Photomator? It’s the direct analog to Lightroom, making it the most obvious missing piece in Apple’s bundle. If it’s because there are no updates to announce for Photomator after over a year, then I would ask, “Why is Apple charging $30 a year for the existing version of Photomator?”

If it’s because Photomator will instead be a $30 a year freemium unlock for the Photos app, then I would ask, “What’s the Creator Studio bundle for if it doesn’t include photography? And why is Apple still charging $30 a year?”

Previously:

Bugs Apple Loves

Bugs Apple Loves (via Hacker News):

You need to find an email. You type in the sender’s name. Nothing. You try the subject line. Nothing. You try a unique word you know was in the email. Nothing.

[…]

You type a word. Autocorrect changes it. You delete it and type what you meant. Autocorrect changes it again. You fix it AGAIN. It changes it AGAIN. You’ve now manually corrected this word twice, clearly signaling you want it this way. Autocorrect doesn’t care. It will die on this hill.

[…]

You’re checking out and need to change your card. You see a button with a credit card icon and your address. You tap it. It changes your address. Not the card. To change the card, you need the other button that says ‘Change Payment’. The one without the card icon.

[…]

AirDrop is on. They’re in your contacts. Nothing. You both toggle WiFi. Nothing. Toggle Bluetooth. Nothing. Turn AirDrop off and on. Sometimes it works. Usually you just text it instead.

[…]

You took some photos. iCloud says ‘Uploading 847 items’. You wait. Next day: ‘Uploading 847 items’. Week later: ‘Uploading 847 items’. Is it stuck? Is it working? Is there an error?

Previously: