❌

Normal view

Whisper and SpeechAnalyzer

22 July 2026 at 21:34

Om Malik (2023):

One of the key advantages of MacWhisper, as it utilizes the Whisper technology, is its superior accuracy in transcriptions compared to other services I have used. I was an early adopter of Rev.com and eventually switched to Otter.ai, for which I paid approximately $100/year. However, I have since canceled my subscription.

[…]

After comparing the audio transcripts from MacWhisper and Otter, I found that while Otter’s formatting is superior, there is hardly any difference in the transcriptions. I started with the free model, which was sufficient for my needs, and eventually upgraded to the large models. Nowadays, I primarily use MacWhisper to transcribe my voice memos, which I then import into Lex.Page.

Bon Adamson:

Whisper, which is made by OpenAI, has the distinct advantage of allowing you to transcribe audio in almost any language you may ever need to. For the time being, Otter can only transcribe English. The benefits of better accuracy and accurate punctuation that the service already holds over Siri hold up across other languages as well. If you’re looking to transcribe non-English audio accurately, Whisper is definitely the best option available on Mac.

Dan Moren:

By taking advantage of OpenAI’s Whisper framework, Audio Hijack can now take any audio it’s recording and generate a text transcript. While this process was possible before—see Jason’s lengthy post about his workflow—it required a lot of fiddling and several different tools to accomplish; it’s certainly a lot easier to simply drop Audio Hijack’s block into your existing session. If you record multiple sources, it can even appropriately label each one—though if you record multiple people via one input, say the other end of a Zoom call, it can’t distinguish between the various participants.

Inscribe (2026, Hacker News):

Apple’s new SpeechAnalyzer is the most accurate on-device speech engine we tested. It beat every Whisper model we ship, including Whisper Small, on both the clean and the noisy half of LibriSpeech, while running roughly three times faster than Small. And the API it replaces, SFSpeechRecognizer, came last on clean speech: behind even Whisper Tiny, a 40MB model.

[…]

The new API cuts word error rate by 3.5 to 4x on the same audio: from 9.02% to 2.12% on clean speech, and from 16.25% to 4.56% on noisy speech. There is no accuracy trade-off to weigh; the new API wins everywhere we measured, and it produces punctuated, cased text where the legacy engine’s output is rougher.

[…]

All five engines ran comfortably faster than real time: between roughly 12x and 40x on the M2 Pro, meaning an hour of audio transcribes in about 1.5 to 5 minutes on-device. SpeechAnalyzer was about 3x faster than Whisper Small per second of audio while beating it on accuracy.

Yuki:

SpeechAnalyzer’s ReportingOption.fastResults reads like a knob you’d reach for when you want to trade power for latency. That framing is what cost me the afternoon.

[…]

If a recording matters — and in a notes app, a lost meeting is the worst thing that can happen to a user — then the container you write while recording has to be PCM in CAF. Not m4a, and not AAC-in-CAF either.

[…]

AVAudioEngine’s inputNode silently ignores your device selection

[…]

I wanted summarization to run on-device. Everything else in Nib’s transcription path does, the audio never leaves the machine, and it would have been a much cleaner story to tell.

But 4,096 tokens for the Foundation Models isn’t enough.

Previously:

CrashStealer

22 July 2026 at 21:34

Thijs Xhaflaire (via Ric Ford):

Jamf Threat Labs discovers and investigates CrashStealer, a C++ macOS infostealer that impersonates Apple's crash-reporting framework to harvest browser credentials, cryptocurrency wallets and keychain data, encrypting stolen files with AES-GCM before exfiltrating them to a remote command-and-control server.

[…]

Unlike the payload it eventually installs, the dropper is properly code signed and notarized: it is a universal (arm64 and x86_64) binary signed with the Developer ID Emil Grigorov (WWB7JA7AQV), has hardened runtime enabled, and carries a stapled notarization ticket. Notably, the disk image itself is signed as well, not just the application inside it, which is uncommon in malicious DMG delivery where the container is typically left unsigned.

[…]

That file supplies the curl command the dropper runs next. Staging the first hop on a trusted developer domain keeps the initial network activity inconspicuous.

[…]

[The script] clears extended attributes on the staged bundle with xattr -cr, makes the inner binary executable, strips the payload's existing signature and re-signs it ad-hoc (codesign --remove-signature followed by codesign -s - --force --deep --no-strict), registers it with Launch Services via lsregister -f, and finally launches it in the background with open -g -n.

Previously:

notarytool Can’t Handle Zip64 Files

20 July 2026 at 16:27

Wade Tregaskis:

In short: if you have any file in your app (or whatever it is you’re trying to get Apple to sign) that is over 4 GiB, you must use a disk image (DMG) to package it for notarytool, not a zip file.

This is because support for files larger than 4 GiB requires using the “Zip64” zip file format, which would be fine except Apple’s notary servers can’t handle them.

Previously:

Update (2026-07-22): Rosyna Keller:

It’s recommended to notarized exactly what you’re going to ship to users and shipping zips is extremely risky because you never know what tool the user will use to decompress the file.

Multiple unzipping tools will strip necessary extended attributes that could cause the code signature to fail to validate. This is especially true if you put non-code files in “code places” and they have to be signed with an extended attribute.

EU Exempts Apple Watch and AirPods From Battery Removal Requirement

17 July 2026 at 22:16

Hartley Charlton:

The European Commission yesterday adopted new exemptions to its Batteries Regulation that free the Apple Watch and AirPods from having to offer user-removable and replaceable batteries.

[…]

The reasoning largely mirrors why devices like electric toothbrushes were already exempt: Opening a compact, sealed enclosure and failing to reseal it properly could let water in and create a safety risk. Products can also qualify for exemption if their construction makes battery removal inherently dangerous, or if there is no realistic way to build in user access given current manufacturing methods.

[…]

The iPhone was already exempt from the removability rule under the original regulation, thanks to its battery cycle life and water resistance rating.

Marcus Mendes:

Although the Commission has adopted the exemption, it must still undergo scrutiny by the European Parliament and the Council of the EU.

