Archive for April 2022

Friday, April 29, 2022

Apple Watch Late Adopter

I started using an Apple Watch SE in January. I’d always thought that I’d get a watch eventually, but I’d long expected to wait for it to mature for a couple more generations. In the end, I gave in to the frustration of not being able to use Face ID to unlock my iPhone while wearing a mask. Naturally, Apple then delivered watch-free unlocking with iOS 15.4, but I’m still glad to be using the watch.

Previously:

Which Devices Should You Boot Your M1 Mac From?

Howard Oakley:

Before going any further, allow me to reiterate: unless you’ve got a compelling reason, only ever boot your M1 Mac from its internal SSD. That’s how it’s designed to work, and that’s how it works best, even when it’s not working properly.

[…]

The best reasons that I know for wanting to boot an M1 Mac from an external disk are when you need to be able to run several different versions of macOS, perhaps for testing purposes.

[…]

One last warning: don’t try cloning its internal SSD to an external disk ‘so that you can boot from that’. Sometimes you can get away with it, but the best way to install macOS on any bootable external disk is using its installer app, and not cloning.

[…]

If you want to use your M1 Mac when it’s booted from an external disk, aim for a Thunderbolt 3 device returning at least 1 GB/s read and write speed, faster if possible.

Around Mavericks or so, macOS started to perform much worse when booted from a spinning hard drive. (This was compared with earlier versions using the same hardware—obviously, adding an SSD made it perform better than before.)

Now, you can definitely tell when you’re using a slower SSD, even though it has at least double the throughput of a hard drive—and much better latency.

Before, I think the difference was that macOS started trying to do more things at once, which played to the hard drive’s weaknesses. Now, I think we’re seeing a different effect, which is that SSDs have gotten a lot faster and macOS is able to take advantage of that. (To a point—even with my new MacBook Pro’s fast SSD I can feel when the system is paging because Downcast or systemstats is using 25 GB of RAM.)

Previously:

Autocorrect Explained: Why Your iPhone Adds Annoying Typos While Fixing Others

Ben Lovejoy:

But yeah, people do complain, and even the guy who created the feature – Ken Kocienda – admits that sometimes it can be more of a hinderance than a help. Indeed, if you think that it’s gotten worse rather than better over the years, that can actually be true …

The reason, paradoxically, is that autocorrect has grown more intelligent over the years, and the more we ask it to do, the more potential there is for new types of errors.

The WSJ’s Joanna Stern went on a mission to learn more about why autocorrect can sometimes be ducking annoying.

[…]

The personalized dictionary looks for words not in the static dictionary, which you have typed three times. That’s the point at which it decides you know what you’re doing, and it’s a real word. However, if you make the same typo three times, it learns that instead!

John Gruber:

Don’t miss the video, which involves some actual ducking ducks.

Louie Mantia, Jr.:

You ever get that absolutely horrible bug in macOS messages where you’re typing a long message and at a certain point it starts chopping up everything you’ve written, replacing characters, moving entire passages, and duplicating text?

Steve Troughton-Smith:

This is the serious autocorrect issue Apple introduced in macOS 12 to Catalyst apps. Twitter also suffers from it. macOS 11, no problem

Previously:

Update (2023-03-28): Todd Thomas:

“There’s no possible way I could guess what you were trying to type…”

Thursday, April 28, 2022

Apple’s Q2 2022 Results

Apple (Hacker News):

The Company posted a March quarter revenue record of $97.3 billion, up 9 percent year over year, and quarterly earnings per diluted share of $1.52.

[…]

“[We] set an all-time revenue record for Services and March quarter revenue records for iPhone, Mac, and Wearables, Home and Accessories.”

Also, the second best Mac quarter of all time (after last quarter).

See also: Jason Snell (tweet).

Previously:

Update (2022-04-29): See also: Jason Snell’s transcript, MacRumors, Hacker News.

Wednesday, April 27, 2022

AttributedString’s Codable Format

Ole Begemann:

The problem is that the character offsets that define the runs aren’t guaranteed to be stable. The definition of what constitutes a Character, i.e. a user-perceived character, or a Unicode grapheme cluster, can and does change in new Unicode versions.

[…]

The people on the Foundation team know all this, of course, and chose a better encoding format for Attributed String.

[…]

This is an array of runs, where each run consists of a text segment and a dictionary of formatting attributes. The important point is that the formatting attributes are directly associated with the text segments they belong to, not indirectly via brittle byte or character offsets.

Apple Self Service Repair Now Available

Apple (Hacker News, MacRumors):

Apple today announced Self Service Repair is now available, providing repair manuals and genuine Apple parts and tools through the Apple Self Service Repair Store. Self Service Repair is available in the US and will expand to additional countries — beginning in Europe — later this year.

The new online store offers more than 200 individual parts and tools, enabling customers who are experienced with the complexities of repairing electronic devices to complete repairs on the iPhone 12 and iPhone 13 lineups and iPhone SE (3rd generation), such as the display, battery, and camera. Later this year the program will also include manuals, parts, and tools to perform repairs on Mac computers with Apple silicon.

Stephen Hackett:

The manuals needed for repairs are published on Apple’s support website but the Self Service Repair store can be found at selfservicerepair.com I was expecting these parts to be sold on Apple’s website, but the company has decided to spin this secondary website up for purchasing parts and tools.

The site is decidedly different from Apple’s own. The design is basic and feels pretty cheap.

(When’s the last time you saw Apple use Roboto for a typeface?)

Elizabeth Chamberlain:

While it’s a great step for repair, and a change of course for the mighty Apple, the program doesn’t do what Right to Repair legislation around the world aims to do. A true right to repair will give independent repair shops a chance to compete in the repair marketplace, bringing down the cost of repairs for everyone. Unfortunately, this program expands the freedom to repair with one hand, while locking the door with the other. Integrating a serial number check into their checkout process is a dire omen and could allow Apple the power to block even more repairs in the future. Building the technology to provision individual repairs easily sets Apple up as the gateway to approve—or deny—any repairs in the future, with parts from any source.

Jason Koebler:

Most interestingly and most excitingly, we are finally getting an official look at the repair tools and repair guides that Apple’s own stores and technicians use. Even these tools aren’t outrageously priced. A “heated display removal fixture,” used to take off the screen costs $256.35, which is a lot of money for a single repair but perhaps more reasonable if you’re a small business doing screen replacements every day. Apple is also letting customers rent a giant toolkit for $50, which is a fun idea and is similar to what places like Auto Zone do for car repairs.

[…]

It’s not all great news, however. As we’ve pointed out before, these corporate-led repair initiatives are not a replacement for right to repair legislation. Apple is voluntarily offering this program and is still setting the terms for which repairs it is willing to sanction and which parts it is willing to sell.

Previously:

Update (2022-05-09): Benjamin Mayo:

Pricing of parts vary, depending on the repair and device type. For example, an iPhone 13 Pro display repair bundle is priced at $269. A battery bundle is $71. For context, you can actually get your iPhone battery serviced through Apple for slightly less money; only $69. An Apple screen replacement service of an iPhone 13 costs $279, only $10 more than the Self Service cost.

Juli Clover:

We were curious how the Self Service Repair program works and how it compares to the simplicity of bringing a product in to Apple for repair, so we had MacRumors videographer Dan Barbera order up a repair kit to replace the battery of his iPhone 12 mini.

Dave Mark:

Is the Self Repair Program Apple addressing a need, filling in a gap? Or is it a PR move, staving off criticism/punitive legislation?

No matter the motive, if I ran an indie repair shop, I’d be happy this existed. Perfect? No. But IMO, a move in the right direction.

Quinn Nelson:

Apple launched its SSR program with 97 lbs of tools shipped in a Pelican case just to perform the simplest repair. Does the tools Apple uses in store really make a difference or are they overkill? In this video, we find out.

Via Jesper:

The entire experience is a confounding mix of thoughtful little touches and issues being solved with a ridiculous, over-the-top sledgehammer approach, more or less because Apple can afford it.

Update (2022-12-06): Apple (MacRumors, Hacker News):

Apple today announced Self Service Repair is now available in eight European countries, providing repair manuals and genuine Apple parts and tools through the Apple Self Service Repair Store. Customers who wish to complete their own repairs will be able to perform many of the most common repairs for the iPhone 12 and iPhone 13 lineups, and Mac notebooks with Apple silicon.

Nick Heer:

But while you can buy parts for M1 Mac laptops and those older iPhone models, parts for desktop Macs, M2 models, and the iPhone 14 and 14 Pro remain unavailable.

Tuesday, April 26, 2022

Studio Display 15.5 Firmware Beta

Juli Clover:

Apple in March promised a firmware fix for the Studio Display to address an issue with the webcam, and according to an Apple spokesperson that spoke to The Verge, the firmware beta released today does indeed fix the webcam problem.

[…]

The firmware brings updated “camera tuning, improved noise reduction, contrast, and framing.”

Jason Snell (tweet):

This video is from two Studio Displays, one placed directly in front of the other. One display has the original shipping firmware, the other updated firmware. Judge the differences for yourself!

Jason Snell (tweet):

In general, I’d say the new firmware generates a better picture. A lot of that is down to the fact that it seems to prefer a wider crop. That’s good, because it means it’s using a larger portion of the Center Stage camera’s 12 megapixel image. More pixels should equate to a better image.

I’m not sure I have figured out how the Center Stage framing algorithm may have been tweaked. An advantage of the new, wider crop that Center Stage seems to prefer is that it requires less panning in general—a slight shift in posture isn’t nearly as dramatic when there’s more room around a face in the frame.

James Thomson:

Comparing the 15.5 (1st pic) and 15.4 (2nd pic) firmware for the Studio Display camera. There’s a lot less noise, and a touch more contrast, but it’s still quite washed out compared to the iMac Pro camera (3rd pic, taken last month).

The iMac Pro one—using a 2 MP camera from 2017 without the benefit of an A13—is so much better. If this improved version is what Apple intended, it seems like they made a terrible design choice with the Studio Display.

Previously:

Update (2022-04-27): Nilay Patel (tweet):

It’s not going to blow anyone’s mind, but it’s definitely not as immediately broken-looking as before. There’s a little more detail in my face, less noise in the background, and the colors are definitely more accurate. (I look like I have actually seen the sun in the past year.) It does seem like Apple’s decision to put a wide-angle lens on this camera for Center Stage support is working against image quality here — no matter what, it’s cropping down that sensor, giving the whole system less data to work with.

Juli Clover:

In practice, if you watch our video up above, there are noticeable quality updates, but the difference is subtle. Colors are not as pale, there’s improved contrast, and the overall look is a bit more vibrant. Depending on lighting, there isn’t a huge difference in sharpness, but the changes seem to be an overall net improvement.

Filipe Espósito:

When Apple announced Studio Display, it promised “sensational” webcam quality. However, as customers got their hands on the product, they noticed that the images captured by the built-in camera were not good. Apple is now rolling out a beta software that promises to fix some of these issues – but the thing is, Studio Display’s poor webcam quality is not a software bug after all.

[…]

So while an iPhone is capable of taking a real 12-megapixel selfie, Center Stage cameras capture images at 12 megapixels using the ultra-wide lens and then digitally crop them to look like a regular photo or video. This process results in less-sharp images.

Mark Gurman:

In hindsight, it appears Apple knew this all along. Their original response: “We’ll be making improvements in a future software update." The word “fix” is never mentioned. There were some sites that claimed adamantly it wasn’t a hardware issue though. Appears it is.

Steve Troughton-Smith:

I don’t understand how the biggest camera company in the world thinks it’s okay to put such mediocre cameras in its multi-thousand-dollar products.

Jason Snell:

Should it just be a standard 4K webcam that doesn’t move instead of a CS camera with all those issues? Probably. But someone at Apple fell in love with that CS hardware.

James Thomson:

I recorded video directly from the Studio Display with 15.5 (1st pic) and the iPad Pro (2nd pic), and they are definitely closer, though I think the iPad Pro is still a bit better contrast-wise.

Mike Rundle:

I’m still shocked that Apple produced this. It’s impossible that Apple tested it thoroughly and saw a completely different quality before it hit the manufacturing line: they knew it looked that bad during various stages of early development and gave it the green light

Nick Heer:

Apple is usually great at making cameras perform well and its marketing emphasizes the new camera system in this display. Something is going very wrong here.

James Thomson:

[There’s] totally enough information in the output from the Studio Display to do a better job of rendering my face (I manually tweaked colours in Photoshop).

Maybe there’s still hope with some ML or even just basic calibration options?

Jasper Hauser:

What’s utterly weird to me is that the histogram clearly shows that the white balance is pretty off. It’s almost as if the iOS camera team was in no way involved in leveraging their image processing knowledge. Why?

Update (2022-04-28): Carolina Milanesi:

So I did a quick video comparison with my DSLR and the #AppleStudioDisplay after the update. A pretty clear improvement that serves most needs for a day spent in video meetings.

Infinite Mac

Mihai Parparita (tweet, Hacker News):

I’ve extended James Friend’s in-browser Basilisk II port to create a full-featured classic 68K Mac in your browser. You can see it in action at system7.app or macos8.app.

[…]

At this point I switched my approach to downloading pieces of the disk image on demand, instead of all upfront. After some false starts, I settled on an approach where the disk image is broken up into fixed-size content-addressed 256K chunks. Filesystem requests from Emscripten are intercepted, and when they involve a chunk that has not been loaded yet, they are sent off to a service worker who will load the chunk over the network. Manually chunking (as opposed to HTTP range requests) allows each chunk to be Brotli-compressed (ranges technically support compression too, but it’s lacking in the real world). Using content addressing makes the large number of identical chunks from the empty portion of the disk map to the same URL. There is also basic prefetching support, so that sequential reads are less likely to be blocked on the network.

Along with some old fashioned web optimizations, this makes the emulator show the Mac’s boot screen in a second, and be fully booted in 3 seconds, even with a cold HTTP cache.

[…]

While Emscripten has an IDBFS mode where changes to the filesystem are persisted via IndexedDB, it’s not a good fit for the emulator, since it relies on there being an event loop, which is not the case in the emulator worker. Instead I used an approach similar to uploading to send the contents of a third ExtFS “Saved” directory, which can then be persisted using IndexedDB on the browser side.

It includes BBEdit 2, CodeWarrior 4, GraphicConverter, Hotline, KPT Bryce, Netscape, and lots of games.

Previously:

The Story of iBeer

Quinn Myers (via Nick Heer):

In the year leading up to the App Store’s debut, Apple sought out developers to create software that put the iPhone’s prowess on display. One of those developers was down-and-out, 37-year-old magician Steve Sheraton. “Apple started scouting for developers, and they approached me because I’d made a YouTube video where I made the phone look like a glass of beer,” Sheraton recalls. “They wanted me to make an app out of that because they obviously thought it would show off the phone pretty well.”

To be sure, Sheraton’s path to creating an app that would be featured in tandem with the new App Store was several years in the making. The idea itself harkened back to Sheraton’s career in magic. “Anything that uses visual effects to cause shock or humor is up my alley,” he tells me. “I built the very first iteration of this mechanism for the Palm Pilot, called E-spresso, which turned the little monochrome screen into a cup of coffee — but because it didn’t have an accelerometer, I just made it a video that you could time with your drinking motion.”

[…]

Before the App Store was even a concept, Sheraton started selling the beer-drinking video file for $2.99. “It was just a little video file that people had to hardwire in and download via iTunes,” he says. “But I probably made around $2,000 a day for the longest time from that.”

Dave Mark:

A Reddit AMA with the creator of one of the first iPhone apps that went viral, made millions.

Video Conferencing Apps Send Audio When Muted

Jason Daley (PDF, via Tristan Greene):

They used runtime binary analysis tools to trace raw audio in popular videoconferencing applications as the audio traveled from the app to the computer audio driver and then to the network while the app was muted.

They found that all of the apps they tested occasionally gather raw audio data while mute is activated, with one popular app gathering information and delivering data to its server at the same rate regardless of whether the microphone is muted or not.

The researchers then decided to see if they could use data collected on mute from that app to infer the types of activities taking place in the background. Using machine learning algorithms, they trained an activity classifier using audio from YouTube videos representing six common background activities, including cooking and eating, playing music, typing and cleaning. Applying the classifier to the type of telemetry packets the app was sending, the team could identify the background activity with an average of 82% accuracy.

Previously:

Update (2022-04-27): See also: Hacker News.

Update (2022-04-29): See also: Bruce Schneier.

Update (2022-05-09): Rogue Amoeba:

With SoundSource’s Input muting, you can be certain your mic is muted.

Previously:

Monday, April 25, 2022

Elon Musk Buys Twitter

Twitter (Hacker News):

Twitter, Inc. (NYSE: TWTR) today announced that it has entered into a definitive agreement to be acquired by an entity wholly owned by Elon Musk, for $54.20 per share in cash in a transaction valued at approximately $44 billion. Upon completion of the transaction, Twitter will become a privately held company.

Elon Musk:

Free speech is the bedrock of a functioning democracy, and Twitter is the digital town square where matters vital to the future of humanity are debated. I also want to make Twitter better than ever by enhancing the product with new features, making the algorithms open source to increase trust, defeating the spam bots, and authenticating all humans. Twitter has tremendous potential – I look forward to working with the company and the community of users to unlock it.

Frank Thelen:

Inflation ;-)

Twitter: $44 billion (Elon Musk)
Slack: $28 billion (Salesforce)
LinkedIn: $26 billion (Microsoft)
WhatsApp: $19 billion (FB)
Skype: $8.5 billion (Microsoft)
YouTube: $1.65 billion (Google)
Tumblr: $1.1 billion (Yahoo)
Instagram: $1 billion (FB)

Casey Newton:

After the announcement, sentiment in the public Slack channels remained largely concerned and negative, employees told me. “I was kind of surprised how much people seemed like they were giving up,” one told me. “Big bummer.”

But in one-on-one discussions, responses were more tempered. Some employees I’ve spoken with are open to the idea that a private Twitter run by Musk stands a better chance of improving the service than would a public company beholden to its shareholders. They like the fact that he wants to eliminate harmful bots and bring more clarity to how recommendation algorithms work.

[…]

In the meantime, the other big question looming over all this is who will run Twitter day to day.

Update (2022-04-26): Jack Dorsey:

The idea and service is all that matters to me, and I will do whatever it takes to protect both. Twitter as a company has always been my sole issue and my biggest regret. It has been owned by Wall Street and the ad model. Taking it back from Wall Street is the correct first step.

In principle, I don’t believe anyone should own or run Twitter. It wants to be a public good at a protocol level, not a company. Solving for the problem of it being a company however, Elon is the singular solution I trust. I trust his mission to extend the light of consciousness.

Elon’s goal of creating a platform that is “maximally trusted and broadly inclusive” is the right one. This is also @paraga’s goal, and why I chose him. Thank you both for getting the company out of an impossible situation. This is the right path...I believe it with all my heart.

Greg Roumeliotis:

The Twitter transaction was approved by the company’s board and is now subject to a shareholder vote. No regulatory hurdles are expected, analysts said.

See also:

Update (2022-05-09): Mike Davidson:

Some people — although no employees I am aware of — seem to think this is the greatest news in the world. Some people think it’s the worst news they could imagine. Is it possible though that it’s neither? According to Costolo’s Razor, this is probably the case… but we can’t say with certainty until we know.

I have several things I’m very worried about, and also several reasons why I think things might turn out okay anyway.

Update (2022-08-25): Felix Salmon (Hacker News):

Elon Musk has a “right not to consummate” his acquisition of Twitter and a “right to terminate the merger agreement,” according to a letter from his lawyers to the Twitter general counsel Vijaya Gadde sent Monday morning.

How macOS Manages M1 CPU Cores

Howard Oakley:

macOS doesn’t provide direct access to cores, core types, or clusters, at least not in public APIs. Instead, these are normally managed through Grand Central Dispatch using Quality of Service (QoS) settings, which macOS then uses to determine thread management policies.

[…]

macOS itself adopts a strategy where most, if not all, of its background tasks are run at lowest QoS. These include automatic Time Machine backups and Spotlight index maintenance. This also applies to compression and decompression performed by Archive Utility: for example, if you download a copy of Xcode in xip format, decompressing that takes a long time as much of the code is constrained to the E cores, and there’s no way to change that.

[…]

In the original M1 chip, with 4 E cores, QoS 9 threads are run with the core frequency set at about 1000 MHz (1 GHz). What happens in the M1 Pro/Max with its 2 E cores is different: if there’s only one thread, it’s run on the cluster at a frequency of about 1000 MHz, but if there are two or more threads, the frequency is increased to 2064 MHz. This ensures that the E cluster in the M1 Pro/Max delivers at least the performance for background tasks as that in the original M1, at similar power consumption, despite the difference in size of the clusters.

Previously:

Update (2022-05-09): Howard Oakley:

In many cases, these appear to demonstrate that running code exclusively on E cores uses more energy, not less.

[…]

This result occurs because Activity Monitor, currently version 10.14 in macOS 12.3.1, doesn’t know the difference between processors with identical cores running at fixed frequency, and Apple’s M1 chips, with two different types of core and variable frequencies for each cluster of cores. Given that it’s now nearly 18 months since Apple started shipping its first M1 Macs, you might think that a little surprising. It’s even worse that Activity Monitor’s errors are discouraging developers from making better use of the cores in M1 chips.

[…]

Until Apple updates the figures returned by Activity Monitor for M1 chips, confounding by core type and frequency makes it not just useless, but actually misleading for comparing CPU % or energy. If you need to assess those, for example when considering whether to let the user change the QoS of threads in your code, the only reliable tool is powermetrics, which provides details of cluster frequencies and power use, as well as active residency.

Howard Oakley:

I show how you can get accurate estimates of power and energy use, and how the E cores in M1 chips can be far more efficient than the P cores. Today’s compression task required less than a third of the energy when run on the E cores, than on the P cores.

Update (2022-05-26): Howard Oakley:

  • In real-life use, E cores are normally managed by macOS to run at frequencies of 600 MHz (idle), 972 MHz (one or few threads) or 2064 MHz (multiple threads), with cluster power up to 621 mW.
  • When running macOS tasks, P cores are commonly used only in brief bursts at a wider range of frequencies, with cluster power up to 2,000 mW.
  • macOS strategy is to load E cores heavily with system tasks, and spare P cores for user tasks. This ensures the user is unaware of and unaffected by heavy system workloads. It also minimises battery use in notebooks.

App Store Removing Old Apps That Still Work

José Adorno (Hacker News, MacRumors):

Apple has been sending some developers an email titled ”App Improvement Notice,” warning that the company will remove from the App Store apps that haven’t been ”updated in a significant amount of time.”

As first reported by The Verge, developers have been complaining over social media about this new policy, as this could be harmful for indie and game developers. One of them, Twitter user Protopop Games, shared a screenshot of the email sent by Apple[…]

Their Motivoto app was last updated about two years ago, so it’s not that old.

Protopop Games:

I’m sitting here on a Friday night, working myself to to bone after my day job, trying my best to scrape a living from my indie games, trying to keep up with Apple, Google, Unity, Xcode, MacOS changes that happen so fast my head spins while performing worse on older devices.

Kosta Eleftheriou:

Meanwhile, some of Apple’s own apps haven’t been updated for much longer than that.

Rules for thee, but not for me!

Kosta Eleftheriou:

Apple also removed a version of my FlickType Keyboard that catered specifically to the visually impaired community, because I hadn’t updated it in 2 years.

Meanwhile, games like Pocket God have not been updated by the developers for 7 years now[…]

Steve Troughton-Smith:

The constant removal of older games from the App Store is just another bridge burned with game developers, who are far less invested in or tied to Apple’s platforms than app devs.

Harry McCracken:

The notion that all software will always be improved by changes has never been true. Apple is happy to sell music and movies that haven’t changed in decades!

Mark Hughes:

Note, currently all my old apps like Perilar, DungeonDice, etc. are off the store. They all still work. Apple wants me to pay $100 extortion, recompile a bunch of old code that maybe takes minutes, maybe hours or days of catching up to “modern” APIs, before I can resubmit.

And once they start requiring Monterey instead of Big Sur, I have to buy new hardware to even do that, my iMac just misses the deadline for support (but they still give me a notification a couple times a month to “upgrade” to Monterey, so smart & classy).

[…]

I have no problem with Apple’s 30% cut[…] But every other part of the App Store policy is so noxious, all that’s left are shovelware predatory gacha games from China, “social” (masturbatory pictures of yourself) network garbage, and AAA studio teaser games, but not the real games. And now they’re just gonna make it impossible to get anything from the good era.

Dave Sapien:

This has happened to me also (indie game dev) a few years ago. The number is about 20 or so games that have been removed by Apple because they hadn’t been updated in two years. The worked perfectly fine on all the new hardware/software and even work today.

On top of that, I know that there is another 30 or so apps I was involved in with clients that have also been removed.

These weren’t the biggest apps/games in the world, but they were all high quality finished products that had nothing wrong with them. Its just the cost of re-publishing each one out-weighed the return, so I didn’t have much of a choice sadly. I do have plans to re-publish some of them, however they have to take a back seat for current work.

All that to say, I have a large part of my portfolio of work that is no longer available to the public, which just sucks.

Nick Lockwood:

I’ve had several replies from people who say their apps were removed despite not using any tracking of any kinds, so I guess that isn’t it.

The biggest single issue with Apple’s behavior towards developers is the lack of communication. Would it really inconvenience them to disclose the reasons for these decisions, instead of making proclamations from an ivory tower and leaving us all to speculate about the rationale?

Frank Reiff:

Apple just wants everything to be built on their latest SDKs. If that means that millions of developers need to spend a few hours re-building working apps.. it’s a price Apple is willing to pay.

At the end of the day, the development organization simply doesn’t want to support anything but the latest SDK. Less work. Fewer bugs. Less variability. Good for them, somewhat bad for users, a huge pain for devs.. but that’s the hierarchy of needs: Apple, users, devs.

Thomas Fuchs:

Games for 40-year old platforms are easily playable today.

Games released 8 years ago on iOS? Lost forever.

Previously:

Update (2022-04-26): Craig Grannell:

Someone reminded me of this piece I wrote back in 2017. The games list is sobering. Of the 12 I highlighted, Muffin Knight was fixed, Devil’s Attorney and ElectroMaster were updated (much later), and Forget-Me-Not ended up on GameClub (itself seemingly now dormant). BUT…

Of those four games (out of 12), only two of them have been updated within the previous two years. So out of the initial dozen, only a third survived 2017’s Apple apps and games purge, and half of those are now presumably set for the chopping block.

Matt Sephton:

You’re missing the easy workaround for apps that do still work: resubmit the existing binary!

Update (2022-04-28): John Gruber:

We can watch really old movies today — movies that aren’t just years or decades old, but generations old. We can read works of literature that are centuries old. But we can’t play iPhone games that are three years old unless the developers constantly devote time and attention to making sure they keep up with latest SDKs every 2-3 years? Pixar doesn’t have re-render Toy Story every couple of years.

It’s a hard problem and I can see the upsides of Apple automating the clearing of truly abandoned apps from the App Store, but it seems like there ought to be a way for developers of not-updated-for-a-while apps and games to just log into Apple’s developer portal and hit a button to vouch that they still work and don’t need an update. Apple could then only cull the apps from developers who didn’t respond.

Nick Heer:

iOS also has a setting where the system will automatically remove infrequently used apps from your device and re-download them on demand. If these apps are removed, it means a whole bunch of rarely-used but functional apps could effectively disappear if you have not launched them for a while.

Update (2022-04-29): Matt Deatherage (Hacker News):

Every version of iOS contains boatloads of these multiple-version workarounds. They’re not hard to find, either.

[…]

On and on it goes across hundreds if not thousands of APIs multiplied by each new iOS version.

[…]

We think it’s entirely fair for Apple to say, at some point, “We’re not going to support apps that link against an iOS SDK made for phones the OS no longer supports.”

Apple has not said this, at least not that we can find, and that’s probably part of why the move to drop “outdated” apps from the App Store seems capricious and short-sighted. We strongly suspect that if you could look at data for all the apps scheduled for removal, you’d find that they all linked against something older than the iOS 12 SDK, or maybe even older than the iOS 11 one.

milderworkacc:

I think what this argument misses is the complete monopoly Apple has over distribution. This is not about backwards compatibility and tech debt, this is about distribution.

Yes, you can keep an old device around to use old apps or play old games. But to do that you must have preinstalled the old app, and that device can never be broken or reset, lest you lose the app.

The analogy to VHS is not a bad one, but when VHS players (and DVDs, and BluRays) stopped being current, all the old players and tapes didn’t stop working. That is the power that Apple has right now - to remove old apps from existence even for devices and operating systems that support them completely.

Guilherme Rambo:

I had to update a sticker pack I launched back in 2016, which doesn’t even have any executable code 🙃

Update (2022-05-07): See also: Apple’s Explanation for Removing Old Apps.

How RAM Affects Xcode Compilation Speed

Matt Gallagher:

Xcode alone can fill the RAM on a 16GB system. Yeah, okay, half of that is “Cached Files” (not app memory) so the effect is subtle. Incremental builds are 5% slower compared to a 32GB system but clean builds are about the same. (Blue is 16GB, green is 32GB, lower is faster.)

Everything takes different amounts of RAM based on the total RAM of the system. My 16GB system running Xcode shows 8GB “Memory Used” in Activity Monitor but the 32GB system shows 12GB. (The Xcode process shows just 586MB used, the rest spread around 822 other processes.)

Simulator + SwiftUI previews and all the RAM on a 32GB machine is used. Now, the 32GB machine beats the 16GB one by 10% or more. Don’t be too worried if you can afford only 16GB since the difference is never more than 25%, even with a standard spread of apps in the background.

Without a stopwatch, I can’t tell the two apart – both systems have been equally responsive. But now I’ll add a Parallels Windows VM in the background. An easy 30% performance win to the 32GB machine. Worse: the 16GB machine noticeably stalls when swapping between apps.

Do you need 32GB for iOS dev? No, but memory up to 32GB is rarely wasted when IDEs are involved, even the difference is subtle.

He measured this using an Intel MacBook Pro.

Previously:

Heterogeneous Swift Dictionary With Strong Types

Ole Begemann:

The environment in SwiftUI is sort of like a global dictionary but with stronger types: each key (represented by a key path) can have its own specific value type. For example, the \.isEnabled key stores a boolean value, whereas the \.font key stores an Optional<Font>.

I wrote a custom dictionary type that can do the same thing. The HeterogeneousDictionary struct I show in this article stores mixed key-value pairs where each key defines the type of value it stores. The public API is fully type-safe, no casting required.

This is also similar to what the new AttributedString type uses. URLResourceValues takes a different approach, using a struct with optional properties.

Friday, April 22, 2022

Discussions in Brave Search

Brave (via Hacker News):

Discussions are a different entry point to real-human conversations on certain topics, especially ones suffering from a glut of SEO content. This content—so prominent on Google that one recent viral blog post asserted “Google Search is dying”—is driving people away from search as their go-to source of info.

[…]

With Discussions, search results on Brave Search are augmented with actual conversations related to the query, pulled from popular forum sites like Reddit. This allows users to easily see what the community is saying about a topic, rather than just reading content curated by websites.

[…]

To serve these Discussions, the Brave Search ranking algorithm detects queries where a discussion forum might give an alternative or complementary viewpoint to the search results. This “discussion worthiness” score is based on a variety of signals, including:

  • Freshness (or recency) of the topic
  • The popularity of the topic on a given forum
  • The quality of the conversation (as measured by user engagement, such as upvotes or responses)
  • The search quality score (which measures how relevant the discussion is to a query)

It also uses StackExchange as a source.

Previously:

A Cautionary Tale From the Decline of SourceForge

Greg Wilson (Hacker News):

