Archive for November 2024

Wednesday, November 27, 2024

Amazon S3 Adds Put-If-Match (Compare-and-Swap)

AWS (via Hacker News):

Amazon S3 can now perform conditional writes that evaluate if an object is unmodified before updating it. This helps you coordinate simultaneous writes to the same object and prevents multiple concurrent writers from unintentionally overwriting the object without knowing the state of its content. You can use this capability by providing the ETag of an object using S3 PutObject or CompleteMultipartUpload API requests in both S3 general purpose and directory buckets.

This will probably enable some cool stuff.

Unlisted MindNode Classic

Markus Müller-Simhofer (via John Gordon):

Despite our best efforts, we encountered difficulties bringing our planned changes to MindNode. Providing seamless sync, live collaboration, and other new features was impossible when storing documents as files on disk. We revised our plans and started to develop a new app, “MindNode Next,” that now manages its documents directly in the app and synchronizes them using CloudKit.

[…]

With the release of MindNode Next, we will soon rename the current version of MindNode to “MindNode Classic.” This name change aims to better distinguish between the two versions of MindNode. We understand that MindNode Classic holds significant importance for many of our users, and we are committed to continue supporting it. Our team will continue to work on shipping enhancements and bug fixes for MindNode Classic.

[…]

Due to a request by Apple, we had to hide MindNode Classic on the App Store.

Markus Müller-Simhofer:

This is not great for our users who want to reinstall the app (they need to use the direct link or the purchased app dialog) and I’m sure we will get several bad reviews on the new app for this. However this is better than removing it from sale since we can continue to release updates for the app.

Ken Case:

This is what we’ve done with our older apps also. Definitely better than removing them from sale! Especially for business and educational customers who otherwise had no way to install their bulk purchases.

Previously:

Brazil Rules Against Apple’s Anti-Steering Rules

Reuters:

Brazilian antitrust regulator Cade said on Monday that Apple must lift restrictions on payment methods for in-app purchases, among other things, as the watchdog moved to proceed with an investigation into a complaint filed by Latin America e-commerce giant MercadoLibre.

[…]

MercadoLibre’s complaint, filed in 2022 in Brazil and Mexico, accused Apple of imposing a series of restrictions on the distribution of digital goods and in-app purchases, including banning apps from distributing third-party digital goods and services such as movies, music, video games, books and written content.

[…]

Cade ruled that Apple must allow app developers to add tools so customers can buy their services or products outside the app, such as through the use of hyperlinks to external websites.

Tim Hardwick:

Apple has 20 days to comply or face daily fines of $43,000.

[…]

The Brazilian case mirrors similar antitrust concerns raised in the EU. In March 2024, the European Commission fined Apple €1.8 billion ($1.95 billion) for restricting music streaming apps from informing users about cheaper subscription options outside the App Store.

Nick Heer:

It would look very silly to me if Apple continues to deal with these consistent findings in country after country after country after country in individualized ways instead of updating its rules globally. Very silly, indeed.

Previously:

Update (2024-12-06): Tim Hardwick:

A Brazilian federal court has overturned an antitrust ruling that would have required Apple to allow third-party payment systems in the App Store within 20 days.

[…]

The decision came hours after reports emerged of Apple appealing the original order, with the company arguing that the required changes were too complex to implement within the given time frame.

While the injunction has been overturned, the broader antitrust investigation into Apple’s App Store practices will continue. Cade is expected to appeal the court’s decision, and Apple could still eventually be required to implement changes to its App Store policies in Brazil.

Tuesday, November 26, 2024

Watch Out for Counterintuitive Implicit Actor-Isolation

Jared Sinclair:

I ran into some unexpected runtime crashes recently while testing an app on iOS 18 compiled under Swift 6 language mode, and the root causes ended up being the perils of using @unchecked Sendable in combination with some counterintuitive compiler behavior with implicit actor isolation.

[…]

What occurred to me instead was to find a way to use locking mechanisms to synchronize access to the static var mutable property. What happened next led me down a path to some code that (A) compiled without warnings or errors but (B) crashed hard at runtime due to implicit actor isolation assertion failures.

[…]

It turns out that the implicit Main Actor isolation is getting introduced by MyApp[…] Therefore that init() method is isolated to the Main Actor. But our Logging.sink member is not isolated to the Main Actor. It’s implicitly nonisolated, so why is the compiler inferring Main Actor isolation for the block we pass to it?

Matt Massicotte:

What’s happening here is the compiler is reasoning “this closure is not Sendable so it couldn’t possibly change isolation from where it was formed and therefore its body must be MainActor too” but your unchecked type allows this invariant to be violated. This kind of thing comes up a lot in many forms, and it’s hard to debug…

Mutex is a potential solution but requires iOS 18. He also shows how to protect the sink with a non-global actor.

Previously:

Mini vMac for iOS Rejected via Notarization

Jesús A. Álvarez:

Mini vMac for iOS won’t be coming to #AltStorePAL, it was just #RejectedByAppReview for notarization after an initial rejection and appeal.

You can of course still get it from GitHub and build it with Xcode or sideload the ipa with AltStore Classic.

Via Riley Testut:

Apple’s complete abuse of Notarization is going to be the reason the EC comes down hard on them, and it’s wild how ignorant they are 💀

[…]

Based on actual, real conversations we’re having with the EC rn, I am very confident that this is not going to end well for Apple — but it seems like they genuinely don’t realize this?

Apple’s rejection notice says:

Use of Apple’s software is limited to the terms of the license for such software. Apple does not license its Mac operating system software for use outside of an Apple-branded computer. Your app necessarily involves and promotes the use of Mac operating system software on devices other than Apple-branded computers and such use goes beyond of the scope of its license terms. Notarization of your app thus would contravene the terms of Apple’s software licenses. Additionally, your prominent use of Apple’s MAC mark in the app name; MACINTOSH in the subtitle, and a Macintosh graphic in the icon for an operating system software product improperly and confusingly suggests or implies that the app has an affiliation, endorsement, or sponsorship by Apple and is in contravention of Apple’s Trademark Guidelines.

However, even if it’s correct about these points, they do not seem to be violations of the notarization guidelines and should probably be adjudicated via a different process.

Khaos Tian:

Apple really treat Notarization process like an app review and explicitly call out the reason for rejection to be unrelated to what DMA permits is just providing written evidence of abusing process at this point…

Previously:

Update (2024-11-27): See also: Reddit.

App Store Search Queries Appear to Violate Data Minimization Practices

Mysk:

This is an example of what the App Store app shares with #Apple when you search for an app. Everything you type in the search field is recorded as an event and associated with your Apple ID before it is sent to Apple. When I search for “Google Authenticator,” events are recorded as I type character by character. The leap between rows 78 and 79 is when I picked a suggestion. The timestamp of every event is recorded, i.e. Apple can calculate my typing speed 🙃.

[…]

There is no way you can opt out of sending such app Analytics to Apple or request it be anonymous.

[…]

Apple Maps does the same, but it never associates the requests with the user’s ID when sending the search requests, and never records them as app analytics.

Nick Heer:

What I cannot understand is why Apple wants to record all typed text and completed queries and correlate those to millisecond-level time codes and attach all that to someone’s Apple ID. This is the very opposite of data minimization — a reality which is unfortunately common among Apple’s services. It is not “tracking” by the company’s definition, which is exclusively concerning third-party sharing, but it violates the spirit of user privacy.

Previously:

Apple’s Movie Theater Beef With Hollywood

Mike Fleming Jr.:

Jon Watts, the filmmaker who stepped out of the Spider-Man franchise with Tom Holland and Zendaya to script and direct George Clooney and Brad Pitt in the film Wolfs for Apple, created a press dustup yesterday when he let slip that he and they would not be doing a sequel, even though Wolfs became by far the most viewed feature film ever released on Apple TV+.

[…]

It is similar to when Doug Liman feuded with Amazon after his Road House remake went straight to streaming despite his deal for a theatrical release and huge test scores, and he is not returning for the inevitable sequel. It underscores the continuing dilemma between streaming bows and risky theatrical release deals with big P&A spends.

Via M.G. Siegler:

Look, on paper, in a vacuum, I’m not sure Apple didn’t make the right call in pulling back on the theatrical release and going straight-to-streaming. The reality of our current situation is such that a movie like Wolfs – especially and oddly when marketed by Apple – was unlikely to be a big hit at the box office. And that would have been a black eye. For Apple. For Clooney. For Pitt. For Watts. For everyone. So pulling it back made sense in this very practical regard.

But my god the intangibles here. First and foremost, risking pissing off two of the biggest movie stars in the world with the maneuver. Second, this was exponentially riskier because one of those movie stars, Pitt, was in the midst of wrapping up Apple’s biggest movie ever which will need to be a huge hit in theaters: F1. Third, risking pissing off one of the hottest directors in the industry right now with the maneuver. Which clearly happened! Honestly, all of the above probably happened, but Watts is the only one talking about it openly right now.

And it’s not just the move Apple pulled, it’s how they did it. A last-minute bait-and-switch. And done with not only no discussion but almost no heads up. And then the ultimate dagger in the back: trying to spin the move with the sequel talk (which immediately seemed fishy to everyone when paired with the pull-back news – obviously) after Watts explicitly asked them not to do that.

Wes Davis:

The New York Times reported in August that Apple pulled the theatrical run for Wolfs because it was concerned it was spending too much on films after suffering multiple high-profile box office disappointments.

Previously:

Update (2024-12-10): M.G. Siegler:

Now I feel like I fully understand why Apple shifted it from theaters to streaming. It’s not that the movie is bad, it’s not. But it’s not nearly good enough to transcend what it is and become a huge box office hit. It would have been a middling movie at the box office at best. Yes, even with George Clooney and Brad Pitt. And at worst, it would have been an outright flop.

It would have been the latest in a string of high-profile failures at the box office for Apple. But it wouldn’t have looked good for Clooney or Pitt either.

[…]

But as a launch on Apple TV+, it’s leveraging two of the biggest movie stars in the world teaming up for an Apple exclusive film to watch in the comfort of your living room.

[…]

In a vacuum, Apple made the right call. And it’s one that other studios will need to follow going forward. Of course, we don’t live in a vacuum.

Monday, November 25, 2024

Swift Vision: Improving the Approachability of Data-Race Safety

Holly Borla (via Mastodon, forum):

This document lays out several potential paths for improving the usability of Swift 6, especially in simple situations where users aren’t intending to use concurrency at all.

[…]

A key tenet of our thinking in this vision is that we want to drastically reduce the number of explicit concurrency annotations necessary in projects that aren’t trying to leverage parallelism for performance. This is important for many kinds of programming, such as UI programming and scripts, where concurrency is often localized and large swathes of the code are generally expected to be constrained to the main actor. At the same time, we want to maintain a smooth path for experienced programmers to opt in to concurrency and maintain the safety of complete data-race checking.

[…]

We believe that the right solution to these problems is to allow code to opt in to being “single-threaded” by default, on a module-by-module basis. This would change the default isolation rule for unannotated code in the module: rather than being non-isolated, and therefore having to deal with the presumption of concurrency, the code would instead be implicitly isolated to @MainActor. Code imported from other modules would be unaffected by the current module’s choice of default.

[…]

Adding a per-module setting to specify the default isolation would introduce a new permanent language dialect. […] On balance, we feel that the costs of this particular dialect are modest and manageable.

[…]

The most important of these for our model of single-threaded code is to be able to express global-actor-isolated conformances. When a type is isolated to a global actor, its methods will be isolated by default. Normally, these methods would not be legal implementations of nonisolated protocol requirements. When Swift recognizes this, it can simply treat the conformance as isolated to that global actor. This is a kind of isolated conformance, which will be a new concept in the language.

Marcin Krzyzanowski:

what I’ve been complaining about since when first Actors introduced to Swift is that it forces “async-first” instead of “sync-first” programming. I’m super happy the Swift Language Steering Group has finally noticed it.

Christian Tietze:

So much effort poured into this, and then the DX problem can be summarized like “you can’t easily write single-threaded code now anymore” 🤯

Max Seelemann:

That said, for such a broad vision, I’m missing coverage of the present issues with isolation behavior mismatches to Objective-C code and Objective-C system libraries.

To this date, much of Apple’s new platform development is still done in ObjC, and many – if not most – Apple platform developers can’t evade UIKit or AppKit in their day-to-day work. Yet this language does not know anything about strict concurrency and allows comfortably programming in very non-compatible ways. What I dearly miss are tools to bridge this gap, to make using those APIs from Swift 6 as comfortable as it is from Swift 5 or ObjC.

[…]

Most importantly, to me, we need more robust and flexible ways to declare dynamic MainActor isolation. Basically MainActor.assumeIsolated but for entire classes and without all the sendability-dance for passing things in and out of that closure. (#isolation being non-nil when called from the ObjC main thread would also be nice.)

[…]

I struggle to write this more precisely in abstract terms, so I’d like to give an example from my recent work with TextKit2 – a fairly new system iOS/macOS API, that’s thought and written entirely in ObjC.

Victor_Martins:

My understanding is that the document says that one of the reasons that analyzing the program as a whole is bad is because “it would make the first adoption of concurrency extremely painful”. Then, it goes on to say that a better approach is to make the single-threaded assumption in smaller parts of the program. Finally, the document proposes that these smaller parts are the modules.

Choosing the modules as the smaller parts have caught my attention because over the last 3 years I’ve interacted with a couple dozens of beginner Swift programmers and the vast majority of the apps I’ve seen them develop do not have the code they’ve written broken down in smaller modules. The apps are mostly composed by 1 module + dependencies.

Is breaking out of the single-threaded default on these projects with one big module possibly going to be quite painful?

Previously:

Update (2024-11-26): Rob Jonson:

I think you’re absolutely right to focus on these - but I would argue for a radically different approach.

[…]

Flip the default. The default should be that guaranteed data race safety is turned off. […] Moving to an opt-in model will change the dynamic. At the moment, it feels like we’re on a forced march to the promised land of Swift 6 safety. If safety is opt in, then developers will choose to use it as it becomes more ergonomic. If the feature has to be worth the pain to convince people to opt in, - the dynamic around design will focus more on real usage.

[…]

Analyse code was a great tool as we moved towards arc (and even later). Run the tool, examine warnings about memory safety, fix if needed. […] Concurrency could do the same thing. Analyse could warn me that returning an NSImage is potentially unsafe if the sender keeps and mutates the original - but I can choose to ignore that because I know I’m not doing so.

I’m not sure I agree with this, but it’s interesting to consider.

Tim:

I remember the exact same arguments about optionals when Swift was first released. “I know what I’m doing”. “The compiler is trying to baby me” etc etc. Understanding optionals is definitely far easier than concurrency, but it’s the same thing of a language feature tackling common programming errors and I think we can all agree that it’s been a great feature once understood.

I’ve always been in favor of optionals, but I think the other way of looking at this is that people quickly saw that optionals provided real benefits in reliability and code clarity at very little cost (cognitive or visual). Beyond the async/await sugar, Swift Concurrency’s costs seem much higher and its benefits less clear.

Update (2024-12-02): See also: Hacker News.

Jesse Squires:

I’m not on the Swift forums much, but occasionally I follow the links in the summary emails.

It is very interesting how much developer sentiment towards the language has shifted over the past few years.

I’m not here to be a hater, but I certainly feel the frustration.

The thread in question:

Swift is such a mess. How has it got to a point where returning an object from a function requires two undocumented language features?

Matt Massicotte:

And, believe it or not, this vision doc changes would fix most (but not all) of the technical problems this particular person has run into.

Tito Ciuro:

I think Alex echoes a wide sentiment: that people want to write software and not be a slave of the latest features. You say to not use Swift 6. Well, guess what, my project depends on Vapor and unless I’m OK being stuck with an older version (I’m not), I’m forced to use Swift 6. So there you have it. Structured Concurrency down our throats.

Sean Heber:

I feel like even with all of this, some of the most painful points are being missed.

For example, there’s the idea that programmers should start single threaded and slowly move to concurrency - but you can’t actually do that in real life, IMO. Libraries/frameworks constantly impose concurrency on you - either they have async functions or they’re using callbacks where stuff happens “later” and often on a different thread/actor or the function is marked nonisolated (for good reason), etc.

You can’t ease into it.

Apple Tends to Do Right by Apps It Acquires

John Gruber (Mastodon) has gone through the list of Apple acquisitions:

The bottom line is that what we, as users, hope for after a big company acquires a beloved app is for an outcome where the users of that app remain happy. That might mean just keeping the app going, like with Logic. Or it might mean scrapping the standalone app, but bringing the core features of the app into the OS itself, like with Dark Sky. Sometimes it’s a mix, though, like with Shazam.

[…]

But an examination of Apple’s acquisition history doesn’t give me any reason for alarm. Apple really does tend to do right by cool app acquisitions.

[…]

Pixelmator in particular is simply too good to scrap, and Apple hasn’t made its own bitmap image editing application since, I think, MacPaint. Something like Pixelmator really would slot right in next to Final Cut Pro and Logic Pro as an Apple “pro tool”. Whether they’ll keep the name, I don’t know, but I think the app will be released under Apple branding as a Photoshop competitor, for Mac and iPad.

[…]

I’m less sure if Apple has the appetite to keep Photomator going, to compete directly against Lightroom — a market Apple simply walked away from when they discontinued Aperture 10 years ago. But perhaps they now regret walking away from Aperture. I’m just not sure how close Photomator is to being a credible alternative to Lightroom.

[…]

I can see how the best of Photomator could make its way into Photos. That’s not true for Pixelmator. The acquisition just doesn’t make sense to me unless Apple wants to make Pixelmator an Apple-branded pro tool.

My immediate reaction is that acquisitions are almost always bad for fans of the original app, however, I think Gruber is right that Apple’s track record is better than average. On the other hand, looking at the list, most of the businesses that Apple acquired weren’t apps. It’s not a big sample size.

Two apps that were dear to me are Claris Emailer and ClarisWorks. Claris did a great version 2 of Emailer, after acquiring it from Fog City Software, and then killed it. Presumably, this was because Apple had acquired Mail.app in the NeXT acquisition. Unfortunately, it didn’t really try to integrate the things people liked about Emailer into Mail, and it lost some of the key developers to Microsoft.

Similarly, I guess ClarisWorks was killed in favor of iWork (itself based on an acquisition). The AppleWorks Carbon version that shipped after Apple resorbed Claris was not great. iWork is OK but never appealed to me in the way that ClarisWorks did, and it was missing the painting, drawing, and database modules.

More recently, the Dark Sky, Buddybuild, and TestFlight acquisitions were good in that they expanded Apple’s services, but I don’t think they were necessarily wins for fans of the originals.

Previously:

The End of Delicious Library

Wil Shipley:

Amazon has shut off the feed that allowed Delicious Library to look up items, unfortunately limiting the app to what users already have (or enter manually).

I wasn’t contacted about this.

I’ve pulled it from the Mac App Store and shut down the website so nobody accidentally buys a non-functional app.

Previously:

Update (2024-11-27): John Gruber (Mastodon):

20 years go by and there’s some inevitable nostalgia looking back at any art form. But man, Delicious Library exemplified an era of indie app development that, sadly, is largely over. And make no bones about it: Delicious Library was a creative work of art.

Update (2024-12-02): See also: John Siracusa in 2004 (via John Gruber, Mastodon).

Pieter Omvlee:

What drew me to the Mac initially was its industrial design. My uncle had an iMac G4, the floating screen, the swivelling arm – the one that looked like a lamp – and I thought it was a beautiful piece of art. What kept me on the Mac though was the software, the software from third party independent ‘indie’ developers.

These apps were made by small teams, individuals even, hand-crafted with a focus on the the beauty and the little details.

[…]

I had proof that it was possible. That realisation, that it was possible to build apps like this for a living while also focussing on beautiful design, user experience and customer delight was what motivated me in my own way to start building apps. Making a living selling software online could be done, and Delicious Library had shown the way and provided the inspiration. First with Fontcase and then Sketch, both of which I’m proud to say have won an Apple design award as Mac-assed Mac apps.

Update (2024-12-10): See also: Slashdot.

Black Friday 2024

My apps (DropDMG, EagleFiler, SpamSieve) are on sale for Black Friday, and here are some other good deals that I found:

Apps:

Accessories:

Books:

Photos and Video:

Stores:

Lists of Deals:

Previously:

Friday, November 22, 2024

The App Store Era Must End

Jason Snell (tweet, Macworld, podcast):

To a kid growing up in the 1980s, the idea that the maker of your computer would actively stop you from using software it didn’t approve of would have seemed beyond the pale. It certainly would’ve been a deal-breaker. And yet so many of today’s computing devices are locked down—for some good reasons, but also a lot of bad ones.

What do we want the world to look like in the future? Is the destiny of the most important invention of the last half-century, the computer, to become a series of locked-down devices controlled by the giant companies that designed them? Should the iPhone be the model for all future devices?

If Apple’s locked-down approach in the App Store era is our future, it’s a bleak one indeed. […] When we consider the future of computing devices, the Mac is the model we should aspire to, not the iPhone.

[…]

But over time, the inevitable happened: Apple used the exclusivity of the App Store and its total control over the platform to extract money through rent-seeking and to bar businesses from admitting that the web existed outside their apps. Perhaps worst of all, the App Store’s exclusivity allowed Apple to essentially treat app developers as Apple employees, forcing them to follow Apple’s guidelines and please Apple’s approval apparatus before their apps would be allowed to be seen by the public. Whole classes of apps were banned entirely, some publicly, some silently.

Stephen Hackett:

It’s not often I want to shout “Amen!” as I read an article, but here we are. I think I startled my sleeping dog.

Nick Heer:

I do not know that there is a new argument here. But to see them in a single document is compelling.

[…]

I worry the App Store model and the regulatory response has irreparably damaged Apple’s entire ethos. Not destroyed, but definitely damaged. Apple prides itself on making the entire widget: hardware, software, and services. No competitor has a similar model. It has gotten away with this through a combination of user trust, and not being nearly big enough for regulators to be concerned about. But the iPhone fundamentally upset both these qualities.

[…]

There are certainly plenty of people who believe Apple should be able to do with the iPhone what it wishes, and that — thanks to the power of the free market — people who do not like those changes will simply go buy something else. Perhaps. But perhaps, too, Apple’s influence over a billion users worldwide is something worth checking on. If Apple had responded more amenably to concerns raised over the past decade, maybe it would not find itself in this position today — but here we are.

Sarah Perez:

TV Time, a popular TV and movie tracking and recommendations app with more than 30 million registered users, disappeared from Apple’s App Store for several weeks, leading to questions about its future from the app’s avid fan base. Considering that 2.5 million users use the app every month to track what they’re watching and to engage in a social network where they can comment on individual episodes, vote for favorite characters, post images and GIFs, and connect with other users, its disappearance didn’t go unnoticed.

On November 1, the company announced via a post on X that it was aware the app had been removed from the App Store and that it was “working with Apple to get it back ASAP.”

[…]

After TechCrunch reached out to TV Time and Apple about the app’s removal, the app was reinstated on the App Store.

[…]

“Despite Whip Media having complied with the DMCA and explaining that to Apple, the complainant notified Apple that its claim was ‘unresolved,’ and Apple decided to remove TV Time from the App Store,” he says.

Malcolm Owen:

Musi believes Apple acted improperly, breaching its contract with the app removal before investigating the claims made by YouTube.

[…]

In many cases, it’s probably justifiable for Apple to boot the app, especially in extremely obvious instances of copyright infringement. However, an increasing number of developers believe that copyright claims are being handled poorly and that Apple’s power to kick apps is too much.

Joe Rosensteel:

That bureaucratic failure of a developer falling between the cracks is merely one of many that have happened over the years.

[…]

That old, and irrelevant inventory is a key problem. The apps people want to really use generally aren’t going to be found in the Mac App Store unless they’re apps Apple makes.

[…]

Surely, we don’t want this disinterest to fall on iOS? We don’t want another disused, gray, box of a store. If people aren’t held by force inside of this magical font of app development then no one will ever use it!

[…]

The reason that the Mac App Store gathers cobwebs is because Apple gave up on caring if it earns money when compared to its far more profitable predecessor. It couldn’t come close to the money the iOS App Store made, which is why Apple today expends so much effort arguing for iOS to remain as it is. It’s not because apps outside the App Store kill the App Store, it’s because the App Stores need to compete for business and if you don’t compete, well, you’re an office supply store owner hoping someone just doesn’t know how to shop on the internet.

Jeff Johnson:

“Yes, the App Store was a hastily rewritten version of the system Apple used for iTunes, a decision that sealed the fate of Apple’s software platform as a hit-driven marketplace backed by systems designed for record companies to upload music.”

I’m glad to see this acknowledged in the news media. It happens so rarely.

Christian Tietze:

“Once again, the only way forward is the Mac”

[…]

I wish that this would become the future. Fewer nag dialogs, fewer lock-downs. Maybe not for my tech-averse aunt, but for people who want to.

laotang:

The funny things is that this single move most likely would solve most issues with the iPad and the Apple Vision Pro instantly.

Simon B. Støvring:

Eye tracking isn’t available and access to the camera wasn’t available at launch. It is now, but it’s locked behind an entitlement only available to enterprise apps. This seems to neglect part of what makes the platform special.

You need the entitlement in order to try it out at all. You need to sell Apple on your use case before you can even start building.

Previously:

Update (2024-11-25): See also: Hacker News.

nilrog:

I have said it many times. The generations before us created these awesome computers that we played with and learned to make awesome stuff on. But we used that to create these locked-down, stupid, devices so the next generations can only consume stuff on.

Jeff Johnson:

If you were a Mac developer in 2006 and earlier, you didn’t have to do anything that Apple wanted.

You didn’t even need an Apple Developer account, or indeed an Apple ID (which was used primarily for iTunes Music Store purchases). The Xcode developer tools came on disc with every Mac.

I’m not sure that developers today can imagine such a world of freedom. They come in adopting a servile mindset.

Update (2024-12-10): Isaiah Carew:

nearly every other major negative change to software industry in the past ten years can trace some roots to app store ubiquity[…]

Apple Directly Selling Apple News Ads

Sara Fischer:

Apple has started selling its own advertising inventory for Apple News, two sources familiar with the effort told Axios. It’s pitching new ad units that it hopes will maximize revenue for itself and its publishing partners.

[…]

Beginning next year, Apple will sell premium sponsorships of editorially curated content for relevant events, such as the Met Gala, the U.S. Open, and more.

In addition to premium sponsorships, the Apple News team is also pitching banner placements and video ads across 17 different formats, including carousel ads that feature different products.

Advertisers will also be able to sponsor specific feeds within Apple News, should they wish to contextually align with certain topics.

[…]

While the company doesn’t break out its advertising revenue from its broader services revenue, analysts estimate advertising makes up roughly 10% of that business.

Via John Gruber:

Apple News+ is a really good product. Scanning its main Today tab in the morning has become my modern-day equivalent of scanning the front page of a printed newspaper — a way to get a sense of what’s going on in world news. There’s a level of editorial curation and presentation in Apple News that I don’t think has a peer. Apple News itself doesn’t publish or report anything, but there’s clearly a talented, level-headed editorial team that is picking and choosing the most important and most interesting (which are often very different things) stories from a wide variety of sources.

This is the highest praise I’ve ever seen for Apple News. Personally, I really dislike the app’s interface, so I wouldn’t use it in this way even if I liked the selection of stories. I still accidentally end up in Apple News from time to time after clicking a link. I wish there were a way to stop that. I’m offended that it doesn’t have a built-in keyboard shortcut to open the story in your browser and that the menu command says Open in Safari even if you’ve chosen a different default browser. (The Default web browser setting has moved over time and is now in System Settings but cannot be found by searching for “browser.”)

I don’t look to Apple News for anything related to tech. […] But for national, world, and general interest news, Apple News is really good. I don’t know what it’s like without a News+ subscription, but with one, it’s truly excellent.

[…]

But, my god, the ads suck — low-rent and highly repetitive.

Gus Mueller:

I really think Apple should get out of the ads business, starting with the App Store. I find it corrupting, ugly, distasteful, and most of all an anti-premium experience.

Guy English:

First: I agree with @gruber that “The economics for ad-free news just don’t work, and never have.”

Second: Apple at least claims to operate with one bottom line where units don’t carry their own profit and loss. So I find the first claim incongruous with that.

Previously:

Update (2024-11-27): Nick Heer:

The Google document is speculative and external to Apple, so it does not represent Apple’s actual strategy. This is what Google, an advertising company, thinks Apple could do if it wanted to really commit to selling ads. Does losing its Google revenue share tip Apple’s hand? I sure hope not, but I am not the person trying to figure out whether to take a massive financial hit for users’ trust and enjoyment. If Apple has good taste, I hope it will make the right call.

Previously:

Unreal on Internet Archive

Timothy Geigner:

But it just doesn’t have to be like this. Companies could be willing to give up their iron-fisted control over their IP for these older games they aren’t willing to support or preserve themselves and let others do it for them. And if you need a real world example of that, you need look only at how Epic is working with The Internet Archive to do exactly that.

John Walker:

Epic, now primarily known for Fortnite and the Unreal Engine, has given permission for two of the most significant video games ever made, Unreal and Unreal Tournament, to be freely accessed via the Internet Archive. As spotted by RPS, via ResetEra, the OldUnreal group announced the move on their Discord, along with instructions for how to easily download and play them on modern machines.

It’s hard to convey just what a significant moment it was, in 1997-98, when Quake II and Unreal came out within six months of each other. Marking Epic’s entry into the graphics arms race with id Software, the two games were both utterly brilliant shooters in their own rights, but also became the names behind the engines on which a generation of games would be built. Half-Life was based on the Quake engine, while Unreal’s was under the hood of Deus Ex.

OldUnreal:

Our installer supports Windows 7 and later. We are working on installers for Linux and macOS.

Previously:

Type to Siri

Tim Hardwick:

With the introduction of Apple Intelligence in iOS 18.1, communicating with Siri has become more flexible since you can easily type your requests instead of speaking them. It’s a subtle but powerful change that’s perfect for those moments when you need to be quiet or [discreet].

Enabling Type to Siri is straightforward. Head to Settings -> Apple Intelligence & Siri, tap Talk & Type to Siri, and make sure the Type to Siri toggle is switched on.

Apple:

To type to Siri, double-tap the bottom of the screen, then enter your request.

Dave Mark:

My one nit here is that tapping the microphone icon switches you back to plain old Siri.

No. When I tap that microphone, I want to dictate text that I can edit as I go. Perfect for complex queries, or for words/names that Siri gets wrong.

As is, feels like tapping the mic icon causes Siri to hijack my keyboard.

I had the same thought, expecting that I would be able to mix and match speech and typing. I also wish there were different ways of invoking Siri so that you could go right to typing or right to speech. Otherwise, if you enable typing, it always takes an additional tap to be able to speak. On the Mac, I can double-tap the Command key to activate Siri for typing, but then I have to take my fingers off the keyboard to click the little microphone icon. Hey Siri could work around this, but I have it turned off on all devices except my iPhone because otherwise it always seems to respond on the wrong one.

Leon Cowle:

It’s sad that not even these super-basic parts of Apple Intelligence are available on slightly older phones (14Pro is my case). Boo!😒

My 4th generation iPad Air doesn’t support Apple Intelligence, but it does support Type to Siri, though I’m unable to invoke it by tapping.

Filipe Espósito:

Code suggests that “AdBlocker” will download audio fingerprints from Apple’s servers and then use the Shazam API to match them against audio captured by the device’s microphones using the Hey Siri API. When certain audios match, the new framework will temporarily disable Siri’s trigger commands.

Presumably, Apple will use audio fingerprints from its TV ads and keynotes to prevent any mentions of Siri from triggering the virtual assistant on users’ devices.

Previously:

Thursday, November 21, 2024

EagleFiler 1.9.16

EagleFiler 1.9.16 is a maintenance release of my Mac files/notes/e-mail manager. This version improves the formatting of community notes and quote tweets when importing from X/Twitter and includes a bunch of other fixes (e.g. for the help viewer) along the lines of what was in SpamSieve 3.1.

Previously:

Privileges 2.0

Rich Trouton:

SAP has released a new major version of their open source Privileges app. This tool provides macOS standard user accounts with a way to request administrator rights. Privileges 2.x includes a number of new features not available in Privileges 1.x and in particular fulfills two particular long-standing requests from its user community:

  1. It provides a unified mechanism for time-limited admin rights.
  2. SAP now provides a signed and notarized installer package for deployment.

Rich Trouton:

The relevant preference domain and key values are listed below:

  • Preference domain: corp.sap.privileges
  • Key: ExpirationInterval
  • Value: Positive Integer

Previously:

Slopes Interactive Maps

Curtis Herbert et al.:

As of this season, Slopes is a team of seven full-time employees, two contractors, two interns, and me. 🤯 Everything you’ve seen in Slopes over the past few years around interactive resort maps is the kind of feature only an amazing team can pull off. I thought it’d be cool to start pulling back the curtain and allow others at Slopes to share the awesome stuff they’ve been cooking up directly with you, beginning with Jess and Lydia from our mapping team…

[…]

We’ve been consistently expanding our coverage of 3D interactive maps since they were first introduced in 2021. And now, we’re kicking off this season with over 1,500 new resorts added to the list, bringing our total coverage to 2,000+ resorts across the world. About 650 of these areas feature custom Slopes mapping meticulously crafted by our team, while the rest are sourced through a special integration with OpenStreetMap (OSM).

I’m pleased to see that Slopes is doing so well, even though many resorts now have their own free apps that offer some similar features as well as access to their own private realtime data.

Lydia:

Mapping ski resorts from scratch, we use GIS software to layer our data over high-resolution imagery and other spatial datasets. This imagery, often at 1-meter resolution in many parts of the world, comes from satellite and aerial sources. We use it as a reference to manually draw resort features (yup, that's right, we draw overlays by hand) in their correct geographic locations. The fine resolution of the imagery allows us to clearly map lifts and resort buildings.

[…]

We use fully anonymized data from Slopes recordings to improve the accuracy of our maps. We plot a subset of this data as a heatmap and layer it under the resort. Combined with official trail maps, we are then able to determine where to add run lines, and their orientations. This information removes the guesswork and provides us with good accuracy.

Previously:

Let’s Encrypt Is 10

Josh Aas (in 2014, via Hacker News):

For many server operators, getting even a basic server certificate is just too much of a hassle. The application process can be confusing. It usually costs money. It’s tricky to install correctly. It’s a pain to update.

Let’s Encrypt is a new free certificate authority, built on a foundation of cooperation and openness, that lets everyone be up and running with basic server certificates for their domains through a simple one-click process.

From my perspective, they delivered just what they promised.

Previously:

Wednesday, November 20, 2024

SpamSieve 3.1

SpamSieve 3.1 improves the accuracy of my Mac e-mail spam filter, amongst many other enhancements.

Some interesting issues were:

Previously:

Update (2024-12-09): Unfortunately, it turns out that library validation does not work around whatever macOS code signing bug is causing downloads to be incorrectly reported as damaged, so customers encountering this still need to use the Download Fixer tool. That’s easy enough to do, but some will probably give up before doing that because there’s no automated way to help them find it.

Overcast 2024.11.1

Overcast:

The price change goes into effect tomorrow (November 21).

Premium is going from $9.99 to $14.99, the first price increase since it was introduced 8 years ago.

Chance Miller:

The new 48-hour listening history feature builds upon the undo seek feature that Overcast introduced earlier this year.

  • 48-hour History and Undo: Accidentally seek too far, leave your phone playing overnight, or delete the wrong episode, podcast, or playlist? Just undo it!

The undo seek feature has been one of my favorite parts of Overcast’s big update from July, so I’m thrilled to see this new feature expand even further.

Meanwhile, the new Listening Stats feature gives Overcast users a great way of recapping their podcast listening on a daily, monthly, or yearly basis.

I like the history idea. Previously, the only Premium features that I used were uploads and ad removal.

I’m actually still using the old Overcast, though, because I’m still seeing bug reports, and I’m scared of ending up in a broken state if they bite me. The App Store won’t let me revert to the previous version. I could switch to Pocket Casts, but I don’t want to, and it would be a lot of work because, although I can import OPML, there’s no way to transfer the lists of which episodes are queued or already played, nor can I download the unplayed files that I’ve uploaded.

See also: Under the Radar.

Previously:

Update (2024-11-22): Marco Arment:

I’ve said a couple times recently that App Store subscriptions can only increase by $5/year if you want people to be opted-in by default.

That’s wrong!

[…]

(My IAP is sticking with $15 for now, though.)

Why Can’t iOS Have Smart Folders?

Collin Donnell:

The only apps I know about that have added them for both macOS and iOS are Reminders and Notes, although I’ve found the implementation of them to be a bit weird. In both of those, you can’t add sub-conditions, so you can say all or any of a list of conditions, but you can’t say “all of these conditions and any of these conditions.” It might sound like a small thing, but it’s not.

Anyway, back to the topic. I want this, and I want Apple to add it. Part of me wonders if it’s just a matter of there not being an equivalent to NSRuleEditor in UIKit or SwiftUI, and so every app would have to implement the control on their own.

I was just thinking about this yesterday when reading about News Explorer 2.0 and how its complex filters can sync and work on iOS but can be edited only on macOS.

Pinwheel 1.0

New Mac app from Bjango (Mastodon):

Convert between color formats and color spaces. Automate color contrast testing. Create beautiful gradients and palettes.

[…]

Pinwheel imports Design Tokens JSON, Figma documents, Sketch documents, CSS, asset catalogs, and other file types.

Once you’ve finished making adjustments, automated exporting can be set up to simultaneously export in multiple formats. Would you like SCSS, Design Tokens JSON, and SwiftUI color enums all at once? Sure thing.

$25, no subscription or Mac App Store version.

Update (2024-11-22): Sören:

Would love a comparison of Bjango’s Pinwheel and Steve Troughton-Smith’s Pastel. They look similar?

Tuesday, November 19, 2024

DOJ Wants Google to Sell Chrome and De-Google Android

Juli Clover (Hacker News, 9To5Google):

The United States Department of Justice wants Google to sell off its Chrome browser as part of an ongoing antitrust lawsuit, reports Bloomberg. Earlier this year, Google was found to have a search monopoly, and antitrust regulators have since been deciding on the actions that should be taken to address Google’s anticompetitive practices.

The DoJ plans to ask the court to force Google to sell Chrome, which is the most popular web browser in the world by a wide margin. Chrome’s integration with Google Search and other Google products has been cited as one of the factors limiting search competition.

Regulators also want Google to uncouple the Android operating system from other products like Google Search and the Google Play Store, both of which are apps installed on Android devices by default. It’s not clear how unbundling Android from Google Play would work as Google Play is the Android app store.

This doesn’t make sense to me, and I don’t even really understand what they think it would help with. If there are illegal behaviors, why not address them directly?

Christina Warren:

This was stupid when they tried to do this to Microsoft 25 years ago. It’s equally stupid to do this to Google.

John Gruber:

If Google were forced to sell Chrome, who’d make the default web browser for Android? Android can’t ship without a default browser. And the DOJ wants Google to “uncouple” Android from the Google Play store? Allowing Google to keep Android but not make its own web browser or app store is just nonsense.

[…]

Chrome is not a standalone business. Android is not a standalone business. They’re both just appendages of Google that serve only as distribution channels for the advertising Google shows in search results, and the money it makes from advertising and game commissions in the Play Store. It’s like saying I have to sell my left foot. It’s very valuable to me, but of no value to anyone on its own.

Dare Obasanjo:

This proposal is kind of nuts since the only business model for web browsers is revenue share from search results. That’s how Edge, Safari, Firefox and Chrome make money.

So the only way it makes sense for anyone to buy Chrome is to make Google the default search, otherwise it’s not worth the investment.

M.G. Siegler:

The idea that Google would be broken up as a result of their loss in the antitrust trial against their Search monopoly was never going to happen. Instead, as I wrote last month, it was more like Negotiating 101. Start by putting the biggest ask out there, see how the market (including, notably, Google) reacts and go from there. Having read that particular room, it seems like the DoJ is now closing in on their actual opening proposal.

[…]

The government would argue that consumers will benefit as they'll no longer be as locked into Google Search – especially if this is coupled with an order to end any default search agreements with other browser makers. But unless those other browser makers choose another search engine as the default, it feels like Google Search will not be impacted very much. It is interesting to think if that would impact the uptake and growth of Gemini and a few other Google products, such as their payment services, but that's not what is on trial here.

It's not clear who could pay what for Chrome. Bloomberg throws out the notion of OpenAI being one potential home, but would the government really want that? That would risk anointing – well, really entrenching – a king in a new field. OpenAI's main benefactor, Microsoft could acquire it, especially now that their own Edge browser is all-in on Chromium. But they would probably just use it to bolster not just Bing by also their own AI products and services. And that would be extremely awkward for the government as well.

Previously:

Update (2024-11-22): Michael Liedtke (PDF, Hacker News):

U.S. regulators want a federal judge to break up Google to prevent the company from continuing to squash competition through its dominant search engine after a court found it had maintained an abusive monopoly over the past decade.

The proposed breakup floated in a 23-page document filed late Wednesday by the U.S. Department of Justice calls for sweeping punishments that would include a sale of Google’s industry-leading Chrome web browser and impose restrictions to prevent Android from favoring its own search engine.

[…]

Although regulators stopped short of demanding Google sell Android too, they asserted the judge should make it clear the company could still be required to divest its smartphone operating system if its oversight committee continues to see evidence of misconduct.

Dare Obasanjo:

The DOJ’s proposed remedies to address Google’s search monopoly are far reaching and will definitely reshape the internet:

  • Google forced to sell Chrome
  • Android can no longer promote Google Search
  • Banned from default search deals on iPhones and other devices (Apple just lost $20B/year)
  • Must license search index data to competitors

M.G. Siegler:

The second is that unlike the default search placement and deal they’re (rightfully, I think) worried about within browsers, using Chrome itself is actually a choice almost all users on desktops/laptops make. That’s because beyond ChromeOS devices, most such devices are Windows or Mac machines. And these devices generally do not have Chrome installed out of the box. You have to boot up Microsoft Edge or Apple Safari and yes, search for Chrome in order to install it. This is sort of a pain. And sure, Google uses prompts on Google Search at times to try to ease such actions, but this is something many users explicitly do.

[…]

More broadly, the reality remains that what is going to break the dominance of Google Search is not going to be another search engine, it will be something tangential out of left field. As such, asking Google to sell/spin-off Chrome is seemingly irrelevant to the DoJ’s goal here. Perhaps if they forced a sale to a competitor that actually had the resources and will to support Chrome, but that would mean selling it to another tech giant, like Microsoft, or Apple, or Meta and there’s no way they want that – all of those companies are also under investigation for other forms of antitrust, market dominance, etc. Also, as the testimony from Apple and others has made clear in various trials, the main search competitor right now, Bing, simply isn’t good enough to replace Google even if they were offered more money to do so. Hell, even Microsoft admitted this! Perhaps after years of default placement and thus, usage, Bing would surpass Google, but the reality here remains that most people would probably just go back to using Google.

43920:

This has already been discussed extensively in prior threads, but the biggest question is, how does a spun-off Chrome get funded?

Chrome/Firefox/Safari all cost hundreds of millions of dollars a year to maintain. Currently, Safari and Firefox both make essentially all their revenue through default search agreements. Chrome, Edge, and now Brave are produced by companies that also own the search engines, so they’re essentially a loss-generating product, that exist because they cancel out distribution costs that Google and Microsoft would otherwise have to pay other browsers.

But the DOJ order is also asking to ban payments between search engines and browser makers[…]

Jeff Johnson:

Moreover, who would buy Google Chrome? It seems like the leading candidate would be Microsoft, who is still a monopolist on desktop, so that option might even be worse than the status quo.

It makes much more sense for Google to divest Android, which can make money via licensing and Google Play.

Dare Obasanjo:

OpenAI building a search engine and buying Chrome after the DOJ forces Google to sell it would fracture Google’s search business overnight.

Josh Sisco and Leah Nylen (Hacker News):

Alphabet Inc.’s Google would be forced to unwind its partnership with artificial intelligence startup Anthropic if a federal judge accepts the US Justice Department’s proposal to resolve a landmark antitrust case over online search.

Steve Troughton-Smith:

I know one person who might jump at the chance to snap up the world’s leading portal to information for $20B, and who has access to the levers of government to force the sale to happen…

Update (2024-11-25): Nick Heer:

The full proposal (PDF) is a pretty easy read. One of the weirder ideas pitched by the Colorado side is to have Google “fund a nationwide advertising and education program” which may, among other things, “include reasonable, short-term incentive payments to users” who pick a non-Google search engine from the choice screen.

[…]

The D.O.J.’s theory of growth reinforcing quality and market dominance is sound, from what I understand, and Google does advantage Chrome in some key ways. Most directly related to this case is whether Chrome activity is connected to Google Search. Despite company executives explicitly denying using Chrome browsing data for ranking, a leak earlier this year confirmed Google does, indeed, consider Chrome views in its rankings.

There is also a setting labelled “Make searches and browsing better”, which automatically “sends URLs of the pages you visit” to Google for users of Chromium-based browsers. Google says this allows the company to “predict what sites you might visit next and to show you additional info about the page you’re visiting” which allows users to “browse faster because content is proactively loaded”.

[…]

I do not think Chrome can exist as a standalone company. I also do not think it makes sense for another company to own it, since any of those big enough to do so either have their own browsers — Apple’s Safari, Microsoft’s Edge — or would have the potential to create new anticompetitive problems, like if it were acquired by Meta.

Update (2024-11-26): Casey Newton:

In a blog post today, Google argued that the opposite is true. Kent Walker, the company’s chief legal officer, called it “a radical interventionist agenda” and a “staggering proposal [that] would hurt consumers and America’s global technological leadership.”

[…]

As I wrote Tuesday, I’m not fond of forcing Google to divest Chrome: it was built in house, and earned its spot as the most popular browser in the United States fairly: by being meaningfully better than its competition. No matter who owns and operates it, most US users will probably set Chrome’s search engine to Google. It’s hard to see that shaking up the search market too much.

Requiring Google to license search queries and results, on the other hand, could be transformative. Suddenly, Google’s rivals would have a more even footing on which to attempt to build better search products.

Update (2024-11-27): Michael Kan (via Nick Heer):

“We strongly urge the Court to consider remedies that improve search competition without harming independent browsers and browser engines,” a Mozilla spokesperson tells PCMag.

[…]

“The proposed remedies are designed to end Google’s unlawful practices and open up the market for rivals and new entrants to emerge,” the DOJ told the court. The problem is that Mozilla earns most of its revenue from royalty deals—nearly 86% in 2022—making Google the default Firefox browser search engine.

Previously:

News Explorer 2.0

Ron Elemans (Mastodon):

Sidebar filters, or ‘Smart folders’ as Apple likes to call them, are now fully customizable. You can add as many filters as you like, and they are all synced across all your devices.

[…]

Article comments are automatically downloaded and displayed in the Inspector panel when the article has a comment feed, public comment API, or when the source webpage uses Open Web comments. Being able to read comments directly in the app besides the article is really a nice experience, especially for feeds whose comments are as interesting as the articles themselves.

[…]

The iCloud storage settings panel has a new setting, ‘Local iCloud sync modus’. With this, you can optimize your News Explorer sync infrastructure by assigning ‘Server’ modus to an always-running Mac, and using ‘Client’ modus on all other devices..

[…]

Prefilters allow you to control which articles from a feed are allowed to be downloaded and which are not.

Amazingly, this is a free update. New licenses are $9.99 for Mac and $4.99 for iOS.

Previously:

macOS 15.1.1

Juli Clover (release notes, security, no enterprise, no developer, full installer, IPSW):

According to Apple’s release notes, macOS Sequoia 15.1.1 includes security fixes.

Juli Clover:

With the JavaScriptCore vulnerability, processing maliciously crafted web content could lead to arbitrary code execution. The WebKit vulnerability had the same issue with maliciously crafted web content, and it could lead to a cross site scripting attack.

Apple says that it is aware of reports that these two issues may have been actively exploited on Intel-based Mac systems. While the vulnerabilities are only known to have impacted older Macs, other devices are vulnerable to attack because they have the same security flaws.

I’m not sure why, but this seemingly minor update took way longer than other recent ones to install on my Intel MacBook Pro—probably close to an hour, with the fans blaring for most of that time.

Jeff Johnson:

Getting an Apple Intelligence modal ad after installing macOS 15.1.1

Also, 15.1.1 wants me to store all my files in iCloud, enabled by default, WTF?!?

For me, it didn’t change anything with iCloud Drive, and (on a Mac that doesn’t support Apple Intelligence) it didn’t show any onboarding screens at all. I had gotten used to being asked to sign into iCloud again.

Previously:

Update (2024-11-22): Ryan Naraine (via Hacker News):

Raw details on the patched vulnerabilities:

  • CVE-2024-44308 — JavaScriptCore — Processing maliciously crafted web content may lead to arbitrary code execution. Apple is aware of a report that this issue may have been actively exploited on Intel-based Mac systems.
  • CVE-2024-44309 — WebKit — Processing maliciously crafted web content may lead to a cross site scripting attack. Apple is aware of a report that this issue may have been actively exploited on Intel-based Mac systems.

iOS 18.1.1 and iPadOS 18.1.1

Juli Clover (iOS/iPadOS release notes, security, no enterprise, no developer):

According to Apple’s release notes, the iOS 18.1.1 update provides important security fixes.

Previously:

visionOS 2.1.1

Juli Clover (no release notes, no developer, security, no enterprise):

Today’s update focuses on security fixes rather than new features, and it is recommended for all Vision Pro users.

Previously:

Monday, November 18, 2024

Swift Concurrency Proposal Index

Quinn (via Fatbobman):

This post summarises the Swift Evolution proposals that went into the Swift concurrency design. It covers the proposal that are implemented in Swift 6.0, plus a few additional ones that aren’t currently available.

The focus is here is the Swift Evolution proposals. For general information about Swift concurrency, see the documentation referenced by Concurrency Resources.

Marcin Krzyzanowski:

I really really dislike the state of Swift Concurrency knowledge

  1. check the year
  2. find appropriate version of proposal
  3. find how it is implemented
  4. find proposal that changes that proposal
  5. extract current state of expectation

Previously:

Update (2024-11-26): Rob Jonson:

The first step is to actually document what swift 6 does. This should be in the swift language guide.

For example - ‘sending’ solved a problem for me yesterday in swift 6 mode, but searching the Swift Language Guide finds no references to the term.

[…]

Once complete documentation exists, future changes should not be accepted unless they fully explain themselves fully in the documentation.

The complexity of writing user documentation will highlight a lot of the practical complexity.

Previously:

Why Is Lightroom Always Generating Thumbnails?

I really like working in Lightroom Classic except that—despite continually updating to newer versions that promise performance improvements and newer Macs with faster processors, SSDs, and more RAM—it still feels slow. Maybe it’s my imagination, but I don’t think it was always thus. I think I used to be able to import a thousand photos and do stuff in the app during that process. Now, the app almost locks up during the initial phase of the import, and it bogs down the entire Mac. Sometimes I can’t even monitor the CPU use with App Tamer because the XPC messages between its daemon and menu bar item get delayed.

Imports are not the main problem, though, because I can generally start them before I take a break and let the Mac chug away while I’m gone. What really gets in the way is that—unlike Apple Photos—it can’t smoothly scroll through a grid of thumbnails. Some of them are inevitably blank or blurry, and Lightroom shows three dots in the upper-right corner to show that it’s busy working. Sometimes a given thumbnail will load in a few seconds, but other times it takes more like minutes. It does not seem to do any pre-loading so that when I press Page Down the next screenful of thumbnails will already be ready. It seems to wait until they are in view before beginning the work.

I’d like to be able to tell Lightroom to pre-generate all the thumbnails, and keep them stored, so that scrolling is always fast. But my understanding is that there’s no such command. Thumbnails seem to be tied to the generation of previews. I have Lightroom set to auto-generate previews on import, but that doesn’t do the job. Choosing Library ‣ Previews ‣ Build Standard-Size Previews doesn’t seem to help. Choosing Library ‣ Previews ‣ Build 1:1 Previews does help somewhat, though I’m not sure why building huge previews vs. standard ones would help more with thumbnails. But, even then, if I scroll through a few thousand photos whose 1:1 previews I just rebuilt, I still see the indicator on some thumbnails. Many that don’t show that indicator are blurry for a few seconds. Browsing within a single collection, I can slowly scroll down to the bottom so that all the thumbnails are eventually loaded, but they don’t all stay loaded. Doing the same scroll again seems to cause some of them to be regenerated or at least reloaded.

Previously:

Does Apple Smell Blood in the Water?

Jaron Schneider (Hacker News):

In just the last year and a half, Apple launched Final Cut on iPad and Final Cut Camera, updated Final Cut Pro to a new version for the first time in 13 years, and moved to purchase Pixelmator. As Adobe’s public perception continues to struggle, Apple is making moves to take advantage.

Through the 2010s, Apple didn’t do much on the software front. Sure, it had Final Cut Pro X but the move from version 7 required a complete rewrite of the program’s code. The benefit of this was marked improvement in performance. The downside was a gutting of the app’s features. The negative response to Final Cut Pro X was so strong that Apple lost a large chunk of the professional video editing market and it has since never made up that ground. Most moved to Adobe Premiere which over the next decade would solidify itself as a major player in the professional space, both in small teams and feature-length productions.

But public perception of Adobe has dipped in recent years. The switch to a subscription plan has left many editors dissatisfied, especially considering how inflexible Adobe has been with its plans — the lack of an a la carte option leaves creative professionals either the option to only edit photos or pay for a large number of apps they’ll never use if they want to get Premiere Pro. Performance has also been a regular complaint across Adobe’s ecosystem with Lightroom and Premiere Pro the focus of most of the consternation.

Adobe does seem to have lost a lot of good will, its current offerings are not very good Mac citizens, and Apple doesn’t seem to be promoting them as much. On the other hand, we all remember Aperture and the other pro apps that Apple discontinued. Final Cut Pro and Logic are the anomalies where Apple’s heart stayed in it. With the other creative apps—even iMovie—it just seemed to lose interest.

See also: Accidental Tech Podcast.

Previously:

Update (2024-11-25): John Gruber (Hacker News):

Apple clearly understands the appeal of subscription bundles too, with Apple One. Despite the fact that Apple didn’t switch to subscription pricing for Final Cut Pro 11 for Mac, I still expect them to sooner rather than later, and if they do, I would further expect a bundle. Apple is never going to offer a swath of creative tools as broad as Adobe’s, but the biggest missing pieces right now would be alternatives to Photoshop and Lightroom. My gut feeling is that’s why they acquired Pixelmator and Photomator. They could sell a bundle for, just spitballing here, $20/month or $200/year that would include the Mac and iPad versions of Final Cut Pro, Logic Pro, Pixelmator, and possibly Photomator. Maybe throw in some extra iCloud storage.

Retrofitting Spatial Safety to Hundreds of Millions of Lines of C++

Google Security:

Based on an analysis of in-the-wild exploits tracked by Google’s Project Zero, spatial safety vulnerabilities represent 40% of in-the-wild memory safety exploits over the past decade[…]

[…]

A key element of our strategy focuses on Safe Coding and using memory-safe languages in new code.

[…]

However, this transition will take multiple years as we adapt our development practices and infrastructure. Ensuring the safety of our billions of users therefore requires us to go further: we’re also retrofitting secure-by-design principles to our existing C++ codebase wherever possible.

[…]

Hardened libc++, recently added by open source contributors, introduces a set of security checks designed to catch vulnerabilities such as out-of-bounds accesses in production. […] Hardening libc++ resulted in an average 0.30% performance impact across our services (yes, only a third of a percent).

Previously:

Friday, November 15, 2024

M4 Macs Can’t Virtualize Older macOS

Howard Oakley:

Running a macOS VM for any version before 13.4 Ventura on an M4 Mac results in a black screen, and the VM fails to boot. This is true whatever settings are used in the virtualiser, even if it’s set to boot the VM in Recovery mode. It’s also true when that VM has been built on that Mac: although that appears to complete successfully, when first run that VM opens as a black screen and never proceeds with personalisation and setup.

Currently the only way to run a VM with macOS prior to 13.4 Ventura is to do so on a host with an M1, M2 or M3 chip.

[…]

The first versions that can run in VMs are macOS 12 Monterey, although prior to 12.4 they can sometimes be a bit fractious. They also have major limitations, such as not supporting shared folders with the host.

Previously:

Update (2024-11-18): See also: MacRumors (Hacker News).

Update (2024-11-22): Csaba Fitzl:

Apple confirmed that it’s a bug and they plan fixing it. 🥳

Lawsuit to Reveal Wikipedia Editors

Glyn Moody:

As Techdirt stories attest, Wikipedia has been attacked in the past for publishing true information that somebody doesn’t like. As well as wanting articles to be censored, those behind such attacks often also demand the names of those who worked on the article. Something similar is now happening in India, where the Indian news agency Asian News International (ANI) has filed a lawsuit against Wikimedia Foundation in the Delhi High Court, claiming to have been defamed in an article on Wikipedia, and seeking 20 million Indian Rupees (about US$240,000) in damages.

[…]

The latter’s signees say that they are “profoundly concerned at the suggestion that the Foundation is considering disclosing identifying private information about volunteer editors to the Delhi High Court”, and they call upon the Foundation to “prioritize the safety and well being of volunteers, even if it comes with a risk of legal action against the Foundation, or other costs.”

Firefox at 20

Kevin Purdy (Hacker News):

Back in June 2002, Ubuntu founder Mark Shuttleworth was experiencing space for the first time, the Department of Justice’s antitrust case against Microsoft was reaching its final arguments, and Adam Price, using what was then called Mozilla on a Mac, had an issue with persistent tooltips.

That relic is no more, as a fix to Bug 148624 was pushed in early September, with the fix appearing in build 119. I tried to replicate the tooltip on my not-yet-updated 118.0.1 Firefox browser on Mac but could not experience this rite of passage for myself. The patch itself is quite small, adding a check for whether a document has focus to the tooltip-showing code.

[…]

Zhu [born in 1999, just three years before this bug was submitted] was motivated and knew how to program but had “zero experience in projects as complicated as the Firefox browser” and had “never contributed to open source projects before.” But it was the summer before their PhD program started. “So, why not?”

My favorite old Firefox bug is that it needs AppleScript support.

dannyobrien:

If you’re curious about how you’d even go about finding and fixing a bug in the Firefox codebase, Mike Conley has been livestreaming his dev work at Mozilla weekly for years. A lot of the stuff he records involves picking a bug from the backlog, and then meticulously hunting it down and murdering it.

Bas Schouten (via Hacker News):

We’ve been motivated by the improvements we’re seeing in our telemetry data, and we’re convinced that our efforts this year are having a positive effect on Firefox users. We have many more optimizations in the pipeline and will share more details about those and our overall progress in future posts.

Bryce Wray (via Hacker News):

Firefox peaked at 31.82% in November, 2009 — and then began its long slide in almost direct proportion to the rise of Chrome. The latter shot from 1.37% use in January, 2009, to its own peak of 66.34% in September, 2020, since falling back to a “measly” 62.85% in the very latest data.

[…]

With such a continuing free-fall, Firefox is inevitably nearing the point where USWDS will remove it, like Internet Explorer before it, from the list of supported browsers.

Steven Vaughan-Nichols (via Hacker News):

And the top web browser is, according to the DAP’s 5.27-billion visits over the past 90 days, just as you’d expect: Google Chrome with 47.9%. Firefox, with only 2.2% of the market, is sliding into irrelevance.

PG&E (via Hacker News):

The following browsers are below our threshold for support.

Šime (via Hacker News):

To be honest, until recently I wasn’t even sure myself why I use Firefox. Of course it’s a pretty good browser, but that doesn’t explain why I’ve stubbornly stayed loyal to Firefox for more than a decade. After giving it a bit more thought, I came up with the following reasons.

Frederic Lardinois (Hacker News):

Exactly 20 years ago, Mozilla started shipping version 1.0 of its Firefox browser. At the time, you could download it or buy a CD-ROM with a guidebook from Mozilla (or maybe get it on one of those free CDs that would come with many magazines at the time). Born out of the ashes of Netscape, Firefox would go on to gain well over 30% of global market share. But that was followed by a period of stagnation, and after the arrival of the faster and lighter Google Chrome, Firefox slowly but surely lost market share. It didn’t help that Mozilla, at the time, seemingly prioritized everything but its browser, all while its mobile browser initiatives never quite took off.

Despite everything, Firefox is still going strong, and it is a better browser today than it ever was. Now, Mozilla, which recently said that it wants to refocus on the browser, needs to figure out how to get it back on a growth path.

Thomas Claburn:

“There was a time where the browser space was absolutely the front line of an open, safe, equitable internet,” our source said. “Mostly that was about, frankly, preventing Microsoft from taking over the internet.”

[…]

In other words, for the past decade, upstart browser makers like Mozilla, Brave, Vivaldi, Opera, Arc, and others have essentially been fighting for that 10 percent – the table scraps left by the tech giants.

[…]

“The problems are about the information that travels on the internet,” our source said. “It’s not about the protocols that run the internet anymore. … It’s not about the plumbing. It’s about what’s flowing through the plumbing.”

Previously:

The State of Mozilla

Bryan Lunduke (via Hacker News):

The Mozilla Foundation has released their latest annual report -- covering the time up through December of 2022 (Mozilla’s reporting always lags by one year) -- and something peculiar leaps out of the data:

  • The compensation of the Mozilla CEO has skyrocketed (by millions)
  • While the Mozilla revenue drops
  • And the Firefox Marketshare takes a nosedive

Mozilla (via Hacker News):

Mozilla was built to make the internet better

[…]

Building Mozilla stems from a harmonious blend of philanthropic vision and commercial acumen, embodying the balance between social impact and sustainable growth. Driven by the mission to serve the public good. Two examples are how we build through our Venture Fund and the amazing projects funded through In Real Life.

Richard Speed (via Hacker News):

Unsurprisingly for a technology company, the report is heavy on AI going mainstream where Mozilla reckons it can make an impact in the technology, particularly with regard to open source developers and privacy.

Mozilla’s adventures in AI? The organization says it has 15 engineers working on open source large language models and is working on use cases in the healthcare space. Moez Draief, managing director of Mozilla.ai, said: “There’s a lot of structured data work in that industry that will feed the language models; we don’t have to invent it.”

Seattle3503:

Mozilla’s corporate structure has the same problem OpenAI had. Because Mozilla is not a for-profit entity, management isn’t accountable to shareholders with a financial stake. Because Mozilla isn’t a charity, management isn’t accountable to donors. Who is Mozilla management accountable to? A board; mostly made up Baker’s associates. It is an incestuous arrangement. If Mozilla were serious, they would change the way management is held accountable. Baker needs someone who will actually hold her feet to the flames.

Mozilla is entirely unimaginative, but is self sustaining as long as it keeps its advertisers. Mozilla is a shambling corpse that will continue to shuffle forward until it is no longer favorable for Google to buy search placement.

Diane Brady (via Hacker News):

Mitchell Baker is stepping down as CEO to focus on AI and internet safety as chair of the nonprofit foundation. Laura Chambers, a Mozilla board member and entrepreneur with experience at Airbnb, PayPal, and eBay, will step in as interim CEO to run operations until a permanent replacement is found.

[…]

Chambers says she plans to focus on building out new products that address growing privacy concerns while actively looking for a full-time CEO.

Thomas Claburn:

Mozilla Corporation was sued this month in the US, along with three of its executives, for alleged disability discrimination and retaliation against Chief Product Officer Steve Teixeira.

Teixeira, according to a complaint filed in King County Superior Court in the State of Washington, had been tapped to become CEO when he was diagnosed with ocular melanoma on October 3, 2023.

Laura Chambers:

Mozilla has acquired Anonym, a trailblazer in privacy-preserving digital advertising. This strategic acquisition enables Mozilla to help raise the bar for the advertising industry by ensuring user privacy while delivering effective advertising solutions.

[…]

By combining Mozilla’s scale and trusted reputation with Anonym’s cutting-edge technology, we can enhance user privacy and advertising effectiveness, leveling the playing field for all stakeholders.

Jamie Zawinski:

This seems completely normal and cool and not troublesome in any way.

Jamie Zawinski (Hacker News):

Some will tell you that Mozilla’s worst decision was to accept funding from Google, and that may have been the first domino, but I hold that implementing DRM is what doomed them, as it led to their culture of capitulation. It demonstrated that their decisions were the decisions of a company shipping products, not those of a non-profit devoted to preserving the open web.

[…]

In my humble but correct opinion, Mozilla should be doing two things and two things only:

  1. Building THE reference implementation web browser, and
  2. Being a jugular-snapping attack dog on standards committees.
  3. There is no 3.

• • •

Floris Hulshoff (via Hacker News):

Mozilla will soon remove its telemetry service Adjust from the Android and iOS versions of browsers Firefox and Firefox Focus. It appeared that the developer was collecting data on the effectiveness of Firefox ad campaigns without disclosing that.

AdGuard (via Hacker News):

If you haven’t been following Firefox super closely, you might wonder: Why was there an ad-tracking SDK in the first place? After all, Mozilla has always positioned itself as a champion of privacy. So, what’s the deal with third-party trackers in their browser?

[…]

It might shock some, but Mozilla has quietly used the Adjust SDK for years. Back in 2020, a curious Redditor on the Firefox subreddit demanded answers about this telemetry partnership — questioning what data was sent, how it was used, and how it squared with Mozilla’s privacy-first image.

[…]

Mozilla says that Firefox for Android uses the Adjust SDK to track and analyze the origin of app installs, specifically to determine if a user installed the browser in response to a specific marketing campaign.

Sergiu Gatlan:

European digital rights group NOYB (None Of Your Business) has filed a privacy complaint with the Austrian data protection watchdog (DSB) against Mozilla, alleging the company uses a Firefox privacy feature (enabled without consent) to track users’ online behavior.

The feature, called “Privacy-Preserving Attribution” (PPA) and jointly developed with Meta (formerly Facebook), was announced in February 2022 and was automatically enabled in Firefox version 128, released in July.

NOYB’s complaint claims that, despite its name, Mozilla uses the feature to track Firefox user behavior across websites.

• • •

Martin Brinkmann:

Raymond “gorhill” Hill, maker of the world’s most popular content blocker uBlock Origin received two emails from Mozilla recently about his Firefox add-on uBlock Origin Lite.

[…]

Mozilla says that it has reviewed the extension and found violations. […] As a consequence, Mozilla disabled the extension on the Firefox Add-ons Store.

[…]

Hill refuted all three claims that Mozilla made on the GitHub repository stating that the extension is not collecting any data, that there is no minified code in uBlock Origin Lite, and that there is a privacy policy.

Taras Buria (via Hacker News):

Raymond Hill decided to drop the extension from the store and move it to a self-hosted version. This means that those who want to continue using uBlock Origin Lite on Firefox should download the latest version from GitHub (it can auto-update itself).

• • •

Mozilla:

We’ve made the hard decision to end our experiment with Mozilla.social and will shut down the Mastodon instance on December 17, 2024.

Niléane:

Mozilla deciding to put an end to its Fediverse investments while simultaneously going all in on AI tells you everything you need to know about what it has become.

Christina Warren:

I understand that this is going to upset people but bffr, if you have 270 active users, that isn’t sustainable. I understand why Mozilla experimented with this. I equally understand why this isn’t something they could do in perpetuity with this low of a number of users.

• • •

Laura Chambers:

As Mark shared in his blog, Mozilla is going to be more active in digital advertising. Our hypothesis is that we need to simultaneously work on public policy, standards, products and infrastructure. Today, I want to take a moment to dive into the details of the “product” and “infrastructure” elements. I will share our emerging thoughts on how this will come to life across our existing products (like Firefox), and across the industry (through the work of our recent acquisition, Anonym, which is building an alternative infrastructure for the advertising industry). 

Jamie Zawinski (Mastodon):

They’ve decided who their customers are, and it’s not you, it’s people who build and invest in surveillance advertising networks. But in a “respectful” way.

• • •

Ellis Tree:

Open-source, not-for-profit software company Mozilla has revamped its digital identity to better encapsulate its mission to advocate for an “open, accessible, and supportive internet”. Best known for its Firefox web browser, the company now has a new branding system that aims to visually unify its expanded set of services, channels and resources, which Mozilla has developed over the years, as well as highlight its current “vital research advocacy work in the digital world”. So, central to the brand’s shift has been to move forward with Mozilla as a brand name in order to ensure that the software company “is recognised for its broader impact, not just Firefox”.

Thomas Claburn (Hacker News, Slashdot):

The Mozilla Foundation is laying off about a third of its staff. The non-profit org, which oversees the corporation that develops the Firefox web browser, insists it will continue its advocacy mission, though its approach may change.

[…]

Mozilla Corporation in February laid off about 60 staff, representing about five percent of that software maker’s headcount.

Gaby Del Valle (Hacker News):

In an email sent to all employees on October 30th, Nabhia Syed, the foundation’s executive director, said that the advocacy and global programs divisions “are no longer part of our structure.”

Frederic Lardinois (Hacker News):

To kick-start some of this growth, Mozilla is looking at reaching new, and younger, users. Chambers noted that Mozilla is running a number of marketing campaigns to make people aware of Firefox, especially those who are only now starting to make their first browser choices.

[…]

Of course, she said, the browser also has to work very well — and that’s something Mozilla has focused on quite extensively in recent years. And at the same time, the team also has to keep innovating and giving users the features they are looking for. She noted that as part of refocusing on Firefox, Mozilla is running far more user experience experiments in the browser now, for example.

[…]

From a financial perspective, Mozilla is almost completely dependent on its search deal with Google. Since the Department of Justice is now looking at these deals, though mostly because of Google’s deal with Apple, there is a risk that this may also end up hurting Mozilla. Chambers didn’t seem too concerned about this, however. She noted that the scope of this ruling, which is expected soon, is the U.S., while Mozilla is a global organization.

Previously:

Thursday, November 14, 2024

Final Cut Pro 11 for Mac

Apple (MacRumors, MacStories):

In Final Cut Pro 11, editors can access two all-new AI-powered tools: Magnetic Mask and Transcribe to Captions. With Magnetic Mask, editors can effortlessly isolate people and objects in a video clip without the need for a green screen or more time-consuming rotoscoping. This powerful and precise automatic analysis provides additional flexibility to customize backgrounds and environments. Editors can also combine Magnetic Mask with color correction and video effects, allowing them to precisely control and stylize each project. And with Transcribe to Captions, closed captions can be automatically generated in the timeline using an Apple-trained large language model that transcribes spoken audio.

[…]

Spatial video allows users to capture life’s precious moments and relive them on Apple Vision Pro. Final Cut Pro 11 now supports spatial video editing, allowing editors to import their footage and add effects, make color corrections, and enhance their projects with titles.

[…]

Final Cut Pro for iPad 2.1 brings beloved features to the touch-first editing experience. Powered by Apple silicon, Enhance Light and Color is an intelligent way to improve color, color balance, contrast, and brightness in video or still images in one simple step, and is optimized for SDR, HDR, RAW, and Log-encoded media. With haptic feedback for Apple Pencil Pro and Magic Keyboard, users will feel a light pulse as they trim clips, move media, navigate the timeline, and resize viewer clips to snapping points.

Joe Rossignol:

The update also includes some smaller new features, changes, and bug fixes, as outlined in the full release notes on Apple’s website.

Steve Troughton-Smith:

Honestly, I’m surprised Final Cut Pro 11 for Mac still hasn’t moved to subscription, nor has it moved to Apple-Silicon-only. I was fully expecting the next release to unify around the new distribution model they used for Final Cut Pro for iPad.

Jon Maddox:

Apple burned by no upgrade pricing mechanism 🤣

Karl Swanson:

I don’t think there is any subscription support in VPP yet. Would think they’d need a way to support that model for institutional customers.

Juli Clover:

Apple today released Logic Pro 11.1 for Mac and Logic Pro 2.1 for iPad, adding new features for songwriting, producing, and mixing.

Previously:

Update (2024-11-15): See also: Steven Aquino.

Sequoia Network Extension Memory Leak

Norbert Heger:

Unfortunately that’s another new bug in the Network Extension framework of macOS. It’s a memory leak in Apple’s framework, which developers must use to create a firewall for the Mac. This bug first occurred in macOS 15.0 Sequoia.

[…]

On macOS 14 Sonoma you may get a hand full of leaks with a total of a few Kilobytes. That’s OK (sort of). But on macOS 15 Sequoia this can easily grow to hundreds of Megabytes and more.

Previously:

Thomas Kurtz, RIP

Valley News (Hacker News):

Tom is well known as the co-inventor, with John Kemeny, of the BASIC programming language in 1964. A version of BASIC still exists today. John Kemeny and Tom had already developed a version of the Dartmouth Timesharing System, a method of sharing computer access allowing multiple students access to the computer at the same time. From 1966 to 1975, Tom served as the director of the Kiewit Computation Center at Dartmouth and as director of Academic Computing from 1975 to 1978. In 1979, he and former student Stephen J. Garland organized a professional master’s program in Computer and Information Sciences, CIS.

Computer History Museum:

After a few years of teaching, he and Kemeny developed the original version of the Dartmouth Timesharing System (DTSS), a method of sharing computer access across a network and a requirement for allowing multiple students access to BASIC. DTSS was the earliest successful, large-scale timesharing system, a remarkable achievement. General Electric, which had donated computers to Dartmouth, extended DTSS into the kernel of their online services, such as Genie. DTSS was unveiled on May 1, 1964, along with BASIC. By that fall, hundreds of students were exploring BASIC on the 20 terminals around campus.

[…]

In 1983, Kurtz joined Kemeny and three former Dartmouth students in forming True BASIC, Inc., whose purpose was to develop quality educational software and a platform-independent BASIC compiler.

Wikipedia:

The road to BASIC itself was a long one. Kemeny and Kurtz had forged DARSIMCO – Dartmouth Simplified Code – Dartmouth’s inaugural attempt at making a computing language in 1956; however DARSIMCO soon became obsolete when the language FORTRAN manifested itself. In 1962 Kemeny and a Dartmouth undergraduate, Sidney Marshall, created the language DOPE, Dartmouth Oversimplified Programming Experiment, which was a direct predecessor of BASIC. DOPE itself was little used, and Kurtz preferred trying to implement successful languages such as FORTRAN and ALGOL. Kurtz’s experience with Dartmouth ALGOL 30 for the LGP-30 convinced him that devising subsets of these languages was not quite practical, and this led him to adopt Kemeny’s notion of creating a new language entirely.

Previously:

Update (2024-11-15): See also: Laurence Arnold and Dag Spicer (Hacker News).

Update (2024-11-18): See also: Kenneth R. Rosen.

Update (2024-11-22): See also: Valley News, Dartmouth, Washington Post.

Google Drive Blackout in Italy

Andy Maxwell (via Hacker News):

After blocking Cloudflare [link] to prevent IPTV piracy just a few months ago, on Saturday the rightsholders behind Piracy Shield ordered Italy's ISPs to block Google Drive. The subsequent nationwide blackout, affecting millions of Italians, wasn't just a hapless IP address blunder.

[…]

The domain/subdomain blocked in the image above is drive.usercontent.google.com; not only does this URL clearly identify Google as its owner, the Google product it serves is on full display too. With no prompting a 10-year-old could identify google.com as important on the internet. So, three broad explanations for how it ended up on the system (ticket below) before causing chaos.

[…]

A full twelve hours after the block was put in place, around 20% of the Italian population still had no access to their Google Drives due to the lingering IP address block that underpinned the domain-based blocking.

yunohn:

This feels very similar to the Indian government constantly blocking and unblocking GitHub’s “raw” content domain.

Wednesday, November 13, 2024

App Store Connect 2.0

Juli Clover:

App Store Connect 2.0 includes a refreshed UI throughout the app, as well as new capabilities. Developers are able to promote their apps by generating marketing assets for app launches, version updates, featured placements in the Today tab, and more.

These marketing assets that are generated for special moments can be shared on various social media channels for app promotion purposes.

The app is still super slow and doesn’t stay logged in. It’s unable to auto-fill my password even though it’s in iCloud Keychain and Safari can. The text on the marketing assets is generic (not based on the release notes) and can’t be customized. It suggests “Improved with New Features” for my bug-fix update that doesn’t have any new features.

John Voorhees:

App Store Connect, the web app that developers use to submit their apps to Apple’s App Store and manage them, was updated yesterday with new tools developers can use to promote their apps.

Developers have been able to submit promotional requests to Apple for quite some time, but the new Featuring Nomination process is now baked right into App Store Connect. Developers can submit nominations from App Store Connect where they will be asked for information about their app. Nominations can be made for events such as a new app launch or adding in-app content and features. When an app is chosen by the App Store editorial team for a feature, developers will be notified in App Store Connect, too.

macOS 15.1 Firewall Breaks Third-Party Firewalls

Norbert Heger:

Apple’s built-in firewall is causing troubles when used together with third-party firewalls that are based on Apple’s Network Extension framework (which is actually the only way for third-party developers to create such firewall products for the Mac).

While one of the issues related to DNS lookups has been fixed in macOS 15.1, a new, even more serious one was introduced.

[…]

For the time being, until Apple fixes this serious bug in macOS, we therefore highly recommend to turn off the built-in firewall of macOS when also using Little Snitch or Little Snitch Mini.

Previously:

Questioning EU Geo-Blocking Restrictions

Hartley Charlton:

The European Commission, in conjunction with the Consumer Protection Cooperation (CPC) Network, today announced that it has formally notified Apple regarding potential breaches of the EU's anti-geo-blocking rules.

[…]

According to the CPC Network, consumers using Apple Media Services, such as the App Store, Apple Music, and Apple TV+, encounter different interfaces and content depending on their country of registration. This regional segmentation allegedly makes it difficult, if not impossible, for users to switch between country-specific versions of Apple's services, which may be in violation of the EU's Geo-blocking Regulation enacted in 2018, designed to protect the Digital Single Market.

[…]

The EU maintains that consumers should be able to access and download apps offered in other EU/EEA countries when traveling or staying temporarily in another member state.

See also: Steve Troughton-Smith.

Previously:

OneDrive and Sequoia

Sergiu Gatlan:

“Opening or saving files within Desktop or Documents folders can cause the file’s app to freeze. This occurs on macOS 15,” the company said in a Friday update to a support document tracking the recent issues in OneDrive.

[…]

Until a fix is available, customers should force quit the OpenAndSavePanelService process that hangs because of this issue and save their files to a location other than their Desktop, Documents, or OneDrive folders.

I have a customer who’s seeing a different OneDrive issue on macOS 15.1, where macOS will report that a file exists but trying to read it will fail saying that the file doesn’t exist.

Sidenote: It seems that, lately, NSURLIsUbiquitousItemKey will be set for files that are backed by a file provider extension even though the documentation say it’s specific to iCloud storage.

Previously:

Tuesday, November 12, 2024

Claiming Time Machine Backups

Howard Oakley:

Assuming that your old Mac made Time Machine backups, and you want your new Mac to continue doing so, now’s the time to connect that backup storage, if it wasn’t already used as the migration source. When you do, you’ll be offered two options, to claim the existing backups for the new Mac, or to leave them for the old one.

[…]

If you claim the existing backups for your new Mac, then they’ll be used as part of its backup history, but you won’t be able to use them with the old Mac. You may prefer to leave those old backups as they are, and gradually delete them to free up space. Provided that you create the new backup volume for your Mac in the same container, old and new backups will share the same free space on your backup storage.

This apparently replaces the old tmutil inheritbackup command, which no longer appears to work with backups to APFS.

Previously:

Misguided Apple Intelligence Ads

Adam Engst (Hacker News):

A pair of new ads for Apple Intelligence portray the Writing Tools and Memories movies as tools for those unwilling to put in any effort.

In the first ad, Apple Intelligence enables a goof-off who wastes time and annoys his colleagues to surprise his boss with an unexpectedly well-written email. It’s not clear that the boss is impressed; he just can’t believe the guy would have written a professional message.

The revised e-mail is certainly more formal, but I’m not sure that it’s actually good or that it matches his intent.

The second ad channels a similar suggestion—that Apple Intelligence is a crutch for the thoughtless. In it, a woman realizes that she has forgotten her husband’s birthday only after their kids give him thoughtful, homemade gifts, so she quickly uses Apple Intelligence to create a Memories movie of the children doing woodworking with their father.

It’s really quite a different message than a bicycle for the mind.

Previously:

Update (2024-11-14): Nick Heer:

The first is a little better than the second because it at least hints at something I bet many of us dread: writing work email. But why not a version which elevates someone who cares? The armchair director in me wants this to be an employee who is clearly trying hard, writing a frustrated email to someone who is not, and needing to adjust the tone of a pretty mean email.

The second ad is beyond helping. If someone had handed me their own phone with a photo slideshow at any point in the past five years, I would have assumed they did not make it themselves. I do not know anybody in real life who has ever done so.

Bodyreader v. Apple

Tim Hardwick:

Bloomberg reports that the case – the first of its kind to be heard in Beijing’s intellectual property court – bears similarities to Epic Games’ 2021 lawsuit against Apple. Bodyreader claims Apple unfairly removed their app citing “dishonest” behavior, while also challenging the company’s 30% commission on app purchases and its control over the iOS ecosystem.

According to court documents reviewed by Bloomberg, Bodyreader argues that Apple’s enforcement of App Store policies is inconsistent. The developer notes that after their original app was removed, they successfully published an identical app under a different name, “Qilin Century,” which remains available on the App Store.

John Geleynse Retires From Apple

John Geleynse:

Being a part of Apple for 25 years has been the privilege and experience of a lifetime.

[…]

We released the platforms and tools that helped bring incredible products to life. We inspired developers to do some of the best work of their careers. We rewrote the original Apple Human Interface Guidelines for Mac OS X Aqua, and then authored multiple editions of the HIG for every platform that followed. We met developers in their hometowns for Tech Talks. We met one-on-one with teams working on the next big app or game. We grew the Apple Design Awards from a small ceremony on the Infinite Loop lawn to a major event on the WWDC Keynote stage. We saw firsthand the impact the ADAs made on the winners, and the inspiration they brought to others in the community.

Via John Gruber (Mastodon):

Turns out, in all the years I’ve been writing here, I’ve only mentioned Geleynse by name twice, and both times I was quoting what someone else had written. And those two posts were from 2007 and 2008 — a while ago, to say the least. That’s a shame, dare I say negligent on my part. In third-party developer circles, everyone knows John Geleynse. Most prominently, his role as co-host (with Shaan Pruden) and I think effectively co-chief of the Apple Design Awards. But the ADAs are a once-per-year award show. Year-round, year after year, platform after platform, Geleynse has been shaping, guiding, and defining what it means to be a third-party developer for Apple platforms. The point of winning an ADA isn’t to win an ADA; it’s to reward making a great app that moves the state of the art forward. That’s what Geleynse spent his career trying to do. He’s just incredibly well-liked and well-respected.

My formative experience with Geleynse was near the beginning of his career at Apple. This was during the transition from Mac OS 9 to Mac OS X, and he was an active participant on Apple’s human interface mailing list. (In those days, this sort of interaction was not uncommon for Apple evangelists and engineers, and there were even open feedback sessions at WWDC.) There were lots of discussions about Aqua vs. the classic Mac interface, about how Apple’s apps didn’t follow its own guidelines, and about how Apple was changing the way application-document binding and file system metadata worked.

I give Geleynse credit for politely interacting with developers in a somewhat contentious environment. He often gave helpful answers to specific questions. With the broader issues, though, I found him sometimes dismissive of thoughtful criticism, with explanations that seemed thin and unconvincing. It must have been frustrating for him, too, defending actions and policies that were not always his own. I did appreciate him trying, even when the answer wasn’t always satisfying. What developers really wanted was to understand why Apple was making the design decisions that it was making so that they could understand how to apply this thinking to their own apps. Geleynse seemed to agree with this goal, and I think he later had some success with it in his WWDC presentations, yet I was disappointed at the time when the reasons could not be clearly articulated. In the decades since, the Human Interface Guidelines have mosly evolved in the opposite direction.

I came away with the impression that, contrary to the way the company—especially now—presents itself, Apple was dictating decisions that were not actually very well considered. (In retrospect, how could they have had time for that given the scale and speed of the transition?) I think this is borne out in that, over time, Apple evolved Aqua mostly in the directions that its original critics had wanted.

As to documents and metadata, very little has changed. We have UTIs now, not just file extensions, but Apple hasn’t really done anything to solve the issues that developers and classic Mac OS users were concerned about back then. One could argue that Apple was right in that most users don’t seem to be upset about the current system. I still think there’s more that could be done here, but it seems less an less likely that Apple will ever revisit it.

I write this not to pick Geleynse or to relitigate old arguments, but rather to recall a very different era in the early years of Mac OS X. The relationship between Apple and developers was unrecognizable. It was a frantic period, with many big decisions being made all at once, and sometimes it wasn’t clear whether the reasons were technical or marketing or due to the balance of power between different factions within Apple. There was the sense that now was the last chance to have your say because the choices made would set the direction for a long time.

It was not long before Apple shut down the HI mailing list. Geleynse obviously went on to do many more things at Apple. I’ve heard reports over the years from developers who had one-on-one interactions where he took a quick look at their app and provided valuable feedback, instantly and seemingly effortlessly solving design issues that had plagued them for months. He’s regarded as insightful and inspiring, and I thank him for his many contributions Apple’s platforms.

Sebastiaan de With:

John Geleynse has been an immense support and inspiration for all of my career. One of the best - A tremendous guy, and I wish him all the best with what’s next.

Dustin Mierau:

Have had quite a few meetings with John over the years. Always such a joy. Got me excited over various projects. Definitely an Apple legend.

Simon Pride:

I met him at some “Macs for Higher Ed” one day thing in NYC where he was charming and helpful. Same occasion I got to spend five minutes with Sal Soghoian. Both had so much time for questions.

Previously:

Monday, November 11, 2024

No Refund for Undelivered MacBooks

Six0Four (via Hacker News):

Ordered 2 Macbooks for $2500 from Apple (Canada). Paid for their same day delivery service which they use Uber for and it says delivered but it wasn’t. Driver stole them or he delivered to the wrong person that stole them. If he actually delivered to the wrong address, I live in a high rise that does have cameras but only in the lobby which means once the Uber driver got on the elevator who’s to say he didn’t get the wrong unit and it’s his word against mine.

I contacted Apple and they said they would reach out to Uber and get back to me. 12 hours later I got an email from Apple saying:

“We have completed our review with the carrier regarding your shipment and have determined that we are unable to provide a replacement or process a refund.”

I couldn’t believe my eyes. Picked up the phone and called them and what they didnt tell me in the email was that I should file a police report (which ive done). They said do the police report and the police will reach out to Apple. Problem is I talked to the police and they said they dont reach out to anyone, Apple reaches out to them once I give Apple the police report number. Apple also said they came to that decision because Uber says the item shows as delivered.

[…]

Spoke with Apple Retail Executive Relations. They’re not changing their decision. I get nothing back. Case closed.

I’ve never used the courier service, but I assume that Apple probably makes you opt out of requiring a signature on delivery, thereby waiving some of your rights. I make it a point not to opt out when ordering a Mac via normal shipping, but in practice I don’t know how much that helps. Sometimes the driver “helpfully” leaves the package without getting a signature. And when I do sign, these days it’s with one of those horrible styluses so it doesn’t really look like my actual signature, anyway.

netsharc:

Trillion dollar company uses exploitative company’s (Uber) labor, leaves customer with the bill when poorly vetted and paid labor steals the goods. Customer is afraid to issue chargeback because they might get kicked out of the digital feudal state…

miki123211:

It’s wild to me that the credit card companies (and the law in general) actually allow this. The chargeback procedure was created exactly for situations like this, and designed to be maximally friendly to customers at the expense of vendors. One would think that “you cannot exact revenge on customers when a transaction goes wrong” would be credit card rules 101.

Previously:

Sega Delisting Classic Games From Steam

Kevin Purdy (Hacker News):

Sega has put dozens of its Master System, Genesis, Saturn, and other console titles onto modern game stores over the years. But, like that Dreamcast controller stashed in your childhood garage, they’re about to disappear—and getting them back will cost you a nostalgia tax.

Those who have purchased any of the more than 60 games listed by Sega from Steam, Xbox, Nintendo’s Switch store, and the PlayStation store will still have them after 11:59 pm Pacific time on Dec. 26. But after that, for reasons that Sega does not make explicit, they will be “delisted and unavailable.”

Dustin Bailey:

[The] delistings are notable for a few reasons, including the fact that these are some of the only legally purchasable classic game ROMs you’ll find anywhere on the internet.

[…]

But the real reason to buy these games is that once you install them, you can just browse to that install filter and find a ROM file to use any way you like - no encrypted files to datamine or DRM to bypass. Just raw ROM files that you’ve legally purchased. That means you can drop those ROMs into your emulator of choice and play them however you want, totally legally.

[…]

We know Sega has big plans for old IP with revivals of plenty of classic games in the works, and it’s possible the company is planning some sort of new classic collection that would replace this one in the near future.

Kyle Barr:

Books fall apart. VHS tapes eventually degrade. DVDs will scratch and die, but our society has done a much better job at preserving movies and literature than we have with gaming. Part of that is how games are tied to their original format and individual consoles. Video game preservationists have cited emulation as one of the few ways our society has been able to preserve the art form. That’s important because a Video Game History Foundation study found that 87% of games from before 2010 are not commercially available anywhere.

[…]

The fact that emulators have to exist points to an existential failure of the games industry to preserve its most beloved titles. Emulator developers spend years creating and perfecting their software. Some emulators are slightly janky to use, but others, like Delta, Dolphin, or PS1 emulator Gamma, make the process of playing relatively seamless. The community is strong and growing all the time. As much as the license holders say they’re trying to expand the classics market, they’ve obviously failed to meet demand.

Previously:

The Ongoing Battle for Vestibular Accessibility

Craig Grannell:

I vividly remember getting a wonderful surprise on the sole WWDC I was flown out to, on attending a developer session on accessibility and seeing someone on stage proudly noting that slide transitions in menus had been added to Reduce Motion.

[…]

But what I find disappointing is that, all these years after that Guardian piece broke, vestibular accessibility remains reactive rather than proactive. Nothing illustrates that better than Apple breaking Reduce Motion in Safari of all apps. When Reduce Motion is on, the zooms in the tab view should be replaced by crossfades. They were for a long time. But that went away in iOS 18. I dutifully mentioned this to Apple. It looks like this might be fixed in iOS 18.2. But the problem should never have come back in the first place – and it wouldn’t have if there was even the most rudimentary of testing by someone with Reduce Motion active.

Previously:

Why % CPU in Activity Monitor Isn’t What You Think

Howard Oakley:

When macOS loads two of those E cores with low QoS threads, it sets them to run at a low frequency to make the most of their energy efficiency. When it loads two E cores with threads that were intended to be run on P cores, as they have a high QoS, it runs the E cluster up to high frequency, so they perform better.

[…]

If full load at maximum frequency is 100% of their capability, then at low QoS they were really running at 27%, not the 100% given by Activity Monitor, and that largely accounts for the difference in time that those threads took to complete their floating point calculations.

[…]

What Activity Monitor actually shows as % CPU or “percentage of CPU capability that’s being used” is what’s better known as active residency of each core, that’s the percentage of processor cycles that aren’t idle, but actively processing threads owned by a given process. But it doesn’t take into account the frequency or clock speed of the core at that time, nor the difference in core throughput between P and E cores.

Previously:

Update (2024-12-17): Howard Oakley:

Activity Monitor is one of the unsung heroes of macOS. If you understand how to interpret its rich streams of measurements, it’s thoroughly reliable and has few vices. When tuning for performance, it should be your starting point, a first resort before you dig deeper with more specialist tools such as Xcode’s Instruments or powermetrics.

Update (2024-12-18): Howard Oakley:

There are times when you might wish to accelerate completion of threads normally run exclusively on E cores. For example, knowing that a particular backup might be large, you might elect to leave the Mac to get on with that as quickly as possible. There are two methods that appear intended to change the QoS of processes: the command tool taskpolicy, and its equivalent code function setpriority().

Friday, November 8, 2024

iPhones Mysteriously Rebooting Themselves

Juli Clover:

Law enforcement officials in Detroit, Michigan are warning other police officers about an alleged iPhone change that causes Apple devices stored for forensic examination to spontaneously restart, reports 404 Media.

iPhones that are undergoing examination have apparently been rebooting, which makes them harder to unlock with brute force methods, and Michigan police think that it’s due to a security feature that Apple added in iOS 18. A document found by 404 Media speculates that iPhones running iOS 18 are causing other iPhones to restart when those iPhones have been disconnected from a cellular network.

[…]

Matthew Green, a cryptographer and Johns Hopkins professor told 404 Media that the law enforcement officials’ hypothesis about iOS 18 devices is “deeply suspect,” but he was impressed with the concept.

[…]

Apple added an “inactivity reboot” feature in the iOS 18.1 update, but it does not relate to phone/wireless network state.

Update (2024-11-11): Jiska:

Apple indeed added a feature called “inactivity reboot” in iOS 18.1. This is implemented in keybagd and the AppleSEPKeyStore kernel extension. It seems to have nothing to do with phone/wireless network state. Keystore is used when unlocking the device.

Joseph Cox (post):

We’ve confirmed that Apple quietly introduced code that automatically reboots an iPhone if it hasn’t been unlocked after a period of time. This is why cops are being mysteriously locked out of iPhones they’re trying to search.

Adam Engst:

By restarting iPhones that remain locked for four days, Apple increases overall security, particularly for individuals at risk of having their iPhones confiscated by repressive regimes, with little or no inconvenience to regular users.

Does this affect background processes that you may have wanted to keep running?

Nick Heer:

It seems the cops believed iPhones were secretly communicating with each other because some of them were running older iOS versions, forgetting the explanation that satisfies Hanlon’s razor: iOS is kind of buggy.

Update (2024-11-15): Lorenzo Franceschi-Bicchierai (Hacker News, MacRumors):

On Wednesday, Jiska Classen, a researcher at the Hasso Plattner Institute and one of the first security experts to spot this new feature, published a video demonstrating the “inactivity reboot” feature. The video shows that an iPhone left alone without being unlocked reboots itself after 72 hours.

Magnet Forensics, a company that provides digital forensic products including the iPhone and Android data extraction tool Graykey, also confirmed that the timer for the feature is 72 hours.

Update (2024-11-18): JISKA (via Hacker News):

What does it protect from and how does it work? This blog post covers all the details down to a kernel extension and the Secure Enclave Processor.

[…]

Security-wise, this is a very powerful mitigation. An attacker must have kernel code execution to prevent an inactivity reboot. This means that a forensic analyst might be able to delay the reboot for the actual data extraction, but the initial exploit must be run within the first three days.

Inactivity reboot will change the threat landscape for both thieves and forensic analysts, but asymmetrically so: while law enforcement is under more time pressure, it likely completely locks out criminals from accessing your data to get into your bank accounts and other valuable information stored on your iPhone.

Lost iCloud Notes

Benjamin Mayo:

Some iPhone users are reporting a scary bug with the Notes app on iPhone. After agreeing to new iCloud terms and conditions as prompted by the system, the Notes app appears to disconnect from iCloud and instead presents users with a screen of zero notes, as if all the user’s notes have been deleted.

[…]

For some people, it seems to be a temporary glitch that sorts itself out, and the notes appear quickly thereafter. For others, including myself, it did not fix itself. Thankfully, the proactive steps to fix it is simple and straightforward.

[…]

If this fix does not work for you, and the toggle was already on when you checked the iCloud Settings screen, you can also try turning the toggle off, turning it back on again and then rebooting the phone.

This seems to be an iCloud issue, not an iOS 18 issue.

Pepe Waters:

My notes were all deleted yesterday and so far have not been retrievable after trying absolutely everything recommended on the forums/this article/via customer support. Very upset at the lack of information as to how it’s going to be fixed. It’s been a long wasted day with no progress made. Glad to hear some people could get their notes back but hope it’s not going to be washed over for the rest of us. Feeling extremely cautious and frustrated that it happened with no fix in sight.

Previously:

Update (2024-11-18): Joe Rossignol:

Apple has now indirectly acknowledged this issue in a new support document that outlines steps to follow if your iCloud notes are not appearing on your iPhone, iPad, or Vision Pro.

Fortunately, the notes can be re-synced from iCloud. Apple’s steps are pretty much identical to the ones we shared earlier this month[…]

Jesse Squires:

The biggest problem with Apple is that they pretend like widely reported bugs simply don’t exist.

Maybe they should try not gaslighting their users and proactively acknowledge issues and provide workarounds or timelines for bug fixes?

Eric Schwarz:

I’m somewhat surprised Apple can’t automate this in a iOS point release (check and see if Notes aren’t appearing and force a re-sync), although part of me wonders if that could potentially cause more problems.

High Power Mode for M4 Pro Macs

Andrew Cunningham:

Last year’s M3 Pro chip was a departure from the M1 Pro and M2 Pro. Compared to the M2 Pro, it came with more E-cores but fewer P-cores, as well as fewer GPU cores and less memory bandwidth. As we wrote at the time, this meant that the architectural improvements to M3 mostly ended up being canceled out, making for a chip that was more efficient but often not meaningfully faster than its predecessor.

[…]

The extra computing resources do increase the M4 Pro’s power usage relative to the M3 Pro, with higher power consumption for our heavily multithreaded Handbrake video encoding test (an average of 43.1 W, up from 33.1 W). But the extra speed does help improve the chip’s power efficiency overall, completing the same amount of work using a little less power overall (both the M3 Pro and M4 Pro use around two-thirds as much power to do the same work as the M2 Pro.

[…]

Apple has added a High Power performance mode for the M4 Pro both in the Mac mini and in the new MacBook Pros. This feature was previously reserved for Max and Ultra chips and allows the chip to run at elevated speeds and temperatures for more extended periods of time; Apple says this should benefit GPU performance in particular at the expense of extra fan noise.

Joe Rossignol:

Apple says High Power Mode allows a Mac’s fans to run at higher speeds, and this additional cooling allows the system to deliver higher performance for graphics-intensive sustained workloads, such as 8K video color grading. On supported Macs, the feature can be used when the computer is running on battery power or connected to a power source.

[…]

On recent macOS versions, High Power Mode can be enabled in the System Settings app under “Battery” or “Energy” by clicking on the dropdown menus next to “On battery” or “On power adapter” and selecting the “High Power” option.

Previously:

Update (2024-11-11): See also: Hacker News.

iPhone 18 Pro Variable Camera Aperture Rumor

Hartley Charlton (Ming-Chi Kuo):

Apple’s iPhone 18 Pro models will feature an upgraded main rear camera with a variable aperture for the first time, according to Apple analyst Ming-Chi Kuo.

[…]

The iPhone 14 Pro, 15 Pro, and 16 Pro’s main cameras feature a fixed aperture of ƒ/1.78. A variable aperture on future iPhone models would allow the main camera to control the amount of light entering the lens, allowing it to adjust to different lighting conditions. It also would provide more control over depth of field, enabling sharper focus on subjects or smoother background blur.

I continue to find the iPhone 15 Pro camera to be a regression for certain types of photos, and I think it’s because of the shallower depth of field. I often photograph a person sitting at a table with something in front of them. With previous iPhones, I didn’t have to think about it. I could just take a photo and it would be OK: the person’s face reasonably in focus and the document/cake/game also easily visible. Now, I get a lot of photos where either the object or the person—it does not always prioritize the face—is blurry. It’s not really evident in the view finder that this is going to happen. If I remember, I can use manual focus to prioritize one or the other, and whichever I pick will look much better than with previous iPhones, but it’s still not really what I want because the secondary subject still ends up blurry.

Previously:

Thursday, November 7, 2024

CloudKit Reference and Index Issues

Kuba Suder:

CloudKit also automatically creates indexes for each field in each record type - when you’re done with development, you can delete some indexes that you won’t need so they don’t waste space in the production database.

Apple:

A request to fetch records performs a query on indexed fields for a particular record type. At least one field in the record needs to be indexed to perform an empty query that fetches all records. Because indexes are updated asynchronously, they are not guaranteed to be current.

Eric Zinda:

The solution is to use CKFetchRecordChangesOperation, if the data is in a custom zone of the private database. If you are using the public database, or the default zone of the private database, think about this:

  1. The device making the changes knows the changes. [meaning: keep a cache of the updates you make]
  2. The other peer devices observe the changes using CKQuerySubscription.

Jaanus Kase:

This is one of those posts, exploring how querying based on CKReference works, and what are the limits and behaviors of that.

[…]

Here is one important bit: you can’t do queries by parent property. I couldn’t immediately find the authoritative source for this in the SDK documentation, but the recommendation in Apple forums and elsewhere has always been to add your own CKReference fields if you want to query by parent record.

[…]

The key bit is the predicate for the reference set. I got the idea for setting up this way from this StackOverflow post. The official CloudKit documentation does have examples for querying based on references, but not reference sets and more complex scenarios.

[…]

Fair enough. This tells me that the filtering condition in the clause ANY %@ in relatedRecords can’t contain more than 250 objects. So, let’s limit it, leave some headroom, and run it with 200 records instead.

[…]

Even though the input contains only 200 objects, I get this error. I speculate that even though the input amount is below the nominal stated limit, some relationship query to construct the results causes some internal limit overflow on the CloudKit side, and it doesn’t handle this situation well.

Casey Liss:

Thinking about this some more, and in chatting with the good samaritans on Slack, we all came to the same conclusion: the index probably didn’t properly… uh… index… whatever data was already there before the index was created.

So, if you’re ever in a situation where you’re getting wonky results (or no results at all) from a new field in CloudKit, consider whether the data you’ve added was done so before or after you added the corresponding index.

Previously:

Problematic Swift Concurrency Patterns

Matt Massicotte:

I think the vast majority of the time, a global actor should be applied to the type as a whole, not to individual properties.

[…]

But, while detached does prevent isolation inheritance, it also does other stuff too. Detached tasks do not inherit priority or task-local values. Instead, think about a nonisolated function.

[…]

I think MainActor.run is rarely the right solution.

[…]

Moving from completion handlers to async methods can change semantics and cause code to run on background threads. Be really careful here!

[…]

The compiler will automatically generate async versions of Objective-C completion handler-based methods. The bad news is, unless the type itself is MainActor-isolated or Sendable, these translations will be problematic. They won’t be possible to use diagnostic-free without a @preconcurrency import and will have different semantics that could make them unsafe.

Previously:

iOS 18: Health App Medications

Joe Rosensteel:

It doesn’t list interactions for things that are not in the medication app, like vitamin supplements, antacids, NSAID painkillers, etc. All of which had very clear, urgent warnings in the prescription paperwork, but because they aren’t the two medications in the app there’s no warning.

[…]

Despite being able to OCR the prescription info, there’s nothing to OCR the side effects info and log that.

[…]

I needed to take it once a day but the number of pills started high and tapered off twice over the following days. The app lets you put in a dosage to schedule, but I couldn’t find any way to vary it over time.

[…]

This was also a drug that should be taken with food, but there’s not a “hey, eat something” notification you can configure to come up before it’s time to take the drug. The antibiotic should really not be taken at a time anywhere near when you’re going to eat certain things, or even have most vitamin supplements, so I also have to mentally track when I do those things too.

Another quirk is that the notification to take your medications comes through on the Watch without mention of which medication you need to take[…] It’s also always plural, even if you’re only taking one medication at 1:00 PM, which is confusing.

Previously:

iOS 18: Screen Sharing With Remote Control

Federico Viticci:

When you start observing another person’s screen in iOS 18, the system will tell you that you can now tap and draw on their screen. Taps are drawn as purple circles that disappear quickly – they’re subtle, but noticeable.

[…]

With the ability to control another person’s device, you literally take over their interactions until they interact with the device again (which can be a tap or even taking a screenshot on their end).

[…]

I was able to test remote control with John over FaceTime, and I noticed some interesting details in Apple’s implementation. I was able to open John’s Camera app, have him move the phone to look around his office, and remotely press the shutter button. I couldn’t, however, type in Spotlight search or see the Passwords app. When I opened it, I got a message telling me that I had to wait for John to proceed.

[…]

I look forward to fixing my mom’s Wi-Fi connection and updating her apps remotely thanks to the addition of remote control in FaceTime’s screen sharing.

Previously:

Wednesday, November 6, 2024

Swift Format in Xcode 16

Sarah Reichelt (Mastodon):

In Xcode 16, Apple quietly introduced the ability to format your Swift files using Swift Format. I’m a long-time user of SwiftLint, but having such a tool built into Xcode would be a great convenience, so I decided to give it a try. Here is my description of why I use such a tool, how well it works compared to the alternatives, and how I configured it for my own purposes.

[…]

The name Apple chose is logical but confusing. I had experimented with Nick Lockwood’s SwiftFormat a few years ago, but found that I preferred SwiftLint, so I stuck with the latter. When I saw that Xcode included Swift Format, I assumed that they had acquired Nick’s formatter but it appears to be a different tool, officially called swift-format. It’s downloaded as part of the toolchain when you install Xcode 16, so no further installation is required.

[…]

After reverting to the original code again, I chose Editor -> Structure -> Format File with ‘swift-format’[…]

This fixed the indentation and the whitespace issues. Interestingly, it split the long function call and definition over multiple lines, but still with more than one argument per line.

Previously:

Data Tracking and Notifications in Core Data and SwiftData

Fatbobman (Mastodon):

[prepareForDeletion is called] when the managed object is about to be deleted, typically used for cleaning up resources or manually managing relationships. Note that this method is triggered before validateForDelete. If the deletion operation fails due to validation failure, changes made in this method may be rolled back.

[…]

However, because these operations are extensions of managed object subclasses, if you don’t build subclasses or don’t operate through specific types, these methods won’t be called. For example, during batch operations, specific managed object subclasses are usually not involved, so these lifecycle methods won’t be called.

Although SwiftData’s default storage implementation is based on Core Data, it doesn’t declare managed object subclasses for each entity. Therefore, SwiftData doesn’t provide similar functionality—these notification timings are unique to Core Data.

[…]

Unlike context notifications, [Persistent History Tracking] or SwiftData History doesn’t include specific change information in the notification. Developers need to retrieve changes that occurred after a specific time from the database through code to obtain this data.

Previously:

Swift Proposal: Integer Generic Parameters

SE-0452 (via Steve Canon):

Swift does not currently support fixed-size or fixed-capacity collections with inline storage. (Or at least, it doesn’t do so well, not without forming a struct with some specific number of elements and doing horrible things with withUnsafePointer to handle indexing.) Most of the implementation of something like a fixed-size array, or a fixed-capacity growable array with a maximum size, or a hash table with a fixed number of buckets, is agnostic to any specific size or capacity, so that implementation would ideally be generic over size so that a library implementation can be reused for any given size.

Beyond inline storage sizes, there are other use cases for carrying integers in type information, such as to represent an operation with a particular input or output size. Carrying this information in types can allow for APIs with stronger static guarantees that chains of operations match in the number of elements they consume or produce.

[…]

Generic types can now be parameterized by integer parameters, declared using the syntax let <Name>: Int inside of the generic parameter angle brackets:

struct Vector<let count: Int, Element> {
    /*implementation TBD*/
}

[…]

On platforms where the vendor ships the Swift runtime with the operating system, there may be limitations on using integer generic parameters in programs that want to target earlier versions of those platforms that don’t have the necessary runtime support.

The Future directions section is interesting.

Previously:

Hypertextual Writing and Social Media

John Gruber (Mastodon):

It also brought to mind how social media has largely kneecapped true hypertextual writing by not enabling it. You can, of course, add links to web pages in social media posts on any of the various basically-the-same-concept-as-Twitter platforms like X, Threads, Bluesky, or Mastodon, but you do so by pasting raw URLs into posts. (Instagram, by far the world’s most popular such social network, doesn’t even let you paste hyperlinked URLs into the text of posts.) The only links that work like web links, where readers can just tap them and “go there” are @username mentions. On social media you write in plain un-styled text and just paste URLs after you describe them. It’s more like texting in public than writing for the real web. A few years ago these social networks (and private messaging platforms like iMessage and WhatsApp) started turning URLs into “preview cards”, which is much nicer than looking at an ugly raw URLs. But it’s not the web. It’s not writing — or reading — with the power of hyperlinks as an information-density multiplier. If anything, turning links into preview cards significantly decreases information density. That feels like a regression, not progress.

Nick Heer:

Writing on the web is not like print, where too many citations can feel interruptive. On the web, it is just part of the visual vocabulary. It encourages a more expansive tapestry where references can be used for more than just acknowledging source material. One can also point to definitions, tangential pages, or jokes. The hyperlink is among the singularly magical elements of the web.

Previously:

Tuesday, November 5, 2024

Sequoia No Longer Supports QuickLook Generator Plug-ins

Howard Oakley:

Prior to macOS 10.15 Catalina in 2019, the display of Thumbnails was supported by the QuickLook framework. From Catalina onwards, this is provided by a new framework named QuickLook Thumbnailing. The older framework is documented here, and had been deprecated for some years. Its replacement is documented here. To extend these, the older framework used QuickLook generators with the extension .qlgenerator, but in the newer framework this function is provided by QuickLook preview extensions, in particular Thumbnail Extensions, that were explained to developers at WWDC in 2019.

As with most deprecated features, eventually the time comes for Apple to remove support for the old, and for QuickLook generators that has occurred in macOS 15.0 Sequoia. From now on, QuickLook Generator plugins no longer work. Oddly, those provided by macOS in /System/Library/QuickLook are still named with the old extension of .qlgenerator, but all custom support now has to use the new framework in App Extensions.

Howard Oakley:

These are controlled in the Quick Look item in Login Items & Extensions in General settings.

That should list all third-party app extensions providing this service, and enabling the right one(s) could fix some of those problems. But it turns out this list isn’t complete, and doesn’t in any case tell you which app extension handles which file type. For those, you’d normally turn to qlmanage, but its -m option can only see the qlgenerators in macOS, and no third-party app extensions at all. In fact, qlmanage is now of little help for anything related to QuickLook.

[…]

As far as I can discover, Apple doesn’t provide any equivalent of qlmanage that can report on QuickLook app extensions. The closest it comes is in the pluginkit tool, that can list all app extensions known to macOS. With a bit of tweaking, its -m option can reveal which of those use the QuickLook SDKs for Thumbnails or Previews.

His Mints app makes it easier to view this information.

How to Highlight Text Fragments When Linking

Paul Kafasis:

In recent months, I’ve begun to notice that results from web searches often highlight specific text on the page to which they’re linking. The web page is also scrolled to the relevant content. It’s quite helpful!

A quick investigation showed this is accomplished by appending a bit of code, #:~:text= to the URL for a link. These are called Text Fragments, and they’ve been supported by Chrome since back in 2020. It took a couple more years for support to come to Safari, but at this point, the element is well-supported enough to be worth using.

[…]

By using this code in a bookmarklet, you can easily create links with helpful highlighting.

Ahmad Alfy:

This feature is complemented by the ::target-text CSS pseudo-element, which provides a way to style the highlighted text.

[…]

Here’s the basic syntax for a text fragment URL:

https://example.com/page.html#:~:text=[prefix-,]textStart[,textEnd][,-suffix]

Via Nick Heer:

As someone who writes essays containing citations, this is one of the nicest additions to the web that I wish was easier to use in Safari. What I, like Alfy, want to be able to do is highlight a specific phrase and copy a direct link.

Also, something I often forget is that you can link directly to specific pages of a PDF file by appending #page= and then the page number.

Avram Piltch:

Note that you should use the page number within the PDF (as seen in the page list), not whatever number it says on the top of the page itself.

Jeff Johnson:

StopTheMadness Pro 11.0 adds the ability to copy a text fragment link from selected text in Safari, using a contextual menu item on macOS or Show Menu on Tap on iOS.

Timothy Hatcher:

This is actually in Safari 18.2 beta now as well.

Jeff Johnson:

Sherlocked: The phenomenon of Apple releasing a feature that supplants or obviates third-party software

[…]

The good news is that this feature is available now in StopTheMadness Pro, whereas Safari 18.2 is not scheduled for release by Apple until December. Also, it’s available in StopTheMadness Pro to users of older versions of Safari. And from what I’ve seen, Apple’s feature is available only in macOS Safari, not in iOS Safari. So my efforts weren’t totally wasted.

Previously:

Update (2024-11-06): Vítor:

There’s also an Alfred workflow for this.

Update (2024-11-07): See also: Keyboard Maestro.

Update (2024-12-17): Jeff Johnson:

It turns out, however, that the StopTheMadness Pro contextual menu item to copy text fragment links is not as Sherlocked as I thought. That’s because my feature works right, and Safari’s doesn’t. […] Apparently Safari doesn’t correctly handle paragraph breaks.

Exporting Kindle Highlights for Personal Documents

I’ve long used the Send to Kindle app to upload documents for reading on my Kindle Oasis. Unlike with books, I usually don’t care about saving notes and highlights for these, so I haven’t tried doing that in a while. However, I recently read a long document where I did make extensive highlights. Then I realized that there seems to be no way to export them (other than by taking screenshots).

The problem seems to be that Kindle’s feature for e-mailing annotations only works for documents that are stored in the Amazon cloud. I didn’t realize this and had Send to Kindle set not to do this because these were ephemeral documents that I didn’t want to have to clean up later. However, now that I know this is a one-way door, in the future I will upload them to the cloud just in case.

Secondly, I had thought that it was always possible to access the highlights by connecting the Kindle to my Mac via USB and opening the My Clippings.txt file. However, for whatever reason, my Kindle no longer has this file.

Lastly, even if I upload my document to the cloud, the Kindle itself can’t e-mail the annotations. That only works for books purchased from Amazon. However, because the document is in the cloud, it can sync the highlights to my other devices, and the Kindle app for Mac does let me export them. (Annoyingly, it can’t copy/paste or save a file; I have to e-mail them to myself.) The Mac app also supports larger window sizes, so it’s easier to take screenshots to save or OCR.

I thought the discontinued Kindle Classic app might have more options, but now it’s crashing a lot on my Mac and seems unable to download documents.

Anyway, the summary is that is possible to get your data out, if you’re aware of the roundabout process.

Previously:

Paddle’s Single-Click Apple Pay

Paddle writes:

Previously, to initiate Apple Pay, customers were redirected to a secondary page due to Apple constraints with top-level domains. But now, Apple has updated their framework, allowing us to provide a seamless, single-click Apple Pay experience, where the native payment dialogue is triggered instantly upon checkout—no redirects, no extra clicks!

[…]

To get started with single-click Apple Pay, follow these simple steps:

  1. Turn on Apple Pay in your checkout settings from the Paddle dashboard.
  2. Download and host the domain association file from our developer documentation​ on the pages where Paddle Checkout is used.
  3. Verify your domain automatically or manually through our dashboard.

This is a bit confusing because the above link doesn’t go to the help page that actually has the domain association file. Once you have the file, you just remove the .txt extension that Safari adds and upload it to your site at /.well-known/apple-developer-merchantid-domain-association. Sure enough, now my store has inline Apple Pay instead of popping up a separate window.

Lots of people seem to like and use Apple Pay, and it seems to work as promised to make purchasing easy. A potential downside is that, when combined with Hide My Email, I see some orders where the only information that we get from the customer is the auto-generated e-mail address. If they later lose their order info, we would not be able to help them find it unless they know which address was used.

Previously:

Update (2024-11-06): Rosyna Keller:

Along with iCloud settings on macOS and iOS, you can search for and view generated Hide My Email addresses for each domain on the iCloud+ website by following these instructions.

It seems like, if you unsubscribe from iCloud+, the e-mail forwarding continues but you lose access to this management interface.

Monday, November 4, 2024

How to Use Cursor for iOS Development

Thomas Ricouard:

Recently, there’s been much talk and fuss about AI, and whether or not it can improve your development workflow. I wanted to touch base about how AI and its implementation in Cursor have been significantly improving my speed and efficiency.

In short, Cursor is a fork of VSCode with many code editing AI-assisted features built in. If you’ve played with Copilot in VSCode, you might know what I’m talking about. Well, think Copilot, but ten times better and with many other useful features aimed at productivity.

This story is about how I’ve been using it and setting it up for my open-source project SwiftUI Mastodon client, Ice Cubes.

Previously:

Update (2024-12-03): Matt Gallagher:

Frustrated by other code that isn’t working, I decided to clown around with Cursor. It’s like asking another dev to do the typing while you’re pairing: you still need to know the steps and take over when it fixes a capture-self-before-init the stupid way (because of course it did).

However, I was delighted by this: accurate documentation lookup followed by correctly guessing what I was hinting at and immediately jumping into the refactor.

Why Alexa Hasn’t Yet Become the Real Computer of the Future

Jennifer Pattison Tuohy:

Fast-forward to today, and there are over 40 million Echo smart speakers in US households, with Alexa processing billions of commands a week globally. But despite this proliferation of products and popularity, the “superhuman assistant who is there when you need it, disappears when you don’t, and is always working in the background on your behalf” that Amazon promised just isn’t here.

Alexa is still mainly doing what it’s always done: playing music, reporting the weather, and setting timers. Its capabilities have expanded — Alexa can now do useful things like control your lights, call your mom, and remind you to take out the trash. But despite a significant investment of time, money, and resources over the last decade, the voice assistant hasn’t become noticeably more intelligent. As one former Amazon employee said, “We worried we’ve hired 10,000 people and we’ve built a smart timer.”

Via Dan Moren:

There was a real feeling of breakthrough to that original product, but—not unlike Siri—it feels like it never really moved a base level of functionality, despite all of Amazon’s efforts.

I think a big part of what has stymied Amazon in particular is trying to figure out where the Echo fit into its overall strategy. If Apple’s business is selling hardware and Google’s is selling ads, Amazon’s biggest might be shopping? But the shopping experience from the Echo has always been weird and less than ideal.

I can see why Alexa could be viewed as a disappointment, but I’m happy to have a device that does the basics really well. We have both an Echo and a HomePod in our kitchen, and everyone defaults to asking Alexa instead of Siri. We even tend to use it for music, even though it sounds much worse. Even though we don’t subscribe to Amazon Music, it has a higher chance of actually playing the requested song. The HomePod is for more deliberate music playing via AirPlay and for getting a second opinion when looking up information.

Nick Heer:

Siri remains software I distrust. Like Federighi, I would struggle to list my usage beyond a handful of simple commands — timers, reminders, and the occasional message. Anything else, and it remains easier and more reliable to wash my hands if I am kneading pizza dough, or park the car if I am driving, and do things myself.

Previously:

Playing Purchased Music on HomePod

Ruffin Bailey:

I often buy from what at least used to be called the iTunes Music Store. The biggest advantage for me for doing so over, say, buying from Amazon or directly from the artist’s site (which I often do, or buy from Bandcamp if available), is that Apple Music will stream those songs for me even if I didn’t download them locally, so they’re accessible any time I have an Apple device (or Windows!) and a network connection.

Well, almost. It doesn’t work from my HomePod, you know, the device I spent a few hundred bucks on TO PLAY MUSIC.

As I’ve explained, this basic feature mostly doesn’t work for me, either.

On Apple’s HomePod feedback page, the most recent HomePod OS version you can select is 16.5. Mine, after searching the Home app for a while, is apparently on 17.6 and is downloading 18 now.

Music is no longer in Apple’s DNA. They just don’t care.

Previously:

Reddit Is Finally Profitable

Emma Roth (Slashdot):

Reddit just turned a profit for the first time. As part of its third quarter earnings results released on Tuesday, the company reported a profit of $29.9 million, along with $348.4 million in revenue — a 68 percent increase year over year.

[…]

Reddit’s advertising revenue grew to $315.1 million, while “other” revenue reached $33.2 million on account of “data licensing agreements signed earlier this year.” Both Google and OpenAI have cut deals with Reddit to train their AI models on its posts.

In a letter to shareholders, Reddit CEO Steve Huffman attributed the recent increase in users to the platform’s AI-powered translation feature. Reddit started letting users translate posts into French last year before expanding to Spanish, Portuguese, Italian, and German.

Dare Obasanjo:

Both Reddit and Netflix reaping massive financial benefits from user hostile moves like banning 3rd party apps and blocking password sharing is setting an interesting precedent.

Jack Raines:

Reddit’s daily users increased 47% year over year, and there was an interesting anecdote in their shareholder letter:

“Reddit” was the sixth most Googled word in the US. With AI slop increasingly prevalent, Reddit is largely seen as an source of human information and stories.

Previously:

Friday, November 1, 2024

Apple Acquires Pixelmator

Pixelmator (Hacker News):

Today we have some important news to share: the Pixelmator Team plans to join Apple.

[…]

Pixelmator has signed an agreement to be acquired by Apple, subject to regulatory approval. There will be no material changes to the Pixelmator Pro, Pixelmator for iOS, and Photomator apps at this time. Stay tuned for exciting updates to come.

Tim Hardwick (tweet):

Based in Vilnius, Lithuania, Pixelmator has developed a suite of well-regarded creative tools that compete with Adobe’s offerings while maintaining a focus on ease of use and performance. The company’s apps have been exclusively available on Apple’s platforms, including Mac, iPad, and iPhone.

[…]

Financial terms of the acquisition were not disclosed. The deal marks Apple’s latest investment in professional creative tools, following previous acquisitions in the space such as Logic Pro and Final Cut Pro.

My initial assumption is that this is an acqui-hire. It doesn’t seem like their stuff really fits into Photos.app. But I suppose it’s possible that Apple wants to add a new iWork/Pro app.

Jason Snell:

I don’t know what this means for the future of Apple’s apps—though I hope it means Photos is going to get a serious infusion of new talent and functionality!

If you’re a Pixelmator Pro or Photomator user, this has to be a bit of a bummer, but there’s some good news: It will probably take a few years for Apple to fully integrate the team into whatever is happening next, and the existing apps will probably still be around until then.

John Gruber (Mastodon):

Pixelmator and Photomator already look like Apple’s own “pro” apps. From the get-go, the Pixelmator team hasn’t just followed Apple’s own trends and guidelines for UI design, they’ve helped define those trends.

Does Apple want to fold these advanced features into Photos? Or do they once again see the need for separate consumer/professional first-party apps? Logic, for example, was an acquisition — but that was all the way back in 2002. If Apple keeps Photomator as an actively developed product, it would be a return to the same genre they walked away from when they discontinued Aperture in 2014. And if Apple keeps Pixelmator going, it would be the first time they go head-to-head against Photoshop itself.

Steve Troughton-Smith:

The calls for Apple to have its own Photoshop competitor date back to the early days of Mac OS X, and the heyday of the Final Cut Suite, when Apple had an entire lineup of pro software for various niches.

Today, this Pixelmator acquisition could have far-reaching implications for iPad and Vision Pro, who have not been as well-supported by third parties making pro apps like the Mac has.

I would very much welcome an Apple that cares as much about, and fights for, pro apps as it used to.

On the flip side, Apple has a graveyard of pro apps it acquired, extracted all the value from, and left to rot along with their legacy userbases 😅

Nick Lockwood:

I’m sorry if that seems cynical, but Apple’s track record with software acquisitions is abysmal. My guess is either they’ll kill it completely or replace it with something unrecognisable in a year or two.

Mario Guzmán:

Pixelmator Team could AppKit harder than Apple and I now feel like Apple is going to ruin this marvelous app. Damn it. Damn iiittttttt. Pixelmator Team makes Mac-ier apps than even Apple. Apple just ships even-more-stretched out iPad apps

Federico Viticci:

Welp.

Nick Heer:

I am also a touch worried. The first thing I thought of was Apple’s purchase of Workflow, now Shortcuts. In the past seven years, the capability of Shortcuts has been expanded tremendously, but it has also been routinely broken in iOS updates. There are frequent errors with syncing, actions stop working without warning, and compatibility does not always feel like a priority in new first-party software releases.

So, good for Pixelmator for attracting Apple’s attention and delivering quality software for years — software which can go toe-to-toe with offerings from companies far larger and richer. I hope this acquisition is great news for users, too, but I think it is fair to be apprehensive.

Eric Schwarz:

As someone who does all the graphics work on this site and others with Pixelmator, I’m a little nervous what the future will bring. The last big Apple acquisition of a beloved app was Dark Sky and that was eventually killed off and rolled into the Weather app. There may be some good news—Apple also acquired Workflow, improved it and renamed it Shortcuts. Looking back even further, Logic Pro was actually an acquisition, too.

Ryan Jones:

Ballpark Pixelmator acquisition math.

Chris Adamson:

Apropos of nothing surely, Acorn remains a great Core Image-based Mac app for working with images.

See also: Mac Power Users Talk, TidBITS Talk.

Previously:

Update (2024-11-05): Gus Mueller (Mastodon):

Acorn and Pixelmator came out 15 days apart from each other in 2007, and the target market between the two has always overlapped. But even with that I've always been on good terms with the Pixelmator folks. Any time we were both attending WWDC, we would meet up and complain about image APIs or just chat over lunch.

The other major player in this category is Affinity, was purchased by Canva in March of this year. So it feels strange that Acorn is now effectively the only independent Mac image editor from that era.

Update (2024-11-22): See also: List of mergers and acquisitions by Apple (via John Gruber).

Fantastical 4 and Windows Version

Flexibits (MacRumors):

We’ve spent the last 4 years making Fantastical better than ever across Apple devices, and with version 4.0 we decided to go even bigger by finally bringing the world’s best calendar app to a Windows PC near you.

For the Mac and iOS versions, it adds a Control Center widget and support for Miro conference calls, but otherwise the release notes show bug fixes. The price has increased from $40/year to $57/year. They are still honoring old, non-subscription purchases with the old feature set.

Flexibits:

The short version is all of the core sync and business logic is shared with Mac (we reuse our Objective-C) and we leverage AppSDK + WinUI for the UI. Currently we don’t make use of Swift on Windows and don’t have plans at the moment to.

Nicholas Riley:

So far Fantastical for Windows is resource-hungry and unstable, despite its feature completeness. First time I tried to edit an event, it hung. Not sure if this resource usage is typical (memory usage is still climbing, up to about 1.2 GB now) but it’s more than I afford on my work machine, and way more than on the Mac; will try again in a bit I think!

They’re not using Electron, and it doesn’t seem like there would inherently be a lot of extra overhead from using Objective-C, so hopefully they can get the resource usage down.

Previously:

Update (2024-11-02): The subscription price was actually increased in 2023 and is unchanged since then.

Update (2024-11-04): John Gruber:

I’m trying to think of a similar app — a serious Mac-assed Mac app that eventually was ported to Windows — and I’m coming up empty. It just doesn’t happen. I might go all the way back to Apple bringing iTunes to Windows.

[…]

[The] reaction to Fantastical seems overwhelmingly positive from the PC media[…]

Kirk McElhearn:

@daringfireball Another example might be iA Writer for Windows and Android. It started as an iPad app before coming to Mac.

Michael B. Johnson:

scrivener.

It’s a short list.

Apple’s Q4 2024 Results

Apple (transcript, MacRumors, MacStories):

The Company posted quarterly revenue of $94.9 billion, up 6 percent year over year, and quarterly diluted earnings per share of $0.97. Diluted earnings per share was $1.64, up 12 percent year over year when excluding the one-time charge recognized during the fourth quarter of 2024 related to the impact of the reversal of the European General Court’s State Aid decision.

“Today Apple is reporting a new September quarter revenue record of $94.9 billion, up 6 percent from a year ago,” said Tim Cook, Apple’s CEO.

Jason Snell:

All in all, Apple’s business was relatively flat. iPhone sales were up 6% but flat for the fiscal year; Mac sales were up 2%, which is about how they’ve been all year; Services continues to have reliable double-digit growth, but the rate of growth slowed to 12% year-over-year.

Jordan Golson:

Gross margin for the quarter was 46.2 percent, compared to 45.2 percent in the year-ago quarter.

Juli Clover:

This is Apple’s final earnings call with Maestri, who is stepping down from his role on January 1, 2025 to lead the Corporate Services teams.

Previously:

Update (2024-11-14): Jason Snell:

It being the fiscal fourth quarter, of course, means it’s also the end of Apple’s fiscal year. That gives me the opportunity to cart out a separate set of charts, ones that take the longer view and show the changes in Apple’s business over an entire year.

Let’s dig into the charts, starting with the big one, overall Apple revenue for the last 26 years[…]

CoverSutra Is Back

Sophia Teutschler (Reddit):

Hello, it’s me again! 👋 Did you hear? CoverSutra 4.0.1 is now available on the Mac App Store!

Sophia Teutschler:

It is a free upgrade for Version 3 customers.

Previously:

Update (2024-11-05): Niléane Dorffer:

This new version was rewritten from the ground up with a different approach: instead of being a controller for Apple’s native Music app, CoverSutra is now a standalone client for Apple Music on the Mac. In practice, this means that you can search your Apple Music library, pick any album or playlist, and start listening without ever having to launch the Music app.

[…]

In its current shape, CoverSutra 4.0 is pretty basic. Apart from search, playback controls, and the ability to set your own global keyboard shortcuts, there are no additional features or settings. However, I’m hopeful that the app can start fresh from this new foundation.