[…]

To read the European Commission’s full delegated act, follow this link.

Previously:

Update (2026-07-20): See also: Hacker News.

Update (2026-07-30): Rui Carmo:

This is one of those exceedingly rare cases where EU legislation has produced an unambiguously good outcome: from February 2027, Logitech’s European wireless devices will ship with hard-pack, user-replaceable batteries, and Logitech will sell certified replacements.

SpamSieve 3.3.1

15 July 2026 at 19:53

SpamSieve 3.3.1 is an update of my Mac e-mail spam filter that improves the filtering accuracy and includes various optimizations, fixes, and updates for macOS 27. Some interesting engineering issues were:

  • I’m still supporting macOS 10.13, but the app can now build with the macOS 12 deployment target in preparation for Xcode 27. The way Swift handles calling deprecated APIs remains annoying. You need workarounds like protocols to suppress a warning in a particular region of code. Often, I am updating to a newer API, but I want to continue using the old one on earlier versions of macOS. Right now I am heavily testing on macOS 26, so I would like to only deploy the new code there. Sometimes the initial versions of APIs are buggy, and I don’t want to have to retest every feature on every version. But Swift doesn’t like me to gate the calls to macOS 26 and later if the new API was actually introduced in, say, macOS 11.

  • The most risky update was probably switching to the Swift API for Scanner. This is tricky because the current scan position changes from being based on UTF-16 indexes to String.Index. And in some cases my code was intentionally scanning into the middle of a combining character. I was really glad to have extensive tests here.

  • Recent versions of Tahoe introduced a Core Data bug that broke save recovery (when invalid Unicode can’t be written to the database and we have to fix it up first). When the error comes in, SpamSieve looks under the NSDetailedErrorsKey key, but the value of this key is "NSDetailedErrorsKey" while the actual error info is under the key "NSDetailedErrors".

  • Database corruption combined with a Core Data bug and two Swift behaviors were causing crashes. The root problem, I think, is that in this situation Core Data neglects to set the error pointer for -[NSManagedObjectContext countForFetchRequest:error:]. Normally, Swift would detect this and throw a generic nilError. However, this method signals errors by returning NSNotFound instead of nil. It’s annotated as swift_error(nonnull_error), which I think means that Swift doesn’t even look at the return value, only the (unset) error. So my code was receiving NSNotFound on the non-error path, treating it as a real count, and doing some math with it, which (by default in Swift) leads to a crash if there’s overflow. Now my code checks for NSNotFound and uses Int.addingReportingOverflow().

  • I reimplemented Core Data batch fetching because of two problems with the fetchBatchSize option. First, it logs spurious errors when fetching from multiple stores at once. Second, it leads to high memory use. It will load objects in batches, but it never releases the earlier batches. You can manually refault objects that you no longer need, but it will still hold onto the full object shells, which can add up. My implementation only holds onto IDs, and it can fetch the IDs using a different context than the objects to push more work to background threads.

  • I’m now using String.makeContiguousUTF8() in various places to avoid slow iteration of bridged strings.

  • There was a regression where some menu code could crash on macOS 10.13. -[NSMenu setItemArray:] is only available on macOS 10.14 and later, whereas the getter is always available. With old Objective-C, the two methods could be annotated with separate availabilities. The Objective-C property syntax doesn’t allow this, so there’s no way for the compiler to flag calls where the setter is missing.

  • The AppleScript support works much better with large data sets. The key, I think, is to never return an array to Cocoa for a scripting property/element. First, if you give it a lazy array it will sometimes try to access all the elements even if it only needs a few. And, second, AppleScript will run out of memory if the array is too large. By using indexed accessors, you can maintain laziness and only convert one object to a descriptor at a time. By caching a batch-fetching collection, you can limit the number of fetches and respond quickly when AppleScript requests individual objects.

Previously:

Apple Still Designated a Gatekeeper

9 July 2026 at 19:38

Tim Hardwick:

Apple’s challenge against the EU’s designation of its App Stores and iOS platform as “gatekeepers” was dismissed by Europe’s top court on Wednesday, reports Reuters.

[…]

The company also disputed the classification of iMessage as a number-independent interpersonal communications service, or NIICS, which would subject the app to EU telecoms rules. But the General Court said Apple’s actions regarding the iMessage service are inadmissible.

William Gallagher:

Back in 2023, Apple acknowledged that it qualified under the then-new definition of being what the EU called a gatekeeper service. But key to that is the size of the operation, and since 2024, Apple has been claiming it runs five smaller App Stores rather than one large one.

[…]

“Irrespective of the devices in question,” ruled the judges, “those stores have the same purpose, namely to connect app developers with end users in order to facilitate the distribution of software applications.”

Steve Dent:

Apple disagreed with the decision but didn’t say yet if it would appeal. “We firmly believe the DMA’s mandate goes beyond what is lawful and proportionate, threatening to erode decades of privacy and security protections we’ve built and leaving our users vulnerable to new risks,” an Apple spokesperson said in a statement to multiple outlets. “We will continue advocating for the innovation and privacy our European customers deserve.”

Apple still has two cases pending with EU courts. The first is a challenge to the EU Commission’s decision last year forcing Apple to open iOS to third-party developers, and the second is an appeal against the €500 million fine imposed in April last year for anti-steering violations.

Previously:

Android AI Violates DMA

3 July 2026 at 19:23

Ryan Whitham:

The issue before the commission currently is the built-in advantage for Gemini on Android. When you turn on any Google-powered Android phone, Gemini is already there and gets special treatment at the system level. The European Commission is taking aim at the lack of features available to third-party AI services. The commission believes that there are too many experiences on Android that only work with Google’s Gemini AI, and as a gatekeeper, Google must change that.

[…]

European regulators are proposing several broad changes to the way AI tools operate on Android phones. Some of this is straightforward, like allowing third-party AI tools to be invoked system-wide via hot words or button presses. This might also include allowing AI tools to view screen context when the user opens them.

[…]

Many of the Gemini AI features in Android, including Magic Cue, rely on running local models, and Google has been slow to allow third parties the system access to make that work effectively. So the EU is also suggesting a mandate that would ensure developers have the necessary hardware access to run local models “with high levels of performance, availability and responsiveness.”

Via John Gruber:

The difference between Google and Apple on this front is that Google just blazed ahead and shipped Gemini integrated into Android in the EU, and is now facing compliance problems after shipping. (Ask forgiveness.) Apple isn’t shipping Siri AI in the EU in iOS 27, knowing that it’s going to be deemed non-compliant. (Ask permission.)

Previously:

Update (2026-07-17): Juli Clover:

The European Commission today formally ordered Google to give third-party AI services the same access to Android device features that Gemini has.

[…]

The European Commission is giving Google a full year to implement changes that will meet the Digital Markets Act requirements, and that's before any legal appeals Google might make.

Google (via Ben Schoon):

This Android ruling threatens device security by granting external apps sensitive and powerful device permissions without these safeguards.

Update (2026-07-23): John Gruber (Mastodon):

They provide separate “Q&A” overviews of the guidance for Android AI interoperability and web search sharing, and the full guidance documents are PDFs (Case DMA.100220 for Android AI, Case DMA.100209 for web search).

[…]

The EC is demanding that Google create APIs that allow third-party AI assistants to do everything Google Gemini does now[…]

[…]

Also, in my reading, the EC is demanding that Google make available to third-party AI assistants all information in Google’s own apps (Gmail, Google Calendar, Google Docs, Google Maps, etc.) that Gemini has access to.

[…]

Apple unfortunately hasn’t shared any technical details describing its proposal for a “Trusted System Agent” that it shared with the EC last year. But whatever Apple’s vision for the Trusted System Agent is, I don’t see how the EC would deem it compliant with the DMA if they want from Apple anything close to what they are now demanding from Google.

I don’t know what will come of this, but I’m pleased to see it in the sense that it is logically coherent. The TSA seems like a way to give the appearance of doing something without actually solving the problem. Like Gruber, I don’t really see why Google would want to comply with this rather than taking their Gemini ball and going home. Unlike Gruber, I don’t find it scary to let users opt into sharing their data and background time with apps of their choosing. I don’t like software design by government committee, but it seems less bad than further entrenching an unfettered monopoly. Maybe this could have been avoided if Google had developed its own reasonable solution instead of shipping something that was obviously not compliant.

Dissecting Apple’s Sparse Image Format (ASIF)

30 June 2026 at 20:48

Erik Schamper:

ASIF takes a lot of inspiration from existing virtual disk formats. Practically, that means it’s another sparse virtual disk format, and functions very similar to sparse VMDK, VHDX or QCOW2 files (for the uninitiated, it allow you to store a large disk, or file, in a smaller, “sparse” manner).

Shortly before the release of macOS Tahoe (late 2025), I thought it’d be a fun exercise to try and write a parser for ASIF files.

Previously:

Shutting Down Notion Mail

29 June 2026 at 18:37

Zac Hall:

Last year, Notion expanded its productivity suite to include Notion Mail, an AI-powered email client. Today, the company announced that it’s shutting down the Notion Mail inbox service this fall.

[…]

Today, more than half of Notion Mail users manage emails without ever opening their inbox. So, we’re going all in on using agents to run your inbox.

Previously:

Qualcomm Acquiring Modular

26 June 2026 at 18:21

Chris Lattner:

I’m excited to share that Qualcomm is acquiring Modular: this will accelerate our path to unifying accelerated compute with an open platform. This will also mark a new era in open software development for Qualcomm.

[…]

This will accelerate our progress and path, and their vision is expansive: [spanning] edge to cloud, CPU, GPU, NPU, and custom ASICs and perhaps more.

Modular (Hacker News):

As AI scales, efficiency, not capability, becomes a constraint. Performance-per-watt drives the cost of inference, and cost determines what scales. Meeting this demand requires more than hardware. Developers need software that connects system-level optimization with heterogeneous, disaggregated compute, turning silicon performance into reliable and efficient AI services across accelerators, environments, and use cases.

Previously:

Swift Package Index Joins Apple

24 June 2026 at 21:55

Ted Kremenek, Dave Verwer, and Sven A. Schmidt (Hacker News):

Bringing Swift Package Index to Apple allows us to build on its strong foundations while preserving its vision and expertise. Together, we’re building a comprehensive package registry to serve the Swift community’s evolving needs.

[…]

Swift Package Index will continue to operate as it does today. You can continue to rely on it to discover packages, check compatibility, and explore documentation. As we embark on this new phase, our goal is to accelerate development and introduce new features that make discovering and evaluating packages even better.

[…]

Swift Package Index will remain open source.

Helge Heß:

A little sad that this era ends. SPI was a stronghold of Apple independence, a package index run by independent and trusted individuals.

Swift 6.4

24 June 2026 at 21:54

Swift 6.4 is now available in beta form with Xcode 27. The Swift Evolution proposals are listed here.

What’s new in Swift:

Discover the latest language advancements, including updates for everyday ergonomics, improved concurrency, and safer high-performance code. Explore workflow and language interoperability improvements and updates in embedded Swift.

Build real-time apps and services with gRPC and Swift:

Build engaging live experiences with gRPC in your Swift app and backend. gRPC is an open-source RPC framework designed for high-performance, bidirectional streaming APIs. Explore how the gRPC Swift package provides a modern, safe runtime built with Swift concurrency.

Explore numerical computing in Swift with MLX:

Bring NumPy-style computing natively to Swift with MLX Swift. Discover how to eliminate cross-language friction in your machine learning workflows by handling image processing, tensor operations, and neural network training in a single, type-safe environment. Explore the APIs that let you leverage GPU acceleration while enjoying the compiler, tooling, and debugging experience you already know.

Swift Group Lab:

Join us online for a deep dive into WWDC26 with Apple engineers and designers to ask questions, get advice, and follow the discussion about the week’s biggest Swift announcements.

Matt Massicotte:

There’s a voting system. And that means a number of questions weren’t selected. This time I copied those down and I thought it could be fun to take a shot at answering the ones that are more in my area.

Xcode 27 Beta 2 Release Notes:

The Swift dependency scanner has been optimized to avoid redundant setup work and header searches when looking up Clang modules during a single dependency-scan action, substantially improving scanning performance.

As a consequence of this change, every Clang module reachable from a single Swift dependency-scan action must have a unique module name. If two module maps visible to the same scan declare a Clang module with the same name, the scan may report an error.

[…]

System now provides Swift APIs for the C stat, lstat, fstat, and fstatat system calls. This includes a new Stat type with initializers from FilePath, FileDescriptor, or a C string; FilePath.stat() and FileDescriptor.stat() instance methods; and supporting types (FileType, FileMode, FileFlags, UserID, GroupID, DeviceID, and Inode).

Wade Tregaskis:

The final piece of the Prospective Vision for Accessors, this allows for more efficient accessors on structs, in a nutshell.

[…]

Now there’s a safer version of the existing withUnsafeTemporaryAllocation (first introduced in Swift 5.6). It works just like you’d expect. It comes in both “raw bytes” and typed elements versions, just like its unsafe predecessor.

[…]

The new isTriviallyIdentical(to:) method offers a guaranteed-fast way to check two objects for equality. It is essentially an optimised version of the existing equality condition provided by Equatable and the == operator. It’s useful because it guarantees O(1) time complexity, whereas == makes no formal guarantees at all (and for many types is O(N) or worse). But unlike the existing identity comparison operator === – also O(1) – it promises to do more than just tell if two objects are the exact same pointer, and it works on value types (not just reference types).

[…]

These new types generalise the existing patterns of borrowed and mutable references, that have previously existed in Swift in much more restricted forms (e.g. inout parameters are essentially MutableRef parameters, and Span & MutableSpan are array equivalents).

There’s now a built-in function for demangling Swift symbol names, in the Runtime module (that’s bundled with the Swift toolchain, alongside the stdlib etc).

Khoa Pham:

As Apple has aligned OS version numbers across platforms, Swift 6.4 takes the next step by letting you collapse repetitive availability attributes into a single anyAppleOS token.

[…]

There are situations where you need to call a deprecated API while you plan a migration, or audit a critical function for unsafe usage, without letting those concerns bleed into the rest of the project. The new @diagnose attribute handles both cases.

[…]

Some work should complete even after a task is cancelled, like flushing a file to avoid corruption. withTaskCancellationShield wraps a region where Task.isCancelled always returns false.

Antoine van der Lee:

Swift 6.4 implements SE-0493: Support async calls in defer bodies. This is one of those changes that feels obvious once you need it.

[…]

Swift 6.4 improves error handling for unstructured tasks through SE-0520: Discardable result use in Task initializers. The change helps you catch a subtle bug: creating a throwing task and then ignoring its returned task handle.

[…]

Swift 6.4 also implements SE-0530: Async Result Support.

[…]

Swift 6.4 implements SE-0518: ~Sendable for explicitly marking non-Sendable types. It allows you to communicate that a type has been audited and should not conform to Sendable.

Slava Pestov:

I thought it would be a good time to detail some of the type checker performance improvements we worked on since I shared the type checker performance roadmap last year. I’m also going to outline a couple of things we plan on looking at next.

Previously:

Update (2026-07-09): I was optimistic about improvements to the type checker making compilation faster, but I found that compiling my predominantly Swift project with Xcode 27 Beta 3 was only 0.3% faster than with Xcode 26.6. I wonder if there’s some extra setting I’m supposed to enable.

Apple Clearing App Store Clutter

19 June 2026 at 20:43

Ed Hardy:

Finding useful software in the App Store is about to get easier. Apple is apparently preparing to remove what it describes as “opportunistic” apps that provide little value to iPhone and iPad users.

It already had a policy of not approving applications that are “indistinguishable from what’s already widely available.” This week, it quietly warned developers that it will start removing low-value software that doesn’t attract attention from users.

App Review Guidelines (News):

4.3 (b) Don’t submit apps that are indistinguishable from what’s already widely available. Opportunistically creating variants of existing app categories or popular apps degrades App Store discovery, reduces overall app quality, and harms both users and developers. Certain kinds of apps, such as dating, flashlight, sound effects, wallpaper, simple timers, and fortune telling, are well established on the App Store and we will not accept new submissions unless they offer a meaningfully different or improved experience. We may remove these apps from the App Store going forward if they are not updated, improved, or do not attract customers. Other kinds of apps, such as drinking games, Kama Sutra, fart, and burp apps, are mediocre, low-quality, or low-effort and do not add value to the App Store. Repeated submissions of this kind may lead to removal from the Apple Developer Program.

Previously:

Update (2026-07-14): Aleksandar Vacić:

Waiting for Review enters day 3. I don’t recall when was the last time this happened for any of the apps I am working for.

[…]

I sent messages to App Review Board and received nothing in response (so far).

It seems that if Apple ever removed your app from App Store for reason of “not sending regular updates” that app is…gone. It’s not deleted but it seems to dwell in some sort of limbo.

Previously:

SpaceX Acquires xAI, Goes Public, Acquires Cursor

16 June 2026 at 20:37

Elon Musk (February, Hacker News):

SpaceX has acquired xAI to form the most ambitious, vertically-integrated innovation engine on (and off) Earth, with AI, rockets, space-based internet, direct-to-mobile device communications and the world’s foremost real-time information and free speech platform.

[…]

Current advances in AI are dependent on large terrestrial data centers, which require immense amounts of power and cooling. Global electricity demand for AI simply cannot be met with terrestrial solutions, even in the near term, without imposing hardship on communities and the environment.

In the long term, space-based AI is obviously the only way to scale.

There are potential environmental and energy benefits to putting data centers in space, and Blue Origin’s Bezos also thinks this makes sense, but many are convinced that the numbers just don’t work (Reddit).

Kirsten Korosec and Russell Brandom:

But in its 24-year history, nothing quite compared to its initial public offering. Everyone seemed interested — perhaps because of the sheer size of the IPO. The company priced its 555.6 million shares at $135 each to raise $75 billion, making it the largest IPO in history and turning Musk into the world’s first trillionaire. That total raised figure would end up ballooning to $85.7 billion raised.

[…]

SpaceX shares opened June 12 at $150 on the Nasdaq public exchange, an 11% pop for the most anticipated debut in history. And it has continued to rise. The shares kept rising too. In midday trading, SpaceX shares soared 30%. SpaceX shares closed at $160.95, up 19%.

Sean O’Kane:

SpaceX passed Amazon to become the fifth-most valuable company in the world, after its stock price climbed 20% on Monday and more than 8% in early trading Tuesday, pushing its valuation past $2.7 trillion.

Reuters (Hacker News):

SpaceX is buying the startup behind the popular AI coding agent Cursor, Anysphere, for $60 billion in an all-stock deal to boost its presence in the lucrative enterprise AI tools market.

Previously:

AI-Generated Shortcuts

16 June 2026 at 20:34

Hartley Charlton:

Apple today announced that users can now describe a shortcut in natural language, with Apple Intelligence automatically building the automation in the background.

Marcus Mendes:

Users can simply describe what they want, such as “when I’m leaving work, text my wife with my expected ETA,” and Shortcuts will actually build the shortcut to make it work.

This sounds great in that I find creating shortcuts annoying. It’s not always clear which building blocks I should be using, and stringing them together properly seems tedious and fiddly. On the other hand, I dislike how AppleScript doesn’t get first-class support for the functionality and triggers that are available to Shortcuts.

Simon B. Støvring:

Data Jar got sherlocked, and that genuinely makes me happy.

Simon B. Støvring:

Apple should let users filter out and maybe even rewrite notifications from any app using Shortcuts.

[…]

The new notification automation trigger in Shortcuts is super cool. As far as I can tell, it won’t let me modify the notification content or filter out notifications based on the content, but it’s still a quite powerful addition.

[…]

Third-party automation triggers in Shortcuts are now possible. Sort of.

Just send a notification containing data meant for the new notification trigger to consume.

Anders Borum:

iOS 27 allows 3rd party shortcuts actions to run for longer than 30 seconds making me publish 2 actions that have been hidden behind feature flags for years.

Create cloud servers, run commands and destroy them again right from Shortcuts.

Previously:

Update (2026-06-26): Jason Snell:

This is as close as we’ve come, across 40 years, to the original dream of putting computer power in the hands of everyone. You can literally tell your device what you want it to do, and when—”every morning show me my to-dos and calendar events for the day”—and it will generate a program to do it and a schedule to run it.

[…]

Yes, there are lots of limitations. Describe a Shortcut doesn’t work with third-party apps, only Apple’s own stuff (at least, for now). It can sometimes get confused, especially with complex queries. And it has an interesting tendency to kick things to the Use Model action—why am I not surprised that an AI model likes to build Shortcuts that themselves use AI models?

But when it works, which is most of the time, it’s magical.

Simon B. Støvring:

Shortcuts on macOS Golden Gate is… Something.

Dedicating that much window space to a larger shortcut tile and a text field feels incredibly wasteful.

Rewriting Apple’s TrueType Hinting Interpreter in Swift

12 June 2026 at 20:34

Scott Perry:

My team rewrote Apple’s TrueType hinting interpreter in Swift, ask me anything.

[…]

I feel like naming just one would be a disservices to all of the features that made this effort possible (C interop, generics, noncopyable/nonescapable types) but at the end of the day I think the star of the show was the optimizer; despite being faster than the code it replaced, the new code is super readable and that was only possible because the optimizer was able to completely eliminate all of our abstractions.

The new version is faster, but the main motivation was security concerns.

Dmitrii Kalianov:

Is hinting useful/being used in the days of hi-dpi displays? I was under impression that Apple switched to grayscale anti-aliasing and ditched hinting.

Scott Perry:

For the most part hinting isn’t really necessary anymore, but thanks to being Turing-complete it has been Hyrum’s law-ed by at least one CJK font that uses hinting to lay out strokes in its characters.

Alex Rosenberg:

There were three major TrueType implementations at Apple IIRC:

  • The original 68K one
  • A rewrite for Copland that lived with ATS/ATSUI after Copland was cancelled
  • iPhone shipped one derived from heavily-modified FreeType that was current until today

Scott Perry:

One of the axioms for this project was that I wanted my team to write the most boring code possible—nearly identical structurally to the code it was replacing, because to do otherwise would introduce binary compatibility risk. The other axiom was 100% test coverage for all new code as it landed, with the same units testing both interpreters.

Rosyna Keller:

Is the font parsing code itself still C++?

Scott Perry:

There is also a “Safe Font Parser” for WebKit in Lockdown Mode, but it supports a subset of all the myriad features provided by font formats.

Previously:

Update (2026-06-16): Scott Perry (Hacker News):

Font parsers process data from untrusted sources, making the TrueType hinting interpreter a security-critical attack surface. To make the format more resilient on Apple platforms, we rewrote its hinting interpreter from C to memory-safe Swift for the Fall 2025 releases. In addition to memory safety, we also improved performance: on average, our Swift interpreter runs 13% faster than the C interpreter it replaced.

[…]

Binary compatibility was crucial for this project to succeed: existing programs had to continue to function the same as they did before, effectively unaware that a new implementation was in place. This means not just interface compatibility but pixel-identical glyph rendering as well, relative to the C implementation.

[…]

To ensure correctness, we developed two test suites. The first was a unit test suite that can target both implementations, providing exhaustive (99.7%) code coverage for both. This suite is included with the open source release of the Swift interpreter.

Then, to represent real-world workloads, we used a fuzzer to minimize a corpus of 10 million PDF files down to 4,200 without any loss of code coverage.

[…]

Following WebKit’s Safer Swift Guidelines, the example below demonstrates how to wrap a bridged structure from C in a projection type that uses Ref for lifetime safety, brokers bounds-safe access to the underlying data, and returns idiomatic Swift types to its callers.

The interpreter source is on GitHub.

Marcin Krzyzanowski:

@_lifetime(copy code, copy twilightZone, copy glyphZone)

See also: Phillip Tennen’s Writing a TrueType font renderer (Hacker News).

Previously:

Rewriting Notion in SwiftUI

12 June 2026 at 20:34

Hartley Charlton:

Apple this week confirmed that Notion is migrating its user interface to SwiftUI, citing the app’s desire for greater performance and UI consistency than its existing web-based stack can deliver.

[…]

The callout was clearly deliberate; Notion is one of the most widely used productivity apps on the Mac, and has long been criticized for the sluggishness that comes with its Electron-based architecture.

Previously:

No Siri AI in EU

10 June 2026 at 21:00

Apple (MacRumors):

Unfortunately, due to the Digital Markets Act (DMA), Apple will not be able to ship Siri AI in the European Union with the release of iOS 27 and iPadOS 27. Over the past several months, EU regulators did not accept any of Apple’s proposed solutions to bring Siri AI to the EU while safely supporting other virtual assistants.

[…]

EU users will be able to access Siri AI on macOS 27 and visionOS 27. Developers located in the EU will not be able to test or use the new Siri AI features for their apps on iOS 27, iPadOS 27, and watchOS 27.

[…]

According to EU regulators, the DMA requires Apple to give any AI system nearly unlimited access to a user’s device, as well as the ability to act on that access autonomously without a user’s ongoing visibility and control.

[…]

Apple designed a solution called Trusted System Agent — an intermediary that would allow virtual assistants to safely access the same features and capabilities as Siri AI for devices in the EU. Apple also shared a plan to launch Siri AI in the EU while gradually rolling out this new solution over an 18-month period. The European Commission said no. In fact, the European Commission did not agree to any of Apple’s proposals.

This phrasing is not very clear, perhaps intentionally so. Apple is trying to give the impression that it did all this extra work to meet the DMA’s requirements, and yet the EC rejected its proposals, so it’s their fault Siri AI isn’t shipping in the EU. But it looks like the crux is that the Trusted System Agent is currently vaporware. What the EC rejected is that Apple wanted to be able to ship Siri AI now on the promise of future openness. The TSA would actually be built during this 18-month window of exclusivity. It’s not surprising that the EU would reject that proposal. The App Store doesn’t approve apps that flout the guidelines but promise to comply later. It doesn’t even entertain proposals of the form, “If I built this would it be approved?”

European Commission (via Steve Troughton-Smith, Update: John Gruber, Mastodon):

So first, the decision not to roll out Siri AI in the EU is Apple’s and Apple’s only.

Because absolutely nothing in the DMA prohibits Apple from introducing new products in the EU.

What Apple is however not allowed to do, just like any other gatekeeper, is to close the market.

[…]

Apple simply made a request to the European Commission to be exempted from their interoperability obligations under the DA.

And this for at least 18 months on top of it. Guess what? That’s not an option.

Reuters (Hacker News):

Apple said it detailed its plans for Siri AI to EU regulators six months ago, along with a technical proposal to allow secure ​third-party access to that data.

“In essence, a commission that’s asking us to conduct a very risky experiment on many, ​many, many tens of millions of users,” Greg Joswiak, Apple’s marketing chief, told reporters, “and we only want to ship these capabilities when we can do so safely.”

The EU said not to ship it without the TSA, yet Joswiak spins this as the EU asking Apple to be reckless? And if Apple wanted to ship them safely, why did it stop working on them?

William Gallagher:

Apple spoke of having spent hundreds of thousands of engineering hours on changes to comply with the EU. In the new report, though, Apple now says that it no longer knows what to work on.

So currently none of its engineers are working on adapting Siri AI to meet the EU’s demands.

It seems like Apple isn’t taking this very seriously. They’re more interested in trying to score PR points by blaming the delay on the EC rather than on building something compliant. So I guess the EC was prescient not to grant an exemption based on the promise that they’d follow through with the TSA.

Kyle Howells:

However, do I think Apple should be made to open up that level of system access?

Honestly yes. They are worried about protecting my data. But it’s MINE. Me, the user.

Stick a big privacy prompt, maybe a system settings screen and reboot, but I want access to my data!

We can look to BrowserEngineKit to see how well it works out to introduce a trusted intermediate layer that Apple doesn’t itself rely on. And this seems like a much harder problem.

Kyle Howells:

Yeah, that privacy layer is a stupid [non] starter. “Find the place my friend said we should go swimming and give me directions”

The only way that query can work with an intermediary layer is if the AI asks that layer to do the searching for them and only gets the response back.

Except that basically kills the advantage of LLM agents & instead delegate all the ‘smart’ parts to some dumb on device model Apple makes.

Previously:

Update (2026-06-11): Amy Worrall:

I keep seeing people (usually Americans) confused by where the EU is coming from with Apple and the DMA, eg “how can they care about privacy but also demand AI companies can access your data?”

My read is, the EU’s starting point is that a gatekeeper cannot treat itself as inherently more trustworthy than any other company. So if anyone’s AI can access your data, including Apple’s, it’s not up to the gatekeeper to say “we trust ourselves but don’t trust other companies” and force that on users.

The users should get to choose who they trust. And I think Apple is trying to draw a different line than it says. It worries that AI could be hijacked to steal your passwords and photos. But you can already install apps that manage and access that data. You can also install apps that access your calendar and mail data, and these apps can incorporate AI. Such apps actually get more access than what the EC wants because they must communicate with your servers directly. I would rather let an AI search my downloaded e-mails than read/write to my IMAP server, but Apple is blocking that option. The actual line it’s drawing isn’t that AI can’t access your data but that (aside from iMessage) it can only access it via additional engineering work and additional hoops for users to enter credentials. It seems like what Apple really wants is to make it hard for anyone to compete with Siri.

Update (2026-06-12): Cory Birdsong:

I’m skeptical that Siri AI is even capable of being meaningfully private or secure. As far as I know there is no mitigation for prompt injection, as Matthew Green describes here.

If it has access to private information, is exposed to external input and can access the Internet then how can they meaningfully claim it’s private or secure?

John Gruber:

There’s a lot to unpack here, including more background information — and on-the-record statements — from a briefing Apple held Tuesday that I was invited to at Apple Park.

It’s frustrating that Apple has said so little on the record. They want to communicate that their “offers for compromise have been rejected,” but what exactly did they offer? Personally, I don’t think the TSA would be a very good solution because it would lock in both the limitations of Apple’s technology and their role as a gatekeeper. But Apple did not even say that the EC rejected the idea of the TSA, only that it rejected their proposal to violate the law for 18 months while building it.

But the bottom line is that Apple’s public statements regarding the DMA and the European Commission have never been this strident before.

[…]

Now, they’re a bit more on war footing. There’s a massive gulf between what Apple is willing to do with Siri AI in the EU and what the Commission is demanding from Apple for DMA compliance.

Steve Troughton-Smith:

The European Commission isn’t demanding anything, the law is demanding it. The laws have been in place for several years now, Apple is currently in default of the law on several fronts, and is fighting its existing fines.

When the Chinese government wanted access to user data, Apple complied, but when the EU parliament voted for their citizens to be able to choose how to share their own data, that put Apple on a “war footing.”

David Deller (Reddit):

There is some kind of irony in how Apple isn’t allowing Europe access to the new AI stuff; and meanwhile for the US, Apple is removing the setting for us to opt-out of it, effectively forcing it on us.

That’s how it is these days, huh? Either a government or a giant corporation makes our technology choices for us. We don’t get to choose for ourselves.

Previously:

Update (2026-06-17): John Gruber:

What exactly is the motivation for Apple and Google to engineer entirely separate systems for the EU to bring new features into compliance with the Commission’s broad interpretation of the DMA? Because if Apple doesn’t engineer a DMA-compliant version of Siri AI, iOS users in the EU will ... switch to Android, whose system-level AI was deemed noncompliant by the Commission a few months ago?

I briefly hoped that the DMA would lead to a sort of California effect for software, where products are designed for the stricter (more open, in this case) jurisdiction, and everyone else reaps the benefits, too, because that’s easier for companies than making separate versions of their products. But it turns out that Apple finds it well worth it to feature flag away the EU features it doesn’t want us to have, as well as the ones it doesn’t want to adapt for the DMA.

This doesn’t directly hurt Apple. It doesn’t force Apple to design, engineer, and ship a compliant EU-exclusive version of Siri AI that supports plug-and-play LLM back ends. It only hurts iPhone users who live in the EU, who are stuck with the old dumb version of Siri for the foreseeable future.

This demonstrates a market failure or legislative failure, depending on how you look at it. Both halves of the duopoly are in conflict with the law of the second largest economy in the word. Users will get a worse Siri, but this doesn’t bother Apple enough to do anything about it. Maybe the customers in the EU can be used as a bargaining chip. Neither Apple nor Google is worried that a competitor will come along with a compliant phone to challenge their dominance.

John Gruber:

Here we are two years later and I think the answer is more clear than ever which side of the continental divide is more fun.

Simon B. Støvring:

Gotta admit that as an EU citizen, I feel handicapped when it comes to brainstorming ideas to utilize Foundation Models.

Like, if I were to build a new app around them, it’s difficult to gauge if this is something Siri AI does out of the box when it isn’t available to me.

And unlike Apple, I intend to build software for the entire world.

Jack Wellborn:

Apple is acting out of greed and spite (see their hairbrained fee structures for alternative marketplaces as an example), but also yes, the DMA and enforcement thereof seems like a particularly difficult and capricious regulatory dynamic.

[…]

Those arguing that Apple is acting purely out of spite seem to suggest there is some obvious solution for iPhone Mirroring that would satisfy the interoperability mandate, but they never go into what that obvious solution is because they don’t know. They don’t know because I would guess no one does, not even Apple and certainly not the European Commission.

As far as I can tell, the European Commission doesn’t see it as their responsibility to help gatekeepers design features ahead of time in a way that should be compliant with the DMA. What they want instead is to decide whether or not a given feature runs afoul of the DMA after its released in the EU and presumably after they’ve gotten feedback from third parties.

Wojtek Pietrusiewicz:

If a developer emails Apple and asks if an app idea they have will be approved, they will get told to build it, submit it to the App Store, and see. The EU is the App Store here, and Siri AI is the app. I guess Apple don’t like their own policies.

I sympathize, even though Apple is in a better position than the developer, because it has more resources, because it would only potentially be blocked from shipping in one market, and because it can still sell its product in the EU, just with certain features disabled. Building something that might not be accepted is risky, but if you don’t submit anything that you think would be complaint with the rules, you don’t seem very serious. It’s still unclear to me exactly what Apple’s plan is. Its press release says it “will continue working” on bringing the features to the EU, but its SVP of marketing said in an interview that “none of its engineers are currently working on solutions.” Perhaps this implies that it’s banking on a legal or political solution rather than a technical one.

Update (2026-06-25): Jack Wellborn:

While the relationship between the European Commission and Google tells us nothing about playing ball, it tells us exactly how inconsequential support for alternative marketplaces is when it comes to regulatory scrutiny of integrated features. Apple hasn’t played ball with alternative marketplaces and now its new AI-based features are being withheld from the EU lest they get scrutinized for fines by the European Commission. Google hasn’t had to play ball with alternative marketplaces and now its new AI-based features are either being scrutinized for fines by the European Commission or being withheld lest they also get scrutinized. The European Commission is, rightly so in my opinion, regulating both operating systems equally and regardless of their support for alternative marketplaces.

Manton Reece:

It struck me today what a contrast this is with the rest of the AI world, increasingly connected via MCP. Imagine if Gmail was only accessible to AI on Android phones. If Teams was only accessible from a Windows Surface laptop. That is the kind of environment Apple’s policies create, with data locked into silos and monopolies free to leverage their existing strengths into dominance of new technologies too.

No thanks. Just as I should be able to sideload an app onto my own phone, I should be able to choose whether ChatGPT can access my iMessage history. The world is not going to come crashing down by giving users control of their own data.

Update (2026-07-02): Tim Hardwick:

Apple CEO Tim Cook held “constructive” talks with EU tech chief Henna Virkkunen on Tuesday about releasing Siri AI in the bloc while complying with the bloc’s digital rules, reports the Financial Times ($).

[…]

As for Apple’s proposed Trusted System Agent, a Commission official told the publication its contact with Apple on the idea was limited, and that it lacked a concrete proposal or details on how such an agent would work beyond the general concept. The official claimed Apple “focused on obtaining a green light to delay compliance.”

Update (2026-07-03): Nick Heer:

The DMA has been in effect for nearly four years and there is no reason why either party should be having so much difficulty with this proposal stage. Either the Commission is mischaracterizing Apple’s engagement, or Apple’s representatives need to be far better prepared.

It seems like Apple’s strategy is to encourage its customers to pressure the EU into changing the rules.

Previously:

Golden Gate Window Corners

9 June 2026 at 19:16

Adam Overholtzer:

Corners!

Simon B. Støvring:

“We fixed corner radius” was a WWDC keynote highlight. Let that sink in.

Rudrank:

This should have been since macOS 26 #WWDC26

Folks getting excited for consistent corner radius 😂

Kuba Suder:

Ehh, no change here, RIP Intel Macs… stuck on the v1 Liquid Glass forever 🫤

There was so much demand for this that the Liquid Radius haxie exists. People were willing to disable FileVault and System Integrity Protection to get consistent window corners.

Previously:

Update (2026-06-23): Marcin Wichary:

Then, there’s the website you’ve just seen: elaborate, with nice “before and after” animations, and a fun landing page. I thought the installation steps, given the complexity of the effort, were exemplary and even educational. There’s also a page listing all the apps confirmed to work, and a “How Liquid Radius limits its blast radius” (ha) section, revealing the author is clear-eyed about their work being a hack, and even the dimensionality of its hackiness. Even within the tool there are nice design details.

But, as I was exploring the site, I kept switching between “this is ridiculous!” (laudatory) and “this is ridiculous!” (derogatory) in my head.

Glow Leopard

9 June 2026 at 19:11

Tim Hardwick:

Apple at WWDC 2026 today said it has made several responsiveness improvements across its software ecosystem, speeding up system animations, app launching, and much more.

Zac Hall:

Overall, iOS 27 so far is a major collection of performance improvements and refinements.

Ryan Christoffel:

As had been rumored leading up to today, Apple has spent extra time this year working on bug fixes and performance improvements for iOS 27.

Adam Engst:

Although there’s no obvious connection between the Tahoe and Golden Gate names to indicate a “tock” release, Apple devoted the first chunk of the WWDC keynote to how OS 27 will address user and developer complaints about OS 26.

[…]

Apple also made a big deal about performance improvements, smoothing system animations, launching iPhone and iPad apps up to 30% faster, displaying new photos in the Photo Library up to 70% faster, transferring files via AirDrop up to 80% faster, and moving files from an iPad to an external drive is up to 5x faster, so it compares with macOS transfer speeds. A new CPU Scheduler promises to improve iPhone performance even on older models back to the iPhone 11, which may encourage more people with older iPhones to upgrade.

Kyle Howells:

There really aren’t many changes this year.

I’m way more interested in bug fixes, but optimizations and refinements are great, too. Simply limiting the number of new features creates space to improve the software quality, though, it’s not clear to me whether there are really fewer new features or if it’s just that they mostly fall under the single heading of AI.

Paul Hudson:

Animations run smoother, apps launch faster, and Liquid Glass is better? It’s Glow Leopard for sure!

Divya Ravi:

One underrated theme from this WWDC is Apple investing heavily in fundamentals.

Faster launches, scheduler improvements, search infrastructure, networking transitions, rendering performance…

Users notice responsiveness long before they notice most new features.

Clarko:

You gotta admire Apple’s ability to market “bug fixes and performance improvements” so effectively.

Please just do this every other year.

Previously:

Update (2026-06-12): David Smith:

Something I’ve noticed about performance work is that people really want there to be A Cause for improvements. A new technology, something old no longer holding things back, “removing the debug logging”, etc…

The truth of the matter is that 97% of the time the enabling thing for performance work is engineers having time in the schedule to sit down with the tools (usually a sampling profiler) and grind out small wins over and over.

There’s no magic bullet that replaces good engineering.

It sounds like the magic bullet is a reasonable release schedule. You’ve always had the power, my dear Craig. You just had to learn it for yourself.

Jason Snell:

The moment the keynote used the phrases “sweating the details” and “attention to detail,” it was clear that beyond AI and Siri features, this year is about small fixes and improvements. In more private settings, Apple folks specifically referenced Snow Leopard and iOS 12, two updates that saw Apple take a pause from huge feature roll-outs and prioritize speed and bug fixes a bit more.

But to be clear, referencing Snow Leopard does not mean “no new features.” Like Apple’s 27 releases, Snow Leopard was full of dozens, if not hundreds, of new features—they were just scattered small improvements throughout the system.

Patrick McConnell:

The older I get and the longer I do this development work I realize time is short and we may not get to all the things we want to do in life. So when we are forced to wait yet another year for some fixes to a framework we’ve been trying to use for several yearly cycles already it can be disappointing to say the least.

[…]

Unlike past years there is no clear Apple mandated work. Thank god. I can focus on what I want to build without having to adopt my code to an ill conceived UI update that will be semi-discarded the following year.

Update (2026-06-16): Marcin Wichary:

It’s an impressive list that garnered universally positive reactions, but I have one observation:

  • “Fast” and variants thereof appear on this list 59 times.
  • “Reliable” and similar words appear 22 times.

[…]

It’s not just me. 15 out of 17 bugs listed on the Bugs Apple Loves site are about reliability.

[…]

I just… I would be a lot more excited if the 3:1 ratio of fast-to-reliable on that slide went the other way.

❌