There are thousands of books in print today about starting a business, but only a handful about ending one and moving on. [Tamburri2020] is a deep dive into one particular (and not yet complete) ending: the decline of SourceForge, which was the first (and for many years the largest) open source software forge. Over the course of 22 pages, the authors look at how organizational siloing, the lone wolf effect, and other factors within projects interacted with things like its ill-conceived DevShare program, frequent changes of ownership, and the steady accumulation of technical debt in the site itself.

Damian Andrew Tamburri et al.:

While once mighty keepers of open source vitality, software forges are rapidly becoming less and less relevant. For example, of the top 10 forges in 2011, only one survives today—SourceForge—the biggest of them all, but its numbers are dropping and its community is tenuous at best. Through mixed-methods research, this article chronicles and analyze the software practice and experiences of the project's history—in particular its architectural and community/organizational decisions. We discovered a number of suboptimal social and architectural decisions and circumstances that, may have led to SourceForge's demise. In addition, we found evidence suggesting that the impact of such decisions could have been monitored, reduced, and possibly avoided altogether. The use of sociotechnical insights needs to become a basic set of design and software/organization monitoring principles that tell a cautionary tale on what to measure and what not to do in the context of large-scale software forge and community design and management.

Previously:

CalDigit Element Hub

Eric Slivka:

The Element Hub features a total of eight ports plus a DC-in port for powering the dock. There are four Thunderbolt 4/USB4 ports, which include one upstream port for connecting to the host computer and three independent downstream ports, each of which can support a full 40 Gbps of data transfer, though obviously not all simultaneously. On the opposite side of the dock are four USB-A 3.2 Gen 2 ports that support up to 10 Gbps of data transfer.

While the Element Hub is certainly a compact docking solution, it does require an external 150-watt power brick that’s significantly larger than the dock itself.

It’s $249.99 and includes a Thunderbolt 4 cable.

Colin Cornaby:

[If] you’re using the [Studio Display] with this Thunderbolt hub, plug the display into the Thunderbolt port closest to the power input. The hub prefers to pass DisplayPort from that port. Things like boot pickers work better.

Previously:

Why Do New Macs Have a /AppleInternal Folder?

Jeff Johnson (tweet):

The /AppleInternal folder, as its name suggests, is used by Apple engineers for internal development purposes. Some people external to Apple have discovered that creating an /AppleInternal folder on your Mac can cause behavior changes in macOS that may be useful for development purposes.

[…]

I’m not the only person who’s seen /AppleInternal on a new Mac. Michael Tsai told me that he saw it on his new MacBook Pro too. And there are reports of it on the web, such as a reddit user who found /AppleInternal on a new M1 MacBook Air.

[…]

Although you can’t remove /AppleInternal directly, you can remove the folder /System/Volumes/Data/AppleInternal with the command sudo rmdir /System/Volumes/Data/AppleInternal in Terminal.

Previously:

Thursday, April 21, 2022

Improved Reddit Search

Reddit (via MacRumors, Hacker News):

With this latest update, for the first time in sixteen years everything on Reddit is now searchable - users, posts, communities, and now comments - making Reddit one of the first platforms with this capability. Additional new features include completely new user interfaces for search and improved search relevance.

Kaitaan:

Right now, comment search goes back 2 years, and of course will cover all comments made from here on out. We’re still working out how far back we’ll ultimately be able to index.

Previously:

Open Letter to Apple About Final Cut Pro

Alex Gollner:

On Tuesday 19th April 2022, a group of over 100 people in TV and film production worldwide sent an open letter to Tim Cook of Apple about Final Cut Pro.

They used the letter ask Apple to publicly stand by the use of Final Cut Pro - Apple’s video editing application for professionals - in TV and film industries worldwide.

It wasn’t a criticism of the Apple team developing and marketing Final Cut Pro. They have worked very hard for over a decade on making Final Cut Pro better and better. This open letter is aimed at the executives who set the priorities of the Final Cut Pro development team and the Apple managers whose policies limit the public marketing of Final Cut Pro to a couple of website updates a year and some mentions in Apple keynotes about how much faster Apple hardware is getting.

Via John Gruber (tweet):

In other words, these Final Cut Pro-using professionals are asking Apple to do whatever it takes to make Final Cut Pro more popular in the industry. That it’s so seldom used — to name one example, it’s not on Netflix’s list of approved products for their own commissioned productions — is proof that something has gone deeply awry.

Scott Simmons:

There is no doubt that Final Cut Pro has come a long way since it’s introduction many years ago. We’ve seen an architecture change with Libraries, multicam added, a new XML format, an interface redesign, machine learning features, in-app tracking, workflow extensions and even dropping the “X” for the name. Just looking over the release notes shows a long list of features, updates and bug fixes that goes back years. But the flip side of this is the argument that the Apple team working on Final Cut Pro is moving too slowly and not keeping up with competitors. It took over a decade to get the very basic feature of dupe detection. Rumor has it there is a Roles-based audio mixer somewhere in the FCP code but it hasn’t been turned on yet (who knows if that is even true or if it will be … rumor!).

John Doty:

When Apple botched the transition to FCP-X ten years ago, it scared off the pros using its predecessor. I think it is now by far the best and most efficient editing software available. But, I also hesitate to tell peers how much I love it. It has a stigma to this day.

That letter is a seriously mixed bag. On the one hand, they’re dead right about functionality missing from FCP. On the other, they’re pushing for a reseller channel which is absurd and gives one pause about the rest of their arguments.

Adobe’s Premiere Pro is by far the dominant post production software for most professionals. Collaboration is the big reason I hear.

Josh Centers:

I think Apple knows exactly what they’re doing. YouTube content is a much larger potential market than traditional media and is easier to support. User-created content is the future.

Look at it from Apple’s perspective. Would you rather be in a market that serves hundreds of demanding customers and compete with Adobe, Avid, and DaVinci? Or would you rather be the best affordable product for millions of low-stress YouTubers?

Previously:

Update (2022-04-27): Christina Warren (via Alex Gollner):

From the sampling of people/channels/workflows I know, [Apple’s share of the YouTube market is] nearly zero. Maybe iMovie is stronger (I doubt it), but at this point, every editor I know uses Premeire or DaVinci Resolve, even if they personally like FCP.

Update (2022-05-19): Peter Wiggins:

Over a hundred credited editors added their names to the letter and it got a very public delivery. Well, now Apple has officially replied and we have printed the full response below.

[…]

While we believe we have plans in place to help address your important feature requests, we also recognize the need to build on those efforts and work alongside you to help support your film and TV projects and keep you posted on important updates.

Via John Gruber:

That Apple responded at all is the story.

Applying Computer Science

Ben Sandofsky:

People seem to think Computer Science all data structures and sorting algorithms, when that’s maybe 5% of CS.

So for folks just starting out, I made a short intro to a different area of CS, and a powerful tool I use every day: the transform matrix.

Ben Sandofsky:

I don’t think sorting algorithms are the best introduction to Computer Science. So let’s talk through a real world example of speeding up a blurring algorithm. We touch on time complexity (“Big O”) and what a quadratic algorithm looks like.

Steve Yegge:

A commenter asked if I could talk about whether you need a CS degree to be in Big Tech and make it as a software engineer. So that’s the topic for today!

In this episode, I talk about what you would actually need to study in order to get the equivalent of a CS degree, and I also call our the most core fundamental stuff[…]

Apple Discontinues macOS Server

Apple (MacRumors, Hacker News):

As of April 21, 2022, Apple has discontinued macOS Server. Existing macOS Server customers can continue to download and use the app with macOS Monterey.

The most popular server features—Caching Server, File Sharing Server, and Time Machine Server are bundled with every installation of macOS High Sierra and later, so that even more customers have access to these essential services at no extra cost.

Rich Trouton:

macOS Server 5.12.2 has shed many of the features once supported by macOS Server. As of 5.12.2, the following two services are supported:

Both services are not currently available outside of macOS Server, so Apple discontinuing macOS Server also means the end of the line for Apple’s Open Directory directory service and Apple’s Profile Manager MDM service.

Colin Cornaby:

Back in the day I did a lot of work with the old Mac OS Server releases. When it was a $1000 separate distribution of Mac OS. It was really nice stuff, and really cost effective compared to Windows. They just couldn’t seem to get the stability or reliability down.

At one point my old job was shipping entire Xserve RAIDs to Cupertino for debugging data integrity issues. It was kind of a mess.

Previously:

Update (2022-04-27): Charles Edge:

Before we have this conversation, I want to give you some bad news. Your passwords aren’t going to migrate. The good news is that you only do directory services migrations every decade or two. The better news is that I’m not actually sure you need a directory service in the traditional sense that you’ve built directory services. With Apple’s Enterprise Connect and Nomad, we no longer need to bind in order to get Kerberos functionality. With MCX long-dead(ish) you’re now better off doing policies through configuration profiles.

John C. Welch:

I get it’s weird to feel anything for a product that in all honesty had ceased to be much of anything over the last few years, but for those not in the “greybeard” section of macOS née Mac OS X Server née Rhapsody, explaining what that product, which mind you, used to not be free, or even cheap, meant to a lot of people is kind of hard. Especially those of us coming from the “dark ages” of AppleShareIP et al. There’s not a lot these days that creates the kind of community OS X Server did. It was a confluence of a lot of things that I don’t think could exist today.

[…]

It wasn’t magical, right? The product itself was always kind of this afterthought, and you could tell what part of it Apple used to sell Macs to people depending on the year. Netboot was huge for a long, long time, then Open Directory, then other things. For orgs that didn’t want to move to Active Directory from NT Domains, or couldn’t, it was a way to delay that move. And it gave Apple at least the ability, along with the Xserve and the Xserve RAID, to say “We have a place in the server room.” Which in the halcyon days before we handed our entire infrastructure to Amazon and/or Microsoft Azure, was important.

There were a lot of people who learned how to be sysadmins because of that product. Which I think created the biggest thing about OSXS: the community.

Stephen Hackett:

Back in the day, I managed quite a few OS X Server installations, but the truth is that the market of third-party solutions that Mac shops can enjoy today simply overtook what Apple was doing.

The biggest problem? I don’t think Apple’s heart has been in server space for a long, long time. The Xserve has been dead for over decade, and OS X Server went from a full-blown operating system to an application since the days of Lion.

MacMule:

As someone that cut my teeth with OSX Server on 10.3 (Panther), I’d like to say farewell old friend.

John Gruber:

The shift to “cloud computing” was inevitable. Yes, there’s nothing magic about “the cloud” — they’re all just computers. But before cloud computing teams and companies really needed their own servers. Mac OS X Server — and its long-gone hardware counterpart, the Xserve — enabled small teams to do remarkable things for the time, without the expertise of a Unix guru sysadmin on staff.

Mac OS X Server was never a significant factor in Apple’s financials. But it was a huge factor in re-establishing the company’s credibility with creative people — people with taste — who understand and demand technical excellence.

Wednesday, April 20, 2022

Removing AMP By Default

Brave (via Tim Hardwick):

Brave is rolling out a new feature called De-AMP, which allows Brave users to bypass Google-hosted AMP pages, and instead visit the content’s publisher directly. AMP harms users’ privacy, security and internet experience, and just as bad, AMP helps Google further monopolize and control the direction of the Web.

Brave will protect users from AMP in several ways. Where possible, De-AMP will rewrite links and URLs to prevent users from visiting AMP pages altogether. And in cases where that is not possible, Brave will watch as pages are being fetched and redirect users away from AMP pages before the page is even rendered, preventing AMP/Google code from being loaded and executed.

De-AMP is now available in our Nightly and Beta versions and will be enabled by default in the upcoming 1.38 Desktop and Android versions, and will be released on iOS soon after.

DuckDuckGo (via Kim Lyons):

NEW: our apps & extensions now protect against Google AMP tracking. When you load or share a Google AMP page anywhere from DuckDuckGo apps (iOS/Android/Mac) or extensions (Firefox/Chrome), the original publisher’s webpage will be used in place of the Google AMP version.

Previously:

Plenty of Tracking Despite App Tracking Transparency

Dan Goodin:

Last week’s research paper said that while ATT in many ways works as intended, loopholes in the framework also provided the opportunity for companies, particularly large ones like Google and Facebook, to work around the protections and stockpile even more data. The paper also warned that despite Apple’s promise for more transparency, ATT might give many users a false sense of security.

“Overall, our observations suggest that, while Apple’s changes make tracking individual users more difficult, they motivate a counter-movement, and reinforce existing market power of gatekeeper companies with access to large troves of first-party data,” the researchers wrote. “Making the privacy properties of apps transparent through large-scale analysis remains a difficult target for independent researchers, and a key obstacle to meaningful, accountable and verifiable privacy protections.”

The researchers also identified nine iOS apps that used server-side code to generate a mutual user identifier that a subsidiary of the Chinese tech company Alibaba can use for cross-app tracking.

[…]

They noted that Apple also exempts tracking for purposes of “obtaining information on a consumer’s creditworthiness for the specific purpose of making a credit determination.”

Nick Heer:

If anything, Goodin underplays this rather scathing report (PDF), in which researchers describe finding minimal changes in app-based tracking after the implementation of App Tracking Transparency.

[…]

But ATT was not as aggressive an anti-tracking measure as Apple may have hoped for or portrayed in its advertising. While IDFA use dropped, other attributes about a user’s phone are collected more often. Plenty of apps and SDKs are still tracking users without their consent or knowledge — most often, sending data to Google and Facebook, but also Unity, Verizon, and Oracle.

Previously:

How We Lost 54k GitHub Stars

Jakub Roztočil (via Hacker News):

Due to an unfortunate sequence of events, I accidentally made the project’s repository private for a moment. And GitHub cascade-deleted our community that took 10 years to build.

[…]

It’s a peculiarity of GitHub, to put it mildly, that making a repo private permanently deletes all watchers and stars. I was even aware of this, and I obviously had no intention to make httpie/httpie private. So, why then?

The proximate cause was that I thought I was inside a different repo; one with no content and zero stars.

[…]

The problem is that the [confirmation] box looks exactly the same for repos with no commits and stars and for repos with a decade-long history and 55k stargazers and watchers.

[…]

The GitHub team themselves accidentally made the GitHub Desktop app repo private once. And they restored everything for themselves within hours.

Previously:

GitHub Deleting Contributions From Russian Developers

Jesse Squires:

According to various reports ([1], [2], [3], [4]), GitHub is suspending accounts of Russian developers and organizations linked to or associated with organizations sanctioned by the US government over Russia’s invasion of Ukraine.

[…]

It is unclear to me what GitHub’s intended result was with these account suspensions, but it appears to be incredibly destructive for any open source project that has interacted with a now-suspended account. On a service like Twitter, you can visit the placeholder profile of a suspended account and see a message communicating that the account is suspended, and other users’ @mentions of the account still link to the suspended account’s profile. On GitHub, that’s not how it works at all.

Apparently, “suspending an account” on GitHub actually means deleting all activity for a user — which results in (1) every pull request from the suspended account being deleted, (2) every issue opened by the suspended account being deleted, (3) every comment or discussion from the suspended account being deleted. In effect, the user’s entire activity and history is evaporated. All of this valuable data is lost. The only thing left intact is the raw Git commit history. It’s as if the user never existed.

Previously:

DuckDuckGo, youtube-dl, and Bing

Ernesto Van der Sar (via Hacker News):

Privacy-centered search engine DuckDuckGo has completely removed the search results for many popular pirates sites including The Pirate Bay, 1337x, and Fmovies. Several YouTube ripping services have disappeared, too and even the homepage of the open-source software youtube-mp3 is unfindable.

[…]

The most surprising omission, by far, is that the official site for the open-source software youtube-dl is not indexed by DuckDuckGo. This site certainly doesn’t host or link to any copyright-infringing material.

Jesse Squires:

This is quite the predicament. Seemingly, everything is fine. Yet, for some reason my website has been delisted from Bing. I’m perplexed. But to be honest, I’m not that concerned about Bing — I really just want my site indexed by DuckDuckGo again.

[…]

All of this emphasizes the frustrating lack of transparency around search engines and how they work. It is infuriating to be essentially helpless trying to debug and resolve issues with your site not being properly indexed. I will forever lament that search was not a core component of the Internet itself, but was instead a feature that private corporations had to bolt on top.

Gabriel Weinberg (Hacker News):

First, there is a completely made up headline going around this weekend. We are not “purging” any media outlets from results. Anyone can verify this by searching for an outlet and see it come up in results.

Similarly, we are not “purging” YouTube-dl or The Pirate Bay and they both have actually been continuously available in our results if you search for them by name (which most people do). Our site: operator (which hardly anyone uses) is having issues which we are looking into.

Jesse Squires:

However, this doesn’t explain the fact that even a search for my name or website without using the site: operator yields no relevant results.

Ernesto Van der Sar:

Interestingly, both YouTube-dl and Thepiratebay.org still don’t show up on Bing.

[…]

A DuckDuckGo spokesperson confirmed to TorrentFreak that the issues are related to Bing data.

Ernesto Van der Sar:

It’s understandable that DuckDuckGo wasn’t happy with the coverage. However, the problem was real. And since it’s emanating from Bing, other smaller search engines that rely on that data may be affected as well.

“Since these occurrences originated on Bing, they were passed down to our results, as well as other Bing syndication partners,” Goodman clarifies.

For DuckDuckGo, it may be tricky to resolve the issue permanently as long as it relies on Bing.

[…]

While looking into these issues, we noticed that Bing also affects DuckDuckGo in other ways. From what we can see, the DMCA removals also spill over, including the inaccurate ones.

Previously:

Tuesday, April 19, 2022

Disabling Universal Links

Buzz Andersen:

Am I the only one who finds Apple Universal Links to be, like, an enormous pain in the ass?

Paul Haddad:

As much as Apple makes a big deal about privacy, the fact that you can’t globally disable universal links feels like an info leak.

Tap on an Amazon link a friend sends you on iMessage with the Amazon app installed, now Amazon knows you are interested in that product.

I like the idea of Universal Links, but in practice they always seem to get in my way.

On iOS, I often end up viewing a tweet in the official Twitter app, even though I would prefer Tweetbot or even Safari. I can’t prevent this by uninstalling the Twitter app because I need it for authentication.

On macOS, clicking on a WWDC video link in Safari opens the Developer app, which I never want.

Ryan Nystrom:

[Is] there a way for users to opt out of Universal Links for a single app? Either via system settings or something developers can do in app.

In Safari for Mac, you can use the contextual menu to tell it to open in Safari instead. But this is a bad solution because you have to know that what you are clicking is potentially a Universal Link and remember to do it. And there’s no option that I could find to make it remember your preference. One workaround is to use a different browser instead of Safari.

On iOS, I think you used to be able to tap and hold to change the default. But now it seems to behave like on the Mac. And the case of WWDC videos is extra confusing because on iOS the default is the opposite—to use Safari even if the Developer app is installed.

The other annoying part is that when I finally do get to see the Universal Link’s content in Safari, it sometimes fills a good portion of the screen with a banner recommending that I open the app instead.

Jeff Johnson:

You can’t tell Safari to just STFU about the Twitter app.

[…]

My final, “insanely devious” idea (as someone called it) was to create a fake Twitter app. When there are multiple apps installed on your Mac with the same bundle identifier, macOS tends to prefer the one with the highest version number. So I opened a new Mac app project in Xcode and gave it the bundle identifier maccatalyst.com.atebits.Tweetie2, matching the real Twitter app. I gave the new app the bundle version 1000.0.0, which was arbitrary but likely higher than anything you’ll ever see in the real Twitter app, currently at version 8.18.1. And I added an AppIdentifierPrefix key with the string “8248RGMF2D.“ to the new app’s Info.plist file, again matching the real Twitter app. The critical difference between the real Twitter app and the fake Twitter app is that I did not add com.apple.developer.associated-domains to the fake app’s entitlements. The associated domains in the real Twitter’s entitlements indicates that it supports Universal Links (applinks). You can see its entitlements with the command codesign --display --entitlements - /Applications/Twitter.app in Terminal. My theory was that Safari would hopefully look at the fake app with the higher version number instead of the real app with the lower version number, and decide that Twitter did not actually support Universal Links.

It appears that my theory was correct! You can download my new app StopTheTwitter, which is notarized for macOS Catalina.

Previously:

On the flip side, I’m super sad that so many apps intercept universal links and throw me into a web view just to keep me contained

This should be a built-in part of Settings for each app so that the user can choose and also see what the current setting is.

I did a study of Universal Links last summer, and found them to be plain broken on macOS with SwiftUI app lifecycle. Plus I could not figure out “developer mode”.

Universal Links on the Mac operate via the swcd (Shared Web Credentials Daemon, /usr/libexec/swcd) process.

[…]

The solution to the problem is to deny swcd with Little Snitch.

However, I’ve already allowed the Universal Link, which is still in effect. I also need to undo the damage of allowing it.

/System/Library/Frameworks/CoreServices.framework/Frameworks/LaunchServices.framework/Support/lsregister -f -R /Applications/Twitter.app

Previously:

Is there a way to permanently deactivate this annoying dialogue box without having to deinstall Ivory (Mac)? Universal Links are the bane of my existence – they almost never do want I want, but always get in the way.

The contextual menu workaround suggested by Tapbots doesn’t work for me.

Previously:

Feed Wrangler Shutting Down

David Smith:

After 9 years, I’ve decided it’s time to shut down Feed Wrangler. I’m stretched too thin with my other apps, it’s time to let it go.

I’ll turn off the servers next year on March 1, 2023.

See also: Widgetsmith 3.0.

Previously:

SwiftUI Performance Tips

Martin Mitrevski:

SwiftUI has been around for almost 3 years now, and during this period working with it, I’ve noticed few groups of developer mistakes (both mine and from others) that can impact its performance. In this post, we will look at these pitfalls, and their potential solutions.

[…]

We are using an in-memory image cache and whenever we receive new value, we publish it and the corresponding view redraws. However, all the others are redrawn too. Whenever a new image is downloaded, the @Published images is updated and it fires a new event. The ListItem uses the ViewModels image(for:) method, which depends on this published variable. So it’s called for all views whenever a new image is downloaded and this can cause sloweness with the many not needed view updates.

[…]

SwiftUI relies on the type of the views to compute the diffing. If it’s AnyView (which is basically an unknown type), it will not know how to compute the diffing, and it will just redraw the whole view, which is not really efficient. You can find more details about SwiftUI’s diffing mechanism in this great WWDC talk.

M1 Thunderbolt Ports Don’t Fully Support USB 3.1 Gen 2

Howard Oakley (Hacker News):

Apple claims that all its new models using M1 series chips come with Thunderbolt ports which support “USB 3.1 Gen 2 (up to 10Gb/s)”. However, many users have reported performance which doesn’t reach 10 Gb/s for directly connected external disks.

[…]

Currently, and as far as I’m aware since their release in November 2020, no Thunderbolt port in any M1 model appears to fully support 10 Gb/s SuperSpeed+ in USB 3.1 Gen 2, at least for SSDs.

The only ports in M1 Macs which currently appear to support USB 3.1 Gen 2 fully are those on the front of the Mac Studio Max.

10 Gb/s SuperSpeed+ in USB 3.2 devices does appear to be supported by the Thunderbolt ports of M1 Macs.

It sounds like there are multiple bugs here, especially the 20 MB/s read performance when using the ports on the front of the Mac Studio.

Users with USB 3.1 Gen 2 devices should connect them to a Thunderbolt 3 Dock, or the USB ports on a Studio Display, where they should perform better.

I have had trouble using the Studio Display as a hub, as there seemingly wasn’t enough bandwidth for my keyboard while the Mac was cloning to spinning disks connected to the display.

Previously:

UI Browser to Be Retired

Bill Cheeseman:

UI Browser will reach its end of life and be retired on October 17, 2022. The current release of UI Browser, version 3.0.2, will not be updated. On the end-of-life retirement date, the PFiddlesoft website will be closed. Thereafter, it will no longer be possible to download or purchase UI Browser, and product support will no longer be available. UI Browser has been a labor of love for me, its sole developer for almost twenty years. Now that I am 79 years old, it is time to bring this good work to a conclusion.

Thanks to Bill for his many contributions to the Mac community over the years, particularly in the areas of AppleScript and automation.

See also: UI Browser 3.0.0.

Previously:

Update (2022-04-26): John C. Welch:

It is impossible to list or even really comprehend all the ways Bill Cheeseman contributed to AppleScript and scripting/automation on the mac in general.

He is a mostly unsung giant in those communities & everyone in those communities owes him all the gratitude we can muster. Bill was one of the few people whose advice/input I trusted implicitly.

The Mac scripting/automation world will be a lesser place w/o him, but he has earned his retirement in every way possible. I hope he enjoys the hell out of it.

Update (2022-04-28): John Gruber:

The only downside: scripting the user interface this way is tedious (very verbose) at best, and inscrutable at worst. Cheeseman’s UI Browser makes it easy.

[…]

UI Browser seems like a tool Apple should have purchased long ago. It’s like Apple only did the infrastructure of making UI scripting happen, but Bill Cheeseman did the work of making it usable. If UI scripting is worth keeping in MacOS, UI Browser is worth Apple buying. It’s not merely useful but essential.

See also: Late Night Software Forum.

Update (2022-05-09): Federico Viticci:

I think it’s more realistic to hope another indie developer or studio picks up UI Browser and continues developing for as long as possible. There’s nothing else like it on the market, and I’d like to thank Bill Cheeseman for his amazing work on this application over the years. It’ll be missed.

Bill Cheeseman:

I am currently making arrangements for a permanent download site for the version 3.0.2 disk image for licensed users and for public access to the source code.

Update (2022-10-17): Late Night Software:

Bill has graciously agreed to allow Late Night Software to continue making UI Browser available to those that purchased it before it was withdrawn.

[…]

UI Browser is no longer available for purchase. UI Browser’s source code will not be released as open-source. Late Night Software will continue making UI Browser available and supporting it on a best-effort basis for as long as there is a demand for the software.

Monday, April 18, 2022

NSPersistentCloudKitContainer in 2022

Steve Troughton-Smith:

For the longest time, Core Data had a very bad rap for iCloud syncing, so I just never engaged with it even after the APIs were improved. What is the story in 2022? Is Core Data + CloudKit in a good place, or nightmare fuel? What are the current pitfalls? …should I use it?

Becky Hansmeyer:

It’s been nightmare fuel for me, but maybe I just don’t have it set up right. I hear from users now and then who say that all of their data has been wiped out, and I have no idea what could have happened.

Roland Gropmair:

I tested it a bit, it seemed to work fine. But I never got it working with watchOS - no way to troubleshoot - and left it there

Antwan van Houdt:

For my specific use case it has been a nightmare to optimise the size of the data. My app generates many but small records and this doesn’t go well with CoreData + CloudKit. I created a binary format which reduces the amount of records that helps with this problem somewhat.

Davide Benini:

It’s quite reliable, a bit hard to set up and debug, but still much simpler than building your own sync system. You’ll need to follow Apple’s docs to set up sync and reconcile conflicts yourself, but it’s a logical process an quite mechanical.

Mrabti:

It works quite good, but I think it is better to have your own sync code instead of using the Apple Blackbox sync implementation, then you will have more control on edge cases, and you can troubleshoot issues much more easier.

Binary Formations:

The built-in CloudKit mirroring stuff is too opaque for our needs.

Quentin Zervaas:

It is a really elegant solution that mostly works well, but in rolling out this update, we’ve come to learn a few things about it.

[…]

[Just] because an event finishes, doesn’t mean everything is in sync yet. You may experience many consecutive events of the same type all within a short timeframe.

[…]

If an error occurs, it will frequently give you a CKError, but these aren’t necessarily the same as when accessing CloudKit directly. For example, if you receive a CKError.Code.partialFailure, it’s not possible retrieve the errors that would normally be contained.

[…]

For errors that aren’t a CKError, I haven’t been able to find documentation for many of the errors that occur, but these are the ones I’ve discovered (I’m sure there are more).

[…]

There’s some quirky behaviour with Apple Watch, which can make it challenging to keep everything up-to-date between the Apple Watch and its linked iPhone.

[…]

Since NSPersistentCloudKitContainer uses transactions to keep the data in sync, it needs to propagate through every database changed one by one.

Previously:

OWC miniStack STX

Other World Computing:

The miniStack STX now features Storage and Thunderbolt Xpansion, continuing its award-winning legacy as the best sidekick a Mac mini can have. Meet the world’s first Thunderbolt certified Thunderbolt 4 storage solution.

With a universal SATA HDD/SSD bay AND an NVMe M.2 PCIe SSD slot, you can expand your mini’s storage capacity to gigantic proportions. Three Thunderbolt (USB-C) ports enable you to connect to millions of Thunderbolt, USB, and future USB4 drives, displays, A/V mixers, cameras and tablets; as well as desktop accessories like a keyboard, card reader, or mouse.

That’s 3 Thunderbolt ports in addition to the one that goes back to the Mac. It’s $279 for the base configuration with no storage.

Previously:

Update (2022-08-09): Josh Centers:

While OWC explicitly designed the miniStack STX for the Mac mini, it fits well enough underneath my iMac, and it could also serve as a charging and Time Machine dock for a Mac laptop with an external display.

Satechi Dual Vertical Laptop Stand

Satechi (via MacRumors):

Keep your workstation tidy and every device within reach with Satechi Dual Vertical Stand for laptops and tablets. The 2-in-1 design supports your Macbook and iPad vertically at the same time, improving your working efficiency.

I like the idea of this, but I wonder whether it blocks too much of the cooling around the Mac’s hinge.

DALL-E

Ben Thompson (Hacker News):

Last week OpenAI released DALL-E 2, which produces (or edits) images based on textual prompts; this Twitter thread from @BecomingCritter has a whole host of example output[…]

[…]

[C]reating games, particularly their art, is expensive, and the expense increases the more immersive the experience is. Social media, on the other hand, is cheap because it uses user-generated content, but that content is generally stuck on more basic mediums — text, pictures, and only recently video. Of course that content doesn’t necessarily need to be limited to your network — an algorithm can deliver anything on the network to any user.

What is fascinating about DALL-E is that it points to a future where these three trends can be combined. DALL-E, at the end of the day, is ultimately a product of human-generated content, just like its GPT-3 cousin. The latter, of course, is about text, while DALL-E is about images. Notice, though, that progression from text to images; it follows that machine learning-generated video is next. This will likely take several years, of course; video is a much more difficult problem, and responsive 3D environments more difficult yet, but this is a path the industry has trod before[…]

[…]

Machine learning generated content is just the next step beyond TikTok: instead of pulling content from anywhere on the network, GPT and DALL-E and other similar models generate new content from content, at zero marginal cost. This is how the economics of the metaverse will ultimately make sense: virtual worlds needs virtual content created at virtually zero cost, fully customizable to the individual.

Bram Adams (via Hacker News):

DALL·E is intuivitely understandable on an emotional level while simultaneously being quite unintuitive on a logical level.

[…]

Here are some things I’ve picked up so far that I think can help push the dialogue around DALL·E forward.

Previously:

Update (2022-04-21): Mike Rundle:

When humanity has access to a machine that can render anything you can possibly think of, the creative side of art will be how to describe such an image in a way that connects to the soul of the AI and how it understands the world.

Update (2022-10-07): Matt Sephton:

Each have their pros/cons. In my usage DALL-E could render a Moai 🗿 exactly but had no idea any the style I was asking for, Midjourney gave a rough Moai but had exact style, Stable Diffusion gets both. Personally, I prefer the output of Midjourney

Former Employee Downloaded Cash App Account Info

SEC 8-K (via Hacker News):

On April 4, 2022, Block, Inc. (the “Company”) announced that it recently determined that a former employee downloaded certain reports of its subsidiary Cash App Investing LLC (“Cash App Investing”) on December 10, 2021 that contained some U.S. customer information. While this employee had regular access to these reports as part of their past job responsibilities, in this instance these reports were accessed without permission after their employment ended.

The information in the reports included full name and brokerage account number (this is the unique identification number associated with a customer’s stock activity on Cash App Investing), and for some customers also included brokerage portfolio value, brokerage portfolio holdings and/or stock trading activity for one trading day.

[…]

Cash App Investing is contacting approximately 8.2 million current and former customers to provide them with information about this incident and sharing resources with them to answer their questions.

Block is the new name for Square.

Friday, April 15, 2022

More Users Opting in to App Tracking

Filipe Espósito:

While the number of users opting to let apps track them was low at first, a new research from Adjust shows that some people have been changing their mind about this option.

According to the research firm, the industry feared that the new App Tracking Transparency in iOS would hurt the mobile app market, which heavily relies on advertisements. In May 2021, opt-in rates were at around 16%. Now that number has grown to 25% a year later.

When it comes to games, the number is even higher – 30% of users have allowed developers to collect their data for advertisements.

Nick Heer:

The most puzzling thing to me is that these four games have exactly the same first-launch flow for gaining consent to track users, yet they are producing wildly varying results.

Previously:

Mac App Store Ransomware

Kosta Eleftheriou:

I didn’t think this was possible:

This App Store app [My Metronome - Tempo Keeper] immediately asks you for money and then disables the “Quit” option so that you can never close it!

And it’s been like that on the App Store for years!

Mac App Store review

The developer has grossed almost a million dollars on the App Store.

Stephen Warwick:

Users say the app forces users to pay by locking a user’s computer, with some unable to close ads or the program itself until they had paid for the service, almost akin to ransomware.

Jeff Johnson:

This developer “Music Paradise, LLC” appears to be the exact same developer as “Groove Vibes”. Registered at the same street address in Novosibirsk, Russia!

Also, both apps lock up your Mac and can’t be quit, which is what led me to investigate.

But they are catching some good developers. Jacob Eiting:

One of our employees apps just got banned from the App Store for “trying to deceive users” because we used it to test price change behavior: they created a new SKU, subscribed to it, then raised the price from $4/wk to $9/wk to get screenshots of the flow.

This must have flagged something in the App Store looking for fraudulent price increases (even though it was opt-in) and they got a notice that the app will be removed in 14 days.

They told Apple it was just a test, and that wasn’t a good enough reason for them.

It was ONE PURCHASE. That’s obviously not fraud.

Meanwhile, Disney gets a special flow for increasing the subscription price without the customer opting in.

Previously:

Update (2022-04-16): See also: Hacker News.

Update (2022-04-19): Mitchell Clark:

Eleftheriou told The Verge that it “seems like this developer has experimented with various techniques over the years of preventing people from closing the paywall,” pointing us to several other apps that are still on the store with similar behavior — we’ll get to those in a moment.

[…]

Apple didn’t respond to The Verge’s request for comment about whether it was the one to take the app down, or how it passed App Review in the first place.

1Password 8 for iOS Early Access

Michael Fey:

Over the last couple years we’ve been making a concerted effort to unify our design language. We built a user interface that’s cohesive across all our apps, but also makes you feel right at home on the platform where you’re using it. The updated designs result in a modern take on 1Password that is both familiar and fresh.

[…]

Written primarily with SwiftUI and Rust, a secure systems programming language famous for its performance and safety, 1Password is more stable, more performant, and more secure than ever before.

[…]

All of us have slightly different use cases for our favorite security app, and the new Home tab enables you to set it up just the way you like it.

[…]

1Password 8 on iPad is next-level. With a gorgeous layout that takes full advantage of the screen real estate, this is the iPad app I’ve always wanted us to build.

Ryan Jones wants to be able to see frequently or recently accessed items on the home screen.

Previously:

Moving From 1Password to KeePass

Josh Centers:

I always somewhat regretted switching away from KeePass, which stores its encrypted database in a standardized, open format. The original KeePass has always been Windows-only, but there are multiple KeePass-compatible apps for all platforms, and you’re free to pick whichever one is right for you. With KeePass, I always felt like I had complete control of my password database.

[…]

If you want total control over your data and have the time and skills to maintain it securely, KeePass may be a good option. If what I describe below sounds like too much trouble, but you still want an open-source solution, check out Bitwarden, which offers both a cloud service and a self-hosted option (though the self-hosted option is a total pain to set up).

[…]

With KeePass, there is no cloud service. You are given an encrypted database in the open KDBX format, and you choose where to store it. That could be on your Mac, on a NAS, or in a cloud service like Dropbox, Google Drive, or iCloud.

[…]

The developer of the iOS KeePassium app has written excellent documentation for making the switch, explaining how to export your 1Password vault locally and then import it into KeePassXC on the desktop. (KeePassium is not available on the Mac.) The main limitation is that 1Password doesn’t export attachments, so you’ll have to add them back to the corresponding KeePassXC entries manually.

These days I’m using PasswordWallet for passwords and Apple Passwords for TOTP codes.

Previously:

Thursday, April 14, 2022

Apple-Funded Study on Success of Third-Party Apps

Apple (PDF):

Today, economists at Analysis Group published a new report on the proliferation of third-party apps on the App Store, with new insights into how third-party apps perform in categories ranging from maps to music streaming, among others. The report finds that third-party apps experience broad regional and global success on the App Store, demonstrating the breadth of opportunity for developers and the wide range of choice available to consumers around the world.

[…]

The report analyzes apps from Apple and third-party developers across many popular app types, breaking down regional and global top performers. It also highlights just how many channels developers now have to distribute their apps — from mobile platforms, to PCs, to video game consoles.

So much competition, and they didn’t even mention the sweet solution.

Apple makes available a number of tools and core technologies to all developers to help them create innovative apps, including more than 250,000 software development building blocks called APIs.

Intellectual property for which they must be compensated.

Via Juli Clover:

The second part of the study focuses on the growth of the App Store over time (there are now 1.8 million apps), 99.9 percent of which are third-party apps as the study is quick to point out that Apple has just 60 apps that are competing with third-party apps.

The final part of the study focuses on the breadth of third-party apps that are available as alternatives to Apple-created apps, and it points out that for many categories like social networks, food, travel planning, and dating services, third-party apps are the only option as Apple does not compete in these categories. It also points out that across most app types, Apple’s apps are “eclipsed in popularity and account for a relatively small share of usage.”

Nick Heer:

Well that clearly does not add up. Spotify’s share in Japan cannot be “0.4 times greater” than Apple’s 55%.

[…]

Apple may have commissioned this study, but it does not appear to have done its authors any favours in getting them proprietary real-world metrics.

[…]

Does a combination of ad network partnerships and a sneaky consumption utility mean it is able to provide reliable figures on the use of, say, Messages or the Phone app? I find it hard to believe this is anything more than a best guess.

[…]

It sure is an interesting time for technology policy at government and platform levels. All the findings in this report are the result of choices made primarily by Apple in its design of iOS and the App Store. It seems there is healthy competition in some categories of apps and in some regions. But this report is not comprehensive. Third-party apps have limitations Apple’s own versions do not, and there are many other categories where Apple’s entrant likely pulls ahead — browsers would be an especially interesting case because, although it is one of two types of app where you can set a system-level default on iOS, any third-party browser will still use Apple’s rendering engine.

Macative:

Apple: if this huge competitive advantage didn’t exist in the first place, you would never need a study to point out that 60 apps is not a lot compared to 1.8 million.

It is a such pointless and insulting study, because at any time Apple can squash any app by making their own version, that is better, and is only better because it can do things Apple won’t allow the third party version to do.

Previously:

Robert Arthur Morgan, RIP

BareFeats (tweet):

For the last three decades, Rob ART has been the Mad Mac Scientist, creator of the BareFeats website, where he combined his love of speed and Apple computers to report “Bare Facts on Mac Speed Feats.”

Robert Arthur Morgan pursued the TRUTH in all things APPLE/MAC with honesty, good manners, and unfailing fairness in his evaluations of products, whether great or small. His way of doing business and writing his BareFeats evaluations provided precious, rare, and valued information for manufacturers, business clients, and faithful readers. He tested Apple Products along with hard drives, graphic cards, and a plethora of accessories to make APPLE Computers run FASTER and meet the designing needs of Apple/MAC users worldwide with greater power, control, and efficiency.

Jason Snell:

My old boss at Macworld, Rick LePage, turned me on to BareFeats. It was one of those old-school Mac websites that was so clearly created by someone who was personally obsessed with a subject and just had to write about it. It was written in his voice, and was all about him chasing his own interests.

BBEdit Turns 30

wenestvedt (tweet, Hacker News):

First announced on USENET in 1992, BBEdit has always offered powerful text-editing to Mac users. This week it turns thirty, and is still going strong!

Some of its features remain unmatched, like the great multi-file search. […] Syntax high-lighting, autocomplete, and the first regular expression engine I can remember on Macs (except for maybe Torquemada the Inquisitor?), and multi-platform file encoding have been helping Mac programmers and web developers for decades.

I’ve been using it since a year or two later, and I doubt there’s an app I’ve spent more time in. And let’s not forget the excellent documentation and customer support that go along with the app.

Previously:

Update (2022-04-15): John Gruber (tweet):

Eight years later I was working at Bare Bones Software. My lasting contribution: tweaking the user manual’s Grep chapter when BBEdit 6.something adopted the PCRE regular expression engine; theretofore it had been using a heavily modified version of Henry Spencer’s original library.

18 years ago I created Markdown in BBEdit, with the intention of using it from BBEdit. That’s worked out pretty well — just about every long piece I’ve written for Daring Fireball was written in BBEdit (including this one, natch). At that time, I considered BBEdit mature and well-established.

Update (2023-05-11): Today is the 30th anniversary of BBEdit becoming a commercial product. The company is celebrating by offering it on sale for $30 (Hacker News).

Update (2023-05-15): Gus Mueller:

I still remember discovering BBEdit 2.5 back in my college days, and was instantly hooked. I can even remember the office I was in when I started it up for the first time. BBEdit had this certain … way and feel about itself, it was 100% at home on the Mac and it was amazing.

The Longest Atlassian Outage of All Time

Gergely Orosz (via Hacker News):

We are in the middle of the longest outage Atlassian has ever had. Close to 400 companies and anywhere from 50,000 to 400,000 users had no access to JIRA, Confluence, OpsGenie, JIRA Status page, and other Atlassian Cloud services. The outage is on its 9th day, having started on Monday, 4th of April. Atlassian estimates many impacted customers will be unable to access their services for another two weeks. At the time of writing, 45% of companies have seen their access restored.

For most of this outage, Atlassian has gone silent in communications across their main channels such as Twitter or the community forums. It took until Day 9 for executives at the company to acknowledge the outage.

[…]

For the past week, everyone has been guessing about the cause of the outage. The most common suspicion coming from several sources like The Stack was how the legacy Insight Plug-In plugin was being retired. A script was supposed to delete all customer data from this plugin but accidentally deleted all customer data for anyone using this plugin. Up Day 9, Atlassian would neither confirm, nor deny these speculations.

[…]

  • Atlassian can, indeed, restore all data to a checkpoint in a matter of hours.

  • However, if they did this, while the impacted ~400 companies would get back all their data, everyone else would lose all data committed since that point

  • So now each customer’s data needs to be selectively restored. Atlassian has no tools to do this in bulk.

Previously:

Update (2022-05-09): Atlassian:

There was a communication gap between the team that requested the deletion and the team that ran the deletion. Instead of providing the IDs of the intended app being marked for deletion, the team provided the IDs of the entire cloud site where the apps were to be deleted.

[…]

The API used to perform the deletion accepted both site and app identifiers and assumed the input was correct – this meant that if a site ID is passed, a site would be deleted; if an app ID was passed, an app would be deleted. There was no warning signal to confirm the type of deletion (site or app) being requested.

[…]

At the start of the incident, we knew exactly which sites were affected and our priority was to establish communication with the approved owner for each impacted site to inform them of the outage.

However, some customer contact information was deleted. This meant that customers could not file support tickets as they normally would. This also meant we did not have immediate access to key customer contacts.

[…]

Our full list of action items is detailed in the full post-incident review below.

Bug Tracking and Customer Support Tools

Core Intuition:

Daniel talks about finally moving from Mercurial to Git and the advantages of standardizing on technologies that have “clearly won.”

Core Intuition:

Manton talks to Daniel about his decision to switch from Zendesk to Help Scout, and gets Daniel excited about the prospect of finally switching away from FogBugz for his own work.

Core Intuition:

Daniel tells Manton about finally leaving FogBugz and going deep on Help Scout and GitHub Issues. Meanwhile Manton has also finished his migration to Help Scout! They talk about their mutual satisfaction with Help Scout and about how to best manage GitHub Issues.

For bug/issue tracking, I started out with FileMaker Pro, then CVSTrac, then Trac when I switched to Subversion, then OmniOutliner Pro. When OmniFocus came out it was a revelation, but ultimately it didn’t scale for the number of issues I had. I used FogBugz from 2009 until 2017 when I got fed up with the bugs and unreliability and the design got weird. Then I switched back to OmniOutliner Pro, which had improved a lot in the meantime in features, though I’m convinced that the interface brought back from iOS remains slower. This worked well for a while, but I kept running into scaling problems—particularly slow typing—even after splitting my issues into separate documents for each product and for current vs. archived issues.

Early this year, I did a trial with Gitea. Run directly on my Mac, it’s fast and works offline. I’m not dependent on a cloud service. The interface and feature set are good. It has an API and a command-line tool, and of course I had full access to the SQLite database itself if I wanted to do a fancy query. But, ultimately, I got annoyed by editing text within a Web app, and it was not as flexible with filtering, searching, and bulk operations as I wanted.

I’m now using EagleFiler, with each issue as a Markdown file, folders for milestones, smart folders for particular queries I care about, and tags for things like Area, Cause, Status, and Type. The GUID portion of each EagleFiler record’s record link is a natural identifer that I can put into code comments, Git commit messages, and other issues. The issues themselves are also in Git, so I get automatic backup, history, and syncing with my other Macs. Files related to an issue get attached to its note. When there’s a complicated issue that I want to work on, I open the Markdown file in BBEdit, where I get more editing tools and a live preview. I can automate things (like collecting release notes) via AppleScript and do bulk find/replace with BBEdit. In retrospect, it’s obvious that I would enjoy using my own native app, and that the app itself would benefit from such dogfooding, but for a long time I had a mental block about using it in my development workflow because there are times when it would be inconvenient to use the app as a tool while developing and testing it. So far, this has not been a problem. EagleFiler stores everything as regular files in folders, so if the app itself is unavailable, I can still browse/search issues using BBEdit projects or LaunchBar, tag them in Finder, etc.

For customer support, I’ve used regular e-mail (in Mailsmith, Apple Mail, and EagleFiler) except for the time I was using FogBugz. With FogBugz, e-mails got a case number so it was easy to link them from issues. Now, I do that using the Message-ID.

Previously:

Wednesday, April 13, 2022

IAP Bait-And-Switch Apps

Jeff Johnson (Hacker News):

Top Mac App Store dev abuses Free with In-App Purchase for bait-and-switch apps demanding upfront payment, not free in any respect.

[…]

This developer has 9 apps in the Mac App Store, all of which seem to have the same “business model”: free to download, with In-App Purchase, but the first time you open the app, it demands an upfront one-time purchase, otherwise it doesn’t work at all.

No trial, no subscription.

[…]

We are told that App Store protects consumers from bad developers.

You can just read the reviews in this thread to see that this is not true, and the reviewers often wonder why Apple allows this false advertising.

The worst part about this scam is that it works! This obscure Mac developer has 3 of the top 95 grossing apps in the Mac App Store.

It sure seems like, rather than protecting the customer, the App Store is enabling this sort of behavior. Outside of the App Store, it’s hard to get a good Google rank for a new app that’s unremarkable. And it won’t get a lot of favorable coverage from the media, YouTube, or podcasts. But in the App Store, it has instant legitimacy because it’s been approved by Apple, and it can use fake reviews to climb the charts, to the point where people find it because it’s top-grossing.

Edoardo Vacchi:

This app literally locks your machine until you pay the fee. It is almost ransomware.

Alex Kleber:

Top #1 sold macOS app US Store abusing reviews. Review customer name pattern is the same for all 5 stars reviews.

Christopher Atlan:

Their Winmail app uses my app name in the subtitle😤

Alex Kleber:

Update: Apple removed all reviews of this developer but the apps are still available. So in Apple judgment is just fine to abuse the Mac Appstore reviews in order to trick the Apple users to download and buy your apps.

Previously:

Update (2022-04-13): Jeff Johnson:

iMore has a statement from the developer: they’ll add free trials to all their apps, despite claiming they’re doing nothing wrong now.

Also, they threatened to sue iMore in a now deleted tweet. And a dev whose ™ they infringed.

Update (2022-04-14): Jeff Johnson:

Here’s another developer using the business model of “free” apps with first launch paywall. Top 34th and 90th grossing in the Mac App Store.

I’ll let the App Store reviews speak for themselves.

Coincidentally, this developer has “open in browser”, Google Docs, and Dropbox apps, just like the other developer.

Update (2022-04-19): Jeff Johnson:

Mac App Store scam alert:

Screen Mirror to TV & Device by Raymond NG

#89 Top Free, #67 Top Grossing

Developer’s web site is completely anonymous.

Rated 3.5 out of 5, but nearly every review is 1 star.

Update (2022-04-21): Jeff Johnson:

These 2 apps in the iOS App Store with identical names also have identical privacy policies. I mean word for word.

The 1st app has an old Facebook page as “App Support”. And incredibly, 227,400 user ratings!

Almost blank web site with a privacy policy that looks stolen from another company

The reviews contradict each other, which suggests fakery. I’m inclined to believe the reviews that say “scam”. ;-)

Not updated in 3 years, not sure why MAS top grossing.

Tuesday, April 12, 2022

Tim Cook Attacks Sideloading in Privacy Keynote

Joe Rossignol:

Apple CEO Tim Cook today delivered the keynote speech at the Global Privacy Summit in Washington D.C. The conference, hosted by the International Association of Privacy Professionals, is focused on international privacy and data protection.

[…]

“Here in Washington and elsewhere, policymakers are taking steps in the name of competition that would force Apple to let apps onto iPhone that circumvent the App Store through a process called sideloading,” said Cook. “That means data-hungry companies would be able to avoid our privacy rules and once again track our users against their will. It would also potentially give bad actors a way around the comprehensive security protections we have put in place, putting them in direct contact with our users.”

[…]

“If we are forced to let unvetted apps onto iPhone, the unintended consequences will be profound,” warned Cook. “And when we see that, we feel an obligation to speak up and to ask policymakers to work with us to advance goals that I truly believe we share, without undermining privacy in the process.”

Rich Mogull:

Apple largely has itself to blame. Apple didn’t create a walled garden marketplace merely to ensure consumer safety; it also did so to own the billing model and financial transactions, and thus the customer relationship. Until a week ago, a developer wasn’t even allowed to link to or mention their website for prospects to sign up for subscriptions. For over 13 years, Apple refused to budge to pressure from developers, forcing them to turn to the courts and legislatures.

Let’s distill this down to understand why the App Store is so important for security, how opening iOS up to alternative app stores or sideloading will reduce our safety, and why this now seems inevitable.

Peter N. Lewis:

Of the entire chain of security listed in the article, the only one that is omitted in sideloading is the app store review.

Everything automatic in the App Store review can be done before notarising the app as well.

So the only thing extra is some Apple Employee launching your app and verifying that for the first few minutes that the application vaguely does what it says it does. But nothing stops the application from waiting until next month (or any other signal) and changing its behaviour entirely. So the app review [serves] no security purpose - its purpose is purely to disallow honest developers from breaking Apple’s (often unwritten) rules in how they behave. App Review is entirely to control applications for Apple’s benefit.

There is no additional security in App Review, and therefore no loss of security in sideloading.

Meanwhile there are whole categories of applications that will never be written while Apple has absolute control over what applications can be distributed. This is a huge, unknown, loss to all iPhones users, one that is impossible to quantify.

Ken Harris:

What it’s called now → What we called it for the 50 years before that:

  • “side-loading” → loading
  • “third-party software” → software
  • “app store” → store

Matt Stoller:

Apple’s app store is so full of scams and garbage, and the firm is so inattentive, that one dude on Twitter - @keleftheriou - is constantly embarrassing Apple by showing their claims of protecting users are essentially fraudulent.

Steve Troughton-Smith:

It is incredibly frustrating that Apple has made sideloading a zero sum issue, because they’re pushing regulators to legislate harder than was ever necessary by telling them it’s the only option to curb Apple’s behavior

Michael Love:

25 years ago, Microsoft violated all sorts of laws and lost a decade of innovation in a desperate attempt to stop people from writing apps for Netscape instead of Win32.

Apple is about to let that happen to iOS because they insisted on getting a 30% cut of everyone’s Bag O Gems.

Previously:

Update (2022-04-13): Mike Rockwell:

Would allowing users to install apps from outside the App Store really hurt user privacy? Because right now, Apple knows every single app I have ever installed on every iOS device I’ve ever owned. It would be cool if I could keep that private.

Previously:

Mike Rockwell:

If Apple cares so much about privacy, why can’t I backup my iPhone to a Time Machine share on my network?

DuckDuckGo Browser for Mac Beta

Beah Burger-Lenehan (MacRumors):

With one download you get our built-in private search engine, powerful tracker blocker, new cookie pop-up protection on approximately 50% of sites (with that % growing significantly throughout beta), Fire Button (one-click data clearing), email protection and more – all for free. No complicated privacy settings, just simple privacy protection that works by default.

[…]

By using your computer’s built-in website rendering engine (the same one Safari uses), and by blocking trackers before they load (unlike all the major browsers), you’ll get really fast browsing.

[…]

To get access to the beta of DuckDuckGo for Mac, all you need to do is join the private waitlist.

Previously:

Review of Orion Browser for Mac

Riccardo Mori (Hacker News):

Orion’s approach is utilitarian. It doesn’t want to win users with a fancy UI or quirky æsthetics to appear ‘different’. Its user interface is not that different from Safari. Its design philosophy has to do with how the browser works, not how it looks. And today a browser should be fast (in a Web that’s getting progressively bloated and dragged down by intrusive, resource-consuming scripts), privacy conscious, and adhering to the web’s standards. And that’s what Orion is and does.

[…]

On my Mac, it feels perceptibly faster than Safari. It feels lighter, less encumbered, more responsive.

[…]

Orion supports both Chrome and Firefox extensions

[…]

Being able to easily edit the text on a webpage, I can preview how my translation will look directly on the page. Take Screenshot of the Entire Page is something I’ve wanted in a browser since finding this feature in an old app called LittleSnapper.

Vladimir Prelovac:

In the browser world, Chromium dominance is often a topic.

But at least on Mac, browser diversity is not a problem as the image below illustrates. Consumer has enough choice.

It is up to us, WebKit and Gecko browser makers, to up our game and produce a worthy alternative.

Previously:

A Tour of Apple’s External LCD Displays

Stephen Hackett:

In April 1984, Apple introduced a 1-bit, 7-inch LCD for use with the somewhat-portable Apple IIc[…]

[…]

In July of 2000, to coincide with the launch of the Power Mac G4 Cube,1 the Studio Display was reworked to match the larger and more expensive Cinema Display. This edition kept the 15-inch panel, but wrapped it in the same enclosure introduced the year before for the Cinema Display.

In May 2001, a 17-inch Studio Display (LCD) was added to the line.

I used to have a pair of these 17-inch Studio Displays. They were great, except that there was no video card with two ADC connectors. So, instead of simplifying things by having power and data combined into a single cable, it required a separate powered adapter to connect one of them to a DVI port.

Other than that, I’ve always used third-party displays (even CRTs) until the new Studio Display.

Previously:

Mac S.M.A.R.T. Support: USB-C vs. Thunderbolt

Howard Oakley:

Although macOS has supported storage connected via USB-A ports since 1998 and USB-C since 2015, it has never supported access to S.M.A.R.T. attributes on storage connected using those ports. FireWire support was rather better, and Thunderbolt should give S.M.A.R.T. access by default. This can be confirmed in Disk Utility, or in the Storage item in System Information, where the last entry for each supported physical drive gives its current S.M.A.R.T. status.

Apple’s simplistic entry for S.M.A.R.T. status doesn’t even report when this was last checked, but several excellent third-party utilities give more detailed access. My favourite substitute remains DriveDx, but there are others, and the free command tools in smartmontools which enable you to roll your own with modest effort.

[…]

However, for any third-party utility to be able to monitor storage connected by USB, the SAT SMART kernel extension has to be installed. Although this does apparently run on M1 series Macs as well as Intel models, macOS can’t run at Full Security on an M1 when it requires loading third-party kernel extensions.

Howard Oakley:

The simple answer might be to admit that M1 Macs don’t provide full support for USB-C storage, and that we should use Thunderbolt instead. The current premium for a 2 TB SSD is around $/€/£ 100, whether you buy a complete drive or assemble one yourself using an enclosure. But in many cases, that surcharge is largely wasted.

Xcode 13.3.1

Apple:

Fixed: Exporting an app that uses Swift’s concurrency features from an archive with bitcode might fail when the app targets iOS 13.0–14.7, watchOS 6.0–7.6, or tvOS 13.0–14.7.

When you target iOS 13.4 and later and enable bitcode, the bitcode segment is now stripped correctly. This fixes a crash that prevented some apps from running in older operating systems (iOS 14 and earlier).

I sometimes wonder whether Bitcode was worth it.

You can download it here.

See also: Xcode 13.3 release notes.

Previously:

Monday, April 11, 2022

Police Records on AirTag Stalking

Samantha Cole:

Of the 150 total police reports mentioning AirTags, in 50 cases women called the police because they started getting notifications that their whereabouts were being tracked by an AirTag they didn’t own. Of those, 25 could identify a man in their lives—ex-partners, husbands, bosses—who they strongly suspected planted the AirTags on their cars in order to follow and harass them. Those women reported that current and former intimate partners—the most likely people to harm women overall—are using AirTags to stalk and harass them.

Via Bruce Schneier:

Eight police departments over eight months yielded fifty cases. And that’s only where the victim (1) realized they were being tracked by someone else’s AirTag, and (2) contacted the police. That’s going to multiply out to a lot of AirTag stalking in the country, and the world.

I don’t know what to make of these numbers. No doubt there are lots of cases not involving AirTag. And we don’t know how many stalkers were using AirTag but not detected. Does these cases being linked to AirTag mean that the notification feature is working, at least to an extent? Can we extrapolate how many unreported Android victims there might be, given that (presumably) few Android users are regularly running the Tracker Detect app?

Previously:

Studio Display Software Update Failures

Sami Fathi:

A growing thread on the Apple Support forum (1, 2) includes owners of the Studio Display reporting that as they try to update the display, they’re being presented with an error message that reads “Apple Studio Display firmware update could not be completed. Try again in an hour. If the problem persists, contact an authorized Apple service provider.” According to users on the thread, reconnecting the display to another Mac and/or restarting the monitor does not address the issue.

Users on the MacRumors Forums are also reporting similar problems, with some being told by Apple Support to bring in their display for repair. Apple’s Studio Display does run iOS, and users can update it through System Preferences on macOS.

Mr. Macintosh:

Apple stopped signing iOS 15.4 on 4/7

On 4/8, users started reporting that they couldn’t update the Studio Display to iOS 15.4 Firmware.

Steve Troughton-Smith:

🤦 Imagine shipping a $1599 monitor then promptly forgetting it exists, accidentally discontinuing its OS

Sami Fathi:

Apple has resolved the issue which originated from the software being unverified by the servers.

Still waiting for the camera fix.

Previously:

Shipping Services Limit Access for Deliveries App

Mike Piontek:

Many things have changed over the years, and unfortunately we’re no longer able to maintain the same service that so many of you have come to rely on. Deliveries relies on many different shipping companies, and without their help it’s not possible for the app to continue working the way you expect.

It’s likely that over time, more services in Deliveries will no longer show tracking information directly in the app. You won’t see the delivery date, the map route, or any of the details, and you won’t get notifications about changes to the status. You will need to use the “View Online” button to see your tracking information on the shipping company’s web site.

Juli Clover:

At the current time, Deliveries seems to be able to show shipping information from major U.S. shipping companies like the United States Postal Service and UPS, but over the course of the last few months, Amazon deliveries have stopped working.

Deliveries used to be able to track Amazon shipments just from an order link, but that is no longer possible.

Matt Birchler:

I can’t imagine Deliveries was doing anything nefarious, although I guess I’d be curious to hear from FedEx and Amazon why they revoked API access to the app. I suspect I’d be unimpressed with their “we think the best way for customers to track their packages is from our app” answer, though.

Anyway, I have switched over to Parcel for now, although I really don’t like its UI as much as Deliveries, but given it seems to still work with the shipping companies I tend to use, it’s functional…for now. If this is part of shipping companies revoking API access from well-behaved devs, maybe their days are numbered as well.

MacRumors

Previously:

Unable to Establish Secure Connection to idmsa.apple.com

Matt Godden:

If you’re using #macOS #HighSierra or #Sierra, #iCloud has stopped working / can’t log in, and you can’t access iCloud.com in Safari - here’s a solution.

Install the Apple IST CA 2 - G1 certificate, and everything will work again.

Previously:

Stephen Wilhite, RIP

Mitchell Clark (tweet, Hacker News):

Stephen Wilhite worked on GIF, or Graphics Interchange Format, which is now used for reactions, messages, and jokes, while employed at CompuServe in the 1980s.

[…]

Although GIFs are synonymous with animated internet memes these days, that wasn’t the reason Wilhite created the format. CompuServe introduced them in the late 1980s as a way to distribute “high-quality, high-resolution graphics” in color at a time when internet speeds were glacial compared to what they are today. “He invented GIF all by himself — he actually did that at home and brought it into work after he perfected it,” Kathaleen said. “He would figure out everything privately in his head and then go to town programming it on the computer.”

[…]

While there have been long-standing debates about the correct pronunciation of the image format, Wilhite was very clear on how he intended for it to be said. In 2013, he told The New York Times, “The Oxford English Dictionary accepts both pronunciations. They are wrong. It is a soft ‘G,’ pronounced ‘jif.’ End of story.”

Troy Gaul:

I implemented the GIF spec in 1992 for a Mac app named Color It! I remember at the time that the spec document included his pronunciation.

Years later I looked it up again, and the pronunciation section had been removed (I assume by someone else).

Color It was such a good app.

See also:

John Roach, RIP

Sam Roberts (via Hacker News):

John Roach, a marketing visionary who helped make the home computer ubiquitous in the late 1970s by introducing the fully assembled Tandy TRS-80 for $599.95 or less through RadioShack chain stores, died on Sunday in Fort Worth. He was 83.

[…]

Mr. Roach already had college experience fiddling with refrigerator-size mainframes by 1967, when he joined the Tandy Corporation, a Texas conglomerate that was founded as a leather goods company and included RadioShack and its thousands of franchised dealers in electronics farrago.

He was instrumental in prodding Tandy to venture into the computer market. At the time, most small computers were sold as kits to be assembled by hobbyists, but Mr. Roach believed that consumers would welcome a model that they just needed to plug in.

John Gruber (tweet):

The links in the passage above are not to be missed, including this 1977 Times story on home computers. But the last one is the most interesting — it’s a YouTube video of a speech Roach gave just last month.

As a kid, I had fun writing BASIC programs on a TRS-80, though I preferred the Apple II. I never had any problems with it, so the Trash-80 nickname always seemed unfair.

Friday, April 8, 2022

Upgrading to a 14-inch MacBook Pro With a Studio Display

I upgraded my 27-inch iMac (2017) to a 14-inch MacBook Pro (10-core M1 Pro, 32 GB of RAM, 2 TB SSD). Most of the time, I plan to run it in clamshell mode, sitting in a BookArc, connected to a Studio Display and a 30-inch Dell display (non-Retina).

Previously:

Update (2022-04-09): Oddly, LaTeX does not seem to be any faster when running natively vs. in Rosetta. The MacBook Pro kernel panicked when logging in from the screen saver. After rebooting, XProtect hung waiting on XPC, and most apps would not respond to clicks until I rebooted again. That fixed the clicking problem, but then TCC said that various apps didn’t have Automation access, even though System Preferences showed them as checked.

Update (2022-04-11): Sir Ruben:

I have dual studio displays and I have noticed (when the screens are off) that the glass is coated with a different colour. One is green tinted and the other is purple tinted. I have looked at my old iMac and that had a purple tint to it also.

I have also found that when wiping the screens with a microfibre cloth the green tinted one grips the microfibre more, but it glides across the purple tinted one more easily.

Update (2022-04-13): I’m having problems with the Studio Display as a USB hub. While cloning to drives that are plugged into a hub attached to the display, my wired keyboard (also plugged into the display) delays some keypresses for a few seconds and repeats others. These are low-RPM spinning hard drives, so I don’t think they are using very much bandwidth. This does not occur when the keyboard is plugged directly into the MacBook Pro, however that uses up its last Thunderbolt port and makes it more ungainly as it now has cables sticking out of both sides of the BookArc. I also had a drive spontaneously unmount when moving the keyboard from the display to a direct connection.

Pierre Igot:

You can defend Apple’s current focus on core hardware performance by saying “a rising tide lifts all boats”, but how do you defend “drives sometimes take an hour to mount” and “up to 5 minutes before it shows a non-blank window”? (My experience too.)

Update (2022-04-19): I’ve now had three spontaneous logouts in less than two weeks. They occurred in different apps, sometimes with the Mac almost idle, so it’s not clear what might have triggered them. I don’t recall this ever happening with the iMac.

See also: Jeff Johnson.

Wednesday, April 6, 2022

Apple Business Essentials for Small Businesses

Apple:

Apple today announced that Apple Business Essentials is now available to all small businesses in the US. The new service brings together device management, 24/7 Apple support, and iCloud storage into flexible subscription plans. Apple also unveiled new AppleCare+ for Business Essentials options that can be added to any plan. Additionally, a two-month free trial will be available to all customers, including those who have been using Apple Business Essentials in beta.

Jason Snell:

Per-user pricing starts at $3 per month, and increases based on the number of devices and amount of iCloud storage allotted to individual users. (The top plan, supporting three devices per user with 2TB of iCloud storage, is $13.) Plans with AppleCare+ included start at $10 per user per month and goe up to $25. AppleCare+ credits aren’t tied to individual users, but pooled across the entire organization, and expire after a year. Business Essentials comes with a two-month trial period, so that companies can experiment with it before deciding to roll it out.

On the horizon for the service, but not yet in this version: support for Google Workspace as an identity provider (currently Microsoft Azure is the only one supported) is coming “later this spring”, and Apple is working on a way to let apps that aren’t in the Mac App Store to be rolled out to devices.

Previously:

Update (2022-04-27): Tim Hardwick:

Apple later this year will discontinue Fleetsmith, its mobile device management (MDM) solution for administrators needing to manage fleets of Apple devices.

Previously:

2022 Six Colors Apple in the Enterprise Report Card

Jason Snell:

Now that there have been two surveys, we can compare last year’s scores with this year’s and see how sentiment has changed. Except for macOS identity management, which took a drop, and security and privacy, which remained the same, all scores were up. Biggest moves were software reliability and deployment, followed by the future of Apple in the enterprise.

[…]

John Welch wrote: “If your needs happen to align with Apple’s almost perfectly, then it’s amazing. But there are a lot of critical holes, especially regarding macOS. Automation is particularly bad in that there is no one coherent automation framework a la Windows and .NET/PowerShell, but rather a mélange of things that communicate in the clumsiest of ways, leading to AppleScripts calling shell scripts, shell scripts calling AppleScripts, having to bundle entire scripting implementations in an application to call a python script, one automation framework that only works in a user context, other automation frameworks that clearly only exist as a way to run iOS shortcuts and which would not be that useful for many enterprise needs. That’s not to say the iOS integration and support is bad—but Apple clearly views user-created automation as a toy best left to children. In comparison to what MS has done with PowerShell at all levels of their platform, Apple fundamentally has no clue about supporting user-created automation that doesn’t begin and end with Xcode and Swift. Apple’s documentation for any of their automation efforts is at best described as ‘bad,’ and the only reason the automation documentation not being the worst part is that Apple’s support in their own products for automation is so relentlessly abysmal. Apple has the resources to fix this—they currently don’t care to.”

[…]

James Smith wrote: “Feedback assistant is still not where it needs to be, and I rarely get responses to issues raised there. I’m left to raising tickets through the AppleCare for enterprise program if I actually want traction on an issue.”

[…]

Bart Reardon wrote: “Taken in isolation, there are obviously things that one could complain about. But when held against other hardware vendors in the same space, there’s almost no comparison. The 14″ and 16″ MacBook Pros took the crown from the 2012-2015 MacBook Pros as the best hardware form and function. (RIP Touch Bar and butterfly keyboard!) Still too early to get a good metric on the instance of warranty claims versus non-Apple devices in our environment for the new hardware.”

Previously:

Five Years to Mac Hardware Turnaround

Joe Rossignol:

Five years ago, the Mac lineup was in a bad state. Over three years had passed since Apple redesigned the Mac Pro with a sleek but constrained “trash can” enclosure, while the iMac, MacBook Air, and Mac mini had also gone years without updates.

At the time, some users began to question whether Apple was still committed to the Mac, especially at the high end of the market.

The criticism ultimately led Apple to hold a meeting with a small group of reporters, where it apologized to pro Mac users and ensured that it remained committed to the Mac. In a rare and surprising move, Apple also pre-announced it was working on a “completely rethought” Mac Pro with a modular design, a new pro-level iMac, and a new pro display.

Mac hardware has improved a lot. Software is still not in a good place. It needs better reliability/quality and more capabilities. The quality issues seem to have started with the switch to annual releases. The limited capabilities seem to be a combination of sandboxing/security concerns being weighted too heavily and designs/code brought back from iOS unfairly limiting what the Mac versions can do.

Nick Heer:

Then, it was hard for me to recommend any Mac to a friend; now, the Mac lineup is a question of what level of performance and excellence you desire. This press meeting felt like a turning point from one extreme to the other — eventually.

High on my wish list of articles for someone with the right connections to write is a deeply reported look at the Mac’s doldrums. It cannot all be due to stagnation in Intel’s processor lineup around the same time, or any one individual. Something else happened — or, more likely, many somethings else.

Riccardo Mori:

If the sheer raw power of computers has increased orders of magnitude in the last 30 years, the range of applications (in both senses) for a computer hasn’t increased or spread in a comparable way.

[…]

Apps that were previously good-quality, powerful, and versatile have been neutered and have become ‘just okay’ or ‘good enough’. The Utilities folder in Mac OS has been slowly but surely depopulated over time. iOS apps with an ingenious premise, like Music Memos, are being left behind as flashes in the pan. The consensus with iTunes was that Apple should have split it into different apps so that these could be better at handling specific tasks than the old monolithic media manager. Apple eventually did split iTunes into different apps, but forgot the second part of the assignment.

Aperture overall was a better application than Adobe Lightroom when the two apps coexisted. Apple could have kept improving Aperture and kept making it better than Lightroom. Instead they gave up. We now have Photos as sole ‘sophisticated’ Apple photo tool. Which is neither fish (iPhoto) nor flesh (Aperture).

Previously:

Mac Pro Historical Perspective

Jeff Johnson:

Below is a historical list of changes in the base price of the Mac Pro and Power Mac.

[…]

I would argue that the Mac Pro as we software developers knew it was never given a successor after the “trash can”. The Mac Pro was discontinued and replaced with a different computer of the same name that was no longer for its largest pro audience. I don’t know many individual software developers now who can afford a new Mac Pro. I certainly can’t. The Apple news media gleefully exclaim “The new Mac Pro is not for you!”, but the problem is that the old Mac Pro was for people like me, as proven by the fact that I had one, as well by Federighi’s statement that it was for people like me. In my eyes, the 2019 Mac Pro was a betrayal of Apple’s 2017 assurances.

[…]

Ten years ago we had relatively affordable, conveniently upgradable Mac Pro models. Since then we gained a faster CPU, but otherwise we’ve lost everything else great about the Mac Pro.

Previously:

Tuesday, April 5, 2022

Using shellcheck With BBEdit

Armin Briegel:

Once you have the shellcheck command installed, you can also invoke from within BBEdit: When you have a script open in BBEdit, verify that the script is recognized as a ‘Unix shell script.’ Then you can select ‘Check Syntax…’ from the ‘#!’ menu (keyboard shortcut ⌘-K). This will open a second window with all the issues shellcheck has found.

Unfortunately, given that Apple is phasing out bash, it doesn’t work with zsh.

Previously:

Update (2022-04-13): Matt Sephton:

zsh -n $FILENAME and/or zsh -x $FILENAME (non_exec and debug mode respectively) are a reasonable workaround. Not shellcheck good but workable.

Forged Emergency Data Requests

William Turton:

Apple and Meta provided basic subscriber details, such as a customer’s address, phone number and IP address, in mid-2021 in response to the forged “emergency data requests.”

[…]

Cybersecurity researchers suspect that some of the hackers sending the forged requests are minors located in the U.K. and the U.S. One of the minors is also believed to be the mastermind behind the cybercrime group Lapsus$, which hacked Microsoft Corp., Samsung Electronics Co. and Nvidia Corp., among others, the people said.

[…]

The guidelines referenced by Apple say that a supervisor for the government or law enforcement agent who submitted the request “may be contacted and asked to confirm to Apple that the emergency request was legitimate,” the Apple guideline states.

Juli Clover:

Typically, Apple provides this information with a search warrant or subpoena from a judge, but that does not apply with emergency requests because they are used in cases of imminent danger.

Brian Krebs:

There is a terrifying and highly effective “method” that criminal hackers are now using to harvest sensitive customer data from Internet service providers, phone companies and social media firms. It involves compromising email accounts and websites tied to police departments and government agencies, and then sending unauthorized demands for subscriber data while claiming the information being requested can’t wait for a court order because it relates to an urgent matter of life and death.

[…]

It is now clear that some hackers have figured out there is no quick and easy way for a company that receives one of these EDRs to know whether it is legitimate. Using their illicit access to police email systems, the hackers will send a fake EDR along with an attestation that innocent people will likely suffer greatly or die unless the requested data is provided immediately.

In this scenario, the receiving company finds itself caught between two unsavory outcomes: Failing to immediately comply with an EDR — and potentially having someone’s blood on their hands — or possibly leaking a customer record to the wrong person.

[…]

“The only way to clean it up would be to have the FBI act as the sole identity provider for all state and local law enforcement,” Weaver said. “But even that won’t necessarily work because how does the FBI vet in real time that some request is really from some podunk police department?”

Bruce Schneier:

The “credentials” are even more insecure than we could have imagined: access to an email address. And the data, of course, isn’t very secure. But imagine how this kind of thing could be abused with a law enforcement encryption backdoor.

Nick Heer:

Yet again, the most effective techniques for illicitly obtaining information are confidence tricks, not technical expertise.

Brian Krebs:

The current scourge of fraudulent EDRs illustrates the dangers of relying solely on email to process legal requests for privileged subscriber data. In July 2021, Sen. Wyden and others introduced new legislation to combat the growing use of counterfeit court orders by scammers and criminals. The bill calls for funding for state and tribal courts to adopt widely available digital signature technology that meets standards developed by the National Institute of Standards and Technology.

“Forged court orders, usually involving copy-and-pasted signatures of judges, have been used to authorize illegal wiretaps and fraudulently take down legitimate reviews and websites by those seeking to conceal negative information and past crimes,” the lawmakers said in a statement introducing their bill.

However, hackers could still get unauthorized access to the digital signing key instead of the e-mail account.

Thomas Clement:

This is exactly why end-to-end encryption exists, which iCloud is still not doing.

Previously:

Audio Hijack 4

Paul Kafasis (tweet):

In Audio Hijack, individual blocks that capture, record, and manipulate audio are combined into powerful pipelines. For version 4, we made improving blocks a major focus. We’ve created brand-new blocks, added new features to the way blocks work, and improved nearly every existing block.

[…]

We also optimized many parts of the layout based on real-world usage. The powerful new session sidebar lets you search the Block Library to more quickly find the block you need, particularly great if you have dozens of Audio Units. Recordings and Timers are now grouped logically with their individual sessions, and previews for recordings feature a helpful waveform. The Info sidebar tab even offers a new Notes field, perfect for storing information about your sessions.

[…]

For power users with complex setups, we’ve implemented the ability to manually connect your audio pipeline. Most users will still want to rely on Audio Hijack’s automatic connections, but you now have the option to turn them off. You can then draw wires between blocks to achieve tricky pipeline setups, independent of layout.

[…]

With an all-new JavaScript engine and API, building programmatically-driven workflows in Audio Hijack is now a reality. Scripts can run automatically when sessions start and stop, and process recordings as they’re created.

It’s $64 for new licenses (up from $49 for version 3) or $29 to upgrade—no subscriptions.

See also:

Previously:

Apple Sitting on Applications and Requests

Chris Lacy:

An overlooked point regarding Apple’s stranglehold over iOS developers & their apps is Apple’s one-sided power in approving developers.

My company submitted a developer application in Nov ’21. 140+ days later & the enrollment is still “being processed”, with no updates provided.

Phone calls were not helpful, but a few days after tweeting his application was accepted.

Russell Ivanovic:

I submitted an application for their small business program for my personal account. 3 times. Zero response. It’s been a year now and they still charge me 30% instead of 15%

Matt Cox:

Yep. I’m in this boat as well. Literally zero idea what’s going on.

Previously:

Charging More for Black Products

Stephen Hackett:

The black MacBook was sold alongside the more popular — and less expensive — white MacBook.

[…]

The two machines always shared the same specs when it came to the CPU, RAM and optical drive. However, the black MacBook always came with a larger hard drive for that $200.

However, the Magic Keyboard, Magic Mouse, and Magic Trackpad cost $20 extra for black, without any additional features for capacity.

Monday, April 4, 2022

Edge Cases When Dealing With Music

Julien Voisin:

Weird album names

[…]

Some tracks don’t have a title

[…]

Tracks can have multiple artists

[…]

Some bands are kinda changing their name

[…]

Some albums are known under several names

[…]

Different bands may have the same name

Via Sören:

This fits in nicely with @siracusa’s recent discussion (on @atpfm) on a data model for music.

See also: Accidental Tech Podcast.

Previously:

Update (2022-04-13): Nick Heer:

Voisin’s list is extensive, but let me add a few entries

Update (2023-11-22): See also: Hacker News.

Searching in Open/Save Panels

Zach Waugh:

I just discovered you can hit / in any macOS save dialog to open a Spotlight-esque quick folder search and even use things like ~ to jump to your home folder. No clue when that was added, but a handy shortcut instead of manually navigating a deep folder hierarchy

This seems to be a new way of invoking the old Go to Folder command, which still works via Command-Shift-G. The folder picker matches Finder’s Go to Folder, which was redone in Monterey.

Previously, it only let you enter paths (with autocompletion). But now it also shows a list of recent folders, and you can also search by name. Neither of these new features works very well for me. The recent list does not include most of the folders that I’ve recently chosen. And searching behaves like the longstanding open/save panel search field: sometimes it works, but sometimes it takes a long time to find no results.

The main way that I navigate these panels is via keyboard shortcuts, which also match Finder’s:

And then I can drill down using the keyboard to select the right folder at each level.

For common folders that take longer to navigate to, I find them with LaunchBar and then drag and drop onto the panel.

I used to use a lot of Finder favorite/sidebar folders, which show up in the panel’s source list, but macOS 11 and later keep losing all my favorites, and so I gave up on restoring them each time. (I’ve stopped using widgets for the same reason.) Also, a few versions back, macOS stopped remembering the width of the open/save panel sidebar, and so it is hard to tell some of the longer folder names apart without resizing it every time.

Previously:

triald

Howard Oakley (Hacker News):

Over the last year or so Mac users have run into problems that appear related to a background service named triald. Some report it stealing huge amounts of CPU, others associate it with various glitches, and a few have noticed gigabytes of disk space apparently being taken up by its folder at ~/Library/Trial, and in their Time Machine backups.

[…]

The Trial root directory can readily occupy substantial amounts of disk space: on my production Mac, it appears to contain 1.47 GB in 148,618 items, which is a hefty chunk in backups.

[…]

Trial appears primarily concerned with gathering data from Experiments distributed via CloudKit. These notably include ML features such as Visual Look Up.

[…]

Trial’s root directory at ~/Library/Trial should be added routinely to all backup exclusion lists. Apple should add it to Time Machine’s system exclusions at the earliest opportunity.

Howard Oakley:

Last week we celebrated the fifth anniversary of APFS, the file system which Apple secretly rolled out to millions of iPhones and iPads on 27 March 2017. It was also the week when we discovered that services introduced over a year ago in macOS Big Sur appear to conduct ‘trials’ and ‘experiments’ on our Macs. While Apple came clean about APFS [how previous software updates did test filesystem migrations] just over two months later, it shows no sign of explaining what’s been happening on our Macs.

[…]

The principle here is treating adults as adults, with respect. When you’re going to change something which you suspect could affect them, you communicate, inform, and obtain their consent.

[…]

As we don’t know what triald does collect, and what it might share by way of results, it’s impossible for us to know how Apple considers its activities relate to its long and detailed statements on privacy. Although I’m sure those who already accuse Apple of not adhering to its high ideals will be as sceptical as ever, I’m confident that triald does comply with its stated policies in all but one respect: nowhere in those pages do I see any reference to trials or experiments, except in the very different context of health studies.

Update (2022-04-12): Howard Oakley:

As we start to explore Apple’s latest undocumented service, Trial, gaining easy access to its log entries becomes important. I’ve therefore added another readymade log browsing option to my free utility Mints.

[…]

Trial appears to be involved in all parts of macOS which benefit from ML, including Siri, natural language processing, Photos library and other image analysis, Spotlight search ranking, and Safari search ranking and other features. This is a non-trivial system.

Howard Oakley:

Currently, the major supplier of apps using Core ML is Apple. Trial, and possibly a sibling going under the name of Biome which also has its own root directory in ~/Library, appears to be Apple’s system for deploying new and updated models for use in Siri, Photos image analysis and recognition, Visual Look Up, Live Text, and other features in Big Sur and Monterey.

[…]

It still remains strange that Apple should use terms like trial and experiment, if these are just model updates. Despite what some may think, ML doesn’t normally proceed by running large-scale trials or experiments across user systems.

Mac External Displays for Designers and Developers

Marc Edwards (tweet):

Since writing about Mac external displays in 2016, not much has changed. LG, Dell, Samsung, and other display makers have either never catered for the specs many Mac designers and developers want, or they’ve reluctantly produced products that have been short-lived or compromised.

[…]

Thankfully, Apple’s new Studio Display now provides a great option.

Spec wise, it’s incredibly similar to LG’s 5K UltraFine, and the display of the now discontinued 27-inch iMac, even though it’s not using the same panel. […] The Studio Display hits an incredibly important target, and it can now be the default choice for discerning Mac designers and developers.

[…]

Not everyone’s going to see these issues or be annoyed by them, but they are very real. There’s also very legitimate reasons for using display scaling, or purchasing displays that can’t run macOS with 1:1 pixel mapping. It’s just good to be aware of the compromises. If you’re after a cheaper option, buying a non-Retina display could be a good choice. For that, you’d want a display that’s around 109PPI. It will look more pixelated though.

See also: Accidental Tech Podcast.

Previously:

Friday, April 1, 2022

External Link for Reader Apps

Apple (Reddit):

With reader apps, people can sign in to their account created outside the app, letting them view and enjoy previously purchased media content or content subscriptions on their Apple device. If you’d like your reader app to also provide a link to your website where people can create and manage their account, learn about requesting the External Link Account Entitlement, usage guidelines, and implementation details.

In order to be eligible, your app must:

As the primary functionality of your app, provide one or more of the following digital content types; magazines, newspapers, books, audio, music, or video.

[…]

Not offer in-app purchases on iOS or iPadOS while using the External Link Account Entitlement

[…]

Apple is developing a new External Link Account API that will provide the in-app modal sheet. Once this new API becomes available in a public release of iOS and iPadOS, you’ll have 30 days to adopt it with the next update of your app. In the meantime, you’ll need to build this modal sheet by following exactly the design specifications provided below.

Mitchell Clark:

This should help improve the historically bad user experience for these types of apps caused by Apple’s previous rules. Previously, if you downloaded the Netflix app but didn’t have an account, Netflix wasn’t allowed to give you a link to sign up or tell you where you could go to create an account. That made apps frustrating for users who didn’t have accounts and forced developers who didn’t want to use Apple’s in-app payment system (and give up 30 percent of their revenue) to make a worse experience for potential customers. Now, developers should at least be able to make a button that takes you to their website.

Kyle Howells:

Wow! You can now apply to Apple, for the potential opportunity, to tell your users that your website exists!

Can’t wait to see what such an innovative company comes up with next!

Nilay Patel:

Has there ever been clearer visual evidence that Apple thinks every interaction you have on an iPhone belongs to them

Adam Demasi:

I love the straight up false text that you’re “no longer transacting with Apple”, but, you never were transacting with Apple in the first place??

When will I be required to tap through one of these interstitials when I buy something in the Amazon app, or hail an Uber?

Michael Love:

Seems like it might work for Pleco if a) they approved it and b) I made a separate no-IAP version of Pleco to comply with their guidelines.

But I don’t know if it’s worth going to the trouble, particularly with the likelihood of legislation forcing them to go way beyond this.

Interestingly, there does not seem to be any prohibition on using Reader entitlements in paid apps, so if this does turn about to be all the opening we get out of Apple, one workaround I could consider would be to charge say $20 for Pleco-plus-features + sell content via a link.

Previously:

External Purchase Without a Separate App

Apple (Hacker News, MacRumors, tweet):

Apple is eliminating the requirement that developers of dating apps in the Netherlands who choose to use the above entitlements must create and use a separate binary.

[…]

Apple is providing updated and more-specific criteria to evaluate non-Apple payment service providers that developers of dating apps in the Netherlands may use.

[…]

Apps that use either entitlement need to include an in-app modal sheet that explains to users that they’re going to make purchases through an external payment system, and the potential impact that choice could have on the user. Apple is adjusting the language on the modal sheet and reducing the number of times the sheet must be displayed.

Before, the required language was:

Title: This app does not support the App Store’s private and secure payment system

Body: All purchases in the App Name app will be managed by the developer “Developer Name.” Your stored App Store payment method and related features, such as subscription management and refund requests, will not be available. Only purchases through the App Store are secured by Apple.

It is now:

Title: You’re about to leave the app and go to an external website. You will no longer be transacting with Apple.

Body: Any accounts or purchases made outside of this app will be managed by the developer “Developer Name.” Your App Store account, stored payment method, and related features, such as subscription management and refund requests, will not be available. Apple is not responsible for the privacy or security of transactions made with this developer.

Michael Love:

Still charging 27%, though, so I don’t know why the ACM or the affected dating companies would accept this unless all they want is a token symbolic victory.

Steve Troughton-Smith:

Fun loophole in Apple’s ‘dating apps in the Netherlands’ policy:

“[devs] using these entitlements will be required to provide [every transaction] that has been facilitated through the App Store”

However, external link policy prohibits parameters & only allows for a single link

[…]

So depending on your reporting/analytics practices and how you choose to implement this, you may have no data whatsoever as to whether a transaction has been facilitated by the App Store, or whether it was generated outside of the App Store

Nick Heer:

The big question for me is whether this purchase flow will be expanded beyond dating apps and outside of the Netherlands. It is becoming quite polished, and permitting it within an existing binary seems like a possible — albeit unlikely — path toward broader use.

Previously:

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

Baby steps, but all of these changes are in the direction of decreasing regulatory pressure. Apple can be stubborn but they’re not stupid.

Dimitri Bouniol:

I just confirmed YouTube has been skirting IAP rules by redirecting to Safari to process the card transaction themselves. Of course, now that I try again, they are showing proper in-app-purchase sheets. Seems like they were A/B testing it to see if they can get away with it?

Update (2022-04-13): Dave Howell:

I was cheesed when Phil Schiller, out of the blue, decided that the QuickTime 3 installer was going to cost developers a couple of bucks for every installation, with absolutely no way to help us track installs. Announced at WWDC with no warning. Boneheaded. Finally retracted it.

Nobody could answer basic questions like what if the user already has QT3 installed? Or what if they get a refund? Or what counts as an install vs a shipment, etc. The WWDR folks just said, in obvious exasperation, Dunno, ask Schiller.

Intel Virtualization and Apple Silicon

Apple (Hacker News):

This sample code project demonstrates how to install and run macOS virtual machines on Apple Silicon using the Virtualization framework.

But what if you want to use an older version of macOS, which doesn’t run on Apple Silicon?

Steve Troughton-Smith (tweet):

The transition to Apple Silicon brought about many exciting things, but one of the capabilities left behind was access to the world of Intel-based virtual machines. X86_64 just isn’t a trivial architecture to emulate, and it may never be feasible to do so on Apple Silicon at a useful speed as the operating systems you wish to run gain more and more complexity and become more and more demanding.

You have plenty of great options for emulation, like UTM, but the performance penalty is significant, and that rules out many use-cases.

[…]

VMware no longer boots anything under Rosetta, and the VMware Fusion Apple Silicon preview only supports virtualizing Linux as Microsoft’s licensing story for Windows on ARM does not include the Mac.

[…]

VMware have an enterprise-level operating system called ESXi, which is a bare metal hypervisor. What does that mean in practice? If you have a spare PC and Ethernet, you can install ESXi as its OS, configure it over the network through a web browser, and have it become the dedicated engine that runs your VMware virtual machines. With VMware Fusion Pro, you can connect to that ESXi machine via its IP address, and then be able to run/manage your virtual machines mostly the same as when you could run them locally.

[…]

What you do get, though, is near-native performance, without taking up any of the resources of the Mac you’re working on.

Previously:

macOS 12.3.1

Juli Clover:

macOS Monterey 12.3.1 comes two weeks after the launch of macOS Monterey 12.3, an update that brought Universal Control.

Note that Universal Control remains in beta.

According to Apple’s release notes, macOS Monterey 12.3.1 introduces a fix that could cause Bluetooth controllers like game controllers to disconnect from the Mac after playing audio through some Beats headphones. It also addresses a bug that could cause USB-C or Thunderbolt external displays to not turn on when connected to the 2018 Mac mini as a secondary display.

Howard Oakley:

Additionally, this addresses two other issues. The first are those few MacBook Pro 2021 models which have been unable to update to 12.3; this update should enable them to update to 12.3.1 successfully. The other is a strange bug which caused flickering in half a dozen pixels on Thunderbolt or Cinema Displays when connected using a USB-C to TB adaptor, with an M1 Mac; that has now been fixed too.

I’m glad to hear that this apparently fixes the severe bug in AppleScript which caused open [file] to fail. However, it doesn’t fix or alter in any way the memory leak seen in the Finder’s Find feature, nor does it display charge levels during recharging of Apple wireless input devices.

There are two security fixes included in this update, detailed here.

See also: Mr. Macintosh.

You can download the installer here.

Previously:

Update (2022-04-12): Joshua Long (via Meek Geek):

After [more than] a week, Apple still has not released corresponding security updates to address the same vulnerabilities in the two previous macOS versions, Big Sur (aka macOS 11) and Catalina (aka macOS 10.15).

Both of these macOS versions are ostensibly still receiving patches for “significant vulnerabilities”—and actively exploited zero-day vulnerabilities certainly qualify as significant.

Apple Sales Support and Apple Card

I ordered a Studio Display as soon as it was announced, but it wasn’t slated to ship until around March 31. That estimate seems to have been accurate because yesterday I got an e-mail saying that I needed to update the payment method. It ended up taking about an hour to get Apple to fix the order.

At first glance, everything looked OK. The order status page showed that it was billed to my Apple Balance—I had collected a bunch of discounted gift cards in anticipation of hardware purchases this year—and then my Apple Card for the remainder.

I still had a gift card balance, and my Apple Card was well below its limit. I tried selecting the Apple Card attached to my Apple ID again but got an error that it was “invalid.” I tried actually entering the number of the Apple Card (from the Wallet app), and that also failed. Finally, I tried entering a Bank of America card (also well below its limit) and got an error there, too.

I started a chat with Apple and explained the above. After investigating for a while, I was told that the problem was that between placing the order and when Apple decided to bill for the display, my iCloud subscription had reduced my balance by $2.99. (The Mac App Store app, a week later, still shows the old balance, even after rebooting.) I guess since the iCloud charge changed the amount that would go on the card they needed me to confirm the card again. (Given the number of customers Apple has and how long they’ve been aggressively pushing subscriptions you’d think they could predict this sort of thing in advance or have a streamlined flow to fix it, but no.)

The chat agent directed me to update the payment method at the Web site that I’d already said didn’t work. In fact, it was on that page that I had clicked the link to get help. I then found out that the support department that they payment method page had directed me to did not actually have the power to fix payment method problems.

So the chat agent offered to have the appropriate billing support person call me. Not to worry, all the information about my case would be entered into the ticket so that I wouldn’t have to repeat it. They tell me this every time. It has never been true.

While I waited for the call, I downloaded the chat transcript. Most companies give you a .txt file. Apple gave me a beautiful PDF file. It was larger than 1 MB and contained no text that was searchable or copyable.

My phone rang. Indeed, it was not true. The agent had no idea what issue she was calling me about. I explained it all again and then found out that the she was from the media subscriptions department. They can’t help with hardware orders.

She transferred me to Apple Store support. I explained again. The store agent tried to put the order on my Apple Card and said it was declined because of the limit. She asked me to check the limit. It’s an Apple Card, so I can easily do this in the Wallet app. It said I had several times the required amount available. I don’t autobill anything to that card and had no other recent purchases. She didn’t know what to make of that, but she could transfer me to the right person at Citizens Bank to investigate why the charge was declined. Ah, something only Apple can do, since the store and card are integrated so. But…Apple Card is issued by Goldman Sachs, not Citizens. No thanks.

The reward points are not worth it. Can they just put it on my Bank of America card? I gave the number over the phone, and somehow that worked despite failing multiple times in Safari. Finally.

“It will ship in 4–6 weeks.” Huh? The order status page still says it will be delivered March 31–April 7, like it always has. (It now is March 31; there’s no way it will be delivered the same day.) But, apparently, the Web site is wrong. The store people use a different, more accurate system. I should expect weeks.

An hour later, I received 4 e-mails saying that my order’s payment method had been successfully changed.

Today, I received a notification that the order had shipped and would arrive tomorrow. The Apple Store app and the order status page still say that it is “Preparing to Ship,” yet it might still be delivered on March 31 (yesterday). There is no tracking information available. I guess I’ll see what happens tomorrow.

Previously:

Update (2022-04-01): A few hours later, I received an e-mail saying it would be delivered on April 5. A tracking number was included, which indicates that it hasn’t shipped yet. The order status page still says March 31–April 7, with no tracking number, and it recommends visiting “Track Shipment,” which isn’t linked.

Wider Alerts on Monterey and Big Sur

Pierre Igot:

Don’t care what Apple thinks. There is no world in which the combination of these two different UI schemes (different look for buttons, different font size, different layout, etc.) in the same process looks good.

It just looks like a half-baked idea (if you can call it an idea).

Léo Natan:

Do you prefer the old style macOS alerts? There is a way to get them globally for AppKit in Big Sur and Monterey:

defaults write -g NSAlertMetricsGatheringEnabled -bool false

Previously: