Archive for October 2023

Tuesday, October 31, 2023

iMac 2023

Apple (Hacker News):

iMac with M3 is up to 2x faster than the prior generation with M1. And for those upgrading from an Intel-based iMac, the new iMac is up to 2.5x faster than the most popular 27-inch models, and 4x faster than the most powerful 21.5-inch model.


iMac features a 24-inch, 4.5K Retina display with 11.3 million pixels, a P3 wide color gamut, over a billion colors, and 500 nits of brightness.


iMac now features Wi-Fi 6E, which delivers download speeds that are up to twice as fast as the previous generation, and Bluetooth 5.3, which allows users to connect to the latest Bluetooth accessories. It also features up to four USB‑C ports, including two Thunderbolt ports for superfast data transfer; support for Gigabit Ethernet standard on select models[…]

Hartley Charlton:

The iMac now supports up to 24GB of memory and the M3 chip’s all-new GPU brings hardware-accelerated mesh shading and ray tracing to the iMac for the first time.


The iMac starts at the same $1,299 price of the previous model.

This is all fine, but the bad news is that Apple seems to be saying that there are no plans for an iMac with a larger display. There is nothing in Apple’s current lineup that offers what the old 27-inch iMac did (either in display, RAM, ports, or CPU relative to the rest of the lineup). You can get a Mac mini or a Mac Studio with a Studio Display, but you’ll pay a lot more for a more awkward setup.

Hartley Charlton:

The newly announced M3 iMac is still accompanied by peripherals with a Lightning port for pairing and charging, rather than USB-C as rumored.

They still have the bad design with the full-height left/right arrow keys, and the Magic Mouse still can’t be used while it’s being charged.

Overall, it’s good to see the iMac finally get an update—there never was an M2 iMac—but it just doesn’t seem like Apple cares very much.

Dan Moren:

All they had to do was replace the Lightning port on the Magic Keyboard with USB-C and I would have bought one but nooooooo.


This was going to be my dream machine after a long time of not upgrading. However, the 8/256GB standard, no USB-C accessories, and still charging extra to have Touch ID and a Magic Trackpad really leave a bad taste in my mouth.

Martin Pilkington:

To be completely frank the memory and storage in the iMac configurations is insulting for those prices in 2023.

There is no reason Apple should be selling a computer over £1000 with anything less than 16GB of RAM and 512GB of storage.

As always, the up-charges for extra storage seem exorbitant. And, holding the prices constant, I continue to think that most users would be better off with SSDs that are slower but higher capacity. The user experience of adding extra external storage later is bad and getting worse.


Update (2024-01-23): Jason Snell:

The M3 iMac also doesn’t come in an optional M3 Pro configuration, which I admit surprises me a little bit, given that the Mac mini supports it.

Joe Rossignol (TidBITS-Talk):

Apple has confirmed to The Verge and some other publications that it has no plans to release a new 27-inch iMac with Apple silicon.

Stephen Hackett:

For years, the iMac became more and more professional in its power, design and very nature. At the end of the Intel era, the computer could be ordered in such a wide range of specs that basically anyone shopping for an iMac could easily have their needs met, from the most basic of home users to folks pushing the bounds of what their computers could do.

That’s just not true anymore, and while it stings, I think the iMac is pretty squarely back in the consumer column … at least for the foreseeable future.

Benjamin Mayo:

I think we can all observe that the iMac is on a development cadence that sees it receive significant changes once or maybe twice a decade, subsequently upgraded with new more powerful chips every one to two years. The 2021 iMac was the big uplift, the 2023 revision is the example of the spec bump.

The base iMac is clearly set as is, with a 24-inch inbetweener design meant to split the difference between the previous Intel lineup of 21.5-inch and 27-inch sizes. That’s what Apple’s on-the-record press statement is affirming. But just like Apple offers both the Mac mini and Mac Studio, I do think it would be a shame if the company can never justify making a higher end iMac ever again. A true Apple Silicon successor to the iMac Pro could be very compelling, even if not a big seller.

Jason Snell:

The iMac’s stand remains unadjustable and, in my opinion, inappropriately low.


Apple also hasn’t upgraded the FaceTime camera, which remains at 1080p. That’s the resolution you’ll find in laptops, but I had hoped for an upgrade on the desktop. […] Apple needs to find a higher-quality webcam that can support Center Stage (as well as macOS Sonoma’s built-in options to manually pan and zoom the camera exactly the way you want it) and build it into future iMacs and external displays.


Given the company’s commitment to the environment, perhaps it’s time to build a new Target Display Mode.

Mario Guzmán:

It’s 2024 and we’re still talking about how to make the Magic Mouse better while Apple refuses to come up with a more ergonomic design that can also charge while using.

This mouse is 15 years old now. FIFTEEN. YEARS. OLD.

MacBook Pro Late 2023

Apple (Hacker News):

The 14‑inch MacBook Pro with M3 is up to 60 percent faster than the 13‑inch MacBook Pro with M1, and with its advanced thermal system, it unleashes the full potential of M3 for sustained performance. Starting at $1,599, it delivers more performance and capabilities than ever at a great value.


For users with more demanding workflows like coders, creatives, and researchers, MacBook Pro with M3 Pro provides even greater performance, supports more unified memory, and is now up to 40 percent faster than the 16‑inch model with M1 Pro.


MacBook Pro with M3 Max provides performance and capabilities for those with extreme workflows like machine learning programmers, 3D artists, and video editors. It is up to 2.5x faster than the 16-inch MacBook Pro with M1 Max, and up to 11x faster than the fastest Intel-based MacBook Pro model. It also supports up to 128GB of unified memory, enabling creators to easily work on large and complex projects spanning multiple pro apps and plugins, or compose huge film scores where entire orchestral libraries are instantly available from memory.

It’s great to see another solid update to the MacBook Pro line within the same year. I like this design overall, but I still want a smaller trackpad and a non-glossy display.

Joe Rossignol:

The new MacBook Pro models are available to order today, and they will launch on Tuesday, November 7. The 14-inch M3 MacBook Pro starts at $1,599 ($1,499 for education); the 14-inch M3 Pro MacBook Pro starts at $1,999 ($1,849 for education); and the 16-inch MacBook Pro starts at $2,499 ($2,299 for education).

Tim Hardwick:

Apple calls the new MacBook Pro in Space Black, “a gorgeous dark aluminum finish, with a breakthrough anodization method that resists fingerprints.” The enclosure is created from a custom alloy that uses 100% recycled aluminum and is described as “very durable.”

Joe Rossignol:

Just over seven years after it was introduced, the Touch Bar has now been fully discontinued on all new MacBooks sold by Apple, marking the end of an era for a hardware feature that was loved by some users and derided by others.

Felix Schwarz:

About a year ago, I got the cheapest MacBook Pro 16" with 64GB of RAM and 1TB of SSD storage that I could get:

A MBP 16" with M1 Max 10C CPU, 24C GPU, 64GB, 1TB for around ~3.750€

Now, the cheapest model I can find matching my criteria is a MBP 16" with M3 Max 16C CPU, 40C GPU, 64GB, 1TB for ~5.080€ 😳

Sure, the new models are faster and have a lot more CPU and GPU cores, but still, I’d appreciate if a cheaper 16"/64GB/1TB configuration was available.

Dan Seifert:

the hilarious part about the new base model 14” with the M3 is that it:

A) comes with 8GB of RAM for $1600 frigging bucks


B) only supports one external display, despite having four ports capable of outputting to a screen (three USB-C and an HDMI)


C) doesn’t even come in the new Space Black color, just silver and the old space gray

The 14-inch MacBook Pro with the plain M3 replaces the odd 13-inch MacBook Pro. So you now get a larger screen for a higher base price. 8 GB of RAM seems low in a Mac that’s called “Pro.” The base price of the model with the Pro chip is unchanged, and it now has 18 GB of RAM (up from 16 GB).

Ezekiel Elin:

I’ve a developer and I used an 8GB M1 Air for over a year - Xcode and video games were the only time I noticed it.

I’m on a 16GB M2 Air now, but for most people 8GB is truly fine, citing myself having lived it.

250GB is much more of a problem for the average user than 8GB of ram.

Edit: 8GB on the Pro is ridiculous, no argument there


Update (2024-01-23): Jason Snell:

I got my greasy monkey paws on a Space Black laptop and can report that Apple’s as good as its word in the sense that it seems generally more resistant to fingerprints and other smudges.

But I don’t want to exaggerate this feature: you can still see fingerprints. They just aren’t as prominent. This is a progressive improvement over something like the Midnight M2 MacBook Air, but it’s not a cure-all.

Similarly, I need to warn you not to get too excited about Apple finally making a black MacBook Pro. Space Black is not actually as black as space. It’s a dark gray.

Jason Snell:

In the M3 models, the maximum brightness of the display in standard dynamic range mode (which is everything except those photos, movies, and TV shows, essentially) is brighter, with a maximum brightness that matches the Apple Studio Display. It’s a difficult one for Apple to call out as a feature boost—”it’s brighter in the mode that isn’t bright” is a tough sell—but the net result is that this display can get a lot brighter in the mode you’ll use 99% of the time.


Fortunately, when testing the M3 Max, a lot of my concerns were alleviated by the fact that it just seems faster in every conceivable dimension than its predecessors, usually by quite a lot. Individual M3 CPU core performance is better, of course, and in Geekbench’s multicore performance tests it couldn’t even be beaten by M1 Ultra and M2 Ultra chips. It’s not just that the M3 Max has 16 CPU cores; it’s that 12 of them are of the “performance” variety, half again as many as in the M2 Max, and CPU performance on Apple silicon tends to scale with the number of performance cores available.


It makes me wonder how many of these base-model configurations Apple will really sell. For discerning buyers, they’re poorly configured in comparison to slightly more expensive models. They’re also still $300 more expensive than the previous base model, which will likely turn off some budget-minded users and corporate buyers.

Apple M3, M3 Pro, and M3 Max

Apple (Hacker News):

These are the first personal computer chips built using the industry-leading 3-nanometer process technology, allowing more transistors to be packed into a smaller space and improving speed and efficiency.


The M3 family of chips features a next-generation GPU that represents the biggest leap forward in graphics architecture ever for Apple silicon. The GPU is faster and more efficient, and introduces a new technology called Dynamic Caching, while bringing new rendering features like hardware-accelerated ray tracing and mesh shading to Mac for the first time. Rendering speeds are now up to 2.5x faster than on the M1 family of chips. The CPU performance cores and efficiency cores are 30 percent and 50 percent faster than those in M1, respectively, and the Neural Engine is 60 percent faster than the Neural Engine in the M1 family of chips. And, a new media engine now includes support for AV1 decode, providing more efficient and high-quality video experiences from streaming services.


Additionally, support for up to 128GB of memory unlocks workflows previously not possible on a laptop, such as AI developers working with even larger transformer models with billions of parameters.

Tim Hardwick:

However, looking at Apple’s own hardware specifications, the M3 Pro system on a chip (SoC) features 150GB/s memory bandwidth, compared to 200GB/s on the earlier M1 Pro and M2 Pro. As for the M3 Max, Apple says it is capable of “up to 400GB/s.”


Notably, Apple has also changed the core ratios of the higher-tier M3 Pro chip compared to its direct predecessor. The M3 Pro with 12-core CPU has 6 performance cores (versus 8 performance cores on the 12-core M2 Pro) and 6 efficiency cores (versus 4 efficiency cores on the 12-core M2 Pro), while the GPU has 18 cores (versus 19 on the equivalent M2 Pro chip).


According to Apple, the M3 Neural Engine is capable of 18 TOPS, whereas the A17 Pro Neural Engine is capable of 35 TOPS.


Taken together, it’s presently unclear what real-world difference these changes make to M3 performance when pitted against Apple’s equivalent precursor chips in various usage scenarios[…]

Phil Dennis-Jordan:

So the M3 Pro is basically a 50% scaled-up M3: unlike the M2 Pro it doesn’t have double the memory channels, “only” half again.

Jeff C.:

It seems that they’re doing a bit more this generation to differentiate between Pro and Max.

Previously, the Pro and Max had the same number of CPU cores, so I never had any interest in the Max once I realized that my work fit into the Pro’s RAM ceiling. Now, the Pro’s CPU core advantage over the base chip has been cut in half. To get double the cores of the M3 you need the M3 Max.

Om Malik:

The new M3 chips are coming at an opportune time — Apple’s rivals, Qualcomm, Nvidia, AMD, and Intel, have been making noises about catching up with Apple. […] Qualcomm recently announced the Snapdragon X, a PC chip that it says is better than the M2 processor. Nvidia, too, is working on its own chip, as is AMD. All three companies are using Arm’s technology. Intel, on the other hand, is moving forward with its own technologies.


How caching is implemented varies based on the intended use — whether it be for gaming, professional graphics, or data center applications. NVIDIA, for example, employs various forms of cache, including L1/L2 caches and shared memory, which are dynamically managed to optimize performance and efficiency. AMD uses large L3 caches (“Infinity Cache”) to boost bandwidth and reduce latency — an approach beneficial for gaming. Intel’s Xe graphics architecture focuses on smart caching, balancing power efficiency and performance.


Apple has a substantial opportunity to integrate generative AI into its core platform, mainly because of its chip and hardware-level integration.


Update (2024-05-09): See also:

Monday, October 30, 2023

Keyboard Maestro 11

Stairways Software:

Version 11 extends the editor by adding a New Macro Wizard and new Security preference pane, and enhanced searching and syncing.

The engine adds a new keyboardmaestro command line tool for triggering macros, modern JavaScript syntax, Apple Text Recognition option, a new palette to show active macro groups, enhanced scripting support, and more.

There is a new Space Changed trigger, and new trigger options for hot keys and device keys. Version 11 also adds support for using modifier taps in Typed String triggers.

There are lots of new actions including Prompt for Snippet, Create Calendar Event, Send Pushover Notification, Set Screen Resolution, Select Menu by Name, Remove Clipboard Flavors, Set Audio Device, Mute Audio Device, Get Location and more.

Stairways Software:

Same deal as usual, free upgrade if you purchase since March, $18 if you purchased version 10 before then, $25 if you’re upgrading from an older version and $36 if you are crazy enough not to already own me.

See also: the release notes.


Code Signing Woes

Dirk Lemstra (via Hacker News, tweet):

Today [ImageMagick’s Windows] code signing certificate will expire. For many years LeaderSSL sponsored us with a code singing certificate but they are no longer able to do so. Since June of 2023 the CA/B Forum requires that OV code signing private keys be stored on a FIPS 140-2 Level 2 or Common Criteria Level EAL4+ certified device. This means we are no longer able to export our code signing certificate with its private key and use this in GitHub actions. We would now either need to have our own GitHub agent and hardware token or use a cloud solution (e.g. digicert). Our preference would be to use a cloud solution that integrates with GitHub. Digicert seems to be our only option now but a certificate there would cost $629 (tax excluded) for a single year.

Marc-André Moreau:

Windows code signing has one big problem: it’s too expensive 🫰 and difficult to deal with for most open source projects, where it’s often coming out of someone’s personal money, not from a business that can well afford it

Gerardo Grignoli:

TIL that Code Signing policies had changed for the worst. Signing is now more expensive, requires a physical device and no longer can be a automated step on build agents such as GitHub Actions. 😵‍💫

Marc-André Moreau:

Code signing now requires the private key to be stored in an HSM, but you can use Azure Key Vault for that, after which you can switch to AzureSignTool or one of the many alternatives that can call Azure Key Vault during the signing operations.

It sounds like code signing on Windows is even worse than on the Mac. We “only” have to pay $99/year, but then some percentage of our customers are scared away by spurious “‘App’ is damaged and can’t be opened. You should move it to the Trash.” errors.


Masimo v. Apple

Brian Merchant:

Kiani, an electrical engineer by training, had founded the Irvine company Masimo in 1989. Over the next three decades, he and his colleagues built Masimo into an industry leader in pulse oximetry, used to take readings of the amount of oxygen in a person’s blood — a crucial, sometimes life-saving, measurement.


Kiani and the Apple executives had long, involved, and, what felt to him, productive meetings. It even seemed that Apple was interested in acquiring Masimo. “They asked us, ‘Where do we see the market going?,’ ‘How does the tech work?,’ to share with them the regulatory pathways. All the leadership was there, saying, ‘whatever you need, we’re going to work this out.’”


According to the complaint in his case, unbeknownst to Kiani, back when the two companies started meeting, Apple hatched a plan, known internally as Project Everest, to obtain or emulate Masimo’s technology without paying Kiani a cent. Instead of acquiring Masimo, Apple could simply raid its brain trust. In at least one email exchange between executives, Apple referred to its strategy as “smart recruiting.”

There have been stories like this for many years, though I can’t seem to find the links at the moment.

Brian Merchant (via Hacker News):

It turns out the United States International Trade Commission agrees. It just sided with Kiani, issuing a ruling that the Apple Watch contains technology that violates Masimo’s patents, and handing down an exclusion order that, if it stands, would result in the devices being banned from import into the United States unless the infringing technology is removed.

The ruling upholds an initial finding in January that determined Apple had infringed on Masimo’s pulse-oximetry technology, which allows users to take readings of blood-oxygen levels. Earlier this year, a separate federal trial over whether Apple had profited from trade secrets stolen from Masimo, to the tune of $1.85 billion, ended in a hung jury.


The Restaurant Nearest Google

Mia Sato:

Jirapraphanan is exactly the kind of customer Thai Food Near Me hopes to scoop up. The New York-based restaurant is named after a literal Google search, betting it can bring in customers with the power of SEO — the practice of making a business, website, or content more findable in search engine results. The restaurant is optimized for the digital platforms diners use to find places nearby, not for the person walking past on the street or getting a recommendation from a friend.

Chicago Tribune (in 1992, via Hacker News):

Are you willing to trust your business correspondence to a firm listed in the telephone directory as “A AAA Aability Secretarial Service?” Trust your car registration to the ungrammatical “A Attorney for DMV Matters?” Open wide for someone listed anonymously as “A Business Person’s Dentist?”

There’s no reason not to, unless you object to business operators trying to get an alphabetical leg up on their competition.

Update (2023-11-20): Nick Heer:

Google says this strategy does not work, and my testing seems to confirm that. There is a chain of businesses in Calgary called “Towing Near Me”, but searching both Google and Google Maps for that exact phrase does not surface that business. Instead, I see towing companies with locations near my IP address in central Calgary, which is what I would expect.

Friday, October 27, 2023

iCloud Drive Switches to Dataless Files

Howard Oakley:

In the recent past, when a file has been evicted to iCloud (its download being removed from local storage), it has been represented by a placeholder or stub file in its original folder on the Mac. Taking the file named MyDocument.extn as an example, in the more distant past it might have been represented by a stub file named .MyDocument.extn-tef.icloud, but more recently that would have been named .MyDocument.extn.icloud, and was typically less than 200 bytes in size.

Stub files retained all their original extended attributes, including any Resource fork, and when their data was downloaded from iCloud they were reconstituted into their original files, original names, extended attributes and all.


I was surprised to discover that upgrading to Sonoma has brought radical change to iCloud Drive, specifically in the way that it handles evicted files in local storage. […] There are no stub files to be seen, and the only indication that these files are evicted and not stored locally is in their Status: evicted files are shown as NotDownloaded, while those stored locally are Current.


I suspect these new evicted files take advantage of a trick in APFS: as far as I can tell, they consist of the file with its attributes and extended attributes intact and stored locally, but no extents for its data. Thus, when you ask for the file size, it returns the size it would be when downloaded, although the file only takes the space required for its attributes and extended attributes, until it has been downloaded. As Apple promised, these are dataless files.

Michael Bach:

Interestingly, in Sonoma the path to Trash has also changed. It is now $HOME/Library/Mobile\ Documents/.Trash and used to be $HOME/Library/Mobile\ com\~apple\~CloudDocs/.Trash (or so).


Amazon Drive Is Shutting Down

Chris Welch (in 2022):

The company says Amazon Drive will no longer be supported as of December 31st, 2023. That’s when access will be completely cut off. Uploads are going away earlier and won’t be accepted as of January 31st. The Amazon Drive apps for Android and iOS will be taken down on October 31st, 2022.

“We will continue to provide customers the ability to safely back up, share, and organize photos and videos with Amazon Photos,” Amazon said in an email to customers. But for all files that aren’t images or videos, you’ll have to download them.

Stefan Reitshamer (Reddit):

Amazon is sending out emails to Amazon Drive customers stating “Starting November 16, 2023, you will no longer be able to back up your files to Amazon Drive using Arq. Additionally, Amazon Drive will not be accessible after December 31, 2023.” Actually they’ve been emailing Amazon Drive customers for many months now warning of this.


Improper App Store Contact With Developers

Wayne Ma:

Apple fired at least five employees who worked in the company’s App Store in China following an internal probe into business misconduct, according to people with direct knowledge of the situation.

Juli Clover:

App Store employees with review and editorial roles are not supposed to meet with developers, but an internal audit raised suspicions about half a dozen workers, leading to an investigation. Apple found that the employees had accepted free meals and nightclub outings from developers and consultants that operate businesses claiming they can get games featured in the App Store.

The employees involved did not approve apps and would not have been able to get apps added to the App Store or removed from the App Store, but they did have the power to feature App Store apps to get them more views.

There’s probably a lot more of this going on, and with larger bribes, but it’s hard to detect.

Bitten by the Black Box of iCloud

Dan Moren:

While I was nominally able to log back into iCloud, most of my data wasn’t actually syncing back. A dialog box told me that I needed to verify my account in order to re-establish end-to-end encryption for sensitive information like my keychain and health data, but clicking the prompted button did…absolutely nothing.


Other services, like Find My, were totally dead, refusing to show me any information. Even third-party apps that rely on iCloud to provide syncing—Ivory, for instance—had issues. Attempts to log in to via multiple browsers and devices all came back with a connection error.


Now, in my initial forays on social media, I had gotten a reply from someone on Mastodon mentioning that Apple’s iCloud servers were sometimes put in maintenance mode for 12 hours—but upon going back and looking for that specific reply, it was nowhere to be found. […] There was, according to this support agent, nothing to do but sit back and wait, then call back if service hadn’t returned by the 12-hour mark and reference my case number.


Overall, the experience was confusing and irritating. If this was a server maintenance, upgrade, or migration situation, why not simply tell me? Would it shatter the illusion of iCloud as a monolith of silently functional services? (Breaking news: that illusion was thoroughly punctured anyway.)

Bugs and outages happen, but trust is a lot harder if there’s no transparency. If there’s scheduled maintenance that will cause a service disruption, a good provider will even notify you in advance. Moren’s iCloud service did come back at the end of the secret maintenance window, but he lost a folder in iCloud Drive and had problems with reminders syncing.


Thursday, October 26, 2023

Apple Services Price Hikes

Joe Rossignol (Hacker News):

The price changes in the U.S. are as follows:

  • Apple TV+: $6.99 per month → $9.99 per month
  • Apple Arcade: $4.99 per month → $6.99 per month
  • Apple News+: $9.99 per month → $12.99 per month


In the U.S., these are the first-ever price increases for Apple Arcade and Apple News+ since the services launched in November 2019, while Apple TV+ had its first price increase from $4.99 per month to $6.99 per month in October 2022.

Dan Moren:

This increase really shouldn’t come as a surprise: Disney+, Hulu, Netflix—almost every major streaming service has raised their prices over the last year. In some cases, this is to compensate for lost revenue from customers canceling cable packages where older more conventional networks and studios used to bring in money for selling their shows.


This is the second price hike for Apple TV+, which debuted at a $4.99 monthly price (free for several months in many cases)—with a rather paltry library of content—before subsequently rising to $6.99 a year ago. Apple’s built up its TV+ content substantially since launch, and the company seems to be making the argument that all of that new material is worth more money.


I do have to raise an eyebrow at the increased costs for both Apple Arcade and Apple News+. Neither of these services seem to have been blockbuster hits for the company, and perhaps Apple’s decided it’s not just going to make it up in volume.

John Gruber:

Subscription pricing requires a form of calculus to find the sweet spot that generates the most money. Set the price too low and you’ll reduce piracy but leave money on the table. Set the price too high and you’ll generate less money because more users — ones who might otherwise have subscribed at a lower price — will choose to bootleg. (Some people, of course, will always choose to bootleg. There’s no point trying to find a price to appease them.)

But pricing isn’t the only factor in this equation. The experience is too. Bootlegging’s obvious appeal is the price: zero. But it’s always been a bit of a pain in the ass. Weird apps and sketchy sources. Steve Jobs emphasized this aspect of the iTunes Music Store when he introduced it: 99 cents was an appealing price, but not as appealing as free. But the overall experience of searching for and downloading music from iTunes was so much better than bootlegging that it made you happy to pay for the songs.

Apple still gets that part: their apps for consuming their services are generally very low on annoyances. You almost never have to sign back in because your previous sign-in expired.

That’s a pretty low bar. I contend that the overall Apple TV experience is just not good these days. It’s so frustrating to navigate and search, and it doesn’t handle state well. It’s nothing like the breath of fresh air that iTunes was. I don’t want to be a pirate, and I don’t want to run a Plex server, but it’s tempting to explore that world because the supposedly premium interface is so obnoxious.

And, as Gruber says, with Apple News+ you are paying for something that’s worse than the Web.

Juli Clover:

In the United States, the price of the Basic [Netflix] plan will increase from $9.99 to $11.99 per month, while the price of the Premium plan will increase from $19.99 to $22.99 per month. The ad-supported tier price will remain the same at $6.99 per month, as will the $15.49/month Standard plan.

Netflix no longer offers the Basic plan to new subscribers in the United States, but prices will presumably increase for existing subscribers.


Update (2023-10-30): Ernesto Van der Sar (via Hacker News):

Blocking pirate sites is widely believed to reduce the number of visits to the targeted domains. However, new research based on data provided by WIPO and funded by the Republic of Korea, suggests that’s not always the case. Roughly a quarter of all domains for which data was available received more visits after they were blocked.

Update (2023-12-12): Adam Chandler:

I’ve listed today’s published costs of what these services cost if you were to sign up for each one individually.

If I were paying for these streaming services every single month, the total cost is $175.49 or $2100 a year. This is more than any cable package I’ve ever had.

Update (2023-12-29): Joe Rosensteel:

Yesterday people seem to be completely shocked by the email they received from Amazon that Prime Video was going to include ads by default, unless subscribers paid an additional sum. This news was from months ago, and I mentioned it here on this blog too.


The only move you have to protest Prime Video’s inclusion of ads, is to cancel Prime (you won’t do that) or to stop using Prime Video “to send a message” (they don’t care).


People are still completely oblivious to why any of the subscription fees are going up. They were too low. They were financed by investors that prioritized growth, when investment money was basically free.


Also, people seem to have this opinion that other companies don’t have ads, so Amazon is a second-rate streamer (whatever that means), but they all have ad-supported tiers, except Apple TV+, and that’s just a matter of time.

Update (2024-02-16): Todd Spangler (via Hacker News):

A lawsuit seeking class-action status accused Amazon of false advertising and deceptive practices because Prime Video now serves commercials by default.

They started the ads within the membership year of people who had signed up before there were ads.

macOS 13.6.1 and macOS 12.7.1

Apple (full installer):

This document describes the security content of macOS Ventura 13.6.1.

Apple (full installer):

This document describes the security content of macOS Monterey 12.7.1.


macOS 14.1

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

With macOS Sonoma 14.1, Apple has added a new warranty section that lets you see the AppleCare+ status of your Mac and connected AirPods, plus there are now options to favorite songs, albums, and playlists in the Apple Music app.

See also: Mr. Macintosh and Howard Oakley.

Apple (via Rosyna Keller):

Starting in macOS Sonoma 14.1, cameras and video output devices that don’t use modern system extensions won’t be available to use unless you restore the legacy settings.


Update (2023-11-22): Howard Oakley:

This article explains what has happened, and what you can do to retain use of your camera.

watchOS 10.1

Juli Clover (release notes, security, developer):

There are several new Apple Watch features enabled in watchOS 10.1, including NameDrop. NameDrop lets you tap an Apple Watch to another Apple Watch or iPhone to exchange contact information with someone.


Along with these two features, there are a handful of bug fixes, including an issue that could cause cities not to sync in the Weather app and a bug that could cause the elevation to be incorrect for some users.


The new double tap gesture for Apple Watch Series 9 and Apple Watch Ultra 2 is available today with watchOS 10.1, bringing a fast and convenient new way to interact with Apple Watch.

Juli Clover:

Using Double Tap requires you to tap your thumb and index finger together twice, and when you do this, you’ll see a little icon on the Apple Watch to let you know that the tap was recognized. Double Tap uses the sensors in the Apple Watch to detect minute movements and blood flow when the fingers are positioned in a certain way.

There are a number of things you can do with Double Tap, and Apple has made it work with some of the most common actions that you might need to perform with one hand.

John Gruber:

It’s a good feature, but it’s not nearly as useful — yet? — as I was hoping. The one thing you have to get used to is that the watch only listens for the double tap gesture when the display is fully-on. You need to tilt your wrist to look at your watch before double tapping.

Benjamin Mayo:

watchOS App Store is not exactly thriving … but what an indictment of its health that Double Tap is not supported in third-party watch apps at all. It’s not even teased as a coming soon API.


tvOS 17.1

Juli Clover (developer, security):

The Enhance Dialogue feature first announced in tvOS 17 for the second-generation HomePod has expanded to the original HomePod and the HomePod mini in tvOS 17.1, though the HomePods will also need the HomePod 17.1 software that came out today.

tvOS 17.1 also includes a new favoriting option in the Music app on the Apple TV, along with some other minor Music changes.

Benjamin Mayo:

Apps that integrate with TV app now get a standalone section, which is actually a nice feature change. Before it was just Channels that got that. Otherwise, new sidebar is only noticeable change.


iOS 17.1 and iPadOS 17.1

Juli Clover (release notes, security, developer):

In the new updates, Apple has added support for continuing a large AirDrop file transfer over the internet when out of AirDrop range. The Apple Music app includes options to favorite songs, albums, and playlists, and there are now song suggestions at the end of every playlist.


Though not mentioned in the notes, Apple says the update “fixes” iPhone 12 radiation levels in France by disabling a feature that boosts cellular signal when the iPhone is not held by a person, and it improves Screen Time syncing across devices. There are several bug fixes, with iOS 17.1 addressing an issue that could cause display image persistence and a bug that could cause the Significant Location setting to reset when transferring or pairing an Apple Watch for the first time.

Juli Clover:

While Apple outlined some of the major new additions in its release notes, there are also several hidden features that were not mentioned.


Wednesday, October 25, 2023

Apple Is Finally Killing Off iTunes

Mark Gurman (via Nick Heer):

As part of the [TV app] overhaul, the company will discontinue its dedicated apps on the Apple TV set-top box that let users rent and buy movies and shows. It will also remove the movie and TV show sections from the iTunes Store app on iPhones and iPads. […]

The idea is to steer more customers toward the main TV app, which sits at the center of Apple’s expanding video strategy. There, users are able to subscribe to TV+ as well as third-party video services like Starz and Paramount+. The app already lets customers rent and buy programs, making a separate iTunes option unnecessary.

That’s too bad since, though they could use lots of improvements, I prefer browsing purchased TV shows and movies in the old apps.

Kirk McElhearn:

iTunes was probably the most important app that Apple ever made. Released in 2001, it helped make Apple the company it has become. While it was not the first music management app, it quickly became the go-to tool for ripping CDs, creating playlists, burning CDs, and syncing music to iPods. iTunes became Apple’s Trojan horse; this free app’s popularity allowed the company to create the global music marketplace that changed the music industry.

After splitting iTunes on the Mac to a group of individual apps in 2019, Apple maintained the app on Windows. But the company is now planning to split iTunes into several apps on that platform as well: the Microsoft Store lists “preview” versions of apps for Apple Music, Apple TV, and Apple Devices, the latter being an app that manages syncing to iPhones and iPads.


Soon, all that will be left of the iTunes brand is the iTunes Store for music. And people buy much less music than in the past, having mostly shifted to streaming.


Apple no longer releases iProducts; the last iBook was released in 2005, Apple still uses the umbrella term iWork for its productivity apps (Pages, Numbers, and Keynote), and iCloud is the heart of its cloud storage system. But new products and services have Apple in their names: Apple TV, Apple Music, Apple Watch, and so on.

John Gruber:

I purchase/rent all my movies and TV shows on my Apple TV, where “iTunes” isn’t mentioned. (And in the age of streaming, I really only purchase/rent movies — the TV shows I watch are all streamed nowadays.) So why keep the iTunes Store app around on iOS — they could just add a Store tab to the Music app. Buy your music — if you buy music — in Music, and buy your movies in TV.


AirPods Pro for Hearing Protection

Accidental Tech Podcast:

AirPods Pro 2 as concert earplugs

Soundbrenner Minuendo

Others tried: Eargasm, Etymotic ER20XS, Earpeace, Vibes, Mumba

I’ve used the Eargasm, and it’s OK.

Helmut (via Accidental Tech Podcast):

Perhaps you are wondering:

“Why not get rid of earplugs and ear defenders and use my AirPods Pro instead? They are more comfortable, seem to be doing the job, and I can also listen to music.”


Actual work earplug headphones (with a noise reduction rating) and earplugs typically press much more vigorously against your ear canal wall to maintain a consistent seal even when you are in motion.


Unfortunately, against higher-pitched noises, the ANC is ineffective. In my tests, there was no benefit beyond 1600 Hz.


For attending rock concerts or when working in loud environments, I will continue to reach for a tool that offers a more reliable seal and better passive noise isolation across the frequency spectrum (such as a good, inexpensive pair of earplugs with a suitable NRR).


AirPods Pro With iOS 17

Joe Rossignol:

iOS 17 adds several features to all second-generation AirPods Pro, including Adaptive Audio, Conversation Awareness, and Personalized Volume. Keep in mind that these software features are also available on the original second-generation AirPods Pro released in September 2022, so there is no need to update to the USB-C model to use them.

Tim Hardwick:

Keep reading to learn what use cases the new noise control features are designed for, and how you can control them in iOS 17 when your iPhone is connected to AirPods Pro 2 with updated firmware.

Six Colors:

There’s a new listening mode, Adaptive Audio, that sort of sits in between Noise Cancellation and Transparency modes. (There’s even a new sound effect when you enter this mode, distinct from the chimes for the other modes.) According to Apple, when you’re in this mode, noise cancellation is emphasized in noisier environments and Transparency in quieter conditions.

I’ve spent the entire summer walking and running around my neighborhood and taking plane trips using a beta version of this new firmware. It’s basically replaced Transparency mode for me—in fact, I’ve set my AirPods Pro to toggle exclusively between Noise Cancellation and Adaptive Audio.


Another new feature is Personalized Volume, which supposedly adjusts playback volume as your environment changes as well as based on learning your preferences in various contexts. I’ve kept this feature on all summer, but it never felt like it worked right. Perhaps it was doing some amazing adjustments and I just never noticed, but what it mostly seemed to do was turn down the volume on my podcasts just as I was about to head out the door for a run. I would invariably turn the volume back up, but it never seemed to learn its lesson.

Tim Hardwick:

In this way, Adaptive Audio aims to automatically reduce loud or distracting noises in your surroundings, such as the sound of a leaf blower or a passing plane overhead, while other noises, like the sudden beep of a car horn, remain audible.

In a new interview with TechCrunch, Apple’s VP of sensing and connectivity Ron Huang revealed that Apple originally considered using GPS location to inform AirPods Pro of the user’s whereabouts and adapt the audio experience accordingly. In real-world testing, however, the method proved inefficient.


Update (2023-10-27): John Gruber:

I’ve been wearing a pair of the revised AirPods Pro 2 earbuds since last week, paired with my year-old iPhone 14 Pro and a few other devices. I obviously can’t say anything about their special capabilities when paired with a Vision Pro, but in all regards related to currently-shipping features, they’re better than ever.


Conversation Awareness really is completely automatic. If you’re listening to music or a podcast and just start talking to someone, or if someone else just starts talking to you, it kicks in. It’s very clever, but whether you’ll enjoy it highly depends upon your listening environment. In my 5+ days of testing, it kicked in too frequently amidst a crowd of people, none of whom were talking to me. Sometimes on city sidewalks, oftentimes in a grocery store. In an urban environment, there are just too many people talking around me, and the AirPods have no way of knowing that they’re not talking to me, for this feature to be anything but an annoyance overall.


Transparency with AirPods Pro 2 has been great as an urban pedestrian; Adaptive is even better. It just automatically Does What I Want™ in seemingly every context. I hear traffic and passersby, but even loud trucks and buses passing by don’t keep me from clearly hearing the podcast (typically) or song (less typically) I’m listening to.

Translate in iOS 17 and macOS Sonoma


Apple first introduced the Translate app in iOS 14. Although it was a welcomed addition to the language translation space, I stopped using it a couple of months after its release. Many languages were still missing, its interface was lackluster at best, and I found that its French translations were not great. I would also still often rely on Google Translate to translate text in the real world using the iPhone camera — a feature that was initially missing from Apple’s app. This year, however, the Translate app received a substantial makeover and a handful of new features in iOS 17.


Each translation card contains the same set of actions: ‘Show Full Screen,’ ‘Add to Favorites,’ ‘Define,’ and ‘Copy.’ Adding to Favorites is not something I expected to use, but it’s actually very useful, considering that the Translate app will not keep a full history of your translations after you close it.


Apple’s Translate app still doesn’t support as many languages as its competitors. However, I can safely say that there have been substantial improvements for the languages it already supports. The app also stands out with some of its features. The Conversation tab is unique in its well-thought-out design. Manually selecting the grammatical gender for gendered words sets it apart from a simple translation app you may use during your vacation abroad, perhaps transforming it into a daily work tool.

I still find the popover-based interface on the Mac frustrating. It doesn’t show much at once, you can’t select text, you can’t reference it while working in another window, you can’t make live changes to the input, and it doesn’t work in all apps (BBEdit, Xcode, Terminal). Why isn’t there also a separate app like in iOS? Catalyst and SwiftUI have already been available for 4 years.

Translation is working better for me now in Safari, but it only works within the app. There is no way to send someone a link to a translated URL, as with Google Translate.


Charging From a USB-C iPhone

Juli Clover:

When you plug a Lightning iPhone into an iPhone 15, the iPhone 15 will always provide power to the Lightning iPhone, even if the iPhone 15’s battery is lower.

If you plug an iPhone 15 into another iPhone 15, the two devices communicate with one another, determine which iPhone has the lower battery, and transfer power that way.


The iPhone 15’s USB-C port can be used to charge an Apple Watch or the AirPods Pro 2 with USB-C Charging Case using a USB-C to USB-C cord, and it should also be able to work with most other USB-C devices in some capacity.


Tuesday, October 24, 2023

YouTube Music on HomePod

Tim Hardwick:

YouTube Music is now available directly on Apple’s HomePod and HomePod mini, thanks to new Siri integration support in the YouTube Music app.

The change means subscribers to the streaming service can now choose to use voice commands to start YouTube Music on a HomePod, without having to append “on YouTube Music” to every request.

It’s just great that HomePod works better with YouTube Music than with music purchased directly from Apple.

John Gruber:

Every streaming video service is available on almost every device capable of playing video.


But with these smart audio devices, it’s been more drip-by-drip. It seems clear that each of the major smart audio device makers — Apple with HomePod, Amazon with Alexa, and Google with their Nests — originally conceived of them as being companion products for the respective company’s own music service, not open platforms.


Update (2023-11-20): Nils Kassube:

Since the launch of the YouTube Music Siri/HomePod integration I actually prefer it to Apple Music. So much better recommendations. They still remember old stuff when Apple seems to have lost all preferences from my iTunes usage.


iOS 17: Check In

Glenn Fleishman:

It’s easy to focus on the dystopian aspects of technology, but Apple has spent the last few years assembling a collection of features aimed at protecting its users against online and physical threats. They include Communication Safety (insulating kids from images and video containing nudity, enabled by parents), Sensitive Content Warning (warnings for everyone of received media containing nudity), Lockdown Mode (increased security for targeted users; see “Apple Adds Lockdown Mode to Protect Activists and Government Targets,” 6 July 2022), and Safety Check (audits settings to prevent inadvertent sharing). These features help you preserve mental and physical well-being and safety.

The latest addition is Check In, a feature built into Messages in iOS 17. It provides a valuable safety enhancement for your whole life that works essentially like your parent saying, “Call me when you get home so I know you arrived safely.” Check In lets you send a timer or a destination to a safety partner—a friend, relative, colleague, or anyone you trust who is also running iOS 17—that lets them know if you fail to check in after the timer ends or by the time you should have arrived at your destination.


ScreenSharingMenulet 2.9.2

Dan Moren:

Stefan Klieme’s ScreenSharingMenulet. It’s a little no-frills menu bar app that just provides you with quick screen sharing access to other machines via macOS’s built-in Screen Sharing app. By default it detects Bonjour connections on your local network, but it also supports adding manual remote connections if you have other machines you want to log into.

The homepage is here, and I like that ScreenSharingMenulet supports import/export and AppleScript.

My own needs are more basic, and so I tend to just use LaunchBar to access the Screen Sharing app’s recent items. I already have too many menu bar icons.

Invidious and FreeTube

Invidious (Hacker News):

Invidious is an open source alternative front-end to YouTube.


Invidious protects you from the prying eyes of Google. It won’t track you either!


Invidious allows you to subscribe to channels and create playlists, without needing a YouTube account.

FreeTube (Hacker News):

FreeTube is an open source desktop YouTube player built with privacy in mind. Use YouTube without advertisements and prevent Google from tracking you with their cookies and JavaScript. Available for Windows, Mac & Linux thanks to Electron.


Overview of alternative open source front-ends for popular internet platforms (e.g. YouTube, Twitter, etc.)


Link Unshortener Updates

Jeff Johnson:

Link Unshortener 9.0 adds a convenient list of all your installed web browsers so that you can open a link in any browser with one click or keypress. And if you set Link Unshortener itself as your default web browser in System Preferences, then whenever you click a link in an external app such as Mail, Link Unshortener will allow you to easily send the link to the web browser of your choice!


Link Unshortener 9.0 also adds custom URL redirects! Automatically redirect new Reddit to old Reddit, Twitter to Nitter, YouTube to Invidious, etc.

Jeff Johnson:

If you use Link Unshortener, it extracts the Mastodon URL from the Twitter warning URL. I'm showing you the Link Unshortener window here, but you can also set it to open destination URLs automatically (and set Link Unshortener as your default web browser).

Jeff Johnson:

In version 10.5, Link Unshortener now has special handling for Reddit email links, automatically turning URLs into URLs, without the intermediate steps and without all the tracking parameters at the end! If you make Link Unshortener your default web browser, then it can handle links like these from your email client.

Jeff Johnson:

Added gbraid, wbraid, s_cid, and yclid to the list of known trackers trimmed from URL queries. Removed linkId from the list, because it’s used by non-trackers.

Jeff Johnson:

Link Unshortener version 13.0 now automatically removes text fragments in URLs, to match the new StopTheMadness feature.

Jeff Johnson:

The fake User-Agent used by Link Unshortener has been changed from Windows to Mac, because a specific combination of HTTP headers was triggering a few sites to return HTTP 403 Forbidden.

Trim URL queries now removes “rtd” from Reddit URLs.


Can Link Unshortener, acting as a default browser, redirect links to one of the new Safari Web apps that can be made in Sonoma? (As in, send links to a Google Docs Web app?)

Jeff Johnson:

Unfortunately, no, because web apps don’t declare that they can open URLs, and Link Unshortener is sandboxed, which means it can’t force other apps to open URLs.

However, I think that a little AppleScript launcher would work, similar to this technique.


Monday, October 23, 2023

Cue Testimony in US v. Google

David Pierce (MacRumors, Hacker News):

Apple is in court because of something called the Information Services Agreement, or ISA: a deal that makes Google’s search engine the default on Apple’s products. The ISA has been in place since 2002, but Cue was responsible for negotiating its current iteration with Google CEO Sundar Pichai in 2016.


Meagan Bellshaw, a Justice Department lawyer, asked Cue if he would have walked away from the deal if the two sides couldn’t agree on a revenue-share figure. Cue said he’d never really considered that an option: “I always felt like it was in Google’s best interest, and our best interest, to get a deal done.” Cue also argued that the deal was about more than economics and that Apple never seriously considered switching to another provider or building its own search product. “Certainly there wasn’t a valid alternative to Google at the time,” Cue said. He said there still isn’t one.


Bellshaw asked Cue a number of questions about the iPhone setup process. Those three screenshots showed the Appearance screen that shows up when you first boot up your iPhone so you can pick font sizes; the location-tracking prompt that appears when you open Maps; and the App Tracking Transparency pop-up that tells you when an app wants to collect your data. Cue objected to all these things being considered part of setup, but Bellshaw’s point was that Apple offers its users a choice about lots of things, big and small, and that search could be one of them.

Putting aside whether there should be a choice during setup, Safari doesn’t even let you add a custom search engine.

John Gruber:

Safari should ship with a list of default search engines, of course, but users should be able to add to that list.

Francisco Tolmasky:

The fact that it’s so hard to add a new engine [to Safari] makes it a self-fulfilling prophecy by making it even more difficult to start a new engine. This is why I say that the static list is worse than the default. You have the chicken & egg problem of making a new search engine & convincing Apple to add you to the list. But why would they do that if you don’t have a lot of users? But how are you going to get a lot of users if no one knows how to add your search engine in their browser?

John Gruber:

Say what you will about alternatives like Bing and DuckDuckGo (which is powered by Bing results), but they are — I say — at least “valid” alternatives to Google for web search. I’ve been using Kagi — a paid search engine with plans starting at $5/month — for about a year and there’s no question in my mind that I’m getting as good or better results than I do from Google for the overwhelming majority of my searches. […] So as Google’s search result quality deteriorates — but their ability to monetize their search monopoly remains strong — Apple looks bad too.

Francisco Tolmasky:

Apple’s position simply makes no sense. If there was no other valid alternative, they’d have to use Google for free, not be able to twist their arm to get $21B out of them. They’d have no leverage if Google were the only game in town. You pay someone to do things they don’t have to do, not to do the only option available to them. Certainly not to the tune of $21B. And it’s basically pure profit, so probably 20% of their net income.

Put another way, Apple probably makes more money from featuring Google search in Safari than from all of its non-iPhone hardware products combined.

David Pierce:

Bellshaw never quite said it, but the DOJ’s implication seemed to be that, essentially, Google is a privacy menace anathema to everything Apple believes is important to its users, but Apple gives it a central place in its platform because Google pays it so handsomely.


Update (2023-10-24): Nick Heer:

But that is obviously the point the government is making. Google does not need to pay Apple because it is worried it will immediately lose an entire audience of iPhone, iPad, and Mac users who do not change their default settings — and, if the number of people I have seen who do not even set a new wallpaper is any indication, that is a lot — it pays Apple so nobody even thinks of another option in search, email, advertising, and video hosting.

But whatever could Cue mean by saying that, if Apple and Google would be unable to come to a deal, that “we shouldn’t move forward”? If there were no other options at the time, as Cue said, this is an empty threat — the kind of negotiating posture that seems unlikely to give Apple an increasingly lucrative contract.

Update (2023-10-27): Tim Hardwick:

Back in 2018, Apple held talks with DuckDuckGo to replace Google as the default search engine in private browsing mode, but ultimately rejected the idea, according to transcripts unsealed by the judge overseeing the US government’s antitrust trial against Google in Washington.


According to Bloomberg, Apple did not move forward with the deal because John Giannandrea, who joined Apple as head of search in 2018, assumed that since DuckDuckGo relies on Bing for its search information, it also likely provides Microsoft some user information.

But it probably still would have been more private than Google.

Matt Stoller (via Nick Heer):

Google is a very powerful corporation worth around $2 trillion, it controls access to the internet, and it will roll out generative artificial intelligence for billions of people. And yet, the public hasn’t heard that much about a major trial where the firm and its executives are being asked how they secured that immense power. Why?

There are several possibilities, but in my view, the most obvious reason is that the judge in the case, Amit Mehta, is effectively holding the contest in secret. Last week, according to our calculations, over half of the trial, including testimony from key witnesses, happened in closed session, unavailable to the public.

Nico Grant (Hacker News):

But the documents viewed by The Times showed that Google understood the power of defaults in channeling users to a product as it tried to change Apple’s selection of Safari as the iPhone’s default web browser.


Google executives figured that if users had to make a choice, the number of European iPhone users who selected Chrome could triple, according to documents reviewed by The Times. That would mean the company could keep more search ad revenue and pay less of it to Apple.


Update (2023-11-27): David Pierce:

Even if it’s easy to switch browsers or platforms or search engines, the one that appears when you turn it on matters a lot. Google obviously agrees and has paid a staggering amount to make sure it is the default: testimony in the trial revealed that Google spent a total of $26.3 billion in 2021 to be the default search engine in multiple browsers, phones, and platforms.


Its entire ad business — which also includes YouTube ads — made a bit under $90 billion in profit. This is all back-of-the-napkin math, but essentially, Google is giving up about 16 percent of its search revenue and about 29 percent of its profit to those distribution deals.


Most of that money, of course, goes to Apple. The New York Times recently reported that Google’s deal to be the default search engine in Safari across Google products cost the company about $18 billion in 2021.

John Gruber:

So somewhere between 20-25 percent of Apple’s Services revenue comes from these payments from Google alone.

But probably much more of the Services profit.

This whole partnership with Google is the weakest link in Apple’s overall privacy stance. Google generates so much money from search through user tracking that Apple would consider contrary to its own internal values. If Apple were to run its own search engine, it would be far more private than Google Search. But instead they partner with Google, set Google as the default for Safari on all platforms, and share in Google’s profit to the tune of around $20 billion/year.

Leah Nylen (via Hacker News):

Google pays Apple Inc. 36% of the revenue it earns from search advertising made through the Safari browser, the main economics expert for the Alphabet Inc. unit said Monday.

Tuta (via Hacker News):

It looks like these payments were made so that Apple themselves would not develops their own search engine according to testimony made by Apple executives in September 2023.

Update (2023-12-06): John Gruber:

All those developers complaining about Apple’s 70/30 split for App Store revenue should take note: even Google only gets a 64/36 split for search.

Mike Masnick:

How does antitrust handle a situation where the company that is so dominant is in that position because is legitimately offers a better product by a wide margin.

I would love to see more real competition in the search space. Bing and DuckDuckGo continue to just not cut it. I’m intrigued by startups like Kagi (which I’ve been using, and which actually seems pretty good), but it’s not clear how antitrust helps companies like that get a wider audience.

Via John Gruber:

I think it’s pretty clear that Apple and Google’s TAC deal is the result of fair competition, not an obstacle to it.

I don’t know that it’s unfair, but surely it creates a huge moat to prevent Apple from developing its own search engine or entertaining offers from others that might challenge Google. The fact that the split seems so favorable to Apple also suggests that Google views this as strategic, not just a mutually beneficial revenue share.

I also wonder whether there’s something in the TAC deal that requires Safari to prevent you from adding new search engines or whether Apple just doesn’t want to allow that.

See also: MacRumors.

Update (2024-05-03): Juli Clover:

Google paid Apple $20 billion in 2022 to be the default search engine for Safari on iPhone, iPad, and Mac, reports Bloomberg. The information was revealed in court documents Google provided in its antitrust dispute with the United States Department of Justice.


Secondary Apple ID Mess and Inadvertent Password Reset

I was doing some testing with Apple Mail on my test Mac using my test iCloud account. I made a fresh macOS user account and entered the Apple ID, but Apple said it was “locked for security reasons.” Who knows why?

To unlock the account, it wanted me to verify using one of my other Apple devices. I got the notification on both my main Mac and my iPhone. I clicked the button on my Mac to open System Settings, which it did, but it didn’t show a verification button or any security information at all. So I went to the iPhone and tapped the button, which I think said Allow.

It then said I had to change my password. That was annoying because I remember the password for this account, which I frequently enter on test setups where I don’t have access to a password manager. But I picked a new password. I then got a flurry of notifications and e-mails on my Mac. It turns out that it changed the password of my main Apple ID. Why would it do that when it was unlocking the test Apple ID? And why doesn’t the password reset screen tell you which account it’s resetting?

I quickly tried to change the main Apple ID’s password back, but it wouldn’t let me because the password I wanted had been used within the last year. Yes, that was my intent. I’ve been using this password probably back to the opening of the iTunes Music Store. It’s pretty much the only one aside from the passwords for PasswordWallet and my Mac that I’ve memorized. I didn’t want to memorize something new, so I appended a “2” to the end, which I’m sure is really increasing my security.

Of course, since the wrong password got reset, my test account still needed unlocking. I went through the same path again, and again it wanted to reset my password—but this time I declined. The only way out seemed to be to tell it that I didn’t have access to any of my Macs or iOS devices. Then it would let me verify the account using SMS instead.

The verification code never arrived on my Mac, and around this same time my wife called to see why I hadn’t replied to her recent iMessages. I realized that somehow the password reset had disconnected the Messages app on my Mac. It was still logged in and could still send iMessages, but it wasn’t receiving anything. My iPhone and Apple Watch did receive her messages but never notified me, perhaps because they could see that I was active on the Mac? I signed Messages out of iCloud and signed back in, and then I was able to receive new messages, but it never synced any of the old, missed messages to the Mac, even though I have Enable Messages in iCloud checked.

I found the SMS code on the iPhone and reset the test Apple ID. I then signed into iCloud on the test Mac, but it wanted one more verification: Enter the password you use to unlock the MacBook Pro. It said the password was wrong, even though it was the same one I had just entered to log into the test account. The error message said, “Enter Password for Other MacBook Pro. Enter the password for ‘mbp19-sonoma’, which is not the password for this MacBook Pro.” Well, actually, mbp19-sonoma is this MacBook Pro. It turns out that it wanted the password for my other macOS user account on this same MacBook Pro. I guess this is because that account had signed into the same iCloud Keychain. But, as before, it was not clear because it never said which username it was referring to.

Summary: I can now access the test iCloud mail account, but both my test and main Apple ID passwords are changed, and Messages on the Mac still has a gap with messages missing. I will try to remember to always tell Apple that I’ve lost all my devices so that this doesn’t happen again.


Update (2023-10-24): Resetting the Apple ID password also required generating new app-specific passwords (e.g. for Fantastical) and entering them on all of my devices.

6 TB and 12 TB iCloud+ Plans

Juli Clover:

The 6TB and 12TB iCloud + plans can now be purchased through the iCloud + interface as higher-tier options that join the existing 50GB, 200GB, and 2TB storage plans.

The 6TB plan is priced at $29.99 per month, while the 12TB plan is priced at $59.99 per month.


Apple’s new 6TB and 12TB plans can be shared with family members, allowing multiple people to take advantage of the storage increase if Family Sharing is in use.

Adam Chandler:

Being the self-proclaimed king of edge-case issues, here’s what happened to me today causing about 4 hours of chat/phone calls with Apple’s most senior technicians.


The string of interactions just proved to me that Apple doesn’t have technicians who aren’t well trained and great at customer service but instead, the product is a house of cards that even people who are paid to understand it simply don’t. iTools became .Mac and then MobileMe and finally iCloud while iTunes (that used to be synced with AOL accounts) was used by people who spend thousands on music, movies, TV shows, Apps and now subscriptions. These 2 AppleID systems are separate and yet linked with Apple One which is a subscription with an iCloud+ product. You then share all of these benefits with family members and something as innocent as picking the wrong Apple One plan that doesn’t include family sharing causes the house of cards to fall and only through brute resetting and a risk of losing all of your data can you maybe return to the way things were.


Sonoma, iCloud Drive, and Time Machine

Howard Oakley:

Sonoma fixes a long-standing bug in whether local files can be ‘evicted’ to iCloud, or the download removed from your Mac’s local storage. In some circumstances you could find Sonoma downloading everything you have removed from your local storage, which may come as a surprise.


If your Mac has Optimise Mac Storage turned off but has files or folders in iCloud Drive bearing that distinctive icon, then it means that all those files and folders are likely to be downloaded to your Mac’s local storage as soon as it’s upgraded to Sonoma. You therefore need to consider whether this might cause your Mac to run low on free disk space, and plan accordingly.


Until the release of macOS Sonoma 14.0, there has been a bug in the Optimize Mac Storage setting, that has allowed eviction of iCloud files from local storage when that setting is off, and many of us have come to accept that we can still use that feature, even though it shouldn’t have worked.

Howard Oakley:

Some who have upgraded early to Sonoma have reported that, although their Mac’s settings hadn’t changed, with Optimize Mac Storage turned off, their Macs have downloaded fresh copies of every file stored in iCloud Drive, sometimes taking several days to complete. In some cases, while their Mac has still been trying to complete that large sync, Time Machine has been unable to complete any backups, reporting that those files were still synchronising.


Stopping your Mac from syncing with iCloud is, at best, only going to postpone the problem, so that should also be avoided if possible. […] Turning Optimize Mac Storage on could help, by not trying to download a copy of every file in iCloud Drive.


Once iCloud Drive has finished syncing, Time Machine should be able to complete a backup, including all locally-stored copies of files in iCloud Drive. If that still leaves some files stored in iCloud only, you can then download them manually ready for the next backup.

Update (2023-12-19): Marcin Krzyzanowski:

macOS Sonoma changes the iCloud file format, and as a result, everything is supposed to re-sync. This is a little ridicule that it takes weeks now and seems to never finish. I can upload 500MB in a few minutes to cloud storage, so that's not bandwidth.

Friday, October 20, 2023

Apple’s Use of Swift and SwiftUI in iOS 17

Alexandre Colucci (Hacker News):

Unsurprisingly, there has been a significant increase in the number of apps adopting SwiftUI this year. Notable mentions include:

  • The Preferences app with several of its bundles (StorageSettingsUI, WallpaperSettings, MultitaskingAndGesturesSettings, ThirdPartyApplicationSettings, ActionButtonSettings, …)
  • Several binaries related to Health (, HealthUI, MentalHealthUI, WorkoutUI, …)
  • The Home app, which appears to have undergone some major changes (, HomeEnergyUI, HomeUICommon, HomeDataModel, HomeAccessoryControlUI, …)
  • The support for the new Action button (ActionButtonSettings, ActionButtonConfigurationUI, …)
  • Additionally, several other important apps, such as Calendar and Reminders, are now using SwiftUI

In iOS 16, only 4 apps used the SwiftUI-based app lifecycle. In iOS 17, this figure has grown to 14 apps[…]


In the upcoming years, it will be interesting to observe whether Swift begins to spread into low-level firmware, such as the Secure Enclave. Currently, Swift is absent from the Secure Enclave in iOS, although macOS does incorporate it.


The Problem With China and AI

Benjamin Mullin, John Koblin, and Tripp Mickle (Hacker News):

Jon Stewart’s show on Apple’s streaming service is abruptly coming to an end, according to several people with knowledge of the decision, the result of creative differences between the tech giant and the former “Daily Show” host.


The show initially had difficulty gaining traction. By the second season, though, several interviews generated viral clips online, and the season was nominated for the outstanding talk series Emmy.

Benjamin Mayo (Hacker News, MacRumors):

Filming for season three was set to begin soon, but those plans have now been scrapped.

According to the newspaper, Apple executives resisted coverage of some topics Stewart had planned to tackle in the third season, including coverage of China and AI matters.

Mickle was one of the ones reporting previously, based on multiple sources, that Tim Cook and other executives were “giving notes” on Apple’s TV content. Eddy Cue categorically denied the story, but I never found it likely that Apple would be entirely hands-off, and there have been scattered reports since that notes have been given. Canceling a show entirely is a much cleaner way of solving “the problem” and will ensure that other shows won’t need notes on these topics to stay in line.

Nick Heer:

In 2019, Alex Kantrowitz and John Paczkowski reported for Buzzfeed News that Apple was one of several studios which wanted to avoid irking powerful people in China. It is risky for any large studio to be unable to show its productions in China but, as has become a normal point of discussion for me, Apple’s exposure is even greater because of its manufacturing requirements.


Update (2023-10-25): See also: ArsTechnica and Hacker News.

The Average Lifespan of a Smartphone

Isabel Rubio (via Hacker News):

While Marcos Fernández managed to last six years with his previous device, the average lifespan of a smartphone is much lower. In Europe, for instance, it’s about three years, according to the European Environment Office (EEB). This figure is far less than the 25 years that a phone would need to last to offset its negative impact on the environment. The EEB highlights that extending the life of all smartphones in the European Union by just one year would save 2.1 million tons of carbon dioxide on an annual basis between now and 2030… “the equivalent of taking more than a million cars off the road.”


So why does a person, on average, change their smartphone every three years? One of the main reasons is “esthetic obsolescence, the constant search for something new,” explains Mário Barros[…]


What fails most with cellphones is the battery, followed by the operating system and the screen, according to a 2020 study by the Organization of Consumers and Users (OCU).


Some weeks ago, my iPhone 12 started to show some glitches. First, it was the Wi-Fi, which became grayed out in the settings. Shortly thereafter, the Bluetooth followed suit. Before long, my cellular data began acting up, only to completely stop functioning after a few weeks. Finally, the iPhone began spontaneously rebooting.

Having AppleCare+, I naturally expected this to be a minor hiccup. I packaged my iPhone and shipped it to the Apple Repair Center in Elk Grove, California, expecting my device to be returned to me in working order. I was in for a rude shock.

Apple’s technicians allegedly found that my device had been “damaged or modified” in such a way that it wasn’t covered by Apple’s Warranty, AppleCare products, or an Apple Service Program, and thus they refused to repair my device.


Remember, sometimes you need to push through, persist, and speak directly to the right people to get your issue resolved.

Kyle Wiens (Hacker News):

We need to have a serious chat about iPhone repairability. We judged the phones of yesteryear by how easy they were to take apart—screws, glues, how hard it was to change a battery. But repairs have gotten trickier, by design. Software now limits many basic iPhone repairs. That’s why we’ve revised the repairability score for the iPhone 14 from a recommend 7 out of 10 to a do-not-recommend 4.

Although we enthusiastically awarded it a solid score at launch last year, thanks to its innovative repair-friendly architecture—of which we remain big fans—the reality for folks trying to fix these things has been very different. Most major repairs on modern iPhones require Apple approval. You have to buy parts through their system, then have the repair validated via a chat system. Otherwise, you’ll run into limited or missing functionality, with a side of annoying warnings.


Update (2023-10-25): MiltonLumky (via Damien Petrilli):

as a Apple technician who open thousand of new and used phones I’ll have to admit that apple should more control Chinese workers, I’ll saw a lot of finger prints, missing screw, missing parts, bad applied display adhesive etc. etc. It’s really sad, apple sell his devices for a thousand of dollars but they trust low paid overworked employees more than the customers who spend the money… every time when I’ll see „unauthorized modification”, I feel that the customer is simple cheated by big apple


I work as an Apple technichian as well and i can confirm this. Also i have a strong suspicion that if the repair center manages to fuck up the phone in some way, they will sometimes find a way to blame the customer, or mark the device as either modified or tampered with. Even when no modifications or tampering has been done to the device.

I once got a phone returned, repair center refused repair as it had been tampered with. The phone was a replacement unit directly from Apple that was almost brand new, and had issues not related at all to the original issue.

An Apple Library Primer


Apple’s library technology has a long and glorious history, dating all the way back to the origins of Unix. This does, however, mean that it can be a bit confusing to newcomers. This is my attempt to clarify some terminology.


The linker has seen three major implementations:

  • ld — This dates from the dawn of Mac OS X.

  • ld64 — This was a rewrite started in the 2005 timeframe. Eventually it replaced ld completely. If you type ld, you get ld64.

  • ld_prime — This was introduced with Xcode 15. This isn’t a separate tool. Rather, ld now supports the -ld_classic and -ld_new options to select a specific implementation.


The dynamic linker has seen 4 major revisions. See WWDC 2017 Session 413 (referenced below) for a discussion of versions 1 through 3. Version 4 is basically a merging of versions 2 and 3.


Thursday, October 19, 2023

SpamSieve 3.0.1

SpamSieve 3.0.1 fixes almost all of the known issues with version 3.0. It also improves the workaround for the macOS bug where sometimes Mail extensions don’t work at all. So everything that the Mail extension does now has a fallback implementation using AppleScript.

Other interesting bugs were:

I’ve also moved the SpamSieve mailing lists to Sendy, and it’s been working well.


Mojo for Mac

Shashank Prasanna (Hacker News):

Mojo is now available on Mac (Apple silicon) 🎉

In this blog post, we’ll discuss how you can get started with the Mojo SDK on Mac. We’ll take a closer look at how to download and install the Mojo SDK on your Mac, and share popular community projects and resources to help you start your Mojo learning journey. We can’t wait to see what you’ll build. For a deeper dive on components of the Mojo SDK be sure to check out our launch blog post.


Let’s run a matrix multiplication example using matmul.mojo. On My Apple MacBook Pro M2 Max, I get about 90,000x speedup over pure Python 🤯

Mojo can take full advantage of Mac CPU cores and vector units to achieve these speedups. Read our blog post series on speeding up Mandelbrot code for tips and tricks to vectorize and parallelize Mojo code to accelerate your applications.

Like Swift, the plan is for it to be open source, but not right away.


Xcode 15.0.1


Xcode 15.0.1 includes SDKs for iOS 17, iPadOS 17, tvOS 17, watchOS 10, and macOS Sonoma. The Xcode 15.0.1 release supports on-device debugging in iOS 12 and later, tvOS 12 and later, and watchOS 4 and later. Xcode 15.0.1 requires a Mac running macOS Ventura 13.5 or later.

This apparently does not fix a serious bug in Xcode 15.0:

Swift apps built with Xcode 15.0 crash on launch on macOS 10.13. (114820860)

But neither is it listed as a known issue.

Xcode 15.1, now in beta, also does not mention that bug, but it includes a fix for another linker bug:

Binaries using symbols with a weak definition crash at runtime on iOS 14/macOS 12 or older. This impacts primarily C++ projects due to their extensive use of weak symbols. (114813650)


Update (2023-10-25): Xcode 14 does not run on Sonoma or support the new APIs, but Xcode 15.0.1 can’t compile for older versions of macOS. Xcode 15.1 seems to only fix some of the problems but (as it’s a beta) cannot be used to submit to the Mac App Store. So Apple is really squeezing those of us who want to support more than a few macOS versions. I’m still using Xcode 14.2 due to fake compiler errors and test failures in later versions of 14.x.

Wednesday, October 18, 2023

Apple Pencil (USB-C)

Apple (Hacker News):

Today, Apple is bringing more choice to iPad users with a new, more affordable Apple Pencil. With pixel-perfect accuracy, low latency, and tilt sensitivity, the new Apple Pencil is ideal for note taking, sketching, annotating, journaling, and more. Designed with a matte finish and a flat side that magnetically attaches to the side of iPad for storage, the new Apple Pencil pairs and charges with a USB-C cable.

Hartley Charlton:

The new Apple Pencil features low latency and tilt sensitivity like the other Apple Pencil models, but misses out on pressure sensitivity, wireless pairing and charging, double tap to change tools, and free engraving. However, unlike the first-generation Apple Pencil, it does support Apple Pencil hover on the latest iPad Pro models.


The new Apple Pencil is priced at $79 and launches in early November. The first- and second-generation Apple Pencil models continue to be available for $99 and $129, respectively.

It seems pricey even for a budget model, but at least now there’s no cap to lose.


Update (2023-10-24): John Gruber:

On the other hand, though, the fact that there are now three Apple Pencil models, all with different features and which are supported by different iPads, exemplifies just how over-complicated the iPad product lineup is.

Jason Snell:

This is a product that, at least in part, addresses one of the most baffling features of the 10th-generation iPad: support only for the first-generation Pencil via a rickety Lightning-to-USB dongle. This seems to be the Apple Pencil that should’ve been shipped a year ago for that iPad. Why did it have to wait a year?

After that, though, one might start interrogating the structure of the entire iPad product line, but don’t poke a stick in there—you might get a face full of bees. It feels like the iPad product line isn’t quite coherent, but the mess at the low end is the consequence of Apple’s Tim Cook-era strategy to keep old products around to hit specific price points.


But by keeping old products around, Apple is also free to release updated products more often. If Apple had determined that it couldn’t sell the 10th-generation iPad at a price its education customers would pay, it could’ve just… not released the product. Instead, we’ve got a messy product line with two low-end iPads in it, but at least people who want to buy a more modern iPad can do so.

Eric Schwarz:

Although Apple doesn’t share sales figures by model, I’d guess that the best selling iPad is the 9th generation model, followed by the Pros. These changes would create a good/better/best lineup that doesn’t lend itself to “should I buy the regular iPad, the iPad Air, or the 11″ iPad Pro?” and any accessories will work with any iPad (outside of keyboards that only fit based on screen size). The 12.9″ iPad has a very specific customer, as does the mini, so those can be the weird outliers. It may make sense to keep another “step” around in the middle, although it currently feels like there’s a lot of overlap in the middle of the lineup.

Update (2023-11-22): See also: Accidental Tech Podcast.

USB-C Cables Comparison

lumafield (via Hacker News, tweet):

Does Apple’s Thunderbolt 4 cable really warrant its $129 price tag? Or does a $5 cable get the job done just as well? We’ve used our Neptune industrial X-ray CT scanner to uncover the hidden engineering differences between them.


Overall, the Thunderbolt cable is a stunning piece of precision engineering.


Less than 1/10th the price of the Apple cable, the Amazon Basics USB-C to USB-C 2.0 Fast Charger Cable offers charging up to 60 W and data transfer speeds up to 480 Mbps.


The $5.59 NiceTQ USB-C cable claims to transfer data at up to 10 Gbps, lower than the Thunderbolt cable’s 40 Gbps but higher than the 480 Mbps claimed by the Amazon Basics cable.


Update (2023-10-24): Nick Heer:

Lumafield has not presented a useful way to pit the very expensive Thunderbolt cable against comparable alternatives.


I would have loved to see what makes Apple’s $130 cable different from, say, Monoprice’s $50 equivalent or a $20 Maxonar-branded cable. Both seem to have the same specs as Apple’s, and I think assessing the construction differences between those would be more useful. Perhaps Apple’s price tag is not pure markup; there is a surprising difference in the quality of power adapters, for example.

See also: ArsTechnica.

Update (2023-10-30): John Gruber:

Adam Savage has a video up on YouTube with more details, based on the same CT scans from Lumafield that are in the Twitter thread I’m linking to. Amazing stuff.

Clicking to Hide Others in Sonoma

Chip Loder:

In previous versions of macOS, if you wanted to hide all running apps containing a UI on your display, you could simply Option-click anywhere on the Finder’s Desktop. This would hide all other visible running apps and display only the Desktop. [see comment]

Now in macOS Sonoma, if you Option-click on the Finder’s Desktop, only the frontmost running app is hidden. All other visible running apps are still visible in the background.

If you want to hide all visible running apps except Finder in macOS Sonoma, you now click on the Finder’s Desktop without holding down any keys on your keyboard.

I end up triggering this by accident when I click on the desktop to clear the current Finder selection.

If you want the same behavior as in previous versions of macOS - namely to be able to instantly hide all non-Finder apps without the new border or zooming animation, you can still do so. Just Command-Option-click anywhere on the Finder’s Desktop to immediately hide all visible apps.

Or you can turn off the new behavior in System Settings ‣ Desktop & Dock by setting Click wallpaper to reveal desktop to Only in Stage Manager.

Update (2023-10-24): Christian Tietze posted a screenshot of the “notification” the first time you click on the desktop.

Update (2023-10-27): ednl:

An annoying side effect: now, when another app like Safari has focus and I select files on the desktop to delete, the Finder doesn’t get focus! So I can’t immediately use Cmd-Backspace. Example video: starts with Safari in focus, drag on desktop files, Safari still has focus, click on selection to give Finder focus (and don’t lose selection..).

Retcon Beta

Nathan Manceaux-Panot (Mastodon):

Retcon makes rewriting git history effortless.

Move a commit back in time with a single drag-and-drop. Squash, edit or delete in a few keystrokes. In place—no need to enter a special mode and lose all context. Skip rigidly planning everything ahead, and instead manipulate with instant feedback.

Then change your mind: undo anything with ⌘Z, with step-by-step granularity. Never waste time starting a rewrite over; instead, just edit that one line, in that one file, in that one conflict resolution, and then move on.

Tuesday, October 17, 2023

More Stack Overflow Layoffs

Prashanth Chandrasekar (Hacker News):

This is why we have been so focused on our path to profitability, even as we commit to the continued product innovation of Stack Overflow for Teams and the health of the public platform by building out our AI/ML capabilities. This year we took many steps to spend less. Changes have been pursued through the lens of minimizing impact to the lives of Stackers. Unfortunately, those changes were not enough and we have made the extremely difficult decision to reduce the company’s headcount by approximately 28%.

As we finish this fiscal year and move into the next, we are focused on investing in our product. As such, we are significantly reducing the size of our go-to-market organization while we do so. Supporting teams and other teams across the organization are impacted as well. As I mentioned, our focus for this fiscal year and into the next is profitability and that, along with macroeconomic pressures led to today’s changes.

Wes Davis (Hacker News):

After the team doubled its employee base last year, Chandrasekar told The Verge’s Nilay Patel in an interview that about 45 percent of those hires were for its go-to-market sales team, which he said was “obviously the largest team.”

James Rogers (Hacker News):

The data show that 1,059 tech companies have laid off 240,193 employees thus far in 2023. Last year, 1,024 tech companies laid off a total of 154,336 employees, according to


Update (2023-10-27): Ayana Archie (Hacker News):

The Microsoft-owned social media platform LinkedIn is laying off nearly 700 employees, it said in a statement Monday.

About 668 positions across the company’s engineering, product, talent and finance departments will be eliminated. The announcement comes after the company said in May it was laying off 716 employees.

Joshua Bote (Hacker News):

Waymo, the robotaxi company whose presence has expanded across San Francisco in recent months, has slashed jobs for the third time this year.

Update (2023-11-20): Sophie McEvoy (via Hacker News):

Unity has released its financial results for the three months ended September 30, 2023, announcing layoffs despite a significant growth in revenue and a drop in overall net loss.


Update (2023-11-22): Victoria Song:

Bungie is laying off around 100 staffers as well as delaying two of its forthcoming titles: Marathon and Destiny 2’s forthcoming expansion, The Final Shape. The latter is now expected to launch in June 2024, while the former won’t be expected until 2025.

The layoffs, first reported by Bloomberg, are part of ongoing cuts within Sony’s PlayStation division.

Update (2023-12-06): Daniel Ek (via Hacker News):

To align Spotify with our future goals and ensure we are right-sized for the challenges ahead, I have made the difficult decision to reduce our total headcount by approximately 17% across the company.


I realize that for many, a reduction of this size will feel surprisingly large given the recent positive earnings report and our performance. We debated making smaller reductions throughout 2024 and 2025. Yet, considering the gap between our financial goal state and our current operational costs, I decided that a substantial action to rightsize our costs was the best option to accomplish our objectives.

Ian King (via Hacker News):

Broadcom Inc. plans to fire almost 1,300 VMware Inc. employees in California following the completion of a $61 billion acquisition that pushed the chipmaker deeper into the software industry.

Anna Tong (Hacker News):

Videogame software provider Unity Software (U.N) will eliminate 265 jobs or 3.8% of its global workforce and end an agreement with a digital video effects company founded by the “Lord of the Rings” director as part of a “reset,” the company said on Tuesday.

Mike Seymour (Hacker News):

It was just in Dec ’21 that Unity completed its acquisition of Weta Digital’s tools, pipeline, technology, and engineering talent. This acquisition was said to be “designed to empower the growing number of game developers, artists, and potentially millions of consumer creators with highly sophisticated content creation tools.” As part of that deal Unity ‘welcomed’ Weta Digital’s world-class engineering talent of 275 engineers who are known internationally for their architecting, building, and maintaining of Weta Digital tools and core pipeline.

Update (2023-12-19): Sara Eisen and Gabrielle Fonrouge (via Hacker News):

Etsy is laying off 11% of its workforce, about 225 employees.

Etsy CEO Josh Silverman noted in a letter to employees that Etsy’s marketplace has more than doubled in size since 2019 but said today’s macroenvironment and competitive realities call for sweeping changes.

Update (2024-01-04): Ashley Capoot (via Hacker News):

Xerox announced plans to cut 15% of its workforce as part of a plan to implement a new organizational structure and operating model.

Update (2024-01-11): Anna Tong (via Hacker News):

Videogame software provider Unity Software will target laying off approximately 25% of its workforce, or 1,800 jobs[…]

Nico Grant (Hacker News):

Google laid off hundreds of workers in several divisions Wednesday night, seeking to lower expenses as it focuses on artificial intelligence and joining a wave of other companies cutting tech jobs this year.

Ash Parrish and Jay Peters:

Twitch is laying off more than 500 employees, Twitch CEO Dan Clancy announced this morning, reportedly accounting for around 35 percent of its staff.

Alex Heath (Hacker News):

Discord is laying off 17 percent of its staff, a move that CEO Jason Citron said is meant to “sharpen our focus and improve the way we work together to bring more agility to our organization.”

Maxwell Strachan (Hacker News):

Forzano is not alone in his pessimism, according to a December survey of 9,338 software engineers performed on behalf of Motherboard by Blind, an online anonymous platform for verified employees. In the poll, nearly nine in 10 surveyed software engineers said it is more difficult to get a job now than it was before the pandemic, with 66 percent saying it was “much harder.”

Nearly 80 percent of respondents said the job market has even become more competitive over the last year. Only 6 percent of the software engineers were “extremely confident” they could find another job with the same total compensation if they lost their job today while 32 percent said they were “not at all confident.”

Update (2024-02-01): Sarah Perez (via Hacker News):

Disney-owned animation studio Pixar is poised to undergo layoffs this year, TechCrunch has learned and the company confirmed. While sources at the company said the layoffs would be significant and as high as 20% — or reductions that would see Pixar’s team of 1,300 dropped to less than 1,000 over the coming months — Pixar says those numbers are too high. Rather, the studio said the number of impacted employees is still being determined due to factors like production schedules and staffing for future greenlit films.

Amanda Silberling:

Audible, the Amazon-owned audiobook company, is laying off 5% of its staff, according to a leaked memo obtained by Business Insider.


Update (2024-03-01): Sony:

The PlayStation community means everything to us, so I felt it was important to update you on a difficult day at our company. We have made the extremely hard decision to announce our plan to commence a reduction of our overall headcount globally by about 8% or about 900 people, subject to local law and consultation processes.

Atlassian to Abandon On-Prem Perpetual Products

Simon Sharwood (Hacker News):

Atlassian once offered its wares in three forms. The preferred option is from the cloud, in conventional software-as-a-service style that sees Atlassian manage software and infrastructure. Users can also buy datacenter licenses that renew annually and require self-management. Until 2021, you could also get server products under a perpetual license, but users who wanted support and upgrades need to pay.

In 2020 Atlassian decided it wanted to be a cloud company. It argued that doing so would deliver a better experience for customers, and flagged deprecation of its server products.


Owners of server licenses looking for an on-prem migration path therefore faced the prospect of paying for 500 seats – which costs at least a five figure sum each year – even if they have many fewer users.


Another source of concern is that Atlassian’s development plans are now very much cloud first – as typified by last week’s acquisition of asynchronous video outfit Loom and informing users it will only be integrated with cloud products. Holders of datacenter licenses won’t get the apparently revolutionary new embedded video features.

It sounds like they are not completely abandoning on-premises licenses. But they are getting rid of smaller and medium sizes—you have to buy at least 500 seats—and you have to switch to a subscription.


Last year I was second guessing myself if migration to Gitlab EE from Jira, Bitbucket and Jenkins would be worth it, as it was a massive shift for my org. Maybe purchasing a DC version of Atlassian products would be a better alternative, but after short look into invoices and licensing it was decided to go forward with Gitlab.


Not Setting Up Find My Bricked My MacBook

Paul McMahon (via Hacker News):

About 30 minutes before my flight was boarding, I pulled out my laptop to do some last minute work. But when I opened it up, a stranger’s profile greeted me. Evidently we had swapped laptops going through security.


I eagerly opened the box, which had a distinctly exotic scent - perfume or spices, I couldn’t quite place it. Sure enough, there was a bubble wrapped Midnight Blue MacBook Air. Opening it up, there was a Japanese keyboard. Everything good so far.

Booting it up, something was a bit strange though. Rather than being greet by my login screen, I saw “Activate Mac”, and was prompted to select a wifi network. I did this, and then was shown an “Activation Lock” screen.


I get why Apple doesn’t want to tell me why they’re rejecting my requests to disable the activation lock, as it would help an attacker figure out how they might get a stolen MacBook unlocked. […] But come on! I bought the MacBook from Apple. I’m clearly the owner. They presumably can see that my Apple ID is associated with it. The only case I can think of where they legitimately shouldn’t unlock it is if I sold it to someone else and then stole it back from them.

I don’t like how these features are linked. If I don’t turn on Find My Mac, I can’t locate a lost Mac, and it could be bricked due to Activation Lock. But if I do enable Find My Mac, it can be remote-erased by anyone who gets into my Apple ID account.


Building a Classic Mac OS App in Rust

Wesley Moore:

The first challenge was finding a decent specification for the three versions of MacBinary. I was eventually I was able to dig up the following:

I then set about building the parser. I reused the binary parser code from Allsorts since I was already familiar with that code. I hit another roadblock when it came to the CRC in the header. Nothing describes the actual CRC algorithm used. I tried the CRC reversing tool CRC RevEng without success. A lot of existing code seemed to use an implementation that originated in a late 80’s UNIX utility, mcvert, that has unclear licensing. I wanted to use the Rust crc crate instead.


Due to its heritage most of the Mac OS toolbox functions use the Pascal calling convention, which LLVM does not support. To bridge the C (and Rust) world to this Pascal world I had to create trampoline functions in C for each toolbox function that I wanted to call from Rust[…]


I used the “Downloading a URL With HTTP” example from the Networking With Open Transport book as a guide for the functions I needed.


Monday, October 16, 2023

What Happened to __crashreporter_info__?

Seth Willits (in 2022):

The new “ips” crash reports in macOS do not contain assert() information!

(Assertion failed: (myVar != nil), function fooBarTest(), file code.m, line 100)

Problematic because symbolication is often finicky, so it takes a LOT more work to find which assert() failed.


I don’t know whether it’s the “log” that’s to blame or that the ___crashreporter_info__ symbol is no longer supported, but even manually writing to it doesn’t show up in the log anymore.

I’m seeing this problem, too. My extra crash log information is not showing up on macOS 12.4 through 14.1 beta. It did work with previous versions of Monterey.

Dan Raviv:

I’m seeing the same issue. __crashreporter_info__ apparently still not working on macOS 13.6.


Update (2023-11-22): Slava Egorov (via Saagar Jha):

Yeah, it’s really mysterious. I even stepped through it instruction by instruction. There is nothing too magical about it - it just stores string pointer into a special struct in section __DATA.__crash_info. But only the default value seems to reach crash dump.

My current theory is that it gets filtered somewhere (maybe for privacy reasons or security?). But have no idea how to debug that given that I can’t attach myself to whatever daemon that writes these logs. And I doubt it’s open source either.

Saagar Jha:

-[OSACrashReport _regionAtAddress:immutableCheck:] checks if the string is coming from an “immutable region” and if not will shunt the message into a “sensitive” version of the application specific info that is only logged on Apple Internal builds

The check appears to be (does the page not have VM_PROT_WRITE && is the address from the shared cache). abort_report_np will never work because it always copies its string (it does a sprintf). CRSetCrashLogMessage *can* work but you need to hand it something ReportCrash likes

Updating iPhones in Boxes

Malcolm Owen (Hacker News):

Mark Gurman claims that Apple has a system that can update the operating system of iPhones before they get sold. Crucially, it can do so without opening the box.

Consisting of a “pad-like device,” store employees place unopened iPhone boxes onto it to trigger an update. The pad wirelessly turns on the iPhone, runs the software update, then turns it off again.

This sounds convenient, though hopefully they’ve designed it so that it can’t be used after an iPhone has been set up.

Update (2023-11-22): See also: Accidental Tech Podcast.

Sonoma Wallpapers Block Screen Sharing Login

Andrew Cunningham:

The look of the macOS login screen has been tweaked a bunch over the years, but it hasn’t been substantially rearranged since Lion (version 10.7) in 2011. Sonoma rejiggers things, moving the login field to the bottom of the screen, adding a big clock, and using the last logged-in user’s desktop wallpaper and/or screen saver as its background rather than the operating system’s default background image.

John Voorhees:

More impressive, though, is the large collection of aerial screen savers and wallpapers that are reminiscent of the Apple TV’s screen savers.


When your screen locks and the screen saver kick in, each high-resolution, slow-motion video begins. When you log back into your Mac, the screen saver continues for a couple of seconds more, creating a nice transition as your Mac wakes up. Each screen saver can be set as both a wallpaper and screen saver, or you can pick a screen saver that’s different from your wallpaper, although that isn’t currently working for me.

I like the aerial screen savers, and the default Sonoma Horizon looks good. However, they make it almost impossible for me to unlock my Mac via Screen Sharing. The animation of the desktop background behind the login controls is choppy, as expected. What I didn’t expect is that somehow this makes it lose most of the keystrokes for my login password. So I’ve changed to static desktop pictures on the Macs that I use with Screen Sharing.


SecItem: Fundamentals, Pitfalls, and Best Practices


The SecItem API seems very simple. After all, it only has four function calls, how hard can it be? In reality, things are not that easy. Various factors contribute to making this API much trickier than it might seem at first glance.

This post explains the fundamental underpinnings of the keychain.


A critical part of the keychain model is uniqueness. How does the keychain determine if item A is the same as item B? It turns out that this is class dependent. For each keychain item class there is a set of attributes that form the uniqueness constraint for items of that class.


The SecItem API is a classic ‘parameter block’ API. All of its inputs are dictionaries, and you have to know which properties to set in each dictionary to achieve your desired result.


If the keychain contains a generic password whose service (kSecAttrService) and account (kSecAttrAccount) attributes match those supplied but who’s generic (kSecAttrGeneric) attribute does not, the SecItemCopyMatching calls will return errSecItemNotFound. However, for a generic password item, of the attributes shown here, only the service and account attributes are included in the uniqueness constraint. If you try to add an item where those attributes match an existing item, the add will fail with errSecDuplicateItem even though the value of the generic attribute is different.


I regularly see folks use attributes that aren’t supported by the class they’re working with. For example, the kSecAttrApplicationTag attribute is only supported for key items (kSecClassKey). Using it with a certificate item (kSecClassCertificate) will cause, at best, a runtime error and, at worst, mysterious bugs.


A digital identity is the combination of a certificate and the private key that matches the public key within that certificate. The SecItem API has a digital identity keychain item class, namely kSecClassIdentity. However, the keychain does not store digital identities. When you add a digital identity to the keychain, the system stores its components, the certificate and the private key, separately, using kSecClassCertificate and kSecClassKey respectively.


Friday, October 13, 2023

The History of Cover Flow

Andrew Coulter Enright (in 2005):

I thought [the iChat AV] implementation would work perfectly if applied to my Visual Browsing problem.

Like paper cards flipping within a bar jukebox, I pictured each cover flipping in and out of the illuminated center position, revealing the subsequent album/song as the user browsed through the current library (via the linear scroll-bar detailed below). The faster you scrolled, the faster the covers would shuffle in and out of the spotlight.

After you had located the record you wanted, you could simply click on it, and the familiar iTunes Browse View would slide up from the bottom edge of the window (much like the Cover Art Window does currently) allowing you to select a song to play.

Via Stephen Hackett:

The images in the blog post are shockingly close to what the feature would become when Mac developer Jonathan del Strother implemented it in an app called “CoverFlow” that let users flip through their non-iTunes MP3 collections in a much more visual way than scrolling folders in Finder.


CoverFlow was purchased by Apple in 2006, as the app’s website still reports[…]


The final blow came with macOS Mojave in 2018, which swapped out Cover Flow for a new Gallery view[…]

Cover Flow never clicked for me, either.

Atlassian Acquires Loom

Atlassian (via Hacker News):

Loom is an asynchronous (async) video messaging tool that helps users communicate through instantly shareable videos. Today, almost 5 million Loom videos are created every month by their 200,000 passionate customers.


As Atlassian consolidates Loom into its platform, engineers will soon be able to visually log issues in Jira, leaders will use videos to connect with employees at scale, sales teams will send tailored video updates to clients, and HR teams will onboard new employees with personalized welcome videos. By integrating Atlassian’s and Loom’s investments in AI, customers will be able to seamlessly transition between video, transcripts, summaries, documents, and the workflows derived from them.

I went to Loom’s home page and was amused to see a video showing a MacBook Pro. On screen is an app that looks like Fantastical, but the menu bar says “Calendar,” and the names of the menus don’t match either app. Someone also went to the trouble of renaming “Safari” to “Browser.”

Relative Time Labels

Nikita Prokopov:

Why is nobody excited about these “yesterday”/“2 days ago”/“a week ago” labels?

Because they pretend to speak human language, but they actually don’t. For a human, yesterday is “at the day before”, “between 0am..11:59pm the day before today”.

No human uses “less that 24 hours” as the definition of “yesterday”. Computers, unfortunately, do. Add here that different implementations calculate “yesterday” differently (even on the same service) → lack of trust → less useful.

Anything longer ago than yesterday should just say the actual date. It’s absurd that I sometimes need to subtract 9 or 12 days, and “borrow” from the previous month, to figure out when something actually happened. (Sometimes it’s in the tooltip or URL slug, but not always.)

I don’t find relative times particularly useful, either, because some sites will reload-in-place to keep them up-to-date, but others won’t. So “1 hour ago” could mean actually one hour ago or it could mean “one hour before I opened that tab.”

Update (2023-10-14): See also: Hacker News.

iPhone SE 4 Rumors

Marko Zivkovic:

The iPhone SE 4, known internally under the codename Ghost, is expected to receive a new design derived almost entirely from the base model iPhone 14.


As far as the chassis is concerned, two major changes are expected – an Action button and a USB-C port.


As for the back of the device, the next iPhone SE will feature a single camera with the flash aligned in an arrangement similar to the third-generation iPhone SE.

Andrew Cunningham:

I’ve got a soft spot for Apple’s budget phone, the iPhone SE. […] The downside has been that you need to put up with an older design. In the case of the current iPhone SE and the one before that, that has meant a phone with the same 4.7-inch screen and basic dimensions as the iPhone 6, a design that will be a decade old next year.


In-the-know analysts like Ming-Chi Kuo have said that Apple plans to launch the next iPhone SE in 2025, three years after the launch of the current iPhone SE. Three years is a long wait—though not as long as the four-year gap between the original and the second-gen model—but that timeline makes sense if Apple’s template for the next SE really is “an iPhone 14 with some iPhone 15 features.” Even with a weaker camera, an iPhone in the SE’s typical low- to mid-$400 price range with USB-C and an Action Button could risk undercutting the actual iPhone 14, which Apple still sells for $700 and up.

It’s frustrating that the iPhone SE is not on a regular schedule. Although I kind of like the widescreen camera, I would probably wait for the iPhone SE 4 described above if it were coming in 2024. I’m just not that crazy about the sizes or colors of any of this year’s iPhones. I’ve never been a Pro phone person, but I ordered an iPhone 15 Pro to try, since it’s at least slightly smaller than the others.

It should have already arrived, but the Apple Store (again) messed up processing my order and canceled it without telling me. Customer support gave me the lame excuse: “The system had an issue with completing the payment process of your order, even if it was confirmed, so for your security the system canceled automatically,” followed by “since we are having a big volume of purchases for this iPhone 15 sometimes it starts failing with processing the payment information.” So, for now, I have a new order placed, but’s a month away from delivery.

I’ll see how it feels and how I like the camera and then decide whether it’s worth the price or whether I should go through the hassle of getting a new battery for my current phone, which I still love.

Eric Schwarz:

Part of me would love to see the fourth-generation SE build off of the 13 mini design, but most people like bigger phones and something based on the 14 makes sense. This also allows a much larger battery, something that has hurt the second- and third-generation SEs, as well as the 12 mini and 13 mini. Moving to USB-C is mandatory, while the Action Button will sort of future-proof it in the lineup for awhile.

In other old iPhone news, the original iPhone SE that my son has been using recently died of a swollen battery. So, regardless of the number of years of OS support, I think my original iPhone is the only one that lasted 7 years. Every other iPhone or iPad that I kept—plus a MacBook Air—ended up with a swollen battery as the limiting factor.


Wednesday, October 11, 2023

Kaleidoscope 4.2

Christopher Atlan (tweet):

In the window title bar you’ll see a new element that gives you more detail about the task. You’ll see how many conflicts you still need to resolve in that file.


The window has a new area between the title bar and the Path Bar. We call it Context Shelf. […] In the middle, depending on the conflict type (did you really expect Git to only have one?), you’ll see a description of what you are dealing with (a merge in this case) and which refs are involved. We will also try show you branch names when available.


Finally, the Path Bar above the text views has been tweaked to outline exactly what content is shown where.

Another solid update.


FCC Plans to Reinstate Network Neutrality

Jess Weatherbed (Hacker News):

The US Federal Communications Commission (FCC) has announced plans to reinstate landmark net neutrality rules meant to guarantee fair access to the internet and its information, five years after they were repealed by then-president Donald Trump in 2018.

Previous net neutrality rules adopted in 2015 classified broadband service under public utility rules and prevented internet service providers from blocking websites, throttling traffic, or charging more for faster access to certain services. According to FCC Chair Jessica Rosenworcel, the commission is expected to conduct an initial vote on reinstating these rules next month during an October 19th meeting.

I’m overall sympathetic to the network neutrality argument, but it seems like none of the horrors predicted after its removal came to pass. It’s not clear that we got any of the benefits predicted by the other side, either, though. Maybe six years is not enough time, or maybe the threat of neutrality is enough: the companies weren’t going to make drastic changes in response to regulatory changes that could easily be reversed.


Update (2023-10-27): Jon Brodkin (Hacker News):

The Federal Communications Commission today voted to move ahead with a plan that would restore net neutrality rules and common-carrier regulation of Internet service providers.

In a 3-2 party-line vote, the FCC approved Chairwoman Jessica Rosenworcel’s Notice of Proposed Rulemaking (NPRM), which seeks public comment on the broadband regulation plan. Initial comments are due on December 14 and the reply comment deadline is January 17; the docket can be found here.

See also: Net Neutrality Violations: A Brief History.

Unit Testing a SwiftUI Query

Helge Heß:

I’ve been wondering whether I could unit test a SwiftData Query, i.e. the SwiftUI property wrapper coming w/ SwiftData (in beta6 it is actually a macro). Aka whether I could unit test a SwiftUI view. This requires setting up an execution environment for the view, but surprisingly that actually works 🙂

Here’s the gist.


Rescuing Files From Classic Mac OS...with Swift

Jordan Rose:

The biggest benefits of doing this project in Swift are very similar to what the benefits would have been for using C++, back in the 90s, but with even more safety. Take directory walking. In C, this looks something like the following:

FSIterator *iter;
OSStatus err = FSOpenIterator(&directory, kFSIterateFlat, &iter);
if (err != noErr) { return err; }
// use iter
FSCloseIterator(iter); // hopefully no early exits!

But in Swift, without wrapping this API at all…

var iter: FSIterator? = nil
try FSOpenIterator(&directory, .init(kFSIterateFlat), &iter).check()
defer { FSCloseIterator(iter) }

Is it shorter? Not much. Is it nicer? Absolutely! First off, we have defer to ensure no resources are leaked even if there’s an early-exit later in the function. But it’s that throwing check() method that really changes the game.

Tuesday, October 10, 2023

No Counter-Strike 2 for Mac

Tim Hardwick (Hacker News):

Valve on Monday said it has no plans for a macOS version of the recently released game Counter-Strike 2, the follow-up title replacing the hugely popular FPS Counter-Strike: Global Offensive.


Last month’s release of Counter-Strike 2 forced a 26GB update for everyone with CS:GO, including Mac users, but after installation those on macOS soon discovered that the update makes the original game as well as the update unplayable because of the lack of support and no rollback option.


Though CS:GO launched all the way back in 2012, it’s still one of the most popular FPS games available today, with tens of millions of players logging in each month. So even if less than 1 percent of the user base is on Mac, that could still account for hundreds of thousands of players.


Vulkan was designed to succeed OpenGL and address some of the latter’s shortcomings, and while there is an open-source library called MoltenVK that provides a Vulkan implementation on top of Apple’s Metal graphics API, it still lacks some of Vulkan’s advanced features.


Burger King’s Botched Apostrophe Curling

John Gruber:

The various “smart quotes” algorithms you get while typing aren’t smart enough to make this contextual distinction — even very good ones — so you need to do it by hand. Here’s how to type them manually[…]

Mac Windows Linux
Open single quote: ‘ Option-] Alt-0-1-4-5 Use ASCII
Close single quote: ’ Shift-Option-] Alt-0-1-4-6 Use ASCII
Open double quote: “ Option-[ Alt-0-1-4-7 ✊🍆
Close double quote: ” Shift-Option-[ Alt-0-1-4-8 Shift-✊🍆

These key combinations have always seemed weird to me. Why didn’t they use the opening bracket for both opening quotes and the closing bracket for both closing quotes? Then add Shift for the double quote, since it’s “bigger.” That seems easier to remember than [ meaning ", ] meaning ', and Shift meaning close-quote. Maybe the reason is that there’s a third quote type: next to the ] key is the \ key, which is used to type « and (with Shift) ».

The Care and Feeding of Developer ID


I regularly see folks run into problems with their Developer ID signing identities. Historically I pointed them to my posts on this thread, but I’ve decided to collect these ideas together in one place.


This post focuses on traditional signing identities, where you manage the private key. Xcode Cloud introduced cloud signing, where signing identities are “stored securely in the cloud”. These identities have the Managed suffix in Certificates, Identifiers, and Profiles. For example, Developer ID Application Managed is the cloud signing equivalent of Developer ID Application.


Even without a hardware token, there are steps you can take to protect your Developer ID signing identity. For example, you might put it in a separate keychain, one with a different password and locking policy than your login keychain. That way signing code for distribution will prompt you to unlock the keychain, which reminds you that this is a significant event and ensures that you don’t do it accidentally.


Given that Developer ID signing identities are precious, consider making an independent backup of them. To back up a signing identity to a PKCS#12 (.p12) file[…]

Hacking NSAlert Button Appearance

Daniel Jalkut:

Notice how the “Bar” and “Baz” buttons do not have a border or background color, making it difficult to know whether they are even buttons at all. The line between Bar and Baz clunks up the interface even more.


This exploded view from the Xcode view debugger shows that the top, default button, is showing the background for the button, while the other buttons don’t have one at all.


So how would you work around such a problem? As I shared in the thread on the forums, one approach that seems both safe and effective is to patch up the appearance of the buttons, and hide the unwanted line. Because NSAlert performs a great number of modifications as it’s displaying the alert, you have to subclass and override its “layout()” method to catch it after it’s done tweaking the UI[…]

Pierre Igot:

After years of fine-tuning, all the kinks have finally been worked out.


Monday, October 9, 2023

Dischler Testimony on AdWords Fraud

Adi Robertson:

As the second week of the US v. Google antitrust trial gets underway, the Department of Justice is focusing on the real moneymaker behind Google Search: ads. It alleges that Google’s dominance lets it raise prices for advertisers with few repercussions — a claim backed up by Google ads executive Jerry Dischler on the stand.

Bloomberg’s Leah Nylen has the details of Dischler’s testimony, where he describes statements he made under oath in 2020. Dischler says Google tweaks its auction process in ways that may have raised prices in the past by 5 percent for the typical advertiser and could potentially have raised them by 10 percent for some queries. The parties buying the ads would have been unaware of these “tunings” of prices; “we tend not to tell advertisers about pricing changes,” Dischler said.

Matt G. Southern:

One specific change that boosted Google’s revenue, RGSP, altered the ad auction process so that the second-highest bidder would win the top advertising slot, with the actual winner taking the second spot.

Dischler revealed that while he didn’t know if this change led advertisers to place higher bids, it did increase Google’s revenue.

Leah Nylen (via Hacker News):

Michael Whinston, a professor of economics at the Massachusetts Institute of Technology, said Friday that Google modified the way it sold text ads via “Project Momiji” – named for the wooden Japanese dolls that have a hidden space for friends to exchange secret messages. The shift sought “to raise the prices against the highest bidder,” Whinston told Judge Amit Mehta in federal court in Washington.

Google’s advertising auctions require the winner to pay only a penny more than the runner-up. In 2016, the company discovered that the runner-up had often bid only 80% of the winner’s offer. To help eliminate that 20% between the runner-up and what the winner was willing to pay, Google gave the second-place bidder a built-in handicap to make their offer more competitive, Whinston said, citing internal emails and sealed testimony by Google finance executive Jerry Dischler earlier in the case.


Dischler testified on Sept. 19 that Google sometimes tweaked its advertising auctions to ensure it met revenue targets, but most of his testimony occurred in a sealed session. Whinston’s comments Friday described Google’s technique, called “squashing,” that seeks to make the runner-up’s bid more competitive.

It sounds like they are saying that instead of paying 1 cent more than the runner-up you would have to pay 15% more. This is actually less egregious than what I saw when using AdWords myself, which suggested that the auction was totally fake.


Xcode 15 Duplicate Library Linker Warnings

Daniel Jalkut:

Even though I’ve been seeing them all summer, and have been annoyed by them, I made the same mistake I often make: assuming that the problem was too obvious not to be fixed before Xcode 15 went public. Alas.


Something about the way Xcode infers library linkage dependencies has, for several years at least, led it to count dependencies from Swift packages separately from each package, and to subsequently pass the pertinent “-l” parameter to the linker redundantly for each such dependency. In other words, if you have three Swift packages that each require “-lc++”, Xcode generates a linker line that literally passes “-lc++ -lc++ -lc++” to the linker.


So why have the warnings only appeared now? One of the major changes in Xcode 15 was the introduction of a “completely rewritten linker”, which has been mostly transparent to me, but which was also to blame for an issue with Xcode 15 that prevented some apps from launching on older macOS (10.12) and iOS (14) systems. That bug has been addressed in the Xcode 15.1 beta 1 release, which was released this week.

The solution is to add the -no_warn_duplicate_libraries flag.

Daniel Jalkut:

This simple declaration will address the problem on Xcode 15, but on Xcode 14 and earlier it will cause a link error because the old linker doesn’t recognize the argument. What we want to do if the project will continue to be built by both older and newer versions of Xcode, is to effectively derive a different value for OTHER_LDFLAGS depending on the version of Xcode itself.


OTHER_LDFLAGS expands to SUPPRESS_WARNING_FLAGS_YES on my Mac running Xcode 15.1, but on any version of Xcode 14 or earlier, it will expand to SUPPRESS_WARNING_FLAGS_NO, which expands to an empty value. No harm done.

I hope you have enjoyed this somewhat elaborate journey through the powerful but difficult to grok world of nested build settings, and how they can be used to impose rudimentary logic to whichever settings require such finessing in your projects.

Brave Layoffs

Ivan Mehta (Hacker News):

Brave Software, the maker of Brave Browser and Search, confirmed that it has laid off 9% of its staff across departments.

The company didn’t specify how many people were affected, but it corroborated the development and said the decision was driven by the tough economic climate.


macOS Containers 0.0.1

macOS Containers (via Hacker News):

Containers have fundamentally changed the way that modern software is developed and deployed. Containers are supported by a wide range of operating systems including FreeBSD, Solaris, Linux and even Windows, but are not natively supported by macOS. Until now.

We’re announcing initial 0.0.1 release of macOS native containers. Yes, you can now run macOS inside macOS, build images using Docker and distribute them using registries.


Thursday, October 5, 2023

The Absolute Minimum Every Software Developer Must Know About Unicode in 2023

Nikita Prokopov (Hacker News):

The problem is, you don’t want to operate on code points. A code point is not a unit of writing; one code point is not always a single character. What you should be iterating on is called “extended grapheme clusters”, or graphemes for short.


Even in the widest encoding, UTF-32, 👨‍🏭 will still take three 4-byte units to encode. And it still needs to be treated as a single character.


But whatever you choose, make sure it’s on the recent enough version of Unicode (15.1 at the moment of writing), because the definition of graphemes changes from version to version.


Unicode motivation is to save code points space (my guess). Information on how to render is supposed to be transferred outside of the string, as locale/language metadata.


The truth of the matter is that there are several different definitions of “character”, depending on what you want to use it for. An extended grapheme cluster is largely defined on “this visually displays as a single unit”, which isn’t necessarily correct for things like “display size in a monospace font” or “thing that gets deleted when you hit backspace.” Like so many other things in Unicode, the correct answer is use-case dependent.


Avoid Overspending for iPhone 15 USB-C Cables and Chargers

Glenn Fleishman:

Avoid Apple’s $29 USB-C to Lightning adapter. It’s more expensive than most 2-foot-long cables with USB-C plugs on both ends rated for Thunderbolt 4/USB4 speeds of 40 Gbps and 100W.

Instead, I recommend upgrading cables instead of adding adapters. Why keep using a USB Type-A to Lightning cable for charging when you could get a USB Type-A to USB-C replacement for under $10? Or, if adapters still appeal, I encourage you to pick up a well-reviewed six-pack of Lightning, Type-A, and USB-C nubbin adapters for under $10. Carefully read reviews for third-party USB cables and adapters for comments about quality and overheating because not all meet the kind of standards Apple requires of Lightning-based products using the MFi branding and certification program.

John Siracusa is skeptical about the safety of all those little adapters. I’ve found them useful, especially when traveling, because they reduce the number of actual cables that I need to squeeze into my bag. With iPhone switching to USB-C, I should be able to get away with a single Lightning cable for my keyboard, mouse, and AirPods.


Wednesday, October 4, 2023

Google Changes Search Queries to Show More Ads

Megan Gray (via Jason Kottke):

When you enter a query, you might expect a search engine to incorporate synonyms into the algorithm as well as text phrase pairings in natural language processing. But this overhaul went further, actually altering queries to generate more commercial results.

There have long been suspicions that the search giant manipulates ad prices, and now it’s clear that Google treats consumers with the same disdain.


Google likely alters queries billions of times a day in trillions of different variations. Here’s how it works. Say you search for “children’s clothing.” Google converts it, without your knowledge, to a search for “NIKOLAI-brand kidswear,” making a behind-the-scenes substitution of your actual query with a different query that just happens to generate more money for the company, and will generate results you weren’t searching for at all. It’s not possible for you to opt out of the substitution. If you don’t get the results you want, and you try to refine your query, you are wasting your time. This is a twisted shopping mall you can’t escape.


This system reduces search engine quality for users and drives up advertiser expenses. Google can get away with it because these manipulations are imperceptible to the user and advertiser, and the company has effectively captured more than 90 percent market share.


Update (2023-10-09): Nick Heer:

This article was understandably quoted and linked to across the web as its allegations seem to support complaints about a decline in quality of so-called “organic” search results while bolstering rumours that these results are influenced by ad spend.

There are so far no exhibits posted by the U.S. Department of Justice which make this claim. The best match seems to be UPX0204, an internal presentation called “Ranking for Research” (PDF). The version made publicly available is “redacted […] and abridged”, which suggests parts of a longer presentation were shown in court but were deemed too sensitive to show online. Hey, at least Judge Mehta is relaxing the trial’s secrecy a little bit. In any case, the last available page of that exhibit has, as part of a flowchart showing how search works, a “query rewriter”, but there is no suggestion anywhere that it is doing anything more than “interpret[ing the] query”. If I search for “children’s clothing”, I would want to see results from websites selling “kids’ clothing” and “child-sized t-shirts”, for example — “semantic matching” of the type suggested by the quote above.

Zoë Schiffer (via Jason Kottke):

“Google does not delete queries and replace them with ones that monetize better as the opinion piece suggests, and the organic results you see in Search are not affected by our ads systems,” the company told us.

Adam Kovacevich:

I asked Google PR if they could share the trial exhibit that @megangrA’s Wired piece referred to (which this tweet responds to ⬇️). Here’s what they shared[…]

Via granzymes:

The author appears to have gotten the slide exactly backwards. She said the slide showed a query of “children’s clothing” that Google rewrites to be a “Nikolia kidswear” query so that it can sell more ads. But in reality, the slide is describing a fuzzy keyword matching system that takes a query of “Nikolia kidswear” and allows it to match ads with “children’s clothing” keywords.

I’m surprised WIRED allowed such an obviously incorrect article to be published in the first place, particularly when it was by a known partisan (the article discloses that the author is a former Duck Duck Go executive with an obvious bias).

Nick Heer:

When you see the slide, two things are clear:

  1. Based on the template, this slide is probably not from the “Ranking for Research” (PDF) presentation. However, it is possible — Google’s presentations often mix and match slide formatting, and do not even have a consistent display of the company’s own logo.

  2. The title of the slide posted by Kovacevich is “Advertisers benefit via closing recall gaps”. This is a slide about how advertising in Google results can target synonyms and contextually related phrases. It does not appear to relate to “organic” search results at all and, as I mentioned before, is a publicly documented feature.

Wired (via Hacker News):

WIRED editorial leadership has determined that the story does not meet our editorial standards. It has been removed.

Nick Heer:

Though it faced immediate skepticism and Gray presented no proof, the claim was widely re-published; it feels true. Despite days of questioning, the article stayed online without updates or changes — until, it seems, the Atlantic’s Charlie Warzel asked about it.


Gray also said nothing publicly in response to questions about the article’s claims between when it was published on Monday morning to its retraction. In an interview with Warzel published after the article was pulled, Gray said “I stand by my larger point — the Google Search team and Google ad team worked together to secretly boost commercial queries” — but this, too, is not supported by available documentation and it is something Google also denies.

Update (2023-11-22): Davey Alba and Leah Nylen:

Google maintains a firewall between its ads and search teams so that its engineers can innovate on Google’s search engine, unsullied by the influence of the team whose goal is to maximize advertising revenue. […] As part of the emergency, which lasted for seven weeks, engineers from Google’s search and Chrome browser teams were reassigned to figure out why user queries had slowed, according to the documents.

Via Nick Heer:

This and the related internal presentation (PDF) is the closest this trial has so far come to suggesting the kind of juicing reported by Megan Gray earlier this month. The slide on page five of that April 2019 presentation, for example, notes that while there is a “strong separation between Ads and Search”, those two teams are now “working together to recapture this commercial intent”.

Unlimited Kagi Searches

Kagi (Hacker News):

We’re thrilled to announce that unlimited search is now included in our $10/month Professional plan and our Ultimate, Family, and Duo plans. […] With new search sources proving more cost-efficient, the improved efficiency of our infrastructure, and the broader market embracing Kagi, we can again offer an unlimited experience to a broader group of users. We’re excited that this change will let many more people enjoy a fun, ad-free, and user-centric web search.


We are removing the pay-per-use component [of the Starter Plan] (to simplify our billing infrastructure) and making it simple: 300 searches for $5/month.

It’s too bad that you need a Safari extension, which has access to your browser history, because Safari doesn’t just let you add a new search engine.


Thinking in SwiftUI (2023)

Chris Eidhof and Florian Kugler:

In this short book, we will help you build a mental model of how SwiftUI works. We explain the most important concepts in detail and help you build a solid foundation for understanding SwiftUI.

Since SwiftUI is a large framework, the book focuses on the concepts behind the framework that we believe are essential to understand. It is not a reference for SwiftUI’s platform-specific APIs, but rather a guide to honing your intuition about how SwiftUI works.

This is the first paid update to the book.

Control Center in macOS Always Using CPU

Frank A. Krueger (Hacker News):

The Control Center icon in the Mac [menu bar] is always running and always using 1% CPU. Not a big deal, but I finally had to know wtf it was doing…

Turns out it is constantly re-rendering its SwiftUI (running layout) even though there is no UI visible. 🤣 Yay for modern software

Frank A. Krueger:

In a nutshell, no, this is not increasing my power usage by 1%.


One app doing that isn’t a biggie, sure, but it should be fixed anyway. If every background app started doing this, we’d end up with lots of wasted CPU cycles. Plus: on weaker machines that process may take up more than 1% and could actually prevent the CPU from fully throttling.


Functional-reactivity is power-efficient because the view chooses when to ask its components for updated data. SwiftUI was invented for the Apple Watch following this principle.

However, it doesn’t work that way in practice, seemingly because AppKit is repeatedly asking SwiftUI for information that it hasn’t cached.

Marcin Krzyzanowski:

🤔 SwiftUI on macOS underperforming is an understatement. “tell me you rewrite user-facing parts of the operating system interface with new technology without checking if that’s the right tool for the job”


Yep, I notice this in EVERY app based on SwiftUI, especially under Mac OS.

Control Center in macOS is just poorly implemented in general. Lots of little glitches, awkward modes and navigation, and it doesn’t support keyboard navigation.


Update (2023-10-09): SheriefFYI:

This could have significant, subtle power implications - the CPU usage spike might be preventing idle sleep or increasing the system timer tick frequency. Something similar ended up costing me an hour of PC battery life simply by preventing down-clocking.

Apple Adopts Tighter Chinese App Store Rules

Tim Hardwick:

Apple has started requiring new apps to show proof of a Chinese government license in order to be listed on the China App Store, as the company joins rival app stores that adopted the policy years earlier to meet tightening state regulations (via Reuters).


To get the license, developers must have a company in China or work with a local publisher, a requirement that has stymied take-up by a large number of foreign apps.


Most foreign app operators are unlikely to register with the Chinese government, because doing so would force them to comply with data transfer and censorship requirements. This will leave Apple with no choice but to remove them or face legal sanctions.


macOS 13.6 and macOS 12.7

Apple (full installer, IPSW):

This document describes the security content of macOS Ventura 13.6.

Apple (full installer):

This document describes the security content of macOS Monterey 12.7.

See also: MacRumors, Mr. Macintosh.


Tuesday, October 3, 2023

Apple Memory Holes OCSP Preference

Apple, November 30, 2020:

In addition, over the the next year we will introduce several changes to our security checks:

  • A new encrypted protocol for Developer ID certificate revocation checks
  • Strong protections against server failure
  • A new preference for users to opt out of these security protections

In the September 26 version of that page, this whole section is gone (via Fred McCann).


Update (2023-10-09): Jeff Johnson:

I think the credit should go to this HN comment 5 days ago.

Orion Video System

Sebastiaan de With (Mastodon):

Today we’re launching a totally new, totally different app. Meet Orion.

Orion is a small, fun app that helps you use your iPad as an external HDMI display for any camera, video game console, or even VHS. Just plug in one of the bajillion inexpensive adapters, and Orion handles the rest.

It’s free with a $5 upgrade for extra features, and they get Amazon commissions on USB-C to HDMI adapters. The announcement omits any mention of connecting it to a Mac, but the App Store description does say this is possible. Presumably, since it’s just HDMI, it can act as regular primary display for a Mac, whereas Sidecar and AirPlay only work for secondary displays, and Duet Display needs a Mac app and an installation dance. Too bad Lux couldn’t find a name that wasn’t already in use.

Adam Engst:

What a lovely—and amusingly retro—hack!


iPhone 15 Pro Overheating

Dan Milmo (via Hacker News):

Apple is facing complaints from users about overheating in relation to its new iPhone 15 models, with some customers claiming the titanium frame becomes too hot to hold.


There are several posts on the Apple forum referring to overheating of the iPhone 15 Pro series, with one user posting a photo of their iPhone 15 next to a thermometer recording a temperature of 44C (111F). There are also posts on X and Reddit.

Juli Clover:

Complaints about heat issues with the iPhone 15 Pro models are not related to TSMC’s 3-nanometer node that was used for the A17 Pro chip, according to well-respected Apple analyst Ming-Chi Kuo.

Kuo says that overheating could be caused by “compromises made in the thermal system design” that allowed Apple to cut down on the weight of the iPhone 15 Pro models. Kuo says that the reduced heat dissipation area and titanium frame have negatively impacted the thermal efficiency of the devices.

Joe Rossignol:

iPhone 15 Pro and Pro Max overheating concerns continue to make headlines this week, with the topic highlighted by The Wall Street Journal and Bloomberg.


Joanna Stern said her iPhone 15 Pro Max did heat up while charging and performing processor-intensive tasks, such as gaming, but she said her iPhone 14 Pro Max reached similar temperatures in the same test.

Joe Rossignol:

Apple plans to release an iOS 17 update to address a bug that may contribute to the reported iPhone 15 Pro and iPhone 15 Pro Max overheating issue, according to a statement the company shared today with MacRumors and Forbes reporter David Phelan.


Apple’s statement:

We have identified a few conditions which can cause iPhone to run warmer than expected. The device may feel warmer during the first few days after setting up or restoring the device because of increased background activity. We have also found a bug in iOS 17 that is impacting some users and will be addressed in a software update. Another issue involves some recent updates to third-party apps that are causing them to overload the system. We’re working with these app developers on fixes that are in the process of rolling out.

John Gruber:

Not only is the titanium frame of the iPhone 15 Pro models not an issue, cooling-wise, Apple told me, and I have no reason to doubt, that the iPhone 15 Pro and Pro Max are better at heat dissipation than any previous iPhone that used a stainless steel frame (iPhone X, XS, and 11–14 Pro). There is absolutely nothing wrong — and in fact much that is good — with the heat dissipation of the titanium frame, and Apple has no plan to in any way throttle the A17’s performance. They have bugs to fix in iOS 17, that is all.


As for the problematic third-party apps, one of them is Instagram, which has apparently just this week released a version fixing a bug that was so egregious that it was burning through iPhones’ battery life at a rate of 1 percent/minute just sitting idle. YouTuber Faruk “iPhonedo” Korkmaz posted a video this week showing the buggy version of Instagram heating two different iPhones to 100°F: one an iPhone 15 Pro, the other a year-old iPhone 14 Pro. Exact same overheating issue. (I question here why iOS allows any app to consume so many resources that it makes the device too hot to hold comfortably, but the bug was apparently Instagram’s. Same too with Uber. Real shocker that two apps made with a Frankensteinian mishmash of web and native UI toolkits would run amok, resource-wise.)


[Ming-Chi Kuo’s] post on this overheating issue is almost transparently a leak from TSMC — a sort of “Whatever is going on with the iPhone 15 Pro heat dissipation, it has nothing to do with our 3nm process“. Blaming it on the new titanium frame was just wild speculation on Kuo’s part, and by all evidence is completely wrong.


Pixel 8 Leak Promises 7 Years of OS Updates

Ron Amadeo (via Hacker News):

The Pixel 8 is rapidly approaching its October 4 unveiling, but before then there are a bunch of leaks out there. Reliable leaker Kamila Wojciechowska has a whole list of Pixel 8 and 8 Pro specs over at 91mobiles, along with some Pixel market materials. The big news is that Google is finally giving its Pixel phones a longer support window. Pixel phones are getting seven years of updates, which is longer than Apple.


Currently, Pixel phones have three years of OS updates and five years of security updates, which is not only beaten by Apple’s update policy but is also inexplicably worse than many of Google’s Android partners.


Apple doesn’t have a policy written in stone anywhere, but with the iPhone X not making the jump to iOS17, that makes for a five-year major OS update policy if you’re counting to 2022’s iOS16, though with some point updates in 2023 you could argue six years.

This would have been a good topic for Mother Nature to ask about.


Update (2023-10-10): Jon Porter (Hacker News):

Google has the freedom to offer this longer support period thanks to using its own Tensor processor in the Pixel 8 series, which gives it more control over the hardware that’s gone into the phone compared to most of its Android competitors. Fairphone, a competing Android manufacturer that prioritizes lengthy support periods for its devices, has publicly spoken about how difficult it is to continue to support a phone after a chipset manufacturer like Qualcomm ends support for the processor used. In Google’s case with Tensor, the power is in its own hands.


In theory, Google’s pledge should mean the Pixel 8 and Pixel 8 Pro get updated to at least 2029’s Android 20 and maybe even 2030’s Android 21, depending on when in the year the update gets released. But that assumes Google is still using the same annual release cadence for Android seven years from now, even before we get into its somewhat flaky history of ongoing support for other services and initiatives.

Although seven years of security support puts Google out ahead of its mainstream competitors, it’s still technically beaten by Fairphone, which recently announced the Fairphone 5 with a promised eight years of security updates (with 10 years as a stretch goal). However, Fairphone has no plans to sell its fifth-generation device in the US and is also only committed to releasing five major Android OS updates.

Sean Hollister (via Nick Heer):

noticed a gaping hole in Google’s promise — and though we tried repeatedly, Google refused to meaningfully discuss that hole with The Verge this week.

The hole: Google is arbitrarily locking software features behind the Pixel 8 Pro’s $999 paywall, even though the $699 Pixel 8 has the same Google Tensor G3 processor, the same camera, and the same seven-year guarantee.


If Google is arbitrarily deciding that Pixel 8 buyers don’t deserve the same software features as Pixel 8 Pro buyers, why would we expect it to give Pixel 8 Pro buyers the same features as Pixel 9 Pro buyers next year when it’s got new phones to sell?

Of course, Apple has been doing this, too.

In fact, we’ve already seen Google do that exact sort of thing: one year ago, the company told Phone Arena that the Pixel 7’s Clear Calling and Guided Frame features would come to the Pixel 6 lineup. Guided Frame is still MIA, and Flegal told us in January that the Pixel 6 wouldn’t be getting Clear Calling after all.

Simone Manganelli:

Why would people actually expect Google to follow through on this, when Google has, as just one example, killed its two-year “Pixel Pass” before two years were even up?

This is pure marketing BS, and people should wait a full 10 years before reporting on it or believing it.

Update (2023-11-22): yassie_j:

Google recently killed off Pixel Pass, a service that would upgrade your Pixel phone after two years and include some extra goodies, like YT Premium, and 200 GB of Drive.

It lasted for only 23 months, meaning that nobody actually benefited from using this service, weeks before the Pixel 8 is released.

Epic Games Layoffs and Bandcamp

Jason Schreier (Hacker News):

Epic Games Inc., the maker of the popular Fortnite video game, is laying off 870 employees as it seeks to rein in costs.

Tim Sweeney (Hacker News):

As we shared earlier, we are laying off around 16% of Epic employees. We’re divesting Bandcamp [to Songtradr] and spinning off most of SuperAwesome.

For a while now, we’ve been spending way more money than we earn, investing in the next evolution of Epic and growing Fortnite as a metaverse-inspired ecosystem for creators. I had long been optimistic that we could power through this transition without layoffs, but in retrospect I see that this was unrealistic.

While Fortnite is starting to grow again, the growth is driven primarily by creator content with significant revenue sharing, and this is a lower margin business than we had when Fortnite Battle Royale took off and began funding our expansion. Success with the creator ecosystem is a great achievement, but it means a major structural change to our economics.

David Gerard (Hacker News):

Epic is privately-held, so it doesn’t have Wall Street analysts to answer to — but it went on a spending spree through 2021 and 2022, and the numbers evidently weren’t adding up. Bandcamp is still profitable, but that makes it just a particuarly saleable non-core business. Also dumped was SuperAwesome, a “youth marketing solutions” company, in an upper management buyout.


Epic only bought Bandcamp eighteen months ago. Nobody could work out quite what Epic could do with Bandcamp. That seems to include Epic. It didn’t have synergy with game development or distribution.

Bandcamp is good, it’s profitable and sustainable and it basically works. Musicians love Bandcamp and depend on it. They worried at the Epic sale and now they wonder what the Songtradr sale means.

Juli Clover:

As for the fight against Apple, Sweeney claims that Epic Games is taking steps to cut down on legal expenses, but will continue on with its legal battles so the “metaverse can thrive and bring opportunity to Epic and all other developers.”


Update (2023-10-10): Here are some links that I meant to post when Epic acquired Bandcamp:

Nick Heer:

To avoid Apple’s 30% surcharge on in-app purchases of digital goods, the Bandcamp app is limited to being a front-end for streaming music and purchasing physical products. Digital files are “not available for purchase on this device”, according to the app, with no explanation for how someone may go about acquiring them.

This is not the only hurdle. Even if you figure out that you must visit the album page through Safari and complete your purchase there, you cannot add the songs to your Music library on an iPhone or iPad. Those shortcomings really are a crappy customer experience; they sure make the iTunes Store or Apple Music look more compelling for a user.

I can see why Epic would want a non-gaming angle for its antitrust arguments, and I can see why Bandcamp would want the lawyers afforded to a larger company. It cannot be the only reason for this acquisition, but I bet Epic’s disagreement with Apple and Google is a rationale for buying Bandcamp. A subsidiary like Bandcamp will help strengthen Epic’s case.

Update (2023-10-27): Ash Parrish (Hacker News):

One of the worst tech labor years ever continues with the news that roughly half of Bandcamp employees have been laid off.

Emanuel Maiberg (Hacker News):

Bandcamp’s entire union bargaining team, the eight union members democratically elected by their peers to negotiate their first union contract, were laid off when Epic Games sold Bandcamp to music licensing company Songtradr on Monday.


Epic Anti-Steering Stay and Supreme Court Petition

Richard Lawler:

Apple was granted a motion putting a hold on the appeals court ruling that would push the company to undo its “anti-steering” rules and let outside developers link to third-party payment mechanisms. The mandate is stayed for 90 days so Apple can file its request that the Supreme Court take up the case.


In their request to block the stay, Epic’s lawyers argued Apple’s claims “have no prospect of Supreme Court review” and that “Apple has no choice but to rely on arguments that are so weak that it previously only mentioned them barely, or not at all.” Epic Games CEO Tim Sweeney tweeted in response to the stay, “Justice delayed, again.”

Despite granting Apple’s request, Ninth Circuit Judge Milan D. Smith Jr. writes, “...while the arguments in Apple’s motion may not be technically frivolous, they ignore key aspects of the panel’s reasoning and key factual findings by the district court. When our reasoning and the district court’s findings are considered, Apple’s arguments cannot withstand even the slightest scrutiny. Apple’s standing and scope-of-the-injunction arguments simply masquerade its disagreement with the district court’s findings and objection to state-law liability as contentions of legal error.”

Michael Love:

[This] whole business seems like nothing but a stalling tactic; Apple is going to wait exactly 89 days to file their cert petition and hope the Supreme Court sits on it for a month or two before rejecting it, so they get an extra few months to dream up new ways to punish developers for offering outside purchase links.

Michael Love:

Apple seems - among other things - to treat “a settlement of a class action exclusively with small developers in which they agreed to waive a trivial anti-steering provision” as dispositive, and bringing up the fact that the same judge that approved that settlement also imposed this one would seem to undermine their argument rather than bolstering it (because presumably she did it knowing that the original settlement was insufficient).

Also their lawyer doesn’t seem to realize that Steam for iOS is an app that exists and undercuts this entire thread of argument[…]

Juli Clover:

Apple does not need to change its “anti-steering” App Store rules while its legal dispute with Epic Games continues to play out, the U.S. Supreme Court decided today. Apple can maintain the App Store rules as is while the Supreme Court considers its appeal, according to Bloomberg Law.

Adi Robertson (Hacker News):

Justice Elena Kagan declined to vacate a stay on a lower court order about Apple’s anti-steering rules, which limit how iOS app developers can direct users to alternate payment methods. Kagan did not issue an explanation for the decision, but Epic’s petition was noted as denied on the Supreme Court’s website.

Juli Clover:

Epic Games today filed a petition for a writ of certiorari with the Supreme Court, which basically means the company is asking the Supreme Court to make a ruling in its ongoing legal battle with Apple.


Epic’s 488 page filing lists several reasons why the Supreme Court should hear the case, focusing on errors made by the lower courts and the significance of the case, as any major App Store change would impact hundreds of thousands of developers.


Apple back in in July was given 90 days after the appeals court ruling to decide whether it would petition the Supreme Court. Apple has not yet contacted the Supreme Court, nor has it hit that 90 day limit. When the 90-day limit expires, Apple will either need to ask the Supreme Court to hear the case or implement the App Store changes that it has been ordered to make.


tvOS 17

Apple (MacRumors):

Apple TV 4K becomes an even more versatile living room device with the launch of FaceTime on tvOS 17 today, bringing new ways to connect with family and friends.1 Users can make calls directly from Apple TV 4K, or start calls on iPhone or iPad, and hand them off to Apple TV 4K. FaceTime on Apple TV 4K takes advantage of Continuity Camera support to wirelessly connect to iPhone or iPad, and leverages the devices’ cameras and microphones to bring participants together on the TV.

Later this year, new tvOS apps from Webex by Cisco and Zoom will take advantage of Continuity Camera and expand their communications capabilities to Apple TV 4K.


Also new with tvOS 17 on Apple TV 4K and Apple TV HD is expanded functionality with Siri. Users can ask more general questions and receive helpful responses, making Siri even more approachable and useful.


Update (2023-10-25): Sigmund Judge:

After using tvOS 17 over the summer, I’m happy to impart that the new features are all positive additions, even though there remains work to be done. So, without further ado, in a MacStories return to tvOS reviews, let’s dive into tvOS 17.


In the short time since tvOS 17’s public release, I’ve already seen Apple TVs used in new ways for production. Once, it was just an AirPlay destination for easier top-down shots and roaming cameras. However, now, an Apple TV connected to a capture device also offers an easy way to create presentations or record conversations thanks to Continuity Camera. When developers unlock the tools that have slowly trickled out year after year, tvOS could be looked upon in a different light from how it’s regarded today.

A full production suite for small creators or extensions to current uses in meeting rooms and educational institutions could be the company’s answer to cost-effective computing in developing countries or perhaps a new way to log into its suite of productivity apps through iCloud. Maybe the TV was dropped from the top of Apple TV’s latest hardware iteration for a reason?

Monday, October 2, 2023

The Bleeding Edge of Swift Concurrency

Matthew Massicotte (Mastodon, via Juri Pakaste):

Swift Concurrency is all about succinct, safe code. Yet, it comes with a surprising amount of subtly and new pitfalls. It’s actually quite easy to accidentally introduce races and hangs. Learn about bringing async/await and actors into your code without the pain.

There’s a lot packed into this short and sweet talk. I think it’s a must-watch.

See also: Semaphore, MainOffender, Queue.


@Model for CoreData

Helge Heß:

ManagedModels is a package that provides a Swift 5.9 macro similar to the SwiftData @Model. It can generate CoreData ManagedObjectModel’s declaratively from Swift classes, w/o having to use the Xcode “CoreData Modeler”.

Unlike SwiftData it doesn’t require iOS 17+ and works directly w/ CoreData. It is not a direct API replacement, but a look-a-like.


A CoreData object has to be initialized through some very specific initializer, while a SwiftData model class must have an explicit init, but is otherwise pretty regular.

The ManagedModels @Model macro generates a set of helper inits to deal with that. But the general recommendation is to use a convenience init like so[…]

I like this general approach, but my experience is that it’s not good to cache the NSEntityDescription. If you return it from a class method, there can be problems if you use the same managed object class with multiple managed object models or multiple instances of the same model when testing. (I avoid the similar convenience methods that are built into Core Data, too.) Maybe this has since been fixed, but I found that it worked better to specify the entity by name in the fetch request so that it gets looked up in the proper managed object model.


Update (2023-10-09): Helge Heß:

Frohlocket, a new release of my #SwiftLang Model macro for #CoreData is out. As suggested by @mjtsai entities are not cached in the type anymore and multiple MOMs can be built from them (MOMs themselves are still cached for other methods that take PersistentModel types, like .modelContainer(for: Todo.self)). And a few more bugfixes related to optionals.

Google at 25

Google (via Hacker News):

Twenty-five years ago we launched Google Search to help you find answers to questions big and small. As we celebrate our birthday, here’s a look back at how our products have evolved over the past 25 years, from autocomplete to generative AI — and how our search for answers will drive even more progress over the next quarter century.

Forty Years of GNU and the Free Software Movement

Free Software Foundation (via Hacker News):

On September 27, 1983, a computer scientist named Richard Stallman announced the plan to develop a free software Unix-like operating system called GNU, for “GNU’s not Unix.” GNU is the only operating system developed specifically for the sake of users’ freedom, and has remained true to its founding ideals for forty years. Since 1983, the GNU Project has provided a full, ethical replacement for proprietary operating systems. This is thanks to the forty years of tireless work from volunteer GNU developers around the world.


Usually combined with the kernel Linux, GNU forms the backbone of the Internet and powers millions of servers, desktops, and embedded computing devices. Aside from its technical advancements, GNU pioneered the concept of “copyleft,” the approach to software licensing that requires the same rights to be preserved in derivative works, and is best exemplified by the GNU General Public License (GPL).

As they note, “While software has become deeply ingrained into everyday life, the vast majority of users do not have full control over it.” Open-source software is more widely used than ever, yet as a user it seems like things are more locked down than ever.

Alas, Stallman recently announced that he has cancer.


Update (2023-10-09): Christine Hall (via Hacker News):

Officially billed as a “hacker meeting,” Biel’s GNU community pretty much pulled out all of the stops for a relatively small one-day event. The speakers’ roster included the likes of Nextcloud co-founder Björn Schießle who talked about “The Next 40 years of Free Software”; Matthias Kirschner, president of FSFE who opened the day with “The FSFE’s Work: An Overview for Free Software Hackers”; and Swiss Parliament member Jörg Mäder, who was on hand to talk about GNU Taler, GNU’s privacy-aware online payment system.

In all, the day was filled with 14 presentations if you include Stallman’s middle of the day keynote.


Stallman talked about Red Hat’s support contracts, which forbid customers from distributing Red Hat’s open-source software. He said the practice might not violate the GPL (“I don’t have a conclusive answer to that”), but that its approach is “antisocial.”


“Children sometimes can get interested in free software,” he said as an answer to his own question. “I’m afraid that there is a problem that happens once the calamity of peer pressure sets in. I was safe from peer pressure. I was completely out of popularity. I gave up on trying to be popular. I just said it’s a waste of time for me to do anything trying to be popular so I won’t bother, and so I was safe. And there are some others who are safe. Maybe we can find them and interest them in free software[…]”