Archive for November 2021

Tuesday, November 30, 2021

Little Annoyances in macOS 12.0.1

Howard Oakley:

These appear to be part of long-standing problems with Apple’s wireless trackpads and keyboards, which can also occasionally result in the doubling of letters and other glitches. Although these have improved to the level of occasional irritants, I can’t understand how Apple’s own devices can’t be used without these bugs getting in the way.

[…]

Sadly the answer is that they’re still non-functional. Open the Desktop & Screen Saver pane, select the Screen Saver tab, and then preview the Classic, for example. All I can see is a black screen with the time displayed.

[…]

One of the oldest prominent bugs in macOS, which dates back at least eight years to OS X 10.9 if not before, is a flaw in the Finder calculating the width of columns, which I’ve named the Finder column width bug.

The biggest issues for me are:

If we’re talking annoyances, rather than bugs per se, the top of my list would have to be the narrow alerts.

Previously:

Update (2021-12-03): Tyler Hall:

Just piling on to say that 12.0 is the first time I’ve ever consistently shut down my laptop at the end of each work day because I know that will make tomorrow much more performant and glitch free.

Two more bugs I still run into, carried over from Big Sur:

An annoyance, new in Monterey, is that in the evening, when my Mac’s screen is locked and asleep, it will wake itself up—disturbing me by flashing light all around the room—just to show a notification that it’s entering Do Not Disturb mode.

Nick Heer:

I could pick and choose from the bugs I have filed in the past several months to build a list like these. I seldom find applications outright crashing, but there are plenty of entry-level user interaction problems: in several apps, scroll position is not preserved while using the app or when it is backgrounded; notifications fly in from the bottom edge of the screen when waking my Mac like there is a violent toaster on my desk; Music remains a small tragedy.

In isolation, it would be hard to isolate any of these problems as particularly upsetting or difficult. But they compound. Each one adds unnecessary friction to the tools I use all the time. You can add them all to a list but, for me at least, they multiply my annoyance. From where I am sitting, it is hard to know if these problems are being treated seriously, or if they are falling by the wayside as Apple races to get new features ready in time for WWDC 2022.

Howard Oakley:

There have been a few reports of Macs running recent versions of macOS, particularly 12.0.1, gradually getting slower until they almost grind to a halt. This article suggests a structured way to tackle both diagnosing and dealing with this.

Good tips, but unfortunately they did not lead to a resolution for me. Neither did rebuilding Launch Services.

Bob LeVitus:

Apple released MacOS Monterey (V12.0.1) last week, and my upgrade experience was less than stellar. After three days, I’m still dealing with multiple irritating issues.

[…]

When I wake up my Mac, as often as not, my desktop icons have rearranged themselves spontaneously, leaving a jumble of overlapping icons in place of my carefully arranged groups

[…]

Another issue I haven’t yet resolved is that my wired keyboard has become unreliable since the upgrade. Characters don’t appear when I type them, sometimes appearing after a long lag and sometimes not appearing at all. It happens with two different wired keyboards and is so irritating that I’m using the built-in MacBook Air keyboard, which I hate.

Colin Cornaby:

While the new MacBook Pro hardware is dreamy, both migrations from my old gear were marred by macOS bugs in Monterey on both ends.

One of my favorites: When Migration Assistant tries to close all the apps on the source Mac end, it it gets held up by an app that won’t close, it just gets stuck in a bad state. You get a back button, but into a “can’t authenticate” state.

Update (2021-12-13): Martin Wierschin:

My own upgrade to Monterey was relatively smooth, but there were some issues. The only potentially critical failure was that Apple Mail did not import all of my emails. Several hundred emails were completely blank and invalid

Geoff Duncan:

One of the things I admire most about macOS is how using a Photos as a source of images for the screensaver has been broken for so long (I think since El Capitan) that nobody even mentions it anymore.

See also: What’s happening with Apple?.

Safari Background Tabs Reactivate

Jeff Johnson (tweet):

The madness in this case is Safari background tabs spontaneously coming to the front again, an obviously undesirable behavior. The initial report was for an obscure (to me) web site in New Zealand, but then I asked around, and someone said it also happened on ESPN, which is not so obscure (to me).

[…]

If window.open is called in a Safari background tab with an iframe browsing context, the tab comes to the front.

I’ve definitely seen this one.

Previously:

Requesting Your Personal Data From Amazon

Nick Heer:

Amazon does not promise to turn around its files nearly as quickly. It says that it can take up to thirty days to create the exported data. When it does become available, you are presented with a list of individual downloads labelled and categorized by function — in mine, there were 57.

And there is no “download all” button.

Oh, and all of the download buttons are not actually direct links to each file, but instead link to an HTML page that fetches the correct download, which means you cannot save the files to a specific folder on your computer.

Previously:

Are Mac Malware Defenses Changing Again?

Howard Oakley:

Although updates to XProtect’s data files and to MRT always have been irregular, a year ago they occurred quite frequently, with XProtect updates every 7-21 days, and MRT every month or so. As of today, the last XProtect update was pushed on 24 September (version 2151), and there has only been one very minor update to MRT (1.85) since 13 September – a period of over two months.

[…]

Whatever is happening, this can only worry those using earlier versions of macOS. For all their limitations, XProtect and MRT have still been providing Macs with valuable malware detection and removal. If malware defences in Monterey are moving away from those tools, and Apple has cut back their maintenance, that leaves Big Sur and earlier worryingly exposed.

Previously:

Monday, November 29, 2021

Snowflake Weather 1.3 for iOS

Bjango:

Snowflake is an incredibly detailed weather app, covering almost everything you could possibly want to know about current conditions and forecasts.

I’m not sure why I haven’t heard much about this app, but I was glad to discover it recently. As expected from the developer of iStat Menus, the interface is thoughtfully designed and very customizable. It’s vaguely Weather Line–inspired. Like Weather Strip, it shows both the daily and extended hourly forecast on the same screen. But it also mixes in textual descriptions and lets you easily see the total precipitation for each day. And it’s easy to switch locations by long-pressing on the home icon. $4.99 for the basic version ($0.99 Black Friday deal), plus $4.99/year to get more weather providers, longer forecasts, maps, etc.

Previously:

Mac Upgrade Program

Sami Fathi:

In association with CIT as the financing partner, Apple has launched a new Mac Upgrade Program for small businesses and Apple business partners that allow companies to easily distribute and upgrade their fleets of MacBooks at an affordable price to all of their workers.

[…]

The new 14-inch and 16-inch MacBook Pros are offered at $60 and $75 per month, respectively, while the 13-inch MacBook Pro and MacBook Air are offered at $30 and $39 monthly payments.

It seemed inevitable that Apple would offer Macs as a subscription service. Unlike the iPhone Upgrade Program, this is so far only for businesses.

Chance Miller:

As mentioned earlier, business customers can return or swap their Macs after three months. If you’re in a situation where you routinely upgrade your Mac every new release, this model might make a lot of sense from an accounting perspective. Depending on how you depreciate your laptops, simple financing options might help you write it off each month while getting a new upgrade whenever Apple releases new models. If you’d been using a 13″ MacBook Air with M1 for the last year, you’d have an easy path to upgrade to a 14″ or 16″ model without dealing with trade-ins or selling online.

CIT’s fine print says that the financing is 3% of the total cost, so as you add upgrades to your Mac, the monthly cost would change slightly.

Including the financing, you “pay” for a $999 MacBook Air in just under 3 years. Without the upgrade program, after 3 years you would still have the original MacBook but could trade it in to get a new one or keep using it without making additional payments. With the upgrade program, you may have gotten multiple “free” upgrades in that time, but it’s not clear to me whether you can keep or resell the computer if you stop paying the monthly fee.

Previously:

Tech Giants

Ben Lovejoy:

The breaking up of a bunch of old-school industrial conglomerates is leading some to question the very long-term prospects of the “new conglomerates” – tech giants like Apple, Amazon, Facebook, and Google.

But a piece in the WSJ argues that they have two advantages over companies like General Electric, which could see them last even longer …

[…]

The dismantling of General Electric, Toshiba, Johnson & Johnson, Siemens, DowDuPont, United Technologies and other sprawling business empires in recent years has been heralded as the end of the conglomerate and the demise of the idea that brilliant management teams can succeed operating in very different industries. But just as those giants of traditional industry are being dismembered, today’s tech giants have arisen as latter-day conglomerates—what some even call “neo-conglomerates.” They boast valuations bigger than any other companies in history, and have diversified their businesses through acquisitions and new starts just like conglomerates of old[…]

Who can say when technology changes so quickly, but the new giants arguably have more lock-in and are quasi monopolies/duolopies.

Romeen Sheth:

Check out the difference between the world’s largest companies in 2005 and 2021.

Update (2022-01-05): Hacker News:

Which FAANG is the most likely to decline in the years ahead?

The overwhelming choice is Facebook, followed by Netflix.

Mac/iOS Safari Extension: Vinegar

Zhenyi Tan (via John Gruber):

YouTube5 was a Safari extension back when Flash was still a thing and hated by everyone. It replaced the YouTube player (written in Flash) with an HTML <video> tag.

And now the YouTube player situation has gotten bad enough that we need another extension to fix it. That’s where Vinegar comes in. Vinegar also replaces the YouTube player (written in who-knows-what) with a minimal HTML <video> tag.

$1.99 for a universal purchase.

Previously:

Friday, November 26, 2021

Xcode’s Environmental Pollution

Daniel Jalkut (tweet):

After a lot of trial and error, I came across the strangest observation: if I invoke “xcodebuild” from within my Python-based build script, the warning is emitted. If I invoke it directly from the Terminal, it isn’t. In fact, if I simplify my build script to simply invoking “xcodebuild”, the warning happens. Stranger still? If I change the script from “python3” to just “python”, the warning goes away again.

[…]

Sure enough, the environment variables differed when I ran the script with “python” vs. “python3”.

[…]

That “CPATH” entry for example only exists when invoking the script with python3, and it’s this very environment variable that is creating the unexpected Xcode warnings!

I was perplexed about how or why the version of Python could impact these environment variables, but then I remembered that python3 is bundled in Xcode itself, and the version at /usr/bin/python3 is a special kind of shim binary that directs Apple to locate and run the Xcode-bundled version of the tool. Apparently, a side-effect of this mechanism causes the problematic environment variable to be set!

New Rowhammer Techniques

Catalin Cimpanu (via Hacker News):

Google says Rowhammer attacks are gaining range as RAM is getting smaller A team of Google security researchers said they discovered a new way to perform Rowhammer attacks against computer memory (RAM) cards that broaden the attack’s initial impact.

[…]

Initial Rowhammer attacks targeted RAM DDR3 memory cards, but academics kept researching the topic. In the following years, they also discovered that Rowhammer attacks could also impact RAM DDR4, that attacks could be executed via JavaScript code loaded on a web page, or even via network packets sent directly to a computer’s networking card.

Furthermore, researchers also found that Rowhammer attacks could also be used to exfiltrate data from the RAM (not only alter it) and that attacks could also be accelerated by using locally installed GPU or FPGA cards.

[…]

In a new attack variation named Half-Double, researchers said they managed to carry out a Rowhammer attack that caused bit flips at a distance of two rows from the “hammered” row instead of just one.

Computer Security Group (via Bruce Schneier):

We demonstrate that it is possible to trigger Rowhammer bit flips on all DRAM devices today despite deployed mitigations on commodity off-the-shelf systems with little effort.

[…]

As the search space of non-uniform patterns is huge, we conducted a series of further experiments to determine the structure of patterns that effectively bypass TRR. Our experiments showed that the order, regularity, and intensity of accessing aggressor rows in non-uniform patterns are essential. We noticed that our observations nicely match with common parameters of the frequency domain, namely frequency, phase, and amplitude. We used these parameters to design frequency-based Rowhammer patterns that can effectively explore the space of non-uniform patterns. We implemented these patterns in a black-box fuzzer named Blacksmith that determines suitable parameter values crafting effective patterns targeting a specific device.

Previously:

Metal-cpp

Apple (via Hacker News):

Metal-cpp is a low-overhead C++ interface for Metal that helps developers add Metal functionality to graphics apps, games, and game engines that are written in C++.

[…]

No measurable overhead compared to calling Metal Objective-C headers, due to inlining of C++ function calls.

[…]

For convenience, you can alternatively use metal-cpp as a single-header include in your project.

[…]

Metal-cpp follows the object allocation policies of Cocoa and Cocoa Touch. Understanding those rules is especially important when using metal-cpp because C++ objects are not eligible for automatic reference counting (ARC).

It’s not often that Apple encourages using C++.

Previously:

2021 E-reader Roundup

Jason Snell:

Which brings me to page-turn buttons. The Paperwhite still doesn’t have them. Amazon has decided that page-turn buttons are a premium feature that should only be available on its $270 Oasis. (This is one of the reasons I recommend the Kobo Libra 2.) Clicking a button is just a better way to move through a book than moving your finger from the edge of the device’s bezel to over the screen for a single tap or swipe, and then putting your finger back on the bezel.

[…]

If physical page-turn buttons are something you care about, and you don’t mind a screen that’s recessed into the bezel, the $180 Libra 2 is a great choice.

If you can’t countenance a recessed screen and want a larger screen, the $260 Kobo Sage is a big, beautiful e-reader with some fancy features like Dropbox support—and of course, physical page-turn buttons.

[…]

Beyond compatibility, though, the Kobo experience is remarkably similar to the Kindle. You can buy books on Kobo’s store, either on the device or on the web. The prices are the same as those found on the Kindle Store. Of course, Kindles have access to Amazon services like Kindle Unlimited. On the other hand, Kobos are much better citizens when it comes to borrowing e-books from your local public library.

Previously:

Update (2021-12-03): Jason Snell:

When I say Kobo e-readers are better at Overdrive than Kindles, I’m not saying Kindles don’t work. I’m saying that it’s not nearly as good as an experience as it is on a Kobo. (This is unsurprising, since the owners of Kobo also owned Overdrive for several years.)

Wednesday, November 24, 2021

Apple Sues NSO Group

Apple (PDF, Hacker News, Reddit):

Apple today filed a lawsuit against NSO Group and its parent company to hold it accountable for the surveillance and targeting of Apple users. The complaint provides new information on how NSO Group infected victims’ devices with its Pegasus spyware. To prevent further abuse and harm to its users, Apple is also seeking a permanent injunction to ban NSO Group from using any Apple software, services, or devices.

Nicole Perlroth:

The lawsuit is the second of its kind — Facebook sued the NSO Group in 2019 for targeting its WhatsApp users — and represents another consequential move by a private company to curb invasive spyware by governments and the companies that provide their spy tools.

[…]

The sample of Pegasus gave Apple a forensic understanding of how Pegasus worked. The company found that NSO’s engineers had created more than 100 fake Apple IDs to carry out their attacks. In the process of creating those accounts, NSO’s engineers would have had to agree to Apple’s iCloud Terms and Conditions, which expressly require that iCloud users’ engagement with Apple “be governed by the laws of the state of California.”

The clause helped Apple bring its lawsuit against NSO in the Northern District of California.

John Gruber:

Apple repeatedly refers to the “FORCEDENTRY” exploit by name. This is not PR bullshit — they’re talking about a very specific exploit. Second, they refer to Android as their compatriot, not their competitor. There’s a time and place for Apple to brag about iOS being more secure than Android, but this isn’t it. The message here: “This isn’t just about us, NSO Group is after everyone.”

John Gruber:

I genuinely wonder what Apple’s goals are with this suit. Is it just to bring NSO Group’s activities to light? If this goes to trial, the testimony should really be something to see. How much in damages will Apple seek at trial? Enough to bankrupt NSO Group?

Jason Snell:

Say what you will about Apple’s policies regarding bug bounties and other security issues—the company is capable of spending a nearly infinite amount of money on lawyers who will try to make NSO Group’s existence painful for a very long time.

Maxwell Swadling:

are you taking any steps to improve platform security processes to prevent what happened over the last 2 years? Such as addressing security disclosures quicker, opening up the security researcher program or catching more issues internally that project zero picks up externally?

Stefan Esser:

NSO has managed what a lot of legitimate security researchers have been unable to do: make people see the security of iPhones in a more realistic light. Furthermore Apple going after people who discover security problems in their products is just normal Apple tactic anyway.

Never forget that when NSO was first caught and the first time the general public learned about PEGASUS it was Apple who threatened Lookout to not release samples to the public. Nice AppStore app you have there. It would be a shame if something happened to it.

Yeah also never forget that System and Security info which was capable of finding PEGASUS on your iPhone was banned from the Apple App Store because Apple did not want their customers to be able to see if they were infected.

Steve Troughton-Smith:

Observation from Apple’s NSO complaint: Apple, curiously, completely omits any mention of App Store or lack of sideloading as a fundamental security measure of iOS. Almost as if they no longer believe they can rely on that point to remain in their favor.

Orin Kerr:

According to its CFAA claim filed today, Apple thinks that when your iPhone’s operating system is hacked, Apple is hacked-- and it can sue-- because Apple still owns the operating system on your iPhone.

Hmm, seems like a pretty big stretch to me.

Apple:

Apple threat notifications are designed to inform and assist users who may have been targeted by state-sponsored attackers. These users are individually targeted because of who they are or what they do. Unlike traditional cybercriminals, state-sponsored attackers apply exceptional resources to target a very small number of specific individuals and their devices, which makes these attacks much harder to detect and prevent. State-sponsored attacks are highly complex, cost millions of dollars to develop, and often have a short shelf life. The vast majority of users will never be targeted by such attacks.

If Apple discovers activity consistent with a state-sponsored attack, we notify the targeted users in two ways[…]

Nick Heer:

One of the minor privacy flaws of iMessage is that it will automatically tell you whether someone else has enabled it. All you have to do is type an email address or a phone number into the “To:” field in Messages; if it turns blue, it is an iMessage account and, therefore, associated with an Apple ID and an Apple device. In a vacuum, this is not very meaningful, but it appears that NSO Group was using a similar technique to figure out where to send its spyware.

[…]

I cannot find any reports of Apple notifying potential victims of state-sponsored attacks, so this appears to be a new policy. Twitter was doing this in 2015, and Google in 2012.

Previously:

Update (2021-12-13): John Gruber:

Fascinating to consider that the U.S. State Department is only aware of this hack because Apple notified the affected employees. That’s certainly how this report reads.

The MacBook Pro Notch

Tom Warren:

Snazzy Labs owner Quinn Nelson has posted two videos on Twitter demonstrating some of the early notch issues. The main video demonstrates what appears to be a bug in macOS. Status bar items like Apple’s battery indicator can get hidden underneath the notch when status bar items are extended.

Nelson demonstrates this with iStat Menus, which can be hidden under the notch or can force system items like the battery indicator to be hidden underneath the notch. While Apple has issued guidance to developers on how to work with the notch, the developer behind iStat Menus says the app is just using standard status items and that Apple’s dev guidance “won’t solve the issue presented in the video.” This doesn’t appear to be intended behavior, as the notch works differently inside certain apps.

Jason Snell:

You could imagine this notch being a major pain point for developers and users alike, but it’s not. And that’s thanks to the menu bar, a Mac convention since day one that provides the perfect place to hide a display cutout. The menu bar has been given a little extra height to completely encompass the notch, and menu items automatically move to the other side of the chasm if there isn’t room for them to fit.

It takes no time to get used to having a notch at the top of the display. And it’s a good use of space since moving the menu bar up into what would otherwise have been unused bezel means that there’s more room downstairs for everything else. (I see now why Apple changed the metrics on the menu bar in macOS Big Sur—it was clearly laying the groundwork for this display. Add in the curved-edge highlights that appear when you click on a menu-bar item and the whole approach really looks great.)

Howard Oakley:

If you obsess about it, I’m sure it could become irksome, but I barely notice it.

John Gruber:

The notch in the menu bar for the camera is very weird at first. The mouse pointer passes under it, so it justs disappears when in the center of the menu bar. That’s really weird! If I had written this review a week ago, after my first day with the machine, I’d have written a lot more about the notch. One week in, I’m just not noticing it. One notch-related change I’m still getting used to is the taller menu bar. It makes the menu titles look even more disconnected from the actual menus. It’s interesting that last year’s redesigned menu bar in MacOS 11 Big Sur was seen by some as laying UI groundwork for future touch screen support in MacOS, but it now seems clear it was redesigned to more elegantly fit with the notch. You’ll notice that most of Apple’s product photography for these new MacBooks shows them with dark desktop pictures. With default translucency settings, a dark desktop gives you a dark menu bar, and a dark menu bar disguises the notch.

D. Hardawar:

Upon first glance, it’s almost laughable that Apple is leaning even more into a design element that everyone hates. But, honestly, the notch isn’t a big deal.

Stephen Hackett:

A week in, I’ve mostly forgotten it’s there.

Nilay Patel and Monica Chin:

But to me, rather than thinking of the notch eating into the display, I think of the display getting larger except in that one spot. The MacBook Pro effectively has a 16:10 display with a little extra bit at the top where the menu bar and the notch live. You stop noticing it after just a few minutes, just like you stopped noticing the iPhone notch.

Riccardo Mori:

On the Mac, the notch visually splits the menu bar, a UI element you interact with all the time. The notch covers, occupies a part of the menu bar that could be devoted to displaying menu items and menu extras. This isn’t a real problem when you have apps with just a few menus. But with more sophisticated and professional apps, with many menus on the menu bar reaching and even surpassing the middle point, then yes, the notch is definitely in your way and you can’t tell me you’re not going to notice it. When you launch an app with lots of menus on one of the new MacBook Pros, all the ‘excess menus’ will get moved on the right, and the notch will of course be a sort of gap between them. So, according to Linda Dong (Apple Design Evangelist), developers now need to take the notch into account when designing their apps (more unnecessary work for them, but who cares, right Apple?)

Fred McCann:

It’s tempting to call this bad design, but this looks more to me like someone who was responsible for making a product level decision refused to make a decision about what was the most important thing and shipped a broken compromise.

[…]

What’s not evident from this screenshot is that menu items are under the hole, inaccessible. Unlike menus which wrap around the hole, menubar items simply disappear. This isn’t some Bartender behavior, this is the default behavior in the operating system.

[…]

What were the product people at Apple thinking? I can’t know for sure but I suspect they thought thin bezels, a better webcam, and a nicer screen were all equally important. This is another way of saying is no one at Apple actually decided what the most important thing was. They punted.

[…]

The one thing the product people at Apple thought wasn’t important was a working menubar.

Previously:

Update (2022-01-17): Matt Birchler:

I’m here to say that yes, I notice the notch on the 2021 MacBook Pro every single time I use the computer, and yes, it’s annoying.

MacBook Pro 2021 Reviews

Jason Snell:

The new 14- and 16-inch MacBook Pro models usher in a new era in Apple laptops. These are the first high-end Macs to be powered by Apple-designed processors, and that’s a big deal—but they also reject the minimalist design mid-2010s Apple, which achieved design simplicity by forcing complexity and frustration on users.

These new MacBook Pros are a success story not just because of Apple’s custom-built processors, but because Apple has admitted (in deeds, if not words) that the previous generation of laptops were a misstep.

[…]

I’m happy to report, it’s true—all of it. Apple has undone its mistakes of the past few years and created a laptop that’s essentially a Mac Pro you can slide into a backpack.

John Gruber:

A few factors contribute to this sense of thickness. The first is that the new MacBook Pros are more rectilinear. We tend to think of the MacBook Air as the tapered MacBook, but MacBook Pros have been tapered for years. Looking at the new model next to last year’s M1, it’s striking just how far from flat the previous design is. The 13-inch MacBook Pro is 0.61 inches thick only in the middle. The new 14-inch MacBook Pro is 0.61 inches thick from edge to edge, front to back.

[…]

Apple’s best products have always been both tools for work and objects of art. Almost every single change with these new MacBook Pros is in the name of making them better tools for work. Conversely, the controversial decisions that went into the Touch-Bar-era MacBooks were in the name of artistic purity. Minimalism trumping practicality. They were out of balance.

[…]

That, to me, explains the entirety of this new MacBook Pro. The differences between a MacBook Pro and MacBook Air should not be subtle. Let the truck be a truck, true to its purpose. Let the MacBook Pro be unabashedly pro.

D. Hardawar (Hacker News):

But lean in a bit closer and you’ll notice some retro flourishes. They’re slightly thicker, with more bulbous edges that hearken back to Apple’s notebooks from the 2000’s. They’re also heavier than you’d expect: the 14-inch model comes in at 3.5 pounds, while the 16-inch varies between 4.7 and 4.8 pounds, depending on the chip you choose. That’s about half a pound heavier than the last 16-inch MacBook Pro.

Nilay Patel (tweet):

It’s easy to be excited about the new MacBook Pros — it feels like Apple finally listened to everyone and brought back the best parts of the beloved 2015 MacBook Pro, while pushing the display and performance to new heights.

Austin Mann:

I really wish there was a matte/non-glare screen option. Years ago, this was an option on Apple’s laptops, and with the recent Pro Display XDR “nano-etch” anti-glare option, I was crossing my fingers we might see something similar on the MacBook Pro.

Stephen Hackett:

For the nearly nine years between the two machines, the keyboard’s feel isn’t radically different. The new keys seem slightly larger, have less space between them and feel more stable, somehow. The sound is a little deeper, but I’ve gotten used to the new keyboard pretty quickly.

[…]

My new 14-inch machine packs a lot more pixels than my 15-inch Retina MacBook Pro.

Nilay Patel and Monica Chin (tweet):

So yes, the ports are definitely more convenient, and totally fine for most situations, but there are still reasons to visit dongletown. For example, macOS Monterey now supports variable refresh rate external displays using a Vesa standard called Adaptive-Sync, but Apple tells me you’ll need a Thunderbolt to DisplayPort dongle for that. I also ran into a strange bug where sending audio out over HDMI resulted in stuttering video and glitchy audio, which Apple says it is looking into.

[…]

Lastly, the speakers on these new MacBook Pros are terrific. The first thing we did with these when we got them was open up a video to check out the new displays, but the first thing we noticed was that the speakers are so good. They are clear and crisp, with some actual low-end from four woofers, and they get super loud. It’s impressive — and while the 14-inch speakers are really good, the 16-inch models in particular have the best speakers we’ve ever heard on a laptop.

[…]

A lot of you asked whether the extra money for the M1 Max is worth it, and after all that, we think the answer is: no, not for most people. Carrying around all those extra GPUs has an impact on battery life [10 hours vs. 16] whether you’re using them or not.

Jon Porter (Hacker News):

But it’s hard to ignore the broader context of these improvements, which is that they effectively bring the company’s 2021 MacBook Pros back in line with the features they were already offering from 2012 to early 2016. Arguably, the primary reason these new MacBooks are being greeted with overwhelming enthusiasm now is that Apple made the wrong bet on where laptop design was headed back then.

Juli Clover:

It’s officially MacBook Pro launch day, and customers around the world who pre-ordered after last Monday’s event are receiving their devices today. We’ve already seen reviews of the new MacBook Pro models from media sites, but now first impressions from everyday users are available.

Paul Haddad:

This is pretty hilarious. Rosetta results for the M1 Pro/Max vs my 10850k 10 core real Intel machine.

Jason Snell:

[Here’s] a pic of how deep the SD card slot is in the new MBP

It sticks out a lot more than on my 2012 MacBook Pro.

Marco Arment:

Based on this, I’m guessing the new SD slot won’t safely support those nearly-flush adapters that could hold a MicroSD card for extra semi-permanent storage.

John Gruber:

Here are the effective “looks like” resolutions for the new 14-inch MacBook Pro

Moshen Chan:

13" M1 MBP vs. 14" MBP. Mini-LED ‘Liquid Retina XDR’ showing huge contrast difference.

Saagar Jha:

Interesting, it looks like the new MacBook Pros can’t really go from black to light colors very well. There’s a fairly noticeable “ghosting” effect where it first tries to turn on the right LED regions and then gets to the right color.

Computer Clan:

I love how Apple went from removing the escape key to making the biggest escape key ever on a Mac. 😂

Paul Haddad:

I’ve not seen any performance difference in the various reviews between the 14” and 16”. I have seen several instances of the fans being significantly louder on the 14” under any kind of sustained load. Add to that longer battery life and bigger screen…

Joe Rossignol (Hacker News):

iFixit has shared a teaser of its 14-inch MacBook Pro teardown, and one noteworthy detail is the inclusion of pull tabs for the battery cells, which the repair website said will allow for easier do-it-yourself battery replacements.

Juli Clover:

In Final Cut Pro, a video export test saw the M1 Max machine export a 6-minute 4K video in one minute and 49 seconds, a task that took the M1 Pro 2 minute and 55 seconds. When it comes to 8K RAW footage, both machines were able to handle the load. The M1 Max MacBook Pro performed close to flawlessly, while the M1 Pro had a few issues with dropped frames and stuttering, but was ultimately able to keep up.

Howard Oakley (Hacker News):

The internal SSD is the fastest that I have ever tested, although as it’s the 2 TB model, it’s expected to be significantly slower than the results quoted by Apple, which are for 8 TB versions. Using my own app Stibium, it attains transfer rates of 6.7 GB/s read and 6.9 GB/s write. Maximum speeds were found between 60-400 MB transfer sizes.

I’m going to look in more detail at how the M1 Pro uses its cores in tomorrow’s sequel to this article. For the moment, though, I’ll give you a teaser that, like the M1, the M1 Pro runs lowest QoS processes on its Efficiency cores, which includes most macOS services like Time Machine. Although the M1 Pro has only two Efficiency cores, compared to the M1’s four, numerical tests run on them in the M1 Pro complete in around 67% of the time of the M1. The M1 Pro’s Performance cores are managed quite differently from those in the M1 too.

Swift Package Index:

Overall, it’s remarkable that the M1 MacBook Air already had the best performance before Apple introduced the new MacBook Pros, but the M1 Pro and Max chips take this further. They improve on the M1 Air’s best result of 47 seconds with a build time of less than 31 seconds. Those extra cores matter, and the ~35% improvement is in line with what you’d expect, going from a 4+4 performance/efficiency core setup to an 8+2 configuration.

Brian Webster:

OK, the M1 Max benchmark that matters for me: a clean build of PowerPhotos (~80,000 LOC, about 1/3 Swift, 2/3 ObjC)

2017 5K iMac: 160 seconds
2018 MacBook Pro Core i9: 159 seconds
2021 MacBook Pro M1 Max: 76 seconds

Michael Love:

Up and running with 14" M1 MacBook Pro. Thoughts so far:

- Very fast; build times roughly halved vs 2019 Intel 16"
- Android dev on M1 has a few glitches but basically OK
- Notch is fine; stupid, but ignorable
- No difficulty driving 4K@120 external monitor (Gigabyte M32U)

Marco Arment:

I’ve now had the 16” M1 Max MBP at full sustained CPU load (800%+) for 3 hours.

I do, finally, hear the fans — but just barely. It’s quieter than my iMac Pro was at full sustained CPU load.

Hard to notice above ambient noise from a few feet away. Gotta put your ear up close.

Ben Sandofsky:

Build times for @halidecamera

2019 Macbook Pro
2.4ghz, 8-Core, 32GB RAM
𝟔𝟑 𝐒𝐞𝐜𝐨𝐧𝐝𝐬

2021 MBP M1 Pro
10-Cores, 32GB RAM
𝟐𝟖 𝐒𝐞𝐜𝐨𝐧𝐝𝐬

…and the 2021 model was $300 cheaper.

See also: iFixit, MacRumors, Accidental Tech Podcast, The Talk Show.

Previously:

GitHub’s Commitment to npm Ecosystem Security

Mike Hanley:

Today, we are sharing details of recent incidents on the npm registry, the details of our investigations, and how we’re continuing to invest in the security of npm. These investments include the requirement of two-factor authentication (2FA) during authentication for maintainers and admins of popular packages on npm, starting with a cohort of top packages in the first quarter of 2022.

Previously:

Tuesday, November 23, 2021

Black Friday 2021

My apps are on sale for Black Friday and Cyber Monday, and here are some other good deals that I found:

Stores:

Accessories:

Books:

Photos and Video:

Lists of Deals:

Previously:

Dropbox and Maestral

Hartley Charlton:

An official Dropbox support thread, shared by Mitchell Hashimoto on Twitter, reveals a fiasco around native support for Apple silicon Macs. Dropbox is seemingly insisting that a significant number of community members will have to vote for native Apple silicon support for it to be implemented. There are also multiple repetitious requests with different phrasing, fragmenting users’ votes for support.

[…]

In a reply on Twitter, Dropbox founder and CEO Drew Houston apologized for the confusion sparked by the “not ideal” support responses and said that Dropbox is “certainly supporting Apple silicon” with a native Apple silicon build planned for release in the first half of next year.

Steve Troughton-Smith:

Not the full story, at all. There are technical issues & negotiations at play. It shouldn’t surprise anybody that Apple doesn’t really want companies making kexts anymore

Apple wants apps to use the new File Provider extension API instead, but from what I’ve heard it’s limited and unreliable.

Ryan Jones:

Exploring Dropbox alternatives?

I did ~6 months ago. Fully installed Box, G Drive, One Drive, and tried iCloud Drive.

I ran back to Dropbox and paid for Plus. For speed, simplicity, and less bullshit.

Marco Arment:

Had enough with the Dropbox Mac app? Me too.

I switched to maestral.app a few weeks back and couldn’t be happier. ~7x less RAM, ~10x less disk space, doesn’t burn 100% CPU during Xcode unzips.

Only drawback is it doesn’t sync xattrs, which doesn’t affect my usage.

Maestral:

Maestral is an open-source Dropbox client written in Python. The project’s main goal is to provide a client for platforms and file systems that are no longer directly supported by Dropbox.

Maestral currently does not support Dropbox Paper, the management of Dropbox teams, and the management of shared folder settings.

[…]

The focus on “simple” file syncing does come with advantages: on macOS, the Maestral App bundle is significantly smaller than the official Dropbox app and uses less memory.

Maestral uses the public Dropbox API which, unlike the official client, does not support transferring only those parts of a file which changed (“binary diff”). Maestral may therefore use more bandwidth that the official client.

Max Seelemann:

🏎 Ulysses clean build on M1 Max: ~65s.

🚀 Same but with Dropbox app NOT running: ~55s.

Quitting Dropbox saves 10s or ~15% for me! Reproduced multiple times.

See also: Accidental Tech Podcast.

Previously:

Update (2021-12-03): Tim Hardwick:

If you’ve had your share of frustrations with the Dropbox app, you can always switch to another rival cloud storage service like iCloud, or you can try one of the following alternative Mac clients to sync with your existing Dropbox account.

Booting an M1 Mac From an External Disk With Monterey

Howard Oakley:

One of the stumbling blocks to using an external boot disk with an M1 Mac is that it may not cope if you update macOS on the internal SSD, then try booting from the external disk to update that. You may be prompted to assign an authorised user to that external disk, only to be informed that the version of macOS on that disk isn’t bootable and needs to be replaced.

[…]

If you’re unable to boot from a bootable disk using an older (non-current) version of macOS, change its boot policy to Reduced Security and it should then become bootable again.

Use Reduced Security to update bootable external disks, and to maintain older bootable versions of macOS.

If you’ve updated a bootable disk to the current version of macOS, change its boot policy back to Full Security.

This is done in the Recovery Assistant.

Howard Oakley:

Unlike a T2 Mac, M1 Macs don’t set one boot security policy for the Mac, but a policy for each bootable disk. This is attractive, as it means that you can still ensure that, when it boots from its internal SSD it does so in Full Security, but your M1 Mac can be more relaxed when it boots from an external disk instead.

[…]

At present, the odd situation is when LocalPolicy is set to Full Security and the macOS versions don’t match, but the external disk is connected via USB-A rather than USB-C or Thunderbolt. In that circumstance, it appears that booting continues despite the conflict in macOS versions. This could be a simple bug, but I suspect that it’s a limitation of the USB-A bus (I recall historical issues in which USB-A had problems with security systems which could be related).

[…]

The final piece in this jigsaw puzzle is the macOS full installer app. In response to user outcry when it removed the macOS 11.2 installer as soon as 11.2.1 was released, Apple now leaves full installers available for each version of Big Sur. However, they don’t appear to be of much use to those with M1 Macs, as all attempts to install an older version of macOS on an external disk appear to fail.

Howard Oakley:

On M1 Macs:

  • Carbon Copy Cloner 6 can now create full clones of bootable system volume groups in containers on an external disk;
  • making a full clone of the internal SSD works, but it can’t readily be booted, and is strange in other ways too. Unless you have a compelling reason for doing so, avoid this;
  • booting from a full clone of the internal SSD is to be avoided;
  • making a full clone of an external SSD works, but has little or no advantage over performing a full install of macOS on that disk.

Howard Oakley:

I’m delighted to report that five months after I wrote that M1 Macs had problems starting up from external disks, Apple has finally fixed Big Sur 11.4 so that they now work fully.

[…]

Changing between external boot disks is normally simple and direct using the Startup Disk pane. Changing back to the internal SSD when booted from an external disk usually requires a visit to recoveryOS, where you need to authenticate in Recovery Assistant. After a long pause, once that has been accepted as successful, select the Restart button.

[…]

Check LocalPolicy for your bootable systems using sudo bputil -d, which should then list available macOS installations by the UUID of their boot volume group[…]

[…]

If your external disk connects by USB-C rather than Thunderbolt and you experience problems, try connecting it using a USB-C data cable rather than a certified Thunderbolt cable. If that doesn’t help, and you have a USB-A port available, use a USB-C to USB-A cable instead, which appears to be the most reliable.

Howard Oakley:

When Apple released Big Sur 11.4 update, nothing in its release notes indicated that any change had taken place in support for bootable external disks. Indeed, as far as I can tell, Apple hasn’t mentioned these problems, and anyone considering buying an M1 Mac would probably be completely unaware of their gross unreliability with bootable external disks.

[…]

There’s an obvious explanation which I came across when looking at what had changed in the 11.4 update: a brand new kernel extension AppleVPBootPolicy.kext which is concerned with the management of LocalPolicy, which determines security level on boot disks.

[…]

The evidence is that these problems were the result of bugs in managing and implementing LocalPolicy, which were fixed by that new extension, and other changes in macOS 11.4. In other words, M1 Macs didn’t work properly for a period of six months because their Secure Boot system was broken.

Howard Oakley:

As Apple doesn’t yet appear to provide complete instructions for the creation of a bootable external disk in recent versions of macOS, and the information which it does provide is at best misleading in places, this article attempts to remedy this for both Intel and M1 Macs.

Howard Oakley:

I hope this has dispelled some of the rumours about using external boot disks with M1 series Macs, which seem still to be based on Big Sur before 11.4. Installing, configuring and using them is now highly reliable, quick and simple. I’m sure that someone will be able to find a model of SSD which doesn’t yet work perfectly, but this demonstration is based on a regular retail Samsung SSD fitted inside an anonymous case bought cheaply from Amazon, and a regular Thunderbolt 3 cable. No witchcraft or incantations were involved.

Previously:

Monday, November 22, 2021

Chromium’s URL Blocklist Can Now Prevent Viewing Page Source

Thomas Claburn:

Future Chromium-based browsers under administrative control will be able to prevent users from viewing webpage source code for specific URLs, a capability that remained unavailable to enterprise customers for the past three years until a bug fix landed earlier this week.

[…]

Evidently, tech savvy students were viewing the source code of web-based tests to determine the answers.

Nick Heer:

The rationale for this bug seems pretty weak. If exam software is revealing answers in the page source, it should be rewritten. In this case, it was Google Forms, which makes this bug fix from Google’s Chromium project look especially hinky.

[…]

If the web were still primarily a venue for document viewing, as I naïvely believe it ought to be, I would see this through a more debilitating lens. But the web is basically an operating system and viewing the source tells you little these days. I think that is a bigger regression, but it is only tangentially related to this bug.

Reviewing Content Instead of the App

Sean Hollister (tweet):

You pissed off people by somewhat breaking your app, and they’re leaving angry reviews. How can you salvage your reputation? Apple just found one incredibly effective way — get listeners to submit better reviews by interrupting their podcast experience with an in-app prompt to submit a rating.

That’s how the Apple Podcasts app went from a publicly embarrassing 1.8-star score all the way to 4.6 stars in a little over a month without any actual fixes, as developer and App Store watchdog Kosta Eleftheriou points out.

[…]

But do those people actually love Apple Podcasts? Because if you really look at the reviews, it seems like some funny business is going on. There are new, positive reviews, but they aren’t reviews of the Apple Podcasts app at all — they’re reviews of podcasts themselves.

Juli Clover:

The top review in the App Store right now starts out with “Best Podcast Ever!”, with the reviewer lauding the podcast they had been listening to at the time the review prompt popped up.

The rest of the reviews are a mix of one star comments about the design of the Podcasts app and positive reviews for podcast content.

[…]

Looking at the reviews of third-party podcast apps, the majority of the ratings are for the apps themselves, and customers do not seem to be accidentally offering reviews for podcast content as is happening with the Podcasts app.

Kuba Suder:

people reviewing content is unfortunate, it’s maybe a UI problem, but I know it happens in other apps too (eg. Yelp)

Previously:

Update (2022-02-04): Sean Hollister (tweet):

But in the nearly three months since I helped point this out at The Verge and brought it directly to Apple’s attention, the only thing that’s changed is Apple Podcasts’ rating has gone up from 4.7 to 4.9 — and each of its five little gray star marks is now completely filled in, for a five-star rating overall.

The app hasn’t received any updates during this time, by the way. Every bit of newfound goodwill is people suddenly submitting reviews for podcasts instead of reviews for the app.

Safari Forgets Your History

Jeff Johnson:

Clicking a link in a web browser changes the URL, and if you look at the browser’s history after clicking, you’ll see both the old URL and the new URL. The URL can also be changed programmatically, using the JavaScript Location API. After a new location is assigned in JavaScript, you should also see the old URL and the new URL in the browser’s history. You should, and you do in Chrome and Firefox. But not in Safari! For some reason, Safari forgets the URLs. This bug appears to be many years old: it occurs in the latest version 15.1, and it occurs in the oldest version that I could test, Safari 11 on macOS 10.13 High Sierra. You can reproduce the bug by simply clicking the button below.

[…]

If you want to see how this Safari bug plays out in “the real world” as opposed to just my contrived test, take a look at your history after searching the web with DuckDuckGo. Below you can see that I’ve clicked on a DuckDuckGo search result, but the new URL is missing from my Safari History.

This bug has been bothering me for years, and it does seem to primarily affect pages that I visited via search results.

The Unexpected Return of JavaScript for Automation

Armin Briegel:

One reason python became so popular with MacAdmins, was that the pre-installed python on Mac OS X, also came with PyObjC, the Objective-C bridge for python.

[…]

I’ll be honest here and admit that working with JXA seems strange, inconsistent, and — in weird way — like a step backwards. Putting together a Command Line Tool written in Swift feels like a much more solid (for lack of a better word) way of solving a problem.

However, the Swift binary command line tool has one huge downside: you have to install the binary on the client before you can use it in scripts and your management system.

[…]

However, as flawed as it is, JXA can be a simple replacement for the classic python “one-liners” to get data out of a macOS system framework. Other interesting use cases are being discovered, such as JSON parsing.

Python is no longer the favored choice because “Monterey will now throw up dialogs warning the user.”

AppleScriptObjC is built-in, however.

Previously:

Update (2021-11-26): See also: Hacker News.

The Reincarnation of the Touch Bar

Luc P. Beaudoin:

The obvious advantage was providing configurable, direct access to context sensitive commands.

[…]

To reduce the need to look down towards the physical keyboard, macOS could present a virtual command bar on the main screen. This would be triggered by some event, such as a physical key, keyboard shortcut, Siri, hand gesture, eye gesture, or facial gesture (see next section). This virtual keyboard could be presented as a single row of buttons, or a 2-D array of buttons.

As someone who really hated the actual Touch Bar, I do think there’s something to the idea of providing similar functionality in other ways. (Ideally it would be much more configurable than the Touch Bar was.) I’m thinking something like the old System 7 Control Strip, but with an area for application-specific functionality, too. To a certain extent, this idea lives on in menu bar status items. But the menu bar fills up easily, and the old Control Strip could be resized, hidden, and shown, including via keyboard shortcut. In Big Sur, Apple freed up some menu bar space by consolidating popular status items into a single Control Center icon, but it doesn’t have a keyboard shortcut and isn’t keyboard navigable. It doesn’t even activate via the “Move focus to status menus” shortcut.

Previously:

Friday, November 19, 2021

Click to Subscribe, Call to Cancel

Sarah Scire:

Publishers tend to think of this as “retention.” A study of 526 news organizations in the United States found that only 41% make it easy for people to cancel subscriptions online, and more than half trained customer service reps in tactics to dissuade customers who call to unsubscribe.

The Federal Trade Commission, meanwhile, recently made it clear that it sees the practice as 1) one of several “dark patterns that trick or trap consumers into subscriptions” and 2) straight-up illegal. The FTC vowed to ramp up enforcement on companies that fail to provide an “easy and simple” cancellation process, including an option that’s “at least as easy” as the one to subscribe.

[…]

Translation? If you can subscribe online, you should be able to cancel your subscription online.

Previously:

AOL Exploits Bug in Own Software

Geoff Chappell (in 1999, via Hacker News):

In e-mail of dubious origin sent to security expert Richard M. Smith, it is alleged not only that the AIM client software has a so-called “buffer overflow” bug but also that AOL actually does use its knowledge of this bug to induce users’ machines, which are running the AIM client software, to execute code that is downloaded from the AIM server. AOL is said to do this as a way for the AIM server to distinguish AIM clients from MSN clients so that the latter may be denied service.

[…]

An ordinary, though certainly not necessary, effect of a program’s corrupting memory on its stack is that the program crashes some time later. The particular packet presented in the e-mail to support the allegations against AOL fits case 0013h but contains 0118h bytes of string data. This is too long and will indeed induce the AIM client to corrupt memory, as described above. However, the AIM client does not crash.

The reason is that the packet data, as received from the AIM server, is contrived so that the corruption of memory by the AIM client is carefully controlled. The buggy routine in the AIM client is made to “return” to an address at which it is known there will be the bytes for a call esp instruction (actually provided in the bitmap for an icon in the AIM.EXE resources). The effect of this instruction is to start executing some of the packet data.

Previously:

Update (2021-11-23): Sherief, FYI:

Check out the section titled “(s)elf-exploitation

Unicode and Copying and Pasting Code

Glenn Faison:

I recently saw first-hand why I should never copy and paste any code I found online (or anywhere, for that matter).

[…]

To cut the long story short, what looks like a loose inequality check on line #4, is deceptively an assignment operation, which reads like (environmentǃ = ENV_PROD)! In JavaScript, assignment operations return the assigned value, which in this case is truthy (will be treated as true wherever a boolean value is expected).

But isn’t environmentǃ an invalid variable name in JavaScript, you ask? It’s complicated. You’d be right to say an exclamation sign cannot be part of a variable name. However, the ǃ you see there is in fact not the everyday exclamation sign you know. It’s an obscure character that happens to be accepted as regular text by the JavaScript interpreter, and thus can be a valid part of a variable name.

This particular example is unlikely to happen in Swift, both because assignments don’t have values and because the compiler is picky about whitespace around operators.

Via Nick Lockwood:

This is why unicode (outside of string literals) in programming languages was a mistake.

[…]

Support for unicode in variables adds a massive new surface for hiding security exploits in plain sight (see also: unicode urls).

The supposed benefit of being able to use mathematical symbols for custom operators is mostly just an attractive nuisance since you can’t type them.

Inclusivity is good, but unicode variables offer little practical benefit to non-English speakers if the platform APIs and dominant 3rd party frameworks are not localized, and unicode is neither necessary nor sufficient to solve that (it should ideally be handled at IDE-level).

CVE-2021-42574 (via Daniel Martín):

The Rust Security Response WG was notified of a security concern affecting source code containing “bidirectional override” Unicode codepoints: in some cases the use of those codepoints could lead to the reviewed code being different than the compiled code.

Previously:

First MacPaint and MacWrite Public Demo

level1807 (via John Siracusa):

The well-known presentation already available on YouTube is from January 24 of 1984. What’s not so well remembered: Jobs did it all twice, in less than a week. Six days after unveiling the Mac at the Flint Center on the De Anza College campus near the company’s headquarters in Cupertino, Calif., he performed his show all over again at the monthly general meeting of the Boston Computer Society.

“That’s the first time I touched the keyboard.” Atkinson later refers to the Feature key.

Thursday, November 18, 2021

Forgotten Image Formats

Ernie Smith (via Gus Mueller, Hacker News):

Around this time 30 years ago, two separate working groups were putting the finishing touches on technical standards that would come to reshape the way people observed the world. One technical standard reshaped the way that people used an important piece of office equipment at the time: the fax machine. The other would basically reshape just about everything else, becoming the de facto way that high-quality images and low-quality memes alike are shared on the internet and in professional settings. They took two divergent paths, but they came from the same place: The world of compression standards. The average person has no idea what JBIG, the compression standard most fax machines use, is—but they’ve most assuredly heard about JPEG, which was first publicly released in 1992. The JPEG format is awesome and culture-defining, but this is Tedium, and I am of course more interested in the no-name formats of the world.

Are TIFF, BMP, and PCX really considered to be forgotten?

XCRemoteCache

Bartosz Polaczyk (Hacker News):

We are excited to be open sourcing XCRemoteCache, the library we created to mitigate long local builds. As the name suggests, this library is a remote caching implementation for iOS projects with an aim to reuse Xcode target artifacts generated on Continuous Integration (CI) machines. It supports Objective-C, Swift, and ObjC+Swift targets and can be easily integrated with existing Xcode projects, including ones managed by CocoaPods or Carthage.

[…]

A remote cache is a popular technique to speed up builds of big applications by applying the “compile once, use everywhere” approach. As long as all input files and compilation parameters are the same, instead of building a target locally, one can download artifacts that were built and shared from some other machine. A key success factor for remote caching is finding an optimal caching level. Caching units that are too granular, where every single piece of the compilation step is cacheable, may lead to extensive network traffic overhead, which can offset CPU savings. On the other hand, putting the entire codebase into a single cacheable unit may significantly degrade the caching hit rate; every single local change invalidates remotely available cache artifacts, triggering a full build, locally.

The main Spotify iOS application is highly modularized and contains more than 400 independent modules configured as separate Xcode targets. Applying target-level caching was natural, and as we found out later, the right decision.

Previously:

WebKit E-mail Formatting Bug

Adam Engst:

Now and then, we get a report from a reader whose TidBITS issue has an entire article formatted as a column of text that’s a single character wide. I could tell what happened in at least two cases, but I’m utterly stumped as to what might be causing it. The problem doesn’t appear to originate on our end.

In one report where the reader forwarded the badly formatted issue to us, the problem stemmed from CSS corruption.

I’m not sure what causes this, but I’ve seen it happen to a variety of e-mails (though none from TidBITS) starting with Catalina, both in Mail itself and in my app that uses WebKit to render HTML e-mails. For me, at least, it’s a transitory problem that goes away if I relaunch the app and view the same e-mail again.

See also: Peter Steinberger.

Pacifist 4.0.1

Filipe Espósito:

Pacifist is a popular file extractor for macOS that lets users view and extract multiple file formats, including PKG, DMG, XAR, and TAR.

CharlesSoft:

Completely rewritten in Swift 5

[…]

Added command-line interface

[…]

Support for Asset Catalog files

Support for Mac OS 9 Installation Tome files

It’s $20 or $10 to upgrade.

Previously:

How to Use Apple’s Legacy Contact Feature

Juli Clover:

Apple in iOS 15.2 is making it easier for your loved ones to access your personal data in the event of your death with the addition of a Legacy Contact feature. A person set as your Legacy Contact gets a special code that can be provided to Apple alongside a death certificate to unlock your device.

The Legacy Contact that you set will have access to your Messages, photos, notes, and other sensitive data, plus the ability to remove Activation Lock from your devices, so it is an opt-in feature and should be reserved for your most trusted contact. This how to walks you through how to enable Legacy Contacts, covers how to get to the data after a death, and outlines some of the data that will be accessible.

On macOS 12.1 Beta 3, I see a way to add a Recovery Contact in System Preferences but not how to add a Legacy Contact.

Previously:

Wednesday, November 17, 2021

Apple Self Service Repair

Apple (MacRumors, Hacker News):

Apple today announced Self Service Repair, which will allow customers who are comfortable with completing their own repairs access to Apple genuine parts and tools. Available first for the iPhone 12 and iPhone 13 lineups, and soon to be followed by Mac computers featuring M1 chips, Self Service Repair will be available early next year in the US and expand to additional countries throughout 2022.

Matthew Gault and Jason Koebler:

This move from Apple does not necessarily mean the right to repair movement is over, or that there isn’t still work to be done. John Deere and other tractor manufacturers promised similar access to repair parts and manuals in an agreement several years ago and then used it to argue that right to repair legislation was not necessary. But the version that tractor manufacturers offered was a watered-down version of what activists were looking for, and the ultimate rollout of its consumer repair program was slow and underwhelming.

Repair.org, an advocacy group that fights for the right-to-repair, greeted the news with joy but had some cautions. “We’re delighted to see Apple get on board with expanding access to their parts and tools directly to consumers. It’s a big step forward for one of the most dedicated opponents to Right to Repair, and frankly unexpected,” it told Motherboard in an email. “Holes remain. We don’t know if independent repair providers will be able to buy parts and service information. We don’t know if the pricing to consumers will make sense, nor if consumers will be able to use competitively priced parts from 3rd parties.”

I’m betting that a sticking point will be that this is only open to individuals, and that independent providers that don’t agree to Apple’s onerous contract will not be allowed to order parts. And even the ones who do still aren’t allowed to maintain stock.

Matt Birchler:

I’m super curious to see how this is received by people on both sides of the right to repair argument. Will people who support right to repair see this as a win or an empty gesture distracting from their real concerns? Will people who have argued against right to repair because it would mean bulky products be annoyed because this shows that’s not really the case?

Stephen Hackett:

In terms of the cost of parts and tools (and what a self-service repair does to your warranty) we don’t know much, but I am hopeful this will be a viable option for the more savvy consumers out there.

Dan Moren:

One chief impetus for this is no doubt the growing push for “Right to Repair” legislation across the U.S. (my home state of Massachusetts having been an early adopter of this movement).

Of course, this doesn’t mean that Apple’s products will necessarily become any easier to repair. iFixit—a longtime proponent of Right to Repair legislation—and others have long provided detailed teardowns Apple products, and while there has been some improvement in places, don’t expect Apple to let you, say, replace your own RAM (especially given that its now basically part of the system on a chip package).

Jeff Johnson:

Apple 2 weeks ago: DIY software installation is too dangerous for iPhone users.

Apple today: Announcing DIY hardware installation for iPhone users!

Previously:

Update (2021-11-23): Kyle Wiens:

Let me share my life’s story and why Apple’s repair announcement is a big deal to me.

Adam Engst:

While the Self Service Repair program was a surprise, The Verge’s Maddie Stone notes that the timing was likely related to a shareholder resolution that could have gone to the US Securities and Exchange Commission. Apple says the program has been in the works for longer and wouldn’t comment on whether shareholder pressure influenced the timing of the announcement.

Regardless of how it came about, I applaud Apple for creating the Self Service Repair program. I hope not to need it personally, but if I do, I might give it a try since I’ve replaced batteries in older iPhones and done major surgery on 27-inch iMacs. Or I might not—replacing the battery in an iPhone 5 was nerve-wracking (see “Replace a Dying iPhone 5 Battery,” 5 March 2014).

That said, I have some issues with how Apple is positioning Self Service Repair and what downstream effects it might have.

John Gruber:

This appears to be a cause for celebration in right-to-repair circles, but I don’t see it as a big deal at all. Almost no one wants to repair their own cracked iPhone display or broken MacBook keyboard; even fewer people are actually competent enough to do so.

Nick Heer:

I think you may be underselling how great it is for people to buy parts independently and then get someone else to install them, especially in parts of the world with few Apple Stores.

John Gruber:

There’s also this factor: if the device in need of repair is still usable — say, an iPhone with a cracked but functional screen, or a MacBook with one or more broken but nonessential keys — it might be a lot more appealing for a user who doesn’t live near an Apple-authorized repair shop to go to a local independent shop for same-day service than to ship their device to Apple for official service.

[…]

On the flip side, though, I think a lot of the “Apple’s repair policies are screwing people” sentiment is based on the misconception that Apple grossly overcharges for repairs.

[…]

The new Self Repair Program requires you to submit the damaged device’s serial number to Apple first, then Apple sends the necessary parts on a need-to-use basis. I’m back to my original opinion, that the Self Service Repair Program is just what it says on the tin — a program for people who really do want to repair their own devices — and thus is irrelevant to all but a small sliver of actual users.

Dave Mark:

It used to be relatively easy to customize and repair your gear. As parts have given way to part assemblies (glued/soldered assemblies that become a single replaceable requirement, even if a single part fails) and the quest for smaller makes devices harder to open, harder to take apart, the ability to repair your own gear has become harder, almost impossible.

So those small numbers John points out are real. But should this be the way it is? Again, wouldn’t you love the ability to swap out a display as easily as you used to be able to swap out RAM on your old Macs?

[…]

Going into an Apple Store with a problem has never felt like a money grab scheme to me. I’ve always felt like the support staff wants me to leave satisfied. If they can find a way to get me a fix without spending money, they’ll do so. But when there’s no way but to replace a parts assembly for $900 on an out-of-AppleCare device, that’s what they do.

John Gruber:

But: times change. Apple hasn’t moved away from user replaceable memory and storage components out of spite. Integrating memory and storage into the chips themselves is the reason why devices have gotten thinner and lighter and much, much faster. The incredible performance of Apple silicon — for both iOS devices and Macs — is part and parcel with integrating memory and storage directly onto the SoCs.

And in terms of replacing screens on iPhones, consider waterproofing and device aesthetics. To my knowledge, no company makes a mainstream smartphone with an easily-replaced display, because a smartphone with an easily replaced screen wouldn’t sell because of all the design trade-offs that would be involved.

Adam Demasi:

Hard for me to trust Apple’s goals with the new Self-Service Repair. Last time Apple faced pressure they started the Independent Repair Program, which we later learned is set up in a way that’s basically a PR stunt. I hope Apple proves my scepticism wrong.

Cory Doctorow:

Apple’s announcement caught us all by (pleasant) surprise. Right up to that day, the company was adamant that letting us fix our stuff would lead to identity theft and exploding phones.

[…]

They still hate independent repair and will do whatever they can to minimize or extinguish the activity. There are lots of ways to accomplish that goal while still offering a “Self-Service Repair” program.

[…]

As Apple independent repair maven Louis Rossman explained in his vlog on the new announcement, the Independent Repair Program was a bit of theater that did virtually nothing to enhance independent repair. Shops that signed up for it found themselves forced to sign onerous NDAs and were subjected to impossible conditions. For example, IRP repair shops were banned from holding inventory of common parts like batteries or screens. Instead, they were required to gather invasive customer data on anyone who showed up looking for a repair, submit that data to Apple, wait for it to be processed and approved, and only then would Apple send the part. The customer, meanwhile, was deprived of their phone or laptop while they waited for this rigamarole to run its course.

Dave Mark:

One question that Louis does raise, that we won’t know for some time, is how granular a repair Apple’s new program will allow. Can I order just the part I need (say, a $100 MacBook LED display vs a $900 display assembly)?

Hartley Charlton:

CIRP’s research suggests that almost all iPhones in use have a display in “useable” condition and most iPhones have a battery in “useable” condition. 12 percent of iPhone displays are cracked but useable, and just six percent are unusable and in need of replacement. 26 percent of iPhone batteries are said to provide battery life lasting half a day without charging, and 14 percent need to be charged every couple of hours. Battery replacements are therefore likely to be among the most common repairs, but comparatively few active devices are in need of replacing either of these parts that are subject to a high level of wear and tear.

The small number of active devices in need of replacement parts, combined with the fact that many users will not be comfortable completing their own repairs, indicates that very few iPhone users will actually take advantage of the Self Service Repair program.

Joe Rossignol:

In an internal memo obtained by MacRumors, Apple provided a few more details about the program, including that repair manuals will be made available on the Apple Support website, confirming the location of where customers will be able to review this information prior to ordering parts for a self-service repair.

Apple’s memo also said that its online parts store will be operated by an unspecified third party.

See also: Dithering, Reddit.

Update (2021-11-24): Jesper:

In reality, repairs with authorized service providers have to abide by glacial policies that prevent at least non-Apple Stores from stocking up on spare parts. Over the years, and across many separate incidents, I have had repairs of iPhones and MacBooks take many days beyond what the actual repair work would take. For devices that are intended to be used every day, this is not acceptable, and is the worst kind of business decision: the one that maintains control and policy at the expense of customer convenience. This is exactly as stupid as that pirated-vs-original comparison.

In reality, there exists two axes: qualified vs not, as well as Apple-blessed vs not. The Self Service Repair program highlights the absurdity of the emerging narrative: a random person at home, taking things carefully, can be trusted to do a job that an independent repair shop, which lives and dies by its reputation and literally does this all day can’t be. Apple’s previous position deserves some back-handed credit, in that at least “only we could do this” was free of such loops of logic – it was plainly and obviously wrong, but it was not that particular brand of ludicrous.

[…]

And it is particularly not an excuse to perpetuate the myth that knock-off parts are a choice in all cases, and are preferred by individual repair shops, which are therefore dishonest and/or not about to do a good job anyway. The entirety of the market, and the quality of its collective outcomes, depends on Apple’s policies. They can change it tomorrow.

Update (2022-04-13): Filipe Espósito:

[The] company is yet to launch the program and has never provided more details about it.

Is it still coming? Has Apple changed its mind?

Why Won’t That Help Book Open?

Howard Oakley:

The Help system in macOS is another of those areas which has become sadly neglected. The last time it had a thorough overhaul was back in High Sierra 10.13.4, when it was taken off life support and left hospital walking unaided. With macOS 11 Big Sur and later it has relapsed, and in some cases can’t open an app’s Help book at all. I suspect that this may not be its fault, but the result of a revamp of UTIs, which are used to identify file types.

[…]

If you inspect a Help book, it’s now displayed as a plain folder, implying that it’s no longer recognised as it has been in the past. Not only that, but macOS itself no longer matches the folder name extension of .help as representing a Help book bundle, but gives it a temporary UTI.

Surface Laptop SE

Tom Warren (tweet):

Surface Laptop SE will be sold exclusively to schools and students, starting at $249. It’s part of a much broader effort with Windows 11 SE, a new student edition designed to compete with Chrome OS that will ship on a range of low-cost laptops in the coming months.

[…]

Intel’s Celeron N4020 or N4120 power the Surface Laptop SE, combined with 4GB / 8GB of RAM and 64GB or 128GB of eMMC storage. Microsoft is including a 1-megapixel front-facing camera that offers 720P support, so it should hold up okay for Teams meetings. The Surface Laptop SE also includes a single USB-A port, one USB-C port, a regular barrel-type DC connector, and a 3.5mm headphone jack.

[…]

Microsoft is committing to a big repairability effort with the Surface Laptop SE, allowing schools to replace components inside the laptop. The base of the Surface Laptop SE has standard screws that will allow IT admins to replace the display, battery, keyboard, and even the motherboard.

Previously:

Picture This Clothing and App Tracking Transparency

Jamie Finney (via Daniel Jalkut):

Along with a massive drop in sales, the little hits keep coming. In August, there were updates to the costs involved with shipping overseas that caused us to stop all overseas shipping for the foreseeable future.

Removing overseas sales is a big deal for a small shop like ours. As much as I wish we weren’t dependent upon social media in terms of people learning about us, we are. And we have seen a drop in sales and social engagement like never before since the iOS 15 Apple ad opt-in release.

Previously:

Tuesday, November 16, 2021

Twitter Improves API and Restrictions

Amir Shevat and Sonya Penn (Hacker News):

Essential access includes immediate access to the Twitter API v2 upon signup, one App environment and the ability to retrieve up to 500k Tweets per month. This should meet the majority of developers’ needs, especially early on.

[…]

We know that when you build solutions for people who use Twitter, you often have to build or replicate some of the features that already exist on Twitter. So, to encourage more of this innovation, we’ve removed language in our Developer Policy that restricted some elements of how you build with Twitter’s core features and limited the number of users you can support through your app.

Twitter:

The Twitter API v2 is ready for prime time! Over the past 14 months, we have been steadily releasing net new and v1.1 replacement endpoints to Twitter API v2, and today 90% of all existing apps built on the Twitter API v1.1 can be fully supported on v2 with new key features and increased access.

[…]

Specifically, we’ve removed terms that restricted replication of the Twitter experience, including Twitter’s core features as well as terms that required permission to have high numbers of user tokens.

Paul Haddad:

The quadrants of doom are finally gone!

Previously:

Update (2021-11-17): Nick Heer:

This week’s announcement appears to be Twitter’s mea culpa, but developers are right to be cautious. A third-party client cannot search tweets older than one week, view likes or retweets with comments, use bookmarks, or vote in polls — among many other limitations. Some of these things are on Twitter’s roadmap for API V2, but it is unclear whether all of them will come to fruition. One thing seems certain: we are not going back to the days when users’ posts were available as an RSS feed.

GitHub Notifications and Mail Privacy Protection

Peter Ammon:

#macOS Monterey users, are you finding your #GitHub notifications are all marked as read? It’s probably Mail loading GitHub’s tracker pixels remotely. Uncheck “Protect Mail Activity” and the notifications come back.

Tracker pixels are mainly used for shady purposes, so even benign and clever uses like this seem destined to break.

To be sure, “Protect Mail Activity” is a great feature and I’m keeping it enabled. My intention was to highlight why notifications go missing in GitHub’s Inbox after upgrading to Monterey. I wish GitHub had an option to disable these tracker pixels.

Hartley Charlton:

Apple’s legal documentation on Mail Privacy Protection indicates that the feature is available for iPhone, iPad, and Mac only, but security researchers and developers Talal Haj Bakry and Tommy Mysk have discovered that since the Apple Watch does not hide a recipient’s IP address, it can compromise the overall security provided by Mail Privacy Protection.

Previously:

Tim Sweeney Calls for Single, Universal App Store

Hartley Charlton:

Epic Games CEO Tim Sweeney has today renewed his attack on Apple and called for a single, universal app store that works across all platforms (via Bloomberg).

[…]

Sweeney added that Epic Games is working with developers and service providers to create a system to allow users to “to buy software in one place, knowing that they’d have it on all devices and all platforms.”

Jack Wellborn:

Sweeney isn’t just talking about Apple and Google there, he’s talking about all console makers. My bet all along has been that Tim Sweeney wants the Epic Games Store to become the Amazon of software, and that ambition necessarily goes beyond Android and iOS.

Previously:

Update (2021-11-17): Thomas Clement:

Single app store that works across all platforms?

Maybe we could try this thing called the Internet that has web pages on it.

Update (2021-11-26): John Gruber (tweet):

I’ve been arguing all along that, if victorious in their lawsuits against Apple and Google’s mobile app console platforms, Epic would surely turn its sights on Nintendo, Sony, and Microsoft’s game console platforms, using their win over Apple and Google as precedent. When pressed on this — why Epic was going after the iOS and Android app stores, but not the Switch, PlayStation, and Xbox game stores (and in fact, gave those game console stores a 20 percent discount after launching their seemingly ill-fated jihad against Apple and Google) — Sweeney has previously given a hand-wavy justification about game console platforms being acceptable because the hardware itself isn’t profitable.

Curtis Herbert:

I’ve (and a few others) have been saying this all along - Epic is no champion of the indie; they just wanted to expand their relativly new PC game store (a shitty Steam wannabe) to all platforms to A) save $$ to platform fees B) take a cut of our indie money.

Russell Ivanovic:

Counter point: it doesn’t actually matter. I didn’t support Epic because I like them or think they are benevolent, I support them because they might just be big enough to get Apple to fix their egregious App Store policies.

Steve Troughton-Smith:

It’s been repeated ad nauseam based on a badly-phrased quote, but this ‘single app store’ idea isn’t about Epic owning ‘The one and only App Store’, it’s about Epic’s App Store (alongside the others), spanning multiple platforms, meaning users don’t need to buy again — like Steam

Tim Sweeney:

I’ve said all along - including in emails to Apple and Google executives produced in the litigation - that Epic wants to offer a software store on iOS and Android. Fortnite was the first game to support ownership of items across all 7 platforms.

So, as I’ve said in many interviews, we want a customer to be able to buy software once and own it on all of their devices. Wouldn’t this be better than the status quo where a user buying a paid cross-platform app across iOS, Android, and PC has to pay for it three times?

Epic’s own store supports purchases made on multiple other PC stores with no fee to Epic. Wouldn’t it be awesome if all platforms agreed to honor purchases made on other platforms? Epic is eager to support this with all willing partners.

Monterey Network Quality Tool

Dan Petrov (via Hacker News):

Apple has quietly added a new tool in macOS Monterey for measuring your device’s Internet connectivity quality. You can simply call the executable networkQuality, which executes the following tests:

  • Upload/download capacity (your Tx/Rx bandwidth essentially)
  • Upload/download flows, this seems to be the number of test packets used for the responsiveness tests
  • Upload/download responsiveness measured in Roundtrips Per Minute (RPM), which according to Apple, is the number of sequential round-trips, or transactions, a network can do in one minute under normal working conditions

The capacity is roughly the same metric you could expect from tools like Fast.com from Netflix, or OOkla’s Speedtest.

Previously:

Update (2021-11-24): Jason Snell:

I’ve written a small SwiftBar plugin (requires python3) to run networkQuality and report the results in the menu bar every 20 minutes. You can download it here if you’re interested.

Update (2023-05-15): CyberHost (via Hacker News):

The Network Quality tool also supports Apple’s Private Relay feature, which encrypts and routes all network traffic through two separate servers for added privacy and security.

Monday, November 15, 2021

Apple Buys Google Ads for Subscription Apps

Hartley Charlton (tweet, Eric Seufert, Hacker News):

Apple allegedly buys Google ads for popular subscription-based third-party apps to bolster its collection of commission on in-app purchases, according to an investigation by Forbes.

Apple has purportedly been buying Google ads for subscription-based third-party apps, including HBO, Masterclass, Babbel, Tinder, Plenty of Fish, and Bumble, for at least two years. A marketer speaking to Forbes suggested that many of the brands Apple appears to be advertising for have been assertive about attempting to circumvent App Store policies. The ads are said to be placed without the developer’s consent and Google apparently refuses to remove them.

The ads do not disclose that they are paid for by Apple, but redirect to the App Store rather than subscription sign-up pages on the brand’s website.

My first reaction is that isn’t this sort of a win-win? All things being equal, I’d rather that Apple use some of the fees I’m paying to help sell more copies of my apps. That seems like something a good business partner would do. But, as far as I can tell, it’s not buying ads for indie apps. The situation for the big apps is a bit different:

Hartley Charlton:

Apple has now clarified that it has placed ads to promote products it distributes for five years now, and these ads are clearly marked as being from the App Store.

Apple indicated that this is no different from retailers running ads for the products they sell, and is a very standard business model. Apple is granted conventional legal rights to advertise in this way in the agreements it has with developers.

Apple says that the allegation that it is "secretly" or "quietly" purchasing ads for developers without their knowledge or consent is an overt mischaracterization. On the contrary, the company says that it regularly engages in conversation with developers about the ads it places and many developers express their appreciation for this support.

However, Apple doesn’t seem to have commented on the allegation that there’s no way to opt out. Apple would say that all these developers opted in as part of agreeing to be in the App Store, but they didn’t really have a choice in that aside from the sweet solution.

Previously:

Mouse Pointer Memory Leak

Howard Oakley (Hacker News, MacRumors):

Soon after the release of macOS 12.0.1, reports appeared that some apps, notably Firefox, could suffer large and progressive memory leaks until they took 70 GB or more of app memory, and the Mac simply ran out. At first this appeared confined to certain apps, including Firefox, Microsoft Word, and even Safari.

[…]

The cause has now been isolated to a single group of settings in one preference pane, Accessibility. All Macs which appear to suffer this leak are using custom pointer controls in the Pointer tab of the Display, specifically a larger than normal Pointer size and custom outline and fill colours. The latter two items are one of the new features in Monterey, and have proved popular with users.

[…]

Apps which feature many and frequent changes in pointer type, such as browsers, therefore leak memory more quickly than those that change the pointer type less often. However, every app with an interface in which the pointer can change type will leak until this bug is fixed in Monterey.

I’m also seeing reports of this happening on Big Sur.

Update (2021-11-15): Steve Troughton-Smith:

This is crazy. You can literally wiggle the mouse cursor over the sidebar divider in Finder and watch its memory usage go up by a couple MB every time the cursor changes

Update (2021-11-16): Josh Centers:

On 9to5Mac, Ben Lovejoy argues that the custom pointers aren’t the sole cause of memory leaks, although he says resetting the pointer is worth trying. However, Howard Oakley points out that this leak is associated with any pointer change—such as from the arrow to the text insertion bar—so any app with frequent pointer changes, like a Web browser, will suffer from this issue.

See also: Hacker News, Reddit.

Update (2021-11-23): Kyle Howells:

Just a casual 124GB of ram being used by Control Centre, no big deal.... No memory leak here. Everything completely under control.

Gregory McFadden:

So glad I got 64GB of memory on my new Mac so I can use 26GB of it for control center... Wait... what.

Howard Oakley:

I can now describe a total of four [memory leaks], three of which I can reproduce here, and one which I can’t. This article summarises them, and how to avoid becoming victim to them.

Update (2021-11-29): Saagar Jha:

FYI: the situation with the widely reported “macOS memory leaks” is not as simple as the cursor leak that Mozilla found. I trust that their analysis is accurate, but it isn’t the whole answer: the true situation is more complicated than “don’t use custom cursors”.

Update (2021-12-17): Robin Kunde:

Haven’t seen this mentioned much, but 12.1 fixed the mouse pointer related memory leaks for me.

Previously:

Microsoft Blocks EdgeDeflector to Force Windows Users Into Edge

Tom Warren (via Nick Heer):

Microsoft has already made it more difficult to switch default browsers in Windows 11, and now the company is going a step further by blocking apps like EdgeDeflector. Third-party apps like EdgeDeflector and even Firefox have offered workarounds to Microsoft forcing people to use Edge in Start menu search results, even if their default browser is not Edge.

Microsoft has been forcing Windows 10 and Windows 11 users into Edge and its Bing search engine in the Start menu search results, and now with the new Widgets panel in Windows 11. It’s a frustrating part of Windows that doesn’t respect your default browser choice. EdgeDeflector lets you bypass these restrictions, and open Start menu search results in your default browser of choice.

Update (2021-11-17): Dave LeClair (via Hacker News):

The upcoming Windows Update won’t block you from changing the default browser in Windows 11. The patch will force links using the microsoft-edge protocol to always open in Edge. These are specific links opened through Windows 11, such as those directly from the taskbar’s search feature. Firefox’s workaround and EdgeDeflector made it so these links would still open in your default browser. Microsoft is about to roll out an update that disables this workaround, calling it “improper” on Mozilla’s part

[…]

As you might expect, the developer of EdgeDeflector isn’t thrilled, as outlined in a blog post. “Microsoft isn’t a good steward of the Windows operating system. They’re prioritizing ads, bundleware, and service subscriptions over their users’ productivity,” developer Daniel Aleksandersen said.

“The 500,000 EdgeDeflector users were probably never more than a nuisance to Microsoft,” said Aleksandersen. “However, last month both the Brave and Firefox web browsers either copied EdgeDeflector’s functionality or signaled it was on the roadmap.”

Update (2021-12-03): Mary Jo Foley:

The latest Windows 11 Dev Channel test build released earlier this week, Build 22509, has a new browser Set default button, as discovered by Microsoft watcher Rafael Rivera. If and when this new button makes it into the commercially available Windows 11 release, users will again have a cleaner and simpler way to select a browser other than Edge.

Via Nick Heer:

All it had to do is avoid user-hostile interactions, but Microsoft deliberately made changes in that direction anyway.

Apple Software Quality in 2021

Dan Moren (Hacker News):

But one challenge with continually moving the state of the art forward is that sometimes it comes at the expense of making sure the technology that’s already here works as well as it can. After all, if you have to add a dozen new features in a year, that could mean taking away from work enhancing reliability, and squashing bugs in existing features.

We’ve all encountered a slew of problems—some simple (if ridiculous) to fix, others are maddeningly difficult to troubleshoot. As our devices get more and more complex, it’s all too easy for some of those problems to persist for years. And though the best part of the Apple experience has long been “it just works,” the question is…what happens when it doesn’t?

I think Monterey is probably the best update since High Sierra in terms of not introducing too many new problems. On net, I think it fixed more significant bugs than it added. However, in total, Monterey still feels more buggy than Mojave or earlier, and the goal should be to get to much better than Mojave: more like El Capitan or Snow Leopard.

The yearly release cycle continues to be a problem. On the developer side, a quarter of the year is spent dealing with potential breakage (made more real by public betas) and another quarter or more with actual breakage. On the customer side, there aren’t enough months for Apple to polish one release before moving on to the next. Even security updates aren’t getting enough attention now.

Andrew Cunningham (Hacker News):

News is making the rounds today, both via a write-up in Vice and a post from Google’s Threat Analysis Group, of a privilege escalation bug in macOS Catalina that was being used by “a well-resourced” and “likely state-backed” group to target visitors to pro-democracy websites in Hong Kong. According to Google’s Erye Hernandez, the vulnerability (labeled CVE-2021-30869) was reported to Apple in late August of 2021 and patched in macOS Catalina security update 2021-006 on September 23. Both of those posts have more information on the implications of this exploit—it hasn’t been confirmed, but it certainly appears to be yet another front in China’s effort to crack down on civil liberties in Hong Kong—but for our purposes, let’s focus on how Apple keeps its operating systems up to date, because that has even wider implications.

On the surface, this incident is a relatively unremarkable example of security updates working as they ought to. Vulnerability is discovered in the wild, vulnerability is reported to the company that is responsible for the software, and vulnerability is patched, all in the space of about a month. The problem, as noted by Intego chief security analyst Joshua Long, is that the exact same CVE was patched in macOS Big Sur version 11.2, released all the way back on February 1, 2021. That’s a 234-day gap, despite the fact that Apple was and is still actively updating both versions of macOS.

Previously:

Update (2021-11-16): Rui Carmo:

Even though the article could be a lot more detailed, I hope it gets enough exposure to bring this topic back on the agenda. […] As this sprawling thread on Hacker News points out, there is an overall feeling of neglect and change for the sake of change in many aspects of Apple’s software experience, and it isn’t as if they don’t know.

Nick Heer:

I was too generous when I gave Apple’s software quality in 2020 a four out of five. It was certainly better than the preceding year, but I should have graded it a whole point lower, at least. 2021 has been even rockier for me, and not just with Apple’s software and services. I feel increasingly as though big software vendors are taking customers’ business for granted.

Quality used to be one of the factors that differentiated Apple’s products from its competitors — not just in the big picture of things “just working”, but also in the details. That feels much less true than it used to. There are big problems: MacOS Monterey bricked a bunch of T2 Macs, and the version of Shortcuts that debuted across Apple’s operating system lineup this year shipped in an unusable state. But the thousand tiny cuts are perhaps more grating[…]

[…]

So it turns out that a shared Pages document can be edited on a newer version which silently breaks compatibility, and the only way someone will find out is when they decode a cheery update notification. I would not mind except this sort of stuff happens all the time in software and services from Apple and plenty of other vendors.

Previously:

Friday, November 12, 2021

Offline Translation in Monterey

Howard Oakley:

The basics are very simple: select the text you want to translate, which could have been recognised and converted using Monterey’s new Live Text feature, bring up the contextual menu (Control-click, two-finger tap, etc.) and from that select the Translate … command.

[…]

I therefore recommend that, for the time being at least, and for those languages you’re most likely to use, you enable offline translation and download the supporting files required.

Do this by clicking on the new Translation Languages… button at the foot of the General tab in the Languages & Region pane.

This is a useful feature, but I ran into some issues with how it’s implemented:

Revised Messages Communication Safety Feature in iOS 15.2

Juli Clover:

Communication Safety is a Family Sharing feature that can be enabled by parents, and it is opt-in rather than activated by default. When turned on, the Messages app is able to detect nudity in images that are sent or received by children. If a child receives or attempts to send a photo with nudity, the image will be blurred and the child will be warned about the content, told it’s okay not to view the photo, and offered resources to contact someone they trust for help.

When Communication Safety was first announced, Apple said that parents of children under the age of 13 had the option to receive a notification if the child viewed a nude image in Messages, but after receiving feedback, Apple has removed this feature. Apple now says that no notifications are sent to parents.

Previously:

Notability’s Subscription Transition

Tim Hardwick (Reddit):

Notability users have been left frustrated and annoyed after the developer of the popular Mac and iOS note-taking app revealed on Monday that it has switched to a subscription-based model, and that key features included in original app purchases will stop functioning after one year.

Previously available as a one-off $8.99 purchase, Notability for iPhone, iPad, and Mac is now free to download on the App Store, but not all the features are available in the “freemium” version, and those that are included have editing limitations.

To get “the full Notability experience” offered by version 11.0 of the app now requires an annual $14.99 subscription[…]

[…]

As many users have pointed out, on the face of it, the change appears to violate Apple’s App Store Review Guidelines, which state “if you are changing your existing app to a subscription-based business model, you should not take away the primary functionality existing users have already paid for.”

Isn’t this the sort of thing App Review should be checking?

Notability (via MacRumors):

We heard the disappointment from our existing customers, and we want to correct our course. […] Everyone who purchased Notability prior to our switch to subscription on November 1st, 2021 will have lifetime access to all existing features and any content previously purchased in the app.

Matt Ronge:

When switching to subscriptions, talk to lots of people about it. You want to ensure that you don’t have any blind spots. Talk to some existing customers one on one, see how they react to the news. Put together a message announcing the switch, share it with your team and others you trust. Ask them what they take away from the message. Rinse and repeat this process until you’re happy with the reaction.

[…]

Despite all of this, I still think consumer subscriptions are the right choice for most productivity apps on the market – paid upgrades would also be another good option, but I highly doubt Apple is ever going to give those to us. Just be careful when making the switch!

Ryan Jones:

Any biz owner who makes this choice is not swimming in money and trying to make more! They are dying, with 2 choices:

Option 1: Work on it out of the goodness of my heart, make no money, risk my family’s wellbeing, and it dies anyway for all users in 2 years.

Option 2: Pre-announce a systemic change. Royally piss off 10% of users. Hopefully new ones ask for a refund. Surely old ones got amortized value of $3/year. Esp if they love it.

Then we at least have a chance to live, and they have a chance to use the app in years 2+.

Paul Haddad:

I’ll say for us it was definitely a matter of permanent maintenance mode or sub + a lot of on going development to justify it.

I’ll also say I think they should’ve released a new version or grandfathered everyone in (yuck).

Apple really needs to provide better upgrade options.

Michael Love:

To me, the key problem here is that they sold specific add-ons as permanent IAP (admittedly not for very much money) but now are not only converting the app to subscription-only but are also doing so for those paid features.

Some of this may have been hard to avoid - if for example they’re using a different handwriting recognizer with new royalties - but also, grandfathering old purchases is annoying and time-consuming and means keeping around lots of awful old code; it’s tempting to skip that step.

But Notability is a great example of a bad dev + user experience that could have been avoided if Apple allowed paid upgrades.

If it’s imperative people be able to buy a new $1000 iPhone without having to give “greedy developers” any $, mandate x years bug fixes for old versions.

Francisco Tolmasky:

I don’t think this is a users vs. devs issue, but a result of the @AppStore making it hard to continue using old versions forever (since that requires changing the app name). Normally you’d just have Version N+1 be subscription & say “keep using version N as long as you want.”

Francisco Tolmasky:

[Having] a version frozen in time (so as to manage two code paths for grandfathered users and avoiding them accidentally upgrading due to iOS auto upgrades is not easy (without changing app name), whereas its the default off the AppStore.

[…]

This is not the way it works in a “if you have the binary it works” model like on the desktop. You can change everything and have zero legacy around.

The fact that most users will just have the app auto-update from underneath them exacerbates this. My point is that “grandfathering in” in @AppStore land unnecessarily also creates tech debt, at which point there are incentives other than revenue for “forcing” it on everyone.

If I had a similar situation as Notability, I think I would feel compelled to do the same as they did, just to keep the app clean, as opposed to taking on the burden of special casing past features in future versions.

Previously:

Update (2021-11-15): Max Seelemann:

We’ve chosen the „new app“ approach that had also a lot of downsides to it 🧐

Christopher Atlan:

Apple doesn’t give a shit about paid purchases and anything relating to it like bundles. Bundles are broken. The new API to lookup purchases based on the receipt number? Not for paid apps.

If you don’t follow along the company line, freemium preferred with subscription, you’re in a world of pain and “are you fucking kidding me?”

Apple’s 2021 Fiscal Year in Review

Jason Snell:

That means it’s time for the final totals, and an entirely new set of charts based entirely on Apple’s annual performance.

[…]

Apple has been on a rocket-ship ride since the debut of the iPhone. But Fiscal 2021 was like no other. Revenue was up 33% from 2020. After three years where revenue held steady, it’s a huge jump, the biggest in total dollars ever.

[…]

But in the 2020s, at least thus far, the Mac has reached new heights. How much of this is due to a super buying cycle forced by COVID remains to be seen, but after nine straight years between 22 and 26 billion dollars in sales, the last two years have seen the Mac leap up to $29 billion and then $35 billion. The four best sales quarters in Mac history are the four quarters that comprised fiscal 2021. The Mac has never been more successful.

Previously:

Thursday, November 11, 2021

FastScripts 3

Daniel Jalkut (tweet):

Specifically, scripts are now run independently from the app and in their own application processes. This guarantees a consistent execution environment, and allows for an arbitrary number of scripts to run in parallel without impacting the performance of the app itself, or of other scripts being run.

[…]

When the Script Menu is opened, the search field is made active by default, so any typing will immediately filter the menu contents to scripts that match your search. If the top result is the script you’re looking for, just press return to immediately run the script.

[…]

FastScripts now supports the standard AppleScript progress updating mechanism. Scripts that report their progress will have timing and text feedback conveyed to users by way of the FastScripts menu[…]

[…]

Little things, like the ability of the app to detect when you attempt to assign a shortcut that is already being used for another script, to improvements to the appearance of the app’s built in “display message” panels, to the long-awaited support for symbolic links in the script folder, will perpetually surprise and delight you!

[…]

This update marks the departure of FastScripts from the Mac App Store. Apple’s restrictions on advanced functionality made it impossible to release a completely updated version of the app that Apple would allow in the store.

Great update to an essential app that I’ve used just about every day for more than 15 years. It’s $39.95 or $19.95 to upgrade, though almost all the features work in free mode.

Brad Ellis:

Just made a new app icon for the folks at @redsweater for a new release of FastScripts 3, a menu bar app to run scripts on the fly.

Previously:

Update (2021-11-12): Daniel Jalkut:

Here’s some attention to detail, [in FastScripts 3], that you won’t see in many (any?) other apps that invoke scripts with keyboard shortcuts. It detects THE SCRIPT trying to synthesize the same shortcut that invoked it. And Apple wonders why I can’t sandbox.

Unity Buys Weta Digital

Greg Kumparak (via Hacker News):

Unity has just announced its intent to acquire Weta Digital, the legendary visual effects company co-founded by Peter Jackson, for a massive $1.625 billion.

[…]

Leading into this deal, Weta Digital was both a team of artists creating visual effects and a team of engineers developing many of the tools those artists use. It’s those tools and engineering teams, specifically, that Unity is acquiring; the visual effects artistry team, meanwhile, will be split off into its own new thing.

Weta Digital’s 275+ engineers will join Unity. The VFX artists will be spun out into a new entity, “Weta FX,” of which Peter Jackson will continue to own the majority.

Marc Whitten:

Our goal is to put these world-class, exclusive VFX tools into the hands of millions of creators and artists around the world, and once connected with the Unity platform, enable the next generation of RT3D creativity. Whatever the metaverse is or will be, we believe it will be built by content creators, just like you.

John Gruber:

Even just a few years ago, if you told me Unity and Weta were merging, I’d have assumed Weta was the buyer and Unity the acquisition. But it’s the other way around — and that represents the fact that gaming is now a bigger industry than movies. (As a friend notes, gaming is bigger than movies + sports combined.)

Update (2021-11-23): Ben Thompson:

Notice the transition here; at the beginning everything was integrated from the movie shot to the development process to the software to the individual computer[…] Over the ensuing 28 years, though, each of these pieces has been broken off and modularized, increasing the leverage that can be gained from the software itself; Unity’s approach of selling tools to the world is the logical endpoint.

[…]

It is striking how the fundamental strengths and weaknesses of Weta and Unity are mirror images of each other: Weta has cutting edge technology, but it’s only available to Weta; Unity’s technology, meanwhile, continues to improve, but its biggest asset is the number of developers on its platform and integration with all of the other components a developer needs to build a business.

[…]

Weta increases Unity’s market from not just developers but to artists, who can be plugged into Unity’s land-and-expand model. Weta, meanwhile, immediately gains leverage on all of the investment it has made in its software tools.

Apple Business Essentials

Apple (Tim Cook, MacRumors, Hacker News):

Apple today announced Apple Business Essentials, an all-new service that brings together device management, 24/7 Apple Support, and iCloud storage into flexible subscription plans for small businesses with up to 500 employees. The company also unveiled a new Apple Business Essentials app that enables employees to install apps for work and request support.

[…]

Within Apple Business Essentials, Collections enable IT personnel to configure settings and apps for individual users, groups, or devices. When employees sign in to their corporate or personally owned device with their work credentials, Collections automatically push settings such as VPN configurations and Wi-Fi passwords. In addition, Collections will install the new Apple Business Essentials app on each employee’s home screen, where they can download corporate apps assigned to them, such as Cisco Webex or Microsoft Word.

[…]

When a business adds AppleCare+ for Business Essentials to its plan, they get 24/7 access to phone support, training for both IT administrators and employees, and up to two device repairs per plan each year.

Jason Snell:

The subscription plan uses device-management features Apple introduced in iOS/iPadOS 15 and macOS Monterey, and is in a free beta test beginning Wednesday and lasting through next spring. Per-user pricing will start at $2.99 per month and increase based on the number of devices and amount of iCloud storage allotted to individual users.

Company IT managers can administer users on an Apple-hosted web interface, and then instruct their users to log in with a company-assigned Apple ID. Managers can enforce certain security policies and distribute apps (via the new Apple Business Essentials app). On personal devices, corporate-based data and personal data are kept cryptographically separate.

John Gruber:

Unless I’m misreading this, Apple is entering the same market as Jamf and Kandji (editor’s note: both are previous sponsors at DF) and the other MDM companies that specialize in Apple devices. I’m curious what they mean by “backup” here, because iCloud only does backup for iOS devices. Does this program somehow back up Macs to iCloud, or, is Apple just pretending like that’s not a problem?

Horace Dediu:

Regarding Apple’s release of a subscription service for small businesses today, the addressable market is 212 million world-wide with about 30 million in the US alone. Apple’s attack from below is well underway.

Update (2021-11-12): Armin Briegel:

It looks as if ABE uses MDM commands only, with no local agent other than a “Apple Business Essetials” self-service app. This is standard for iOS and iPadOS, but will make the management options for Macs very limited. For many MacAdmins this will disqualify ABE for “serious” Mac management.

Keep the target audience in mind, though. For many organizations managing iPhones and iPads in business will be the main benefit of ABE and enforcing some management settings on the Macs will be a nice bonus. After all, even the little management possible with MDM commands will be better than no management at all.

[…]

Apple is targeting the “low-end” for device management. They are competing less with Jamf Pro and Workspace One, and more with Jamf Now, SimpleMDM, Mosyle Business, Kandji and Addigy. But when you look at the feature set, Apple’s cannot really compete with any of these, but they provide a minimal or, well, “essential” step up from “no management.” It’ll be up to the vendors to provide features and value above this new, essential, base line.

Overall, I think this is an exciting and promising announcement. There is also the hope, that since Apple is now building and selling their own management system*, this will result in improvements to the MDM protocol and Apple platform management for all.

Firefox Is the 45th Result When Searching for “Firefox” on Windows Store

Zagrebian (via Hacker News):

The biggest problem is that in order to even see all the results, the user has to [click] “View all”. Most users will probably only look at the first five results, four of which are paid Firefox guides.

The ranking seems to be improving as more people download and rate it. Currently, there are no search ads.

Previously:

On “On Background”

Nilay Patel (tweet):

The Verge is updating our public ethics policy to be clearer in our interactions with public relations and corporate communications professionals. We’re doing this because big tech companies in particular have hired a dizzying array of communications staff who routinely push the boundaries of acceptable sourcing in an effort to deflect accountability, pass the burden of truth to the media, and generally control the narratives around the companies they work for while being annoying as hell to deal with.

[…]

• A big tech company PR person emailed us a link to the company’s own website “on background.”

[…]

• A big tech company refused to detail a controversial new privacy policy on the record, allowing it to amend details about it in repeated background follow-up briefings for over a week.

• A big tech company insisted on describing the upgrade requirements for its new operating system on background. Details which it then repeatedly changed… on background.

[…]

This list could go on and on — the clear pattern is that tech companies have uniformly adopted a strategy of obfuscating information behind background.

Rory Cellan-Jones:

It’s got so absurd that I have had PRs tell me “on deep background” bland stuff that’s already in a press release

Brian Merchant (via David Zarzycki):

“On background” has been a scourge throughout my career. Every single conversation I have had with a big-five tech company representative this year has been on background. It has become the default method by which Silicon Valley disseminates information to reporters.

This is a toxic arrangement. The tactic shields tech companies from accountability. It allows giants like Amazon and Tesla an opportunity to transmit their preferred message, free of risk, in the voice of a given publication. It leaves no trace of policy that might later be criticized—that could form part of the public record to be scrutinized by regulators, lawyers, or investors. If the company later reverses course or modifies its position, the egg is on the reporter’s face, not the company’s.

Corporations such as Apple, Google, and Uber have become infamous for their secrecy and unwillingness to comment on most matters on the record. And tech reporters, myself very much included, have not done enough to push them to do otherwise.

Update (2022-01-17): Wired:

Many powerful companies make a practice of obfuscating or dodging accountability when speaking to media outlets by providing information while insisting it not be attributed to anyone in particular, and sometimes not even to the company itself. For that reason, WIRED is joining the Verge, Quartz, and others in making its editorial standards clearer.

Wednesday, November 10, 2021

Apple Denied Anti-Steering Stay

Adi Robertson (PDF, tweet, Hacker News, MacRumors):

Epic v. Apple judge Yvonne Gonzalez Rogers says Apple must comply with an order to let developers add links and buttons to external payment options, denying the company’s motion for a stay. “Apple’s motion is based on a selective reading of this Court’s findings and ignores all of the findings which supported the injunction,” her new order reads.

[…]

“This will be the first time Apple has ever allowed live links in an app for digital content. It’s going to take months to figure out the engineering, economic, business, and other issues,” said Apple attorney Mark Perry.

[…]

Epic framed Apple’s request as a delay tactic made without any real commitment to change. “Apple does nothing unless it is forced to do it,” said Epic attorney Gary Bornstein.

[…]

Tuesday evening, [the judge] accused Apple of wanting “an open-ended stay with no requirement that it make any effort to comply,” and suggested that “Apple has provided no credible reason for the Court to believe that the injunction would cause the professed devastation”[…]

Leah Nylen:

So next step is for Apple to ask the Ninth Circuit to stay the ruling. If they don’t, Apple could ask SCOTUS. It’s a high bar to get a stay pending appeal if the trial court judge doesn’t give one, but has happened before (see Qualcomm)

Tim Sweeney:

Well technically it’s a win for all developers except Epic, because Apple decided to block Fortnite from the app store throughout the entire appeals process, which may last many years.

Apple argued, amusingly, that Epic had no standing regarding external links because Apple had already decided it wouldn’t allow Fortnite back into the App Store, anyway.

Steve Troughton-Smith:

This very much enables alternate in-app purchase systems, via a web view, alongside IAP. Apple’s IAP has to compete on merit, not just win by default. Apple is worse off having clarified this.

My understanding of the injunction against Apple is that:

1) Apps can tell users about alt payment options alongside Apple IAP
2) Apps can let users click a button/link to be taken to an alt payment option (via Safari)
3) Alt payment options may undercut IAP pricing if they wish

As widely reported, there is nothing preventing Apple from imposing other rules & restrictions on top of the above — so links can be reviewed by App Review, and Apple may come up with a system to monetize such (but good luck implementing that before December)

Nilay Patel:

A button labeled “buy for 30 percent less” that opens a webview checkout page prepopulated with your account and billing info is Apple’s nightmare and I don’t think this order prohibits that at all

Apple contended in the hearing that allowing buttons and links would require significant engineering resources and I am pretty sure what they meant was figuring out ways to nerf the in-app browser so you can’t use it to pay for things all the time

Previously:

Update (2021-11-12): Florian Mueller:

The “realistic best-case scenario” for developers is that Apple will collect its usual commission (possibly with a minor deduction, such as 2%) on revenues generated by means of such external links. There is nothing in the court order barring Apple from doing so. Much to the contrary, the judgment recognized Apple’s right to seek compensation for its IP.

[…]

The worst-case scenario for developers, however, would place developers like Epic in an even worse position on the bottom line than if the injunction had never come down. Two months ago I already discussed the possibility of Apple disallowing cross-walled and cross-purchases. In that case, the Epic v. Apple injunction would allow outbound links (including links in the form of a button, but still just external links) to information on alternatives. But any purchases of digital goods (such as Fortnite V-Bucks) made outside an iOS app would no longer be available for consumption in the iOS app.

[…]

Apple had two fundamentally different options for how to interpret the injunction in its motion for a stay (and the reply brief in support of that motion). Apple could have taken the position that the narrow scope of the injunction had been clear all along. That would have meant to optimize for a hypothetical contempt proceeding--instead, Apple chose to place a strategic bet on obviating the need for such contempt proceedings in the first place. In order to avoid facing any contempt motion, Apple needs to get the injunction stayed and then prevail on appeal. With that strategic priority in mind, Apple determined that what would serve it best was to make the strongest possible case for irreparable harm (to Apple from enforcement). A narrow injunction doesn’t hurt as much as one that someone may blow out of proportion.

Florian Mueller:

Nilay Patel’s proposed approach would simply read out the word “external” from the court’s clarifying statement by suggesting that developers could bring up a WebView control--meaning a browser rectangle within an app using the same browser engine as Apple’s Safari browser--and automatically fill in the user’s account data (such as a user ID). A control (i.e., user interface element) within an app is, however, not external.

Tuesday, November 9, 2021

Disk Utility in Monterey

Howard Oakley (user guide):

I’ve been on the look out for nominations for the title of the most improved utility of the year. I’m delighted to announce not just a nomination, but an outright winner: Disk Utility 21.0, bundled with Monterey. After four years in which it had offered frustratingly limited support for the new features of APFS, Disk Utility is now complete: this version has excellent support for snapshots, no matter which app created them.

[…]

The most recent snapshot has a Partition symbol shown against its Tidemark, a value which isn’t explained in the Help page, unfortunately.

Select a snapshot from the list and you can mount it, show it in the Finder, rename it, and delete it, using the More button and the – tool at the bottom left.

The Private Size column, which mostly but not completely matches what Carbon Copy Cloner shows, I think represents the amount of space that’s only used by that snapshot. This is the amount you would free by deleting it.

There’s also a Cumulative Size column, shown as Size no matter how wide I make the table. This takes a really long time to calculate. At first, I thought this would be the difference from the current state of the volume, i.e. the Private Size plus the components of that snapshot that are also used by other snapshots. However, the fact that Cumulative Size is larger for more recent snapshots, which differ less from the current state of the volume, seems to undermine that theory.

Six years after the rewrite in El Capitan, we’ve still not regained the ability to open multiple windows (and thereby perform simultaneous operations or compare one disk to another).

I also continue to see the problem, introduced in Big Sur, where external drives can take up to an hour to mount, during which time Disk Utility may constantly beachball, and other apps that use the Cocoa document system or file coordination will beachball as soon as they try to read or write a file. Thus, it’s no longer safe for me to initiate a backup while working.

Previously:

Update (2021-11-12): Thomas Clement:

Snapshots API is still gated behind an entitlement. And Apple still does not allow users to create new snapshots and pin them in order to control their lifetime.

Update (2021-11-15): Howard Oakley (tweet):

Tidemark is the highest block referenced by a snapshot. As this can’t be moved, this effectively limits any resizing which might be applied to the container without destroying that snapshot. Values which haven’t changed since the previous snapshot are shown in grey. The Partition symbol is used to mark the high tidemark for that volume, which sets the limit for non-destructive repartitioning of its container.

[…]

Size is the cumulative size occupied by that snapshot and all previous snapshots. This reaches a maximum for the latest snapshot. Values which haven’t changed since the previous snapshot are shown in grey.

Accessibility Exemption for E-book DRM

Damon Beres (via Hacker News):

Advocates for the blind are fighting an endless battle to access ebooks that sighted people take for granted, working against copyright law that gives significant protections to corporate powers and publishers who don’t cater to their needs. For the past year, they’ve once again undergone a lengthy petitioning process to earn a critical exemption to the 1998 Digital Millennium Copyright Act that provides legal cover for people to create accessible versions of ebooks.

Baked into Section 1201 of the DMCA is a triennial process through which the Library of Congress considers exceptions to rules that are intended to protect copyright owners. Since 2002, groups advocating for the blind have put together lengthy documents asking for exemptions that allow copy protections on ebooks to be circumvented for the sake of accessibility. Every three years, they must repeat the process, like Sisyphus rolling his stone up the hill.

[…]

Publishers have no obligation to make electronic versions of their books accessible to the blind through features like text-to-speech (TTS), which reads aloud onscreen text and is available on whichever device you’re reading this article. More than a decade ago, publishers fought Amazon for enabling a TTS feature by default on its Kindle 2 ereader, arguing that it violated their copyright on audiobooks. Now, publishers enable or disable TTS on individual books themselves.

Federighi and Cook on Sideloading

Chance Miller (tweet, video, Slashdot, MacRumors):

Last month, it was announced that Apple senior vice president Craig Federighi would attend and speak at Web Summit 2021, which takes place in Lisbon, Portugal. In a keynote delivered today, Federighi vehemently spoke out against legislation that could force Apple to open the iPhone up to sideloading…

The Digital Markets Act legislation was first unveiled last December in the EU, and it could lead to major changes for the App Store and pre-installed first-party applications on the iPhone. The DMA in Europe would force Apple to allow sideloading on the iPhone, among other changes.

[…]

The Apple executive also warned that the legislation comes as there have “never been more cybercriminals” determined to access the private information on your iPhone. “Sideloading is a cybercriminal’s best friend,” Federighi said. “And requiring that on iPhone would be a gold rush for the malware industry.”

Will Strafach:

reminder: this is not very accurate. Apple has already solved side-loading in a reasonably smart way with their SRDs.

Michael Love:

If your best response to “let people who want to take the risk sideload” is “people might be tricked into sideloading” when YOU WOULD BE THE ONES DESIGNING THE SIDELOADING UI, that’s not a very good response. (also, again, sideloaded != insecure)

People get tricked into subscriptions all the time and yet, despite proclaiming the superiority of App Review, Apple’s attempts to stop that are half-hearted at best. But when it’s a form of trickery that they don’t get a 30% cut of, somehow then it’s an unavoidable disaster.

Also, if you’re really worried about the malware industry you could, y’know, increase + actually pay out security bounties and stop antagonizing security researchers.

[…]

Provisioning profiles are a way bigger security hole than sideloaded apps, and yet Apple accepts that those are necessary + allows them.

You can install a sketchy file from a third party that allows them to more-or-less take total control of your phone, but you can’t install a fully-sandboxed third party app unless it’s from the App Store.

Nilay Patel:

This is so weird and disingenuous. Are they going to lock down the Mac next?

Chaim Gartenberg:

If Apple wanted, it could enable iOS sideloading in a similar manner and require something like the Gatekeeper system on macOS, which allows for Apple to check signed developer IDs to confirm the software is genuine. It’s an argument that Judge Yvonne Gonzalez Rogers noted as well during the Apple / Epic trial, commenting that Federighi may be “stretching the truth” on Mac malware concerns and that Apple could likely make a similar system work on iOS.

Benjamin Mayo:

Apple doesn’t trot out Federighi to a third-party conference with a highly-produced Keynote deck for the fun of it. They are clearly concerned that European lawmakers are actually going to do something they don’t want; that is, pass laws requiring them to offer sideloading as an option.

[…]

Federighi posits that a social networking app may choose to “avoid the pesky privacy protections of the App Store” and only make their apps available via sideloading. Apple’s customers would then have to leave the ‘safe’ Apple software ecosystem, or lose touch with their family and friends. This is sort of true. But what is omitted is that an app choosing to leave the App Store is not primarily doing so to avoid Apple’s privacy standards, but because it would then be able to avoid Apple’s IAP rules.

Apple benefits financially — measured in the billions of dollars per year — by keeping the App Store as a monopoly. However much it wants to tout the user privacy and safety benefits, Apple’s position would be far stronger if cynics weren’t able to point to the money being accrued by the App Store gravy train.

Sam Fathi:

Apple CEO Tim Cook said today that customers who wish to sideload apps should consider purchasing an Android device as the experience offered by the iPhone maximizes their security and privacy.

[…]

Cook drew the comparison of sideloading to a carmaker selling a car without airbags or seatbelt, saying it would be “too risky.”

[…]

The App Store’s in-app purchase method, which developers are required to use for digital purchases made within apps, gives Apple a 15-30% commission on all purchases made. Cook noted today that Apple has only ever lowered the commission, never increasing it.

He’s said this multiple times, and I still find it misleading because increasing the categories of purchases subject to the commission, which Apple has done several times, is like raising it from 0% to 30%.

Michael Love:

It’s kind of a hopeful sign that the pressure regarding sideloading has gotten serious enough that Apple feels the need to keep trotting out various executives to make this same disingenuous point.

Also that it’s gotten serious enough that Tim Cook is actually telling people who want sideloading to buy an Android phone when in the past the’ve tiptoed around even using the word “Android” in product keynotes.

Previously:

Update (2021-11-12): Nick Heer:

But those are not the arguments these Apple executives are making. They are claiming that people actively choose the iPhone over an Android phone because it is more locked down.

[…]

Apparently, over 40% of Americans want the smartphone equivalent of a car without seatbelts or airbags. This is clearly absurd, and I have to wonder if Apple’s arguments make sense.

I don’t like Apple’s analogy because there’s little potential benefit (lower price, extra space?) to having a car without seatbelts or airbags. So, not only do car safety features likely make much more of a difference than App Store safety features, but Apple is positing giving them up for nothing in return. In the real world, some customers and developers don’t want less safety; they want to trade potentially less safety to get more/better apps and businesses.

Update (2021-11-15): Nilay Patel:

Tim Cook says [allowing] sideloading is like telling a carmaker to “not to put airbags and seatbelts in a car.”

Airbags and seatbelts in cars because of regulations that carmakers lobbied against, of course.

Update (2021-11-17): John Gruber (tweet):

If Apple stopped making it look like they’re running the App Store primarily to maximize their own revenue from it, regulators and lawmakers might stop thinking that Apple is running the App Store primarily to maximize their own revenue from it.

Update (2021-12-03): Riccardo Mori:

I grew up in an era when software was just software, and you could simply start typing a BASIC program into the computer and execute it. Generally speaking, it was an era when tinkering — both in hardware and software terms — was unhampered and even encouraged. Philosophically, I can’t be against sideloading. I actually dislike how the term’s connotation has been hijacked towards negativity. On the contrary, one should think of it in terms of freedom to install any compatible software available for a certain platform.

But what about malware? Yes, in a completely open scenario, malware can indeed be a risk. But the problem, in my opinion, lies elsewhere. It lies in the tradition of treating end users like ignorant idiots instead of training them to separate the wheat from the chaff.

[…]

Instead of teaching users how to fish, Apple decided to position themselves as sole purveyors of the best selection of fish.

[…]

The problem of appointing yourself as the sole guardian and gatekeeper of the software that should or should not reach your users is that you’re expected to be infallible, and rightly so. Especially if you are a tech giant which supposedly has enough money and resources to do such a splendid job that is virtually indistinguishable from infallibility. Instead we know well just how many untrustworthy and scammy apps have been and are plaguing the App Store, and how inconsistent and unpredictable the App Review process generally is.

Peloton Blames App Tracking Transparency

Tim Hardwick:

Peloton has become the latest company to blame Apple’s ad-related privacy changes in iOS for negatively impacting its business, according to a new report by Bloomberg’s Mark Gurman.

Best known for its at-home exercise equipment and online fitness classes, Peloton blamed the App Tracking Transparency (ATT) rules Apple introduced in iOS 14.5 for making it more difficult to add new subscriptions to its services by targeting online shoppers based on their interests.

The company made the claim this week in its latest earnings call, in which it cited slower than expected post-pandemic economic re-openings, before cutting its annual revenue forecast by as much as $1 billion, while lowering its projections for subscribers and profit margins.

Carolina Milanesi:

Um I struggle to see how if you are using Peloton and want to get a subscription you would walk away because of the tracking question. Clearly you trust the company already, at least at some level

It’s not clear to me whether Peloton is complaining about the scary tracking alert or the fact that the ads they’re buying are more expensive and less effective.

Ben Bajarin:

In light of Peloton’s stock tumble, I wanted to share a brief thread on their competitive advantage and growth prospects.

Previously:

Monday, November 8, 2021

Facebook, But Not Meta, Ends Face Recognition

Juli Clover:

Facebook is shutting down its Face Recognition system and will delete the facial data of more than 1 billion of its users, Facebook parent company Meta announced this morning.

People who opted in to Face Recognition will no longer be automatically recognized in photos and videos, and their facial recognition templates will be deleted.

According to Facebook VP of Artificial Intelligence Jerome Pesenti, Facebook is making this change because it needs to weigh the positive use cases for facial recognition against growing societal concerns” as regulators “have yet to provide clear rules.”

Kate Crawford:

So Facebook is deleting one billion facial recognition scans, but it’s keeping DeepFace, the model that is trained on all those faces.

I’m not sure whether this is accurate. To me, it sounded like they were deleting the model and training data but keeping the code, but I haven’t found anything definitive.

Nick Heer:

Pesenti says this will affect over a billion users, or about one-third Facebook’s user base. When it launched in 2010, users were opted into it by default; it took until 2019 for the company to require that users switch it on themselves.

Matt Wille (tweet):

But now, Facebook’s parent company, Meta, has walked that promise back a bit. A lot, really.

Meta is not planning to hold back its use of facial recognition technology in its forthcoming metaverse products. Facebook’s new parent company told Recode that the social network’s commitment does not in any way apply to the metaverse. The metaverse will abide by its own rules, thank you very much. In fact, Meta spokesperson Jason Grosse says the company is already experimenting with different ways to bring biometrics into the metaverse equation.

Previously:

TestFlight for Mac Officially Launches

Juli Clover:

Apple today informed developers that they can invite people to try out early versions of Mac apps prior to release using the TestFlight platform, marking the end of a beta test that’s been ongoing since August.

Previously:

Update (2022-10-06): Drew McCormack:

Anyone ever used TestFlight for Mac? First time we’ve tried it, and seems like there’s nobody home. Already two days in the beta app review queue. (On iOS, the app was through beta review in about 30 mins)

Anton Sotkov:

We use it. It always takes way longer than iOS, usually one to two days.

Anders Borum:

Apple also set themselves up for extra work by doing TestFlight review on every build and not just the first with a new version number [like on iOS].

Update (2022-10-11): Drew McCormack:

After 6 days waiting in the queue for beta review in the Mac App Store, we are giving up and going back to our off-store testing. Not a great way to endear the Mac App Store to developers.

[…]

Yeah, we have started getting those weird rejections too. Last one was “Where is the feature X?” where feature X was a feature we had never heard of.

Update (2022-10-17): Drew McCormack:

Would love to tell you how well TestFlight in the Mac App Store is working for us, but have yet to get a single build through review. Have been leaving each one for a week, but they stay in “Waiting for Review”, at which point I have to move on to the next beta build.

Max Seelemann:

For us the first build in a version takes about a week (last one 4 days), successive ones were a few hours (half day or so). Very annoying still, compared to iOS

A Year of Platformer on Substack

Casey Newton (Hacker News):

When I started Platformer with the mailing list I accumulated while writing my previous newsletter, there were around 24,000 of them. Twelve months later, there are 49,604 people subscribed to Platformer’s free list, and they regularly open this newsletter at a rate that far exceeds in the industry average.

[…]

The result is a job that feels more durable, and sustainable, than any other employment I’ve had. In the past, to lose my job might require only a bad quarter in the ad market, the loss of an ally in upper management, or the takeover of my company by some indifferent telecom company. Today, I can really only lose my job if thousands of people decide independently to “fire” me. As a result, I’ve never felt more empowered to cover the issues I find most meaningful: the fraught, unpredictable collisions between big tech platforms and the world around them.

[…]

Platformer loses 3-4 percent of its paid customers per month. To grow, it has to replace those customers and then find new ones.

[…]

Guidance I had gotten from Substack suggested I might expect 10% or so of my free subscribers to go paid. Given that 24,000 people had been reading me four days a week when I launched — some for three years — I thought that 10% would be a slam dunk. Instead, it was closer to 5%.

[…]

Other than the stories I mentioned above, the Discord launch was the single biggest thing I did over the past year to convert paid subscribers.

IAP Fees for Event Services

Apple:

Last year, to support apps that adapted services from in-person to digital, we temporarily deferred the requirement to offer paid online group event services (one-to-few and one-to-many realtime services) through in-app purchase in accordance with App Store Review Guideline 3.1.1.

[…]

As a reminder, new apps and updates offering these realtime one-to-few and one-to-many services must use in-app purchase by December 31, 2021, or they won’t be approved per guideline 3.1.1. Apps offering realtime person-to-person services between two individuals (for example, tutoring students, medical consultations, real estate tours, or fitness training) can continue using purchase methods other than in-app purchase.

Previously:

Google Wants Fee for Alternate Billing Systems

Abner Li (via Benjamin Mayo):

In late August, South Korea passed a law requiring alternate in-app payment systems in Google Play and the iOS App Store. Google today detailed what steps it will be taking to comply.

[…]

Meanwhile, apps that use alternate billing and are distributed via Google Play will still be subject to service fees. That cut will “continue to be based on digital sales on the platform,” but Google will reduce what it takes by 4% in recognition of how “developers will incur costs to support their billing system.”

For example, for the vast majority of developers who pay 15% for transactions through Google Play’s billing system, their service fee for transactions through the alternate billing system would be 11%.

John Gruber:

As Ben Thompson observed on today’s episode of Dithering, for small transactions — like the ones typically offered in games — credit card fees are likely in the 5-6 percent range. So if this flies, Google’s revenue per in-app transaction for apps from the Play Store isn’t going to effectively change at all.

Is it going to fly? Like I’ve said, stock up on popcorn.

Joe Rossignol:

Apple meanwhile has yet to make any changes to App Store billing in South Korea. The company previously said the law “will put users who purchase digital goods from other sources at risk of fraud, undermine their privacy protections, [and] make it difficult to manage their purchases,” while making parental controls less effective.

In October, Apple told the South Korean government that it was “already in compliance with the new law and did not need to change its app store policy,” according to Reuters.

agilethumbs:

Apple and Google aren’t entitled to a cut of anything that happens on the computer I bought, or the company I built just because it works on computers they made.

Why not your ISP, and your cellular carrier, and your electric company, etc.?

Previously:

Update (2021-11-12): Michael Love:

One thing to note about Google’s new 11% cut of third party payments is that it seems to be heavily dependent on these payments taking place in-app and through Google’s standard UI; it’s the only way they can reliably determine their commission.

For Apple or Google to introduce a commission like this on web links would be an extremely tall order; they have no way of figuring out what people are spending, and would be relying on developers to accurately track + attribute payments from web links versus other sources.

Update (2021-11-23): Florian Mueller:

Apple’s concerns are all about the practical aspects of collecting its commission--there’s no reason to believe Apple would not want to get paid even on payments made after users click on external links presented by an iOS app.

Anybody dreaming of a “30 percent less” option in connection with external links is barking up the wrong tree. The app tax will be imposed one way or the other. Collection may be more cumbersome, but Apple’s position is that it’s entitled to its commission and that’s what even the Epic Games v. Apple judgment says.

Florian Mueller:

So Google’s reduction would leave a margin for third-party payment processing of only about 2.5% in the best case and 0.5% in the worst case (Amex’s peak rate).

As a result, end users wouldn’t save enough money to even bother to enter payment credentials elsewhere.

Friday, November 5, 2021

diskspace Tool to Report APFS Free Space

Armin Briegel:

With the recent versions of macOS, getting a value of the available disk space is not as strightforward as it used to be. There are a lot of files and data on the system, which will be cleared out when some process requires more disk space. Most of this is cache data or data that can be restored from cloud storage. But this ‘flexible’ available disk space will not be reported by the traditional tools, such as df or diskutil. The available disk space these tools report will be woefully low.

The available disk space which Finder reports will usually be much higher. There is functionality in the macOS system frameworks where apps can get the values for available that takes the ‘flexible’ files into account.

[…]

I built a command line tool that reports the different levels of ‘available’ disk space. When you run diskspace it will list them all. There are raw and ‘human-readable’ formats.

It’s open source and available here.

Previously:

ThinkTank Review From 1983

Dave Winer:

[Way] back in 1983, Infoworld reviewed ThinkTank, my first outliner.

This review, along with the one in the NYT, launched the company. Early the next year we shipped our Macintosh product at the Mac rollout in Flint Center.

John Gruber:

This review is amazing. But what the heck were they talking about with “the Pascal operating system”?

Dave Winer:

It was the UCSD P-system. Without it I would not have wanted to make Apple II software, nor would I have been able to build an app as rich as ThinkTank. UCSD was an orders of magnitude more memory-efficient than BASIC or assembly language. And it had overlays. Which meant if something didn’t have to be in memory all the time, it could be swapped in when needed. Most Apple IIs only had floppy drives in those days, so it was slow and a pain in the ass, but a lot faster than quitting the program, inserting another disk and launching another app just to edit the text of a headline. What I learned as a result of Gruber’s inquiry is that the P-system was one James Gosling’s inspirations for Java.

High Power Mode for Mac

Apple:

Your MacBook Pro has multiple energy modes you can switch between. By default, your Mac is set to Automatic mode to balance energy use and performance. Low Power Mode reduces energy use to increase battery life. On the 16-inch MacBook Pro with M1 Max, High Power Mode allows the fans to run at higher speeds. The additional cooling capacity may allow the system to deliver higher performance in very intensive workloads.

You can use High Power Mode to improve performance in graphics-intensive workflows such as color grading 8K ProRes 4444 and 8K DNxHR video. In video editing and 3D applications, you may experience smoother playback and faster exports when High Power Mode is on.

[…]

High Power Mode can be used whether your Mac is connected to power or not.

Previously:

Netflix Games for iOS

Ash Parrish:

Users will be able to choose from one of five games: Stranger Things: 1984, Stranger Things 3: The Game, Shooting Hoops, Card Blast, and Teeter Up. Starting today, users can download Netflix games from the Google Play store, requiring a Netflix subscription to play. Then on November 3rd, Netflix will begin rolling out games to the app itself. When on a mobile device, Netflix Games will come packaged in its own dedicated row and have a dedicated tab.

Steve Troughton-Smith:

It sounds like these will be individual games on the App Store, but accessed through your Netflix subscription. Abiding by the rules Apple came up with on the spot to push Microsoft’s Xcloud away from iOS

Jason Snell:

If Netflix wants to be on iOS, it will almost certainly submit every game to the App Store on its own, and then you’ll connect them to your Netflix subscription in order to play them. (I imagine the Netflix app itself will gain links to those apps, but that the apps themselves will be delievered via the App Store.)

That all would seem to be within the letter of the App Store guidelines, but of course, there’s nothing stopping Apple (except publicity and regulatory scrutiny!) from amending its rules or its interpretation of those rules in order to make things harder for Netflix.

Previously:

Tuesday, November 2, 2021

Please Shrink the Trackpad

Lukas Mathis:

After years of struggling with ghost clicks, randomly dragged icons, poor palm rejection, and generally ever worsening MacBook trackpads, I didn’t want to deal with software features trying to compensate for a trackpad’s lack of physical features.

[…]

The reason this [Lenovo] trackpad just works is that its form follows its function. It’s built to move the cursor without getting into your way when you do anything other than moving the cursor, and it’s built to click when you actually want to click, not when you accidentally touch the trackpad wrong.

[…]

Or perhaps the «large trackpad» trend is similar to the «glossy screen» effect. Just like those nice, shiny screens, big trackpads look enticing. The fact that they mostly get in the way is not apparent at the time of purchase.

Apple used to have the best trackpads, but now I constantly get accidental and misclassified clicks on my 16-inch MacBook Pro. Its keyboard is the same width, but its trackpad is much wider, so there’s less safe area to rest my palms. For my next notebook, I’m seriously considering getting a smaller display than I’d like. That’s the only way to get a smaller trackpad, and even the one on the MacBook Air is wider than I’d prefer. I never had problems running out of space using the older trackpads going back to the Wallstreet PowerBook, whose trackpad was considerably narrower than the Spacebar. It even had a real button to click.

Previously:

Update (2021-11-12): Jonathan Deutsch:

I had plenty of issues with the original giant 2016 15" MBP trackpad, and after returning it chose 13" sizes from then on to avoid most palm issues. I heard the software got better at some point. When I got the 2019 16" MBP I didn’t experience too many problems.

So, apparently, the 2019 version that’s causing trouble for me is the improved version.

See also: Hacker News.

Update (2023-11-22): Sabahattin Gucukoglu:

I appreciate that ergonomics of laptops in general has never been great, but does the trackpad on the M2 Air and newer MBPs really have to be quite so darned large? I’ve been mostly putting up with the occasional unwanted trackpad input as my thumb brushes the top edge of the trackpad for a while now. Without any gestures activated in Settings, the worst effect is that the cursor goes into the wrong place and I have to relocate my typing insertions. But, recently I accidentally shut down a VM in the middle of a delicate operation rendering it unbootable[…] I’m trying my absolute best not to brush the trackpad, keeping my palms wide apart and my arms straight, as is good posture, but ultimately it still happens from time to time, and short of just turning it off altogether (which also seems strangely hard to do) I’m stuck for any real solution other than just tucking my thumbs as hard as I can, typing more slowly and carefully and hoping it doesn’t happen again.

Lightroom Classic 11

Adobe:

Reimagine local adjustments with the brand new Masking panel. Now use the Brush, Linear Gradient, and Radial Gradient tools with greater precision and organization. You can also access the Color Range and Luminance Range tools that help you select and adjust specific colors or brightness levels in a photo. Depth Range control is also available for photos containing depth information. You can choose to combine multiple masks in a single photo to make complex local adjustments and easily access them in an organized Masking panel.

[…]

Backed by Artificial Intelligence, the Masking panel offers two new options - Select Subject and Select Sky!

[…]

When multiple images are selected, you can now choose to view metadata for the active image or across all selected images.

[…]

Click the Customize button to select the metadata fields that you want to display in the Metadata Panel.

[…]

The way that the Lightroom Classic database is stored on disk has been optimized and a new file will be created. This new file, with an extension of .lrcat-data, will now be found in the same folder as your catalog file. This file contains important information about your photos and edits and should be included in any backup regimes you may have.

[…]

The progress bar of saving an XMP will be displayed in the Activity Center.

Previously:

Keyboard Maestro 10

Stairways Software (tweet, press release):

Keyboard Maestro 10 expands on the powerful base of previous versions, improving the editor, adding many new actions and triggers, Paste by Name, status menu display, subroutines, and more.

[…]

Added Paste by Name action giving Spotlight-like search of clipboard history.

Previously:

Dangerous NSLog() Calls in Swift

Daniel Jalkut (tweet):

NSLog("Failed to get modification date at URL: \(url) - \(error)")

[…]

In the scenario of my crash, the interpolation of “url” and “error” results in surprise template placeholders, because of the presence of spaces in the path that the URL represents. In my tests, a file called “Open Program Ideas File” exists and is used to test some file manipulations. When the path to this file is encoded as a URL, the name of the file becomes “Open%20Program%20Ideas%20File”. Since the error’s failure message reiterates the name of the file it couldn’t find, we end up with another copy of the percent-escaped string in the parameter to NSLog. Each instance of “%20” followed by a letter is liable to be interpreted by NSLog as a printf-style format specifier. So as far as our filename’s string is concerned, we have “%20P”, “%20I”, and “%20F” threatening to cause trouble.

[…]

If this were Objective-C, we wouldn’t run into the problem because the parameters would need to be passed as variadic arguments[…] But if we try that in Swift, we run into trouble.

Sebastian Celis:

That Swift compiler error is very unhelpful, but you should still be able to use variadic arguments — you just need to do it a bit differently. I tend to pass them all in as strings. For example:

NSLog("Oops! %@ - %@", "\(url)", "\(error)")

Norbert Heger:

As a safety measure you could add this to your project to let the compiler catch the dangerous cases[…]

BJ Homer:

I prefer this format, because I can still keep all the string interpolation “in-line”:

NSLog("%@", "Oops! \(url) - \(error)")

It’s cool—and sometimes very useful—to be able to directly interpolate Swift strings using the \() syntax. However, for logging I prefer the Python-style approach that Swift’s print() function uses:

print("Oops!", url, "-", error)

I find it more readable, and you can easily add line breaks after commas to wrap long lines or to line up pairs of arguments that go together.

Of course, print() doesn’t output to the same places as NSLog(), but you can write a wrapper function. I think that’s a good idea, anyway, as it lets you switch whether logging is enabled, log to a file if necessary, include the source location, etc. At various times, NSLog()’s output hasn’t show up at all for me or it has been duplicated. Having this more under my control has been helpful in working around such hiccups.

Here’s some code that I’ve been using to make logging more ergonomic:

func log(_ i0: @autoclosure() -> Any?,
         _ i1: @autoclosure() -> Any?,
         _ i2: @autoclosure() -> Any?,
         file: String = #file,
         line: UInt = #line,
         function: String = #function) {
    log([i0(), i1(), i2()], file: file, line: line, function: function)
}

The parameters are type Any? to avoid the compiler error about implicitly converting an Optional to Any. Unfortunately, we need a separate version for each number of parameters because @autoclosure doesn’t work with variadic parameters. These all funnel into:

func log(_ items: @autoclosure() -> [Any?],
         file: String = #file,
         line: UInt = #line,
         function: String = #function) {
    log(String(mjtPrintingOptionals: items()), file: file, line: line, function: function)
}

And to convert the array to a string:

public extension String {
    init(mjtPrinting items: [Any], separator: String = " ") {
        // @SwiftIssue: No print() that takes an Array, and no way to splat, so
        // we have to print individually.
        // https://github.com/apple/swift/blob/main/stdlib/public/core/Print.swift
        var result = ""
        var prefix = ""
        for item in items {
            result.write(prefix)
            print(item, terminator: "", to: &result)
            prefix = separator
        }
        self = result
    }

    init(mjtPrintingOptionals items: [Any?], separator: String = " ") {
        self = String(mjtPrinting: items.map { $0 ?? "nil" }, separator: separator)
    }
}

This last function unwraps the optionals before printing so that we don’t have Optional(...) cluttering the log.

Monday, November 1, 2021

AppleScript Much Faster in Monterey

leo_r:

I wonder if it’s just me - or AppleScript is much faster on Monterey?

In fact it’s just blazingly fast.

For example, I have a script that polls InDesign document’s elements for certain attributes.

On Monterey, it takes 15 seconds to scan this 96-page document.

On previous systems it was much longer: 85 seconds on Big Sur. So Monterey is about 6 times faster.

I really noticed this with OmniFocus. I use this script to defer a selection of actions until tomorrow. It used to take what felt like almost 1 second per action. I could see them changing color one-by-one. Now it processes 20 actions almost instantaneously.

Shane Stanley

The issue has been blogged about a bit here (in Japanese) by @Piyomaru.

I believe the speed-up with AppleScriptObjC code is even greater.

Takaaki Naganoya (Apple translation):

At least Cocoa call speed, which was extremely slow in macOS 10.15, has been improved (even on Intel Mac), and Cocoa call speed on Apple Silicon Mac has been greatly improved. It’s 30-40 times faster than macOS 11. This is because Cocoa function calls from AppleScript were extremely slow on macOS 11+Apple Silicon Mac (not the high-performance core “FireStorm”, but the high-efficiency core “IceSt” This is because the point that was executed in “orm” has been corrected.

Even if you don’t use Cocoa’s features, it’s faster than macOS 11, so I recommend updating to macOS 12 for Scripter using M1 Mac (workplace apps Except if there is a policy not to update to maintain compatibility with theケーション).

It is also affected by structural changes in the OS. As previously reported, the framework in macOS is reorganized around macOS 11 (the one that was Umbrella Framework is independent. In particular, it is necessary to rewrite it to point to another thing with the use command.

Default macOS Wallpapers

Dave Mark:

Follow the headline link, start scrolling for a walk through all the different default macOS wallpapers, going all the way back to Mac OS X Tiger, which dropped back in 2005.

There are some really great ones here, including many that installers and migrations must have deleted from my Mac and some that I don’t remember at all.

And, if you keep scrolling, it goes back to Mac OS 8, which had its own 832-pixel-wide Yosemite desktop picture. The Yosemite that you probably think of, from 14 years later, is here.

Previously:

Spotify Now #1 Podcasts Platform

Sarah Perez:

In September, analysts at eMarketer predicted Spotify was poised to overtake Apple Podcasts in U.S. listenership sometime this year. Today, Spotify announced for the first time it may have succeeded on that front. During the company’s Q3 2021 earnings call, the company said that according to Edison Research and its own internal sources, it “recently became” the No. 1 podcast platform U.S. listeners use the most. Given the U.S. is the largest global podcast market, the milestone is significant and speaks to the sizable investment Spotify has made in podcasts over the past few years.

[…]

Reached for comment, Edison Research confirmed the podcast milestone is based on usage, not downloads.

Embracing and extending. Via Matt Birchler:

Ugh, what really gets be about this is that the Spotify podcast listening experience (in my opinion) is just plain bad. Then again, when Apple’s own app, the other major player in this space, has a 1.8 star average on the App Store right now, so it’s not like people seem to love the built in app on iPhones, which can’t be great for retention.

Previously:

macOS 12 Monterey and User Interface Inconsistencies

Corbin Dunn:

At Apple I worked on the main User Interface (UI) framework called AppKit for about 13 years. I would help enforce UI consistency in applications by logging bugs and helping the application developers fix any issues. Back then a lot of people really cared about consistency and the small details really mattered. I just installed macOS 12.0.1 Monterey and I have found that the system is moving away from being homogeneous. Application-to-application consistency is getting lost, and it is becoming more like the web where every website is different. Part of the problem is the lazy-port of iOS applications over to macOS via Catalyst.

Previously: