Archive for October 2021

Thursday, October 21, 2021 [Tweets] [Favorites]

Google Play Store Drops Fees on Subscriptions and Content

Sameer Samat (MacRumors, Hacker News):

To help support the specific needs of developers offering subscriptions, starting on January 1, 2022, we’re decreasing the service fee for all subscriptions on Google Play from 30% to 15%, starting from day one.

For developers offering subscriptions, this means that first-year subscription fees will be cut in half.

This applies to all developers, whereas the previous cut to 15% was for after the first year or for non-subscription revenue below $1 million.

Ebooks and on-demand music streaming services, where content costs account for the majority of sales, will now be eligible for a service fee as low as 10%.

Meanwhile, Apple recently implied that the App Store Small Business program is only temporary.

Previously:

Yahoo Finance App Removed From Chinese App Store

Sophia Yan:

Chinese internet users have lost one of their last avenues to foreign news after the Yahoo Finance app disappeared from Apple’s store, as the Communist Party intensifies its censorship of information from abroad.

The Yahoo app republishes news from foreign media organisations, including outlets whose websites are blocked in China, such as Bloomberg and Reuters, as well as stock market data.

This allowed users to skirt official censorship bans, a feature that likely drew the ire of Chinese authorities.

Mikey Campbell:

Days prior to its App Store expulsion, Yahoo Finance republished a Bloomberg story critical of China’s crackdown on the tech industry, the report said. The article contained reference to supposed preferential treatment afforded to Apple in exchange for compliance with government requests, including app takedown notices.

[…]

More recently, Apple last week reportedly pulled Quran Majeed at the behest of government officials. Other apps that present users with religious texts and material, including “Olive Tree Bible,” “Holy Bible King James” and “Jehovah’s Witnesses Kingdom,” were also expelled from China’s App Store.

Previously:

On The Much Improved State of Macintosh Hardware

Quentin Carnicelli:

Back in mid-2018, there wasn’t a single Macintosh computer that was free of major drawbacks or otherwise ridiculously out of date. After yet another disappointing WWDC, I took to my keyboard to air some grievances, with a lengthy complaint entitled “On The Sad State of Macintosh Hardware”. That post was written out of a deeper frustration with Apple’s failure to keep the Mac product line current.

A little over three years later, it’s time to do the opposite. With Apple’s announcement of new M1 Pro- and M1 Max-based MacBook Pros, they are more than halfway through their transition from Intel to their own Apple Silicon chips. The state of Macintosh hardware is now much closer to “Jubilant” than “Sad”.

The biggest Mac problem is still software quality.

Previously:

Yoink for iOS Uses Picture-in-Picture

Matthias Gansrigler:

After releasing Yoink v2.3, which brought the app up-to-speed on all things iOS 15, I have another great update out for Yoink for iPad and iPhone, which allows you to make the app monitor your clipboard in the background and save almost anything you copy or cut.

[…]

So in addition to sharing content to Yoink with its Share extension, manually pasting content into the app, and Siri Shortcuts, you can now have anything you copy stored automatically in Yoink.

Federico Viticci (tweet):

The result is unlike anything else I’ve seen on iOS and iPadOS, and it unlocks the kind of flexibility and peace of mind I’ve long missed from macOS. It’s almost too good to be true, and I hope I won’t cause any trouble by writing about it.

[…]

Several years ago back when Pastebot was also available on iPhone, Tapbots attempted to let it run persistently in the background by playing a silent audio track that would trick iOS into not suspending Pastebot when it was closed. The feature was promptly shut down by Apple.

Unable to devise other methods to let apps run in the background without interruptions, developers of clipboard managers then converged on the same idea: using old-school Today widgets to capture the contents of the clipboard as soon as the user opened the Today page.

[…]

Yoink’s persistent clipboard monitoring is a new spin on an old concept: it uses an audio/video trick to let the app run in the background and make iOS/iPadOS think it’s always in the foreground, capable of capturing your clipboard. Specifically, Yoink uses Apple’s Picture in Picture technology to remain active even if you close the app, monitor what you copy, and save it into the main Yoink app.

Sounds like a great idea, and one arm of Apple is currently promoting Yoink in the App Store. Hopefully, another arm doesn’t decide that this is not how the Picture-in-Picture API was intended to be used.

Previously:

The Impossible Move

Rob Griffiths:

  1. Create a screen full of apps and folders, such that there’s no remaining space.
  2. Position a folder in the rightmost lower corner of the screen.
  3. Attempt to drag an app from another screen into that folder.

[…]

The only solution I’ve found that works for all cases is this one:

  1. Move the target folder to another location on the screen.
  2. Move the target app into the target folder.
  3. Move the target folder back to its original location.

To reiterate my earlier tweet…please, Apple, provide an official solution for home screen management using a Mac.

Previously:

Tuesday, October 19, 2021 [Tweets] [Favorites]

The Best Mac External Displays

Scharon Harding:

Apple held its fall event was today, and the stars of the show were the M1 Pro and M1 Max announced for the new MacBook Pros. We even got new AirPods and word on macOS Monterey. But all was quiet on the displays front. Hope for a larger iMac with Apple Silicon to accompany the 24-inch model announced in April was not rewarded, and the Apple Pro Display XDR is still Apple’s only standalone monitor. If you were waiting for today’s event to help you select the next screen to run macOS on, we feel your pain. We can’t force Apple to release new displays, but we can round up some non-Apple PC monitors worth considering if you need something now.

The best option still seems to be the LG 5K. I wonder whether it’s improved from the earlier models that so many people seemed to have problems with.

Marc Edwards:

If you’re considering an external display for your Mac, there’s a few important decisions to make.

Previously:

Update (2021-10-21): Craig Mod:

because apple didn’t announce a new monitor on Monday, my old 22” 4K LG died today … there is no obvious replacement? I am so monitor befuddled. It’s a weird moment in the world of monitors. Goldilocks, where are you?

Apple Music Voice Plan

Apple:

The Apple Music Voice Plan offers subscribers access to the service’s catalog of 90 million songs; tens of thousands of playlists, including hundreds of brand new mood and activity playlists, personalized mixes, and genre stations; as well as the award-winning Apple Music Radio — all through Siri for just $4.99 per month.

[…]

Apple Music Voice Plan subscribers will get a customized in-app experience with suggestions based on the listener’s music preferences and a queue of recently played music through Siri. Within the app there will also be a dedicated section called “Just Ask Siri” where subscribers can learn tips to optimize Siri for Apple Music.

For access to Apple Music’s premium offerings, including Spatial Audio and Lossless Audio, Lyrics, Music Videos, and more, subscribers can easily switch to Apple Music’s individual plan for $9.99 per month or family plan with up to six accounts for $14.99 per month at any time.

Benjamin Mayo:

so if you have the Voice Plan the Music app will show you a list of things you can ask Siri to play, but no play button lol!

John Gruber:

This plan struck me as weird when it was announced during the keynote, but it makes sense for the way many people use Apple Music: by just asking Siri to play whatever, where “whatever” is a particular song, a particular artist, or a particular mood.

[…]

Amazon Music has a $4/month Echo plan that is very similar, but Amazon’s Echo plan is limited to one single Echo device or Fire TV.

Update (2021-10-21): Alex Brooks:

Coldplay

App Tracking Transparency Helps Apple’s Ads

Eric Benjamin Seufert:

Last week, Apple introduced a new ad unit to the App Store: a paid placement on its Search page. Rumors of this new unit had circulated previously, although the notion that Apple would increase the density of ad placements in the App Store was wholly predictable, as I assert in this piece and this piece. Apple is expanding its mobile advertising platform in parallel with the rollout of the App Tracking Transparency (ATT) privacy policy, which presents meaningful commercial challenges to other mobile ad platforms and will likely diminish their operational efficiency.

With ATT, Apple has robbed the mob’s bank. In bolstering its ads business while severely handicapping other advertising platforms — but especially Facebook — with the introduction of a privacy policy that effectively breaks the mechanic that those platforms use to target ads, Apple has taken money from a party that is so unsympathetic that it can’t appeal to a greater authority for redress. Apple has brazenly, in broad daylight, stormed into the Bank of Facebook, looted its most precious resource, and, camouflaged under the noble cause of giving privacy controls to the consumer, fled the scene.

John Gruber:

I guess this money is too good to pass up. But Apple pushing further into mobile advertising now — right after launching this App Tracking Transparency feature — just looks cheesy. It’s ham-fisted.

Nick Heer:

From a consumer’s perspective, there is some logic to the argument Apple is making and which is echoed by the W3C. Using only first-party data to target advertising fits with the existing business relationship a user has with a company. If I have tracking enabled, I fully expect Apple to use my App Store purchase history to show me ads for other apps. If I use one of Facebook’s apps, I will not be surprised if it uses the accounts I follow and things I search to inform the advertising it shows me. But if I launch some other third-party app, I only know that some undisclosed SDK will inform the ads Facebook and Google show me elsewhere because I am in this industry and I write this website. It’s the same thing for ad tracking across the web.

But if platform owners get to claim that the activity that occurs in their own apps and third-party apps that are required to use a specific payment mechanism, that gives them a diabolical first-party advantage.

Alex Heath:

Apple’s rule for other developers: you have to ask users if they want to be “tracked” for ad targeting

But Apple’s own ad tracking is “personalization,” which sounds much less nefarious

Marko Karppinen:

You can absolutely implement on-device ad personalization the way Apple does, and Apple will not require you to pop up the App Tracking Transparency consent dialog for that

You can implement it the way Apple does by only using your own data, but you won’t get the results that Apple does because it gets extra data by virtue of being the platform owner and exclusive app distributor.

Dan Masters:

Classic Apple dark pattern! Compare the primary action for Apple’s ad tracking prompt vs the App Tracking Transparency modal, pictured above

Ben Lovejoy:

The Financial Times reports that because Apple’s own search ads effectively let developers target users by interests, it became much more appealing once ATT rules came into force.

Apple’s advertising business has more than tripled its market share in the six months after it introduced privacy changes to iPhones that obstructed rivals, including Facebook, from targeting ads at consumers.

[…]

Branch, which measures the effectiveness of mobile marketing, said Apple’s in house business is now responsible for 58 per cent of all iPhone app downloads that result from clicking on an advert. A year ago, its share was 17 per cent.

[…]

That is set to see Apple’s ad business revenue climb from $5B this year to $20B/year within three years, estimated one research group.

[…]

Media analyst Eric Seufert has previously made the same point – that Apple’s ad business does give itself privileges unavailable to competitors. However, he said the analysis behind the FT piece may overstate the position, for several reasons[…]

Patrick McGee:

What has made Search Ads suddenly attractive is not any new feature but the fact that Apple has rendered the rest of the ad industry “blind” in the iOS universe, says @kochavaofficial, whose own data has Search Ads up 69% since June, while rivals are down 43%(!) on average.

Damien Geradin:

Last year, I attended a hearing where Apple and its lawyers swore that its privacy changes were not in any way motivated by a desire to grow its advertising activities, which would remain totally marginal.

Previously:

Update (2021-10-21): Dare Obasanjo (via Dan Grover):

Every social app will eventually become a shopping app, even Twitter. As Apple has killed the ability to track ad effectiveness outside apps via ATT, the industry reaction is to bring all commercial activity within apps.

Amazon Knockoffs and Search Placement

Aditya Kalra and Steve Stecklow (via Hacker News):

A trove of internal Amazon documents reveals how the e-commerce giant ran a systematic campaign of creating knockoff goods and manipulating search results to boost its own product lines in India - practices it has denied engaging in. And at least two top Amazon executives reviewed the strategy.

Adrianne Jeffries and Leon Yin (via Hacker News):

An investigation by The Markup found that Amazon places products from its house brands and products exclusive to the site ahead of those from competitors—even competitors with higher customer ratings and more sales, judging from the volume of reviews.

Nick Heer:

Earlier this year, Mother Jones cited several journalists who, in the words of one, claimed that Amazon is “the only company [they have] dealt with that has directly lied to me”. Several reporters used that word, “lie”, or said the company was deceitful in its responses to journalists — that it goes far beyond a typical carefully worded corporate message.

Manish Singh (via Slashdot):

Five members of the House Judiciary Committee have accused (PDF) Amazon’s top executives of either misleading or blatantly lying to it about its business practices and said they are considering an investigation following publication of two damning reports last week.

John Gruber:

There’s a good argument for Amazon on this front that store brands are as old as retail. That Sears did the same thing a century ago, and that Walmart does it now. And that of course retailers with house brands — including Amazon — look at sales data to choose what to make. But that’s not what Amazon — and Jeff Bezos in particular — have said under oath. Bezos left Jassy with a serious mess to clean up here.

Previously:

Monday, October 18, 2021 [Tweets] [Favorites]

MacBook Pro 2021

Apple (video, Hacker News, MacRumors, Stephen Hackett, Jesper, The Verge, Slashdot):

Apple today unveiled the completely reimagined MacBook Pro powered by the all-new M1 Pro and M1 Max — the first pro chips designed for the Mac. Available in 14- and 16-inch models, MacBook Pro delivers groundbreaking processing, graphics, and machine learning (ML) performance whether running on battery or plugged in, as well as amazing battery life — enabling workflows previously unimaginable on a notebook. The new MacBook Pro also features a stunning Liquid Retina XDR display, a wide range of ports for advanced connectivity, a 1080p FaceTime HD camera, and the best audio system in a notebook.

[…]

Up to 2.1x faster project builds in Xcode [compared with i9].

[…]

Unlike other pro notebooks that lose performance when they are not plugged in, MacBook Pro delivers the same level of performance whether it is plugged in or using the battery. This unprecedented combination of system performance, on-battery performance, and battery life sets MacBook Pro apart from every other notebook.

[…]

Physical function keys — including a wider escape key — replace the Touch Bar, bringing back the familiar, tactile feel of mechanical keys that pro users love.

[…]

ProMotion technology also comes to the Mac on this new display, featuring an adaptive refresh rate up to 120Hz.

[…]

Both models feature three Thunderbolt 4 ports to connect high-speed peripherals, an SDXC card slot for fast access to media, an HDMI port for conveniently connecting to displays and TVs, and an improved headphone jack that supports high-impedance headphones. MagSafe returns to MacBook Pro with MagSafe 3, featuring an updated design and supporting more power into the system than ever before. MagSafe 3 makes connecting a charge cable quick and easy while protecting MacBook Pro. Additionally, fast charge comes to the Mac for the first time, charging up to 50 percent in just 30 minutes.

This looks really great, advancing the state of the art as well as righting lots of wrongs. It’s even slightly thicker, at 0.66 vs. 0.64 inches, which is probably inconsequential in feel but speaks to a more sensible balance of design priorities.

The remaining problems carried over from the 2016 design: the huge trackpad that gets lots of accidental input, the keyboard feel, and the glossy display.

Only the M1 Max supports more than 32 GB of RAM, and then the only option is 64 GB. My iMac has 40 GB, which is perhaps the equivalent of 48 GB since none is reserved for video, and I still see a significant amount of paging. So, for a primary Mac, I’d want more than 32 GB, but 64 GB is more than I need and costs $800 extra (including extra GPU cores that I don’t need).

However, that doesn’t yet appear to be a decision that I need to make because, with no external Retina 5K display, I’m going to wait for the forthcoming large-screen iMac.

John Gruber:

People want standalone displays for their MacBooks and Mac Minis. People don’t want to spend $5,000 on a Pro Display XDR. Third-party display makers clearly are not capable or willing of serving the Mac market. So why not get back in the prosumer display game with a $1,500 iMac-quality standalone display?

Marco Arment:

For the first time in five years, the MacBook Pro looks like it was designed by and for people who love computers.

Rich Siegel:

This is the first laptop in 5 years where I don’t feel like I’ve had to settle for stuff I didn’t really want (constrained memory, touch bar) in order to get something I really did (13-inch machine, touch ID).

MKBHD:

Apple flexing so hard about how they gave back ports that they took away is just poetry.

Matt Birchler:

They basically said “using dongles sucks” and I lost it.

But you’ll still need to carry extra cables for Lightning and USB-A devices, and perhaps for Ethernet.

Paul Graham:

Apple got rid of the touch bar! Finally I can buy a new laptop.

Marco Arment:

This turned out less funny than I expected

Well, even Apple’s logo has a notch.

James Thomson:

Menus to the left of me, icons to the right, here I am stuck in the notch with you.

If your menus are short enough.

Joe Groff:

Loving the squared edges, tiny bezels, assortment of ports, and dark keyboard on the new MacBook Pro design

Previously:

Update (2021-10-19): Jason Snell:

Here’s a quirk of the new MacBook Pros. On the 14-inch models, the larger 96W USB-C power adapter is required for fast charging. You can fast charge either via MagSafe or via a standard USB-C cable attached to that adapter. However, on the 16-inch models—all of which come with a 140W adapter—you can only do ultra-fast charging via MagSafe. While there’s a new specification that allows for much higher power delivery levels over USB ports, the Thunderbolt 4/USB 3 ports on the MacBook Pro don’t support it. You can still charge via those ports, of course—just not at the ultra-fastest speed.

[…]

Apple’s argument for getting rid of the SD slot was that the future would be wireless, and we wouldn’t need to use cards to transfer data anymore. It wasn’t true back in 2016, and it’s still not true.

[…]

When the Touch Bar arrived, I thought it had a lot of potential. Unfortunately, there were two big problems: a lack of tactile feedback and software support. […] As for the lack of software support, that comes from the top: After the launch of the Touch Bar, Apple did almost zero to help the hardware fulfill its potential.

[…]

I can’t remember the last time this was true, but both models of MacBook Pro can be configured to the same heights if you want to—every single built-to-order option from the more expensive, larger model is also available in the smaller one.

Matt Birchler:

The SD card reader alone made me want to buy this computer to replace my Air immediately. This is what my computer looks like when I need to import images/video from my modern Canon camera[…]

Matt Birchler:

Most high end cameras can wirelessly connect to your computer (or phone for that matter), but they often transfer super slowly, and sometimes even convert your RAW images to JPG in the process (presumably to improve the transfer speed). Wired connections work, but often transfer speeds are still very slow due to slower USB tech in the device. Using my Canon EOS RP as an example, I can plug in via a USB-C cable, but photos and video transfer at about 1/3 the speed I get from just plugging the SD card into Apple’s SD-to-USB-C adapter.

Another issue is that many photographers shoot with multiple SD cards. If they have a big job, they’re going to have several SD cards with them, and they’ll swap between them as they fill up each card. Needing to use their camera as a several thousand dollar dongle to offload these photos/video to their computer is a pain (and has slower speeds).

Steve Troughton-Smith:

Notch avoidance

See also: Pinboard.

Apple M1 Pro and M1 Max

Apple (video, Hacker News, MacRumors):

The CPU in M1 Pro and M1 Max delivers up to 70 percent faster CPU performance than M1, so tasks like compiling projects in Xcode are faster than ever. The GPU in M1 Pro is up to 2x faster than M1, while M1 Max is up to an astonishing 4x faster than M1, allowing pro users to fly through the most demanding graphics workflows.

[…]

M1 Pro offers up to 200GB/s of memory bandwidth with support for up to 32GB of unified memory. M1 Max delivers up to 400GB/s of memory bandwidth — 2x that of M1 Pro and nearly 6x that of M1 — and support for up to 64GB of unified memory. And while the latest PC laptops top out at 16GB of graphics memory, having this huge amount of memory enables graphics-intensive workflows previously unimaginable on a notebook. The efficient architecture of M1 Pro and M1 Max means they deliver the same level of performance whether MacBook Pro is plugged in or using the battery. M1 Pro and M1 Max also feature enhanced media engines with dedicated ProRes accelerators specifically for pro video processing.

[…]

Utilizing the industry-leading 5-nanometer process technology, M1 Pro packs in 33.7 billion transistors, more than 2x the amount in M1. A new 10-core CPU, including eight high-performance cores and two high-efficiency cores[…]

Scott Perry:

The M1 Max’s DRAM is as fast as Intel’s on-die LLC circa 2016. Between this and the SSD performance (as fast as RAM was about 10 years ago), Apple is making a mockery of memory hierarchies.

Hector Martin:

As for the M1 Pro/Max, reminder that a single P-core can saturate the M1’s memory bandwidth, even significantly downclocked. And the M1 already has a lot of memory bandwidth. All that extra memory bandwidth in the new chips has to make a pretty big difference.

See also: Ken Shirriff.

Previously:

Update (2021-10-19): Andrei Frumusanu:

Today’s reveal of the new generation Apple Silicon has been something we’ve been expecting for over a year now, and I think Apple has managed to not only meet those expectations, but also vastly surpass them. Both the M1 Pro and M1 Max look like incredibly differentiated designs, much different than anything we’ve ever seen in the laptop space. If the M1 was any indication of Apple’s success in their silicon endeavors, then the two new chips should also have no issues in laying incredible foundations for Apple’s Mac products, going far beyond what we’ve seen from any competitor.

Steven Sinofsky:

Apple’s M1 Pro/Max is the second step in a major change in computing. What might be seen as an evolution from iPhone/ARM is really part of an Apple story that began in 1991 with PowerPC.

[…]

When you look at M1 Pro/Max today it is tempting to think of this in terms of performance, but performance per watt AND integrated graphics AND integrated memory AND integrated application processors is innovation in an entirely different direction.

AirPods 3

Apple (video, Hacker News, MacRumors):

By combining the power of the H1 chip with an Apple-designed acoustic system, the new AirPods use computational audio to deliver breakthrough sound with Adaptive EQ. Users can enjoy spatial audio featuring Dolby Atmos in Apple Music, movies, and tv shows, along with dynamic head tracking, across Apple devices. The new AirPods are resistant to sweat and water, and feature a force sensor for easy and intuitive control of music and phone calls. The extended battery life enables up to six hours of listening time and up to 30 hours of total listening time with the convenient charging case.

[…]

AirPods also feature AAC-ELD, a superior speech codec that offers full HD voice quality, providing clear, natural communication for FaceTime calls.

[…]

A new skin-detect sensor accurately discerns if AirPods are in the ear — versus in a pocket or on a table — and pauses playback when removed.

I like the shorter stem, water resistance, and the fact that Apple seems to have kept its most comfortable shape. I wonder if the increased battery life comes from a larger battery, meaning that the product might last for more years.

I don’t like that it has the less usable pressing controls from AirPods Pro, and the less comfortable case size and shape.

The original AirPods and AirPods 2 were $159. AirPods are $179, but you can now get AirPods 2 for $129. I still like AirPods Pro because of the noise cancellation, but otherwise I’d probably be happier with AirPods 2, even without the $50 savings.

Previously:

Update (2021-10-18): AirPods 2 does not include a wireless charging case. Originally, you could get AirPods 2 bundled with the wireless case for $199. Now, it seems to only be available as a $79 extra, making the total more than with AirPods 3. That’s kind of strange, though for me the wireless case is not very important.

SuperDuper 3.5 Beta 4 for Monterey and Apple Silicon

Dave Nanian:

Part of rolling these Betas slowly involves trying to figure out how to help users when these failures happen: basically, it’s a learning process, and when we can’t refer to the code, and the errors are (at best) a number and a word or two, well, it takes some time.

At this point, though, I’m relatively confident I understand how to work around most of asr’s failures.

[…]

Apple silicon execution require new-style licenses purchased after June of 2019, when our new license system was released. Old licenses will not work natively… and if you want to run natively on an Apple silicon Mac with registered features, you’ll need a new license.

I’ve probably gotten more years of free updates for SuperDuper than any other software I’ve purchased. I ran into the same issue with eSellerate licenses and SpamSieve, except that I used my own licensing system for newer purchases. I ended up supporting the old licenses in the native app by using an XPC service that runs in Rosetta. However, I do not necessarily recommend this approach. There’s a bug where, on certain Macs, XPC messages get blocked: the service never receives them and so the app hangs waiting for a response. I’m guessing this is a Rosetta issue, since I ran into a similar bug with AppleScript and Rosetta and because I’ve not heard of such problems with the many apps that use XPC services of the same architecture.

Previously:

Friday, October 15, 2021 [Tweets] [Favorites]

Apple Refuses App Store Changes for South Korea

Mike Wuerthele (also John Gruber):

The Korea Communications Commission (KCC) is in charge of enforcing compliance with the new App Store payment law. While Google says that it plans to comply in full with the law, including the adoption of third-party payment systems, Apple appears to be resisting it, saying that there is nothing that it needs to change.

Reuters:

The law went into effect last month but Apple had told the South Korean government that it was already complying and did not need to change its app store policy, a Korea Communications Commission (KCC) official in charge of the matter told Reuters.

“This goes against the purpose of the amended law,” the official said, requesting anonymity as the KCC was still in talks with Apple on compliance.

This reminds me of Apple “clarifying” the rules in the Cameron v. Apple Settlement, except that here there seems to be even less basis for the position that they’re already complying.

Previously:

Update (2021-10-19): Geoff Keating:

I suspect what’s going on is the law says something like “must allow a choice of payment providers” and Apple says “we have Visa and PayPal”. The law cannot say “Apple must allow all apps on its platform for free” because that’s expropriation and there are treaties against it.

The Risks of Client-Side Scanning

Ben Lovejoy:

The British government has expressed support for Apple’s now-delayed CSAM scanning plans, and says that it wants the ability to scan encrypted messages for CSAM, even where end-to-end encryption is used.

Tim Hardwick:

More than a dozen prominent cybersecurity experts hit out at Apple on Thursday for relying on “dangerous technology” in its controversial plan to detect child sexual abuse images on iPhones (via The New York Times).

The damning criticism came in a new 46-page study by researchers that looked at plans by Apple and the European Union to monitor people’s phones for illicit material, and called the efforts ineffective and dangerous strategies that would embolden government surveillance.

Hal Abelson et al. (PDF):

Some in industry and government now advocate a new technology to access targeted data: client-side scanning (CSS). Instead of weakening encryption or providing law enforcement with backdoor keys to decrypt communications, CSS would enable on-device analysis of data in the clear. If targeted information were detected, its existence and, potentially, its source, would be revealed to the agencies; otherwise, little or no information would leave the client device. Its proponents claim that CSS is a solution to the encryption versus public safety debate: it offers privacy -- in the sense of unimpeded end-to-end encryption -- and the ability to successfully investigate serious crime. In this report, we argue that CSS neither guarantees efficacious crime prevention nor prevents surveillance. Indeed, the effect is the opposite. CSS by its nature creates serious security and privacy risks for all society while the assistance it can provide for law enforcement is at best problematic. There are multiple ways in which client-side scanning can fail, can be evaded, and can be abused.

Bruce Schneier:

It’s not a cryptographic backdoor, but it’s still a backdoor — and brings with it all the insecurities of a backdoor.

[…]

We had been working on the paper well before Apple’s announcement. And while we do talk about Apple’s system, our focus is really on the idea in general.

Ross Anderson:

We did not set out to praise Apple’s proposal, but we ended up concluding that it was probably about the best that could be done. Even so, it did not come close to providing a system that a rational person might consider trustworthy.

Even if the engineering on the phone were perfect, a scanner brings within the user’s trust perimeter all those involved in targeting it – in deciding which photos go on the naughty list, or how to train any machine-learning models that riffle through your texts or watch your videos. Even if it starts out trained on images of child abuse that all agree are illegal, it’s easy for both insiders and outsiders to manipulate images to create both false negatives and false positives. The more we look at the detail, the less attractive such a system becomes. The measures required to limit the obvious abuses so constrain the design space that you end up with something that could not be very effective as a policing tool; and if the European institutions were to mandate its use – and there have already been some legislative skirmishes – they would open up their citizens to quite a range of avoidable harms.

Previously:

Apple’s Threat Analysis of Sideloading

Apple (PDF, via Hacker News, MacRumors, Slashdot):

iPhone is a highly personal device where users store some of their most sensitive and personal information. This means that maintaining security and privacy on the iOS ecosystem is of critical importance to users. However, some are demanding that Apple support the distribution of apps outside of the App Store, through direct downloads or third-party app stores, a process also referred to as “sideloading.” Supporting sideloading through direct downloads and third-party app stores would cripple the privacy and security protections that have made iPhone so secure, and expose users to serious security risks.

Siguza:

31 pages of fearmongering?

Damn, Apple must actually be scared!

Tim Sweeney:

If automated software analysis or human review were essential for security, iOS could support or even require it for competing stores. Mac notarization shows it’s feasible. Nothing about security requires an Apple monopoly on distribution.

Furthermore, competing stores could do a much better job than Apple of ensuring quality software, going above and beyond Apple’s modest standards for human review - typically a 6 to 12 minute process staffed by only several hundred employees worldwide, most of them not engineers.

Look at the amazing job that Sony, Microsoft, and Nintendo do of quality assurance on console. It’s so good that a sub-par game release is almost a once-in-a-decade news story. If Apple faced competing stores, those companies plus Valve, Epic, and others could step up.

Michael Love:

I don’t think alternate stores make any sense without sideloading; if it’s important sideloaded apps by reviewed by sb you can have a bunch of 3rd party Notarization Authorities or whatever, but the binary should be coming from my server.

Alternate app stores add competition - which is certainly good - but don’t fundamentally change the app distribution model; direct sideloading does because it lets installation happen at the point of discovery, and discovery can happen anywhere; can install an app from a tweet.

Mike Wuerthele:

Thieves have used a combination of social media, dating apps, cryptocurrency, and abuse of Apple's Enterprise Developer program to steal at least $1.4 million from unsuspecting victims.

[…]

After gaining the trust of the victim through the dating apps, scammers start discussing cryptocurrency investments. They are then directed to a website that looks like the Apple App Store, and then told to download a Mobile Device Management profile, giving control of a number of features, and the ability to use signed apps made by the fraudsters.

Previously:

Old Apple Human Interface Guidelines

Andy Matuschak:

Why are there no “standard texts” on designing software interfaces? (or tell me I’m wrong?)

If you want to learn to build software, there are excellent and complete texts on the subject. It’s not just a tech-vs-art thing: there are standard texts on type, drawing, color, etc.

Andy Matuschak:

[S]everal people mentioned the original 1987 Apple Human Interface Guidelines, which I’d not read. It’s not a comprehensive primer on interface design, but it is an extraordinary read—a huge amount of detail on why things are as they are. And a great bibliography!

Andy Matuschak:

Oh my gosh, and there’s a (pre-release) 1985 HIG that’s quite different. It includes e.g. case studies (useful!), and an extended discussion of Jung’s theories of intuition and how they should influence your designs (!!)

There’s a 1995 version here. I like Tog on Interface.

Previously:

Thursday, October 14, 2021 [Tweets] [Favorites]

PrivacyTests.org

Arthur Edelstein (via Hamed Haddadi):

PrivacyTests.org is an open-source testing program that measures browser privacy characteristics, and a website, https://privacytests.org, that renders the results for human consumption.

XPC Service’s Methods Not Necessarily Run on Main Thread

Matthias Gansrigler:

After subsequently moving them into an XPC service and thinking it would “just work”, I found that it didn’t. At least not reliably. Maybe every 8th or 9th time, yes, it did all it was asked to do, but every other time, it outright refused to execute Apple Scripts.

After two days of desperate attempts to get it working correctly, and almost giving up on the XPC privilege separation entirely for this, I figured I’d check to see if the Apple Scripts were being executed on the main thread.

Update (2021-10-15): Thomas Clement:

It is documented that NSXPCConnection calls back on the connection’s internal private queue.

Todd Ditchendorf:

I was tinkering with creating an app with an XPC service around 2013 and gave up cos it was flakey. In hindsight, I’m pretty sure this was the problem.

XcodeNueve: Running the Xcode 9 Tools

Brendan Shanks:

A hack allowing the use of Xcode 9’s toolchain on macOS Catalina, Big Sur, and Monterey.

Xcode 9.4.1 and the macOS 10.13 SDK are the last versions capable of building 32-bit Intel (i386) binaries.

Due to internal frameworks that reference private AppKit instance variables (removed in macOS Catalina), Xcode 9 and its included toolchain fail to run on any macOS version past Mojave.

For projects which need to build i386 binaries to support macOS 10.14 and earlier (like Wine), this requires keeping around a 10.14 build machine, which is undesirable for a number of reasons (no more security updates, requires older hardware, can’t also run latest Xcode, etc.)

The Xcode 9 app itself still doesn’t work, but this lets you use its compiler and other tools.

Wednesday, October 13, 2021 [Tweets] [Favorites]

Keyb 1.3

Zev Eisenberg (tweet):

Type with one hand, no special hardware required! I wrote Keyb while holding my sleeping daughter in one hand. It’s also great for permanent and temporary disabilities, or tasks where you want to keep one hand on the mouse, like gaming or spreadsheets.

How does it work? Simply hold down the spacebar, and the left and right half of your keyboard magically swap places. The two halves are mirrored, so if you would normally type a letter with your left middle finger, use your right middle finger. The same is true in the other direction. If you can already touch-type, you’ll be surprised how quickly your brain gets used to it!

It’s free on the Mac App Store.

Swift-DocC Is Now Open Source

Franklin Schrans:

Swift-DocC encompasses tools and libraries to help developers write and generate documentation on many platforms, including macOS and Linux, with the goal to support all platforms with a Swift toolchain. The docc command line tool is already integrated in Xcode 13 and is architected in a way that can be integrated with other build systems such as SwiftPM. The open source project is composed of several components, some of which may be interesting in their own right for building other developer tools. The components include:

  • Swift-DocC — the documentation compiler tool that processes source file comments, standalone Markdown files, and related assets to produce a machine-readable JSON archive.
  • Swift-DocC-Render — a JavaScript-based web application that renders compiled DocC archives.
  • Swift-Markdown — a library that makes it easy to parse Markdown syntax in Swift.
  • SymbolKit — a Swift library that parses the symbol graph files emitted by the Swift compiler. These files encapsulate information about a module’s APIs, including their documentation comments.

The tooling understands the Swift documentation comment syntax already popular within the Swift community in stand-out tools like Jazzy and SwiftDoc, and in IDEs like Xcode. It adds some novel syntax features, too. For example, the double-backtick ``SymbolName`` syntax creates links between symbols.

Previously:

Visual Studio and Teams Get More Native

Microsoft:

We’re moving Visual Studio for Mac to native macOS UI, which will fix over 100 previously reported issues related to performance, reliability, and product quality. By using native macOS UI, the IDE now works more reliably with macOS’s built in assistive technologies. In this first preview release, we’re giving you a glimpse at the IDE and focused on main features .NET developers use to build applications for the web.

My understanding is that this used a cross-platform UI layer [Update: Gtk+], not Electron.

Faisal Khan (via Hacker News):

Microsoft recently announced that they have reached a whopping 250 Million active users with Teams. Not Word or Excel but Teams is the rockstar of the Microsoft Office suite. But, it has always been plagued with performance issues as it consumes heaps of system resources. Running Teams is a nightmare on computers with less memory to work with.

[…]

The senior vice president of Microsoft Teams announced that Teams would be moving to their own Edge Webview2 Rendering Engine ditching Electron for seeking performance gains. It is marketed that Teams would consume 2x less memory as a result of the transition. It would be called Teams 2.0 and might ship with Windows 11 in late 2022.

I’m not sure this makes much difference for Mac users, since it’s still built on Web technologies with a bundled browser engine.

Previously:

Tuesday, October 12, 2021 [Tweets] [Favorites]

Download Progress With Awaited Network Tasks

Soroush Khanlou:

One would think the URLSessionTaskDelegate would have some affordance that calls you back when new bytes come in, but if that exists, I couldn’t find it.

However, iOS 15 brings a new API that can be used for this purpose — a byte-by-byte asynchronous for loop that can do something every time a new byte comes in from the network — called AsyncBytes.

[…]

One question that this API raises: why does it call your block with every byte? The (very) old NSURLConnectionDelegate would give you updates with chunks of data, so why the change?

[…]

I think this example highlights something important about this new API. The file I was trying to download was about 20MB. That means my for loop is going to spin 20 million times. Because of that, it’s extremely sensitive to any slow tasks that take place in the loop.

[…]

The last thing I did, which did work, is to keep a local variable for the progress, and then only update the progress in SwiftUI when the fastRunningProgress had advanced by a percent.

Joseph Lord:

For the record AsyncSequence blazing fast in beta 5. 🏎❤️ Quicker to XOR the bytes in the file with AsyncSequence of bytes than to Data(contentsOf:) and iterate over the unsafe bytes

David Smith:

I think one of the biggest things people are going to be startled by in my async Swift code is how often I write async functions that aren’t (usually) asynchronous. It took me a few months and some advice from a coworker to internalize how useful this is.

[…]

The most obvious case this is useful is if you have some sort of cache: check the cache, if you hit do the thing immediately, if you miss, suspend and do the thing once you’ve loaded what you needed into the cache.

David Smith:

For bytes, next() looks approximately like this…

@inline(__always) @inlinable mutating func next() async -> UInt8 {
    if bufferRange.isEmpty { await refillBuffer() /* does suspend */ }
    return buffer[bufferRange.popFirst()] /* doesn't suspend */
}

Previously:

Boox Nova Air Review

Jason Snell:

What if someone built a tablet that could run a wider selection of apps but still had the crisp, clear look of an E Ink screen?

In fact, a few companies have been trying to marry E Ink with Android for a while now. Recently I got a chance to spend a lot of time with the Boox Nova Air, a $389 Android tablet with an E Ink display, just as I was also spending time with Apple’s $499 iPad mini.

[…]

Once I was able to get everything set up, was I able to use the Boox Nova Air as a reader for my newspapers, RSS, newsletters, and other content apps, as well as for ebooks via the Kindle and Kobo apps? Yes, I was. But with the exception of the book-reading apps—which were built for a page-at-a-time reading experience that’s perfect for E Ink—what I found was that using apps intended for standard screens was always awkward.

Previously:

Redesigning iOS Alarm and Timer Notifications

Matt Birchler:

What’s always confused me is that the timer makes “I’m done with this” the primary action, while the alarm makes “I need more time” the primary action. Why is this? Even after years with this UI, I still get it wrong sometimes because I have to do some thinking on “is this an alarm or a timer?” which isn’t terribly hard, but it’s harder than normal when you’re either tired and have a phone blaring annoying sounds at you.

[…]

No matter what the reason, I think there are a few main problems with the current UI, even if there is a logical reason to have their order flipped.

  1. The order of options is flipped between timers and alarms.
  2. The colors in the UI don’t seem to indicate anything. Orange is destructive? The opposite? 🤷‍♂️
  3. The buttons are smaller than they need to be.

And there’s a huge amount of empty space, yet no icons.

Previously:

TextExpander 7

Diana Prodan (release notes):

15 years ago, the small team of developers at Smile acquired the core product we now know and love called TextExpander. In those 15 years, we’ve been through many iterations and changes to the product, and our small team has expanded to almost 40 team members.

[…]

Enhanced Snippet Suggestions make it even easier to notice and create Snippets from frequently-typed words and phrases.

[…]

The app now shows you how to resolve conflicts with your Snippet abbreviations in a clear, easier-to-use interface.

[…]

You can now view search results by group, and adjust how your search results are sorted and presented to quickly find what you need.

Pricing is unchanged.

Previously:

Monday, October 11, 2021 [Tweets] [Favorites]

Firefox Can Now Fill Out PDF Forms

Mozilla (via JP):

Last year, during lockdown, many discovered the importance of PDF forms when having to deal remotely with administrations and large organizations like banks. Firefox supported displaying PDF forms, but it didn’t support filling them: users had to print them, fill them by hand, and scan them back to digital form. We decided it was time to reinvest in the PDF viewer (PDF.js) and support filling PDF forms within Firefox to make our users’ lives easier.

While we invested more time in the PDF viewer, we also went through the backlog of work and prioritized improving the accessibility of our PDF reader for users of assistive technologies. Below we’ll describe how we implemented the form support, improved accessibility, and made sure we had no regressions along the way.

This is not a full-featured PDF annotation editor, but it does let you fill in a form and save it as a new PDF file.

Previously:

Simplifying Backwards Compatibility in Swift

Dave DeLong:

Every year as new OS and Swift versions are released, the question comes up over and over again: “how do I use this new thing while also supporting older versions?”. While we have a bunch of “availability” tools at our disposal (and I’ll be using them in this post), they always come across as somewhat cumbersome: we need to do inline checks, or we have conditional logic flow that obfuscates the intent of some of our code, and so on.

[…]

At first glance, this doesn’t look very useful; it’s a struct that holds a single value, and it doesn’t do anything. This is by design. Backport exists to serve as a holding space (namespace) for shims: the conditional code we must write in order to do proper availability checking.

[…]

Unfortunately, I have not come up with a good way to backport things like specific properties on SwiftUI’s EnvironmentValues, such as .headerProminence.

I have typically done this sort of thing by declaring prefixed category methods, but this technique lets you keep the original method name by adding a namespace.

Previously:

Update (2021-10-19): Christian Tietze:

Behold: @davedelong’s Backport, but for cross platform SwiftUI

Google Winds Down Material Design for iOS

Jeff Verkoeyen:

This year my team shifted the open source Material components libraries for iOS into maintenance mode.

Since 2012 and the original launch of Google Maps iOS, my team has supported the creation and maintenance of shared UI components across Google. This was originally born out of a need to fill gaps in UIKit’s design language.

[…]

With the introduction of SwiftUI and significant UIKit improvements in iOS 14+, it’s never been easier to build a great branded experience with a tiny amount of code.

[…]

The time we’re saving not building custom code is now invested in the long tail of UX details that really make products feel great on Apple platforms.

Via Charles Arthur:

I think the TL;DR of this thread is that Google apps on iOS will start looking like they were born on iOS in future, rather than looking like they’re from another planet.

Jason Snell:

This is good news. It’s good for Google’s developers, who no longer have to build that custom code. And more importantly, it’s good for people who use Google’s apps on iOS, because with any luck they’ll be updated faster, work better, and feel more like proper iOS apps, not invaders from some other platform.

Apple Appeals Anti-Steering Ruling in Epic Case

Jay Peters and Sean Hollister (PDF, tweet, MacRumors):

While Apple largely won that case (the company went so far as to call the ruling a “resounding victory”) with Judge Gonzalez Rogers ruling in favor of Apple in nine of the ten claims Epic brought against the company, it did lose in one important way: the judge found that Apple violated California’s anti-steering rules, and demanded that Apple let developers link to outside payment systems. That policy would have taken over in December, but it may be pushed out beyond that — and it seems that’s the point.

[…]

Apple claims that the new anti-steering rule is unnecessary because the company had already agreed to delete the offending section of its App Store Guidelines in the Cameron v. Apple settlement, but that’s news to us: at the time, Apple only agreed to “clarify” that app developers were allowed to communicate with consenting customers, not link to outside payment systems. That clarification was widely seen by developers as a red herring. At the time, Apple didn’t say anything about deleting a section of its App Store Guidelines entirely.

Previously:

Friday, October 8, 2021 [Tweets] [Favorites]

Orion 0.99

Vladimir Prelovac (Hacker News):

Orion is fast, privacy-respecting and open to the web, standards and protocols. If you want a browser that just works, is lightning fast, respects your privacy, stays out of your way and lets you get the job done, Orion makes it possible. It is a browser built for professionals, by professionals. It is also that one browser that you install for your grandma and the web would just work for her, on default settings.

[…]

Safari features are great to begin with, but they also leave a lot to be desired. Whether a built-in ad-blocker or productivity enhancements, with Orion we are able to provide the users with exactly what they need.

If you thought Safari is fast, wait until you experience Orion. Orion is simply the fastest browser on Mac. We took the same WebKit core web engine (also used by Safari) and built a snappy, lightweight browser around it.

I was skeptical, but I’ve been using the Mac version on and off for several months, and it really does feel faster than Safari. It kind of reminds me of iCab back in the day, except that being based on WebKit it’s fully compatible. Tabs can work like in Safari 14 (i.e. standard macOS tabs) or vertically like in Edge. The developer has been very responsive to feedback.

Orion is also a truly zero telemetry browser, with a built-in powerful ad and tracker blocker. Orion has the highest possible protection for your privacy on the web, by default.

And finally, extensions! Orion has native support for both Chrome and Firefox extensions.

It also works with EagleFiler’s capture hotkey. Unfortunately, there’s no way for it to integrate with Safari-specific features like Reading List, iCloud Tabs, bookmarks syncing, and security code auto-fill.

Previously:

Firefox Suggest and Contextual Suggestions

Mozilla (via Hacker News, 3, 4):

Firefox has always provided address bar suggestions, such as websites from your browsing history, bookmarks and open tabs (on by default), as well as suggestions from your default search engine. Beginning in Firefox version 92, you will also receive new, relevant suggestions from our trusted partners based on what you’re searching for. No new types of data are collected, stored, or shared to make these new recommendations.

[…]

To help you find information faster, Firefox Suggest uses a service provided by us to offer relevant suggestions for what you’re typing. When you opt-in to improve Contextual suggestions, Mozilla receives your search queries. When you see or click on a Firefox Suggest result, Mozilla collects and sends your search queries and the result you click on to our partners through a Mozilla-owned proxy service. The data we share with partners does not include personally identifying information and is only shared when you see or click on a suggestion.

However, it sounds like it does send your city location as you type (if you opt in).

Chris Hoffman:

Unfortunately, all major browsers now use a combined address and search bar. So, if you’re typing in the address of a sensitive website to go directly there, your keystrokes as you type will be sent to your default search engine and your search engine may be able to determine the website address you’re typing in manually.

Firefox Suggest is just more of that. In addition to sending your keystrokes to Google or whatever your default search engine is, Firefox will also send them to Mozilla. Both your search engine of choice and Mozilla will return suggestions.

Dave LeClair:

In a move that’s sure to make no one happy, Firefox is getting sponsored address bar suggestions.

[…]

Based on the image shared by Mozilla, the results don’t look overly intrusive, as they appear right alongside the other options, but it’s still annoying to see even more ads when browsing the web.

Thankfully, you can turn this feature off quickly enough.

Dutch Antitrust Watchdog Wants IAP Changes

Juli Clover:

Apple’s in-app purchase requirements are anti-competitive, the Netherlands Authority for Consumers and Markets (ACM) has decided, reports Reuters. The ACM has ordered Apple to make changes to the rules that force developers to use in-app payment options.

[…]

The ACM told Apple about its decision on in-app purchases last month, and it was the first antitrust regulator to decide that Apple has abused its market power in the App Store . Apple has not been fined, but the ACM wants it to make changes to in-app purchase rules.

Previously:

Halide 2.5: Macro Mode

Ben Sandofsky (The Verge, MacRumors):

To start, tap the “AF” button to switch from auto focus to manual focus. Since Macro is often best done with the focus fixed to a close subject or with some adjustment, Macro Mode lives in the manual focus controls. To then enter Macro Mode, tap the the flower icon — the universal symbol for macro.

[…]

If you’d rather adjust focus by hand, we increase the swipe-distance of our focus dial so you can make granular adjustments down to the millimeter. To nail that focus point, Focus Peaking draws an outline around the sharpest areas of your image. You can set it to automatically trigger when adjusting focus, or you can turn it on and off.

[…]

We trained a neural network to upscale images in a way that produces much sharper, smoother results than what you typically get in an editor. It’s available on all iPhone with a neural engine— anything made in 2017 or later— and it produces full 4k resolution JPEGs at either 2× or 3× magnification.

This sounds great, and I appreciate the manual focus controls, but I did not notice much difference with Neural Macro over the built-in Camera app on my iPhone 12 mini. In some cases, Halide was a little sharper. Sometimes it had slightly better color, sometimes slightly worse. Perhaps the improvement is more evident at certain distances or with certain types of macro photos.

John Voorhees:

In my testing over the past day, the results have been impressive. I’m especially fond of the precise focus dial that allows for minute adjustments that make a difference at such close range.

Previously:

Update (2021-10-15): See also: Hacker News.

The Business of VPNs

Brian X. Chen (via Roustem Karimov):

The reality is that web security has improved so much in the last few years that VPN services, which charge monthly subscription fees that cost as much as Netflix, offer superfluous protection for most people concerned about privacy, some security researchers said.

Many of the most popular VPN services are now also less trustworthy than in the past because they have been bought by larger companies with shady track records.

[…]

For several years, I subscribed to a popular VPN service called Private Internet Access. In 2019, I saw the news that the service had been acquired by Kape Technologies, a security firm in London. Kape was previously named Crossrider, a company that had been called out by researchers at Google and the University of California for developing malware.

In the last five years, Kape has also bought several other popular VPN services, including CyberGhost VPN, Zenmate and, just last month, ExpressVPN in a $936 million deal. This year, Kape additionally bought a group of VPN review sites that give top ratings to the VPN services it owns.

Nick Heer:

According to a May 2021 Restore Privacy report, Kape bought Webselenese and its vpnMentor and Wizcase review websites. Both websites aggressively push their top three picks which, funny enough, are all owned by Kape. Wizcase also publishes reviews of security software, and picks Intego as the best antivirus software for the Mac; Kape also owns Intego.

But if you were browsing either review website, you would probably miss Kape’s ownership. While a legitimate news organization would typically display conflicts of interest in immediate context, the word “Kape” appears nowhere in the on-page text, nor does it appear on the dedicated ExpressVPN review page. Wizcase’s “About” page says that the review site “believe[s] in transparency” and the footer on every page claims that it is an “independent review site”. vpnMentor says that its “reviews are not based on advertising” and its claims of honesty make it a “powerful transparency tool for the internet”.

Joseph Menn (via Hacker News):

When a senior executive at virtual private network company ExpressVPN admitted to working on behalf of a foreign intelligence service to hack American machines last week, it stunned employees at his new company, according to interviews and electronic records.

Nick Heer:

This is a more comprehensive look at ExpressVPN’s sketchy history and its ownership that leave me with the impression that the world of VPNs is mostly bullshit. The honest take is that these products help users circumvent geographic restrictions, particularly for things like streaming services. I am convinced that, if streaming companies and media rightsholders were less concerned with nit-picking contracts and more focused on providing a great experience, there would be far less demand among everyday users for VPNs.

Previously:

Thursday, October 7, 2021 [Tweets] [Favorites]

Kaleidoscope 3

Christopher Atlan (tweet):

We have listened to your feedback and enhanced the app accordingly, with new tools for inspecting version control changesets and more settings for text comparisons. We have also brought a fresh new design specifically tailored for macOS Big Sur and macOS Monterey, including support for the Apple M1 chip.

[…]

Now you can quickly search for files by name or file extension.

We’ve also added the ability to filter files that have been changed, added, or deleted in a version control changeset.

[…]

Kaleidoscope 3 is now available as a one-time purchase for $149.99, and $69.99 upgrade for existing customers.

I like the new support for binary plists.

Previously it was $69.99. I imagine that this is a tricky app to sell because, even though it’s great, parts of its functionality are available in tools that developers already have: BBEdit, Tower, Xcode, FileMerge. And in most cases I compare files using those apps because I’m already in them. But sometimes I need more power or want more convenience for a certain workflow, and then I’m really glad that I have Kaleidoscope.

Craig Hockenberry:

I look at the $150 as an insurance policy more than a purchase. I need this app to stay healthy - and we all know it was close to death. Remember: eight years without a major version update.

I learned this from @xscopeapp - same thing - people complain that the app is too expensive. And buy cheap alternatives that disappear in a few years because the other developer finally realizes it’s not worth it.

Pay well for your tools. Don’t be cheap with your time.

Previously:

Update (2021-10-08): By way of comparison, Araxis Merge Standard is $129 and Araxis Merge Professional (which adds 3-way merging, included in Kaleidoscope) is $269.

Paddle In-App Purchase for iOS

Paddle (Hacker News, MacRumors):

The Epic Games v. Apple verdict clears the way for app creators to choose an alternative to Apple’s payment system (and its 15-30% fee!). But choose the wrong provider and you’ll be burdened with managing payment and subscription logic, taxes, fraud, and buyer support.

Paddle In-App Purchase will let app creators replace Apple’s In-App Purchase without worrying about any of that.

Besides lower fees, they have a long list of features beyond what the App Store offers.

It’s not yet clear whether Apple will allow any sort of non-IAP in-app payments or try to extract a 30% IP licensing fee for external purchases.

Kif Leswing (via Michael Love):

Paddle built three different implementations of an iPhone payments product in the hope one will comply with the rules.

“We would love to hear from Apple, and get on-the-record a description of exactly what’s going to be allowed versus not,” Owens said.

[…]

RevenueCat, a company that builds tools for iOS developers to manage customer subscriptions, is also developing a browser-based payment system that developers can to apps add without having to build their own, CEO Jacob Eiting said.

[…]

“We’re operating under the assumption that developers will still be required to use Apple’s IAP inside of their apps but that you now will be allowed to reference and link to external paywalls,” Eiting said.

Previously:

Update (2021-10-20): FastSpring:

If and when the courts force Apple to allow third-party payment systems for in-app purchases, developers will be able to use FastSpring’s secure payment system to manage those purchases.

We’ll have much more to say on this topic in the coming weeks.

iOS 15 Tips and Tricks

Tim Hardwick:

Open the Tabs Group, tap group’s name at the bottom of the screen, then tap Edit in the top-left of the Tab Groups card menu. Tap the circled ellipsis next to the Tabs Group in question, then select Copy Links.

[…]

Enter jiggle mode by holding your finger on a space on the Home Screen, then tap the dots above the Dock to enter the Home Screen pages view.

[…]

Bring up the Text Size selector in Control Center, and you’ll see new options to apply the text size adjustment to the system, or just the app that’s currently open.

[…]

In iOS 15, however, it’s possible to drag an app from Spotlight and place it right onto the Home Screen, which means you no longer need to continually drag app icons between Home Screen pages to rearrange them.

[…]

The Shelf minimizes when you interact with an open window, but you can resurface it by long pressing the app’s icon and selecting Show All Windows.

[…]

Simply initiate a walking route, then raise your iPhone and scan the buildings around you when prompted. The step-by-step directions will appear in the AR mode automatically, which should make it easier to get where you need to go, especially in situations where the directions are tricky.

[…]

[W]hen on a FaceTime call or when taking a call on a third-party app like WhatsApp or Teams, launch your device’s Control Center, tap the Mic Mode button, top-right, then tap Voice Isolation to enable it.

[…]

Background Sounds are designed to help you stay focused, stay calm, and minimize distractions with the help of your iPhone or iPad. The Background Sounds on offer include balanced, bright, and dark noise, as well as natural sounds like ocean, rain, and stream.

Previously:

Wednesday, October 6, 2021 [Tweets] [Favorites]

Reproducible Code Signing on Apple Silicon

Keith Smiley:

For people who expect reproducible builds, Apple Silicon machines provide an interesting challenge.

[…]

The gist of this logic is to fetch the UUID embedded in every binary and use that to derive the identifier. The reason this isn’t reproducible across architectures is because the UUID is based on the content of each binary, which differs across architectures.

[…]

While this was a very informative deep dive into this logic, if you rely on reproducible binaries and want to support Apple Silicon machines, you need to do 2 things for binaries without Info.plist files:

  1. Don’t allow the linker to automatically sign your binaries by passing -no_adhoc_codesign
  2. Pass an explicit identifier when linking binaries with --identifier to the codesign invocation

Previously:

Mac Safari Extension: ActiveTab

Zhenyi Tan:

ActiveTab makes it easier to spot the active tab in Safari on Mac by drawing a line below it. It works by predicting the position of the active tab based on the size of your browser window and the number of tabs.

[…]

ActiveTab is available for $1.99 on the Mac App Store, with no in-app purchases, no ads, and no tracking.

This sounds great, although unfortunately, because it’s implemented using JavaScript, it needs full permissions for “Webpage Contents and Browsing History” even though all it really wants is to draw a rectangle.

See also: John Voorhees and Tim Hardwick.

Previously:

iOS Safari Extension: StopTheScript

Jeff Johnson:

StopTheScript is my new Safari extension for iOS 15 and iPadOS 15 that stops all JavaScript on your selected websites!

[…]

If you install StopTheScript, you may find it strange that the extension has no settings. This is a technical limitation. Why? When a Safari extension is loaded into a web page, the extension’s settings are not available immediately; any settings must be fetched from storage, an async operation. The problem is that the <head> of an HTML document may contain <script> elements. If StopTheScript had to wait for settings to be fetched from storage, then it might be too late to stop the JavaScript from running already! Thus, StopTheScript has to do its “magic” at the very beginning of the document load, even before elements of the <head> are loaded. This is why StopTheScript relies on Safari’s own extension permission system. Safari users can grant an extension access to specific websites, and only those websites.

[…]

Will StopTheScript be coming to Safari on the Mac too? I hope so, in the future, but right now it can’t, unfortunately. […] The problem is that "run_at":"document_start" doesn’t work right in Safari on macOS, a bug that I blogged about over a year ago.

Previously:

Update (2021-10-20): Kyle Nazario:

If you want to selectively block JavaScript in Safari, try JavaSnipt.

It works on both iOS and Mac.

“date -d” vs. “date -s”

Rachel Kroll:

$ date -d @1700000000
Tue Nov 14 14:13:20 PST 2023

The problem is, there’s another command very much like it that will even spit out the same output, only it has a nice little side-effect: it also sets the clock. That command is date -s.

If you’re on a QWERTY layout or are generally familiar with it, you might notice that [S] and [D] are right next to each other and are an easy typo to make with your left hand. That’s one way to screw up.

Another problem is that you might not have known that -s has that effect[…]

There doesn’t seem to be a -s in the Mac version of date.

Previously:

Update (2021-10-08): Matt Garber:

That’s one of several differences between the GNU coreutils date on Linux, and the BSD version included in at least FreeBSD and macOS. Also, the BSD version’s -d flag is completely different: “Set the kernel’s value for daylight saving time”.

Simon Stiefel:

On macOS, no option is needed to change the flag which is arguably worse, e.g. date 1234 sets the time.

Chris Dzombak:

also, crontab -e vs. crontab -r

Tuesday, October 5, 2021 [Tweets] [Favorites]

Celebrating Steve Jobs

Jason Fried:

On the 10th anniversary of Steve Jobs’ passing, Jony Ive reflected on the man he worked with for nearly 30 years. It was a lovely remembrance, primarily orbiting the sanctity of the creative process and the burbling of ideas. It reminded me about something else Jony said about Steve in shortly after his death:

“And just as Steve loved ideas, and loved making stuff, he treated the process of creativity with a rare and a wonderful reverence. You see, I think he better than anyone understood that while ideas ultimately can be so powerful, they begin as fragile, barely formed thoughts, so easily missed, so easily compromised, so easily just squished.” —Jonathan Ive

John Gruber quotes Ive’s remembrance.

Dave Mark (tweet, MacRumors):

Start off by going to Apple’s front page, check out the short film, “Celebrating Steve” and scroll down for the “Statement from the Jobs family”.

That pic of Steve slouched in an office chair, about 4 seconds in, struck me as familiar. Was that Susan Kare’s chair?

Jason Snell:

The fact that so much of Apple’s growth has happened since Jobs’s departure hasn’t reduced him at all. It would be relatively easy to argue that the success of Tim Cook’s Apple suggests that, despite everyone’s concern in the late days of 2011, the company actually could go on without Jobs at the helm. But that’s not what anyone thinks. Instead, Jobs is credited for putting Apple on the path that led to it becoming what it is today.

Previously:

Update (2021-10-20): Joe Rossignol:

To commemorate the 10th anniversary of Steve Jobs passing away on Tuesday, Apple shared a short film called “Celebrating Steve” on its website, and Apple has now made the video available on YouTube for those who may have missed it.

Tim Cook:

Steve believed that “people with passion can change the world for the better.” That’s the philosophy that inspired him to create Apple. And it lives in us today.

Scott Forstall:

Ten years ago today I lost a mentor, colleague, collaborator, design partner, and—most importantly—friend, when Steve Jobs left us too soon. He had an incalculable effect on everyone he impacted, which as far as I can tell, is everyone on the planet.

Michael Dell:

The royalty he was talking about would amount to hundreds of millions of dollars, and the math just didn’t work, because most of our customers, especially larger business customers, didn’t really want the Mac operating system[…] Steve’s proposal would have been interesting if it was just us saying, “OK, we’ll pay you every time we use the Mac OS” -- but to pay him for every time we didn’t use it … well, nice try, Steve!”

James Dempsey:

To honor the memory of Steve Jobs on the tenth anniversary of his passing, I was joined by thirty-two members of the Apple tech community to record a song that has special meaning to us—and hope it will for you too.

See also:

iPadOS 15 Multitasking

Kirk McElhearn:

Apple first introduced multitasking features back in iOS 9, and expanded on them with iPadOS 13, but they were hard to use, and most iPad users only encountered them when an accidental swipe on their tablet’s screen enabled them. Now, in iPadOS 15, these features are a lot more usable, and easy to discover.

In this article, I’ll explain how to use multitasking on the iPad to view two apps at a time, and more.

Federico Viticci:

The new multitasking menu is both a reflection of how iPadOS has evolved over the years and an indictment of iOS 11’s solution, which required hidden drag and drop gestures and was undiscoverable by people who don’t read reviews like this one. iPadOS 15’s multitasking represents the beauty of a button: you see it because it’s always there, you click it, and it does what you expect.

Of course, it wouldn’t be a modern Apple multitasking control if it also didn’t serve double duties via hidden gestures and other implementation details. For starters, the multitasking button also acts as an active app indicator while in Split View or Slide Over to show you which of the app displayed onscreen is the active one receiving keyboard input. As you can see in the screenshot below, the active app on the left gets an enclosed button with darker dots compared to the inactive one on the right[…]

Previously:

Streaming Cropped Video

Daniel Kreps (via Hacker News):

Seinfeld finally arrived on Netflix Friday, and while all 180 episodes are now available on the streaming service, some jokes didn’t make the cut, literally.

As noted on social media, some of the visual gags from the series have been cropped out due to the series’ now-16:9 aspect ratio that updates the picture for HD televisions, as opposed to its original and boxier 4:3 ratio from when the series first broadcast on TV.

foob:

There’s a great blog post by David Simon on the conversion of The Wire from 4:3 to 16:9. It goes into a lot of depth about some of the trade-offs and considerations as well as the lack of communication from HBO. Unfortunately, the video examples don’t seem to work anymore. I can’t help but wonder if HBO sent YouTube a DMCA takedown for David Simon’s clips from the post (or they got taken down automatically). It’s pretty sad if the creator of a show can’t even post short clips from it to illustrate some of the design decisions behind them.

iso1210:

This was the case with Simpsons when it came onto Disney Plus - they took the 4:3 and didn’t just blow it to 14:9, but 16:9 -- throwing away a quarter of the original image.

There’s now an option to show the original aspect ratio, I didn’t discover it for a long time though.

Amazon prime on my phone blows up 16:9 material too, chopping off the top and bottom to fit the wider aspect ratio, unless you’re careful to ‘zoom out’

Facebook BGP Outage

Celso Martinho and Tom Strickx (Hacker News):

Social media quickly burst into flames, reporting what our engineers rapidly confirmed too. Facebook and its affiliated services WhatsApp and Instagram were, in fact, all down. Their DNS names stopped resolving, and their infrastructure IPs were unreachable. It was as if someone had “pulled the cables” from their data centers all at once and disconnected them from the Internet.

This wasn’t a DNS issue itself, but failing DNS was the first symptom we’d seen of a larger Facebook outage.

[…]

BGP stands for Border Gateway Protocol. It’s a mechanism to exchange routing information between autonomous systems (AS) on the Internet. The big routers that make the Internet work have huge, constantly updated lists of the possible routes that can be used to deliver every network packet to their final destinations. Without BGP, the Internet routers wouldn’t know what to do, and the Internet wouldn’t work.

The Internet is literally a network of networks, and it’s bound together by BGP. BGP allows one network (say Facebook) to advertise its presence to other networks that form the Internet. As we write Facebook is not advertising its presence, ISPs and other networks can’t find Facebook’s network and so it is unavailable.

Santosh Janardhan:

To all the people and businesses around the world who depend on us, we are sorry for the inconvenience caused by today’s outage across our platforms. We’ve been working as hard as we can to restore access, and our systems are now back up and running. The underlying cause of this outage also impacted many of the internal tools and systems we use in our day-to-day operations, complicating our attempts to quickly diagnose and resolve the problem.

See also: Brian Krebs (Hacker News), Bruce Schneier, Hacker News.

Update (2021-10-20): Santosh Janardhan:

Our engineering teams have learned that configuration changes on the backbone routers that coordinate network traffic between our data centers caused issues that interrupted this communication. This disruption to network traffic had a cascading effect on the way our data centers communicate, bringing our services to a halt.

Via Nick Heer:

For comparison, as I write this, Apple’s System Status page shows a resolved outage in Apple Pay and Wallet. For over seven hours yesterday, “users were not able to add, suspend, or remove existing cards to Apple Pay”, and this issue has simply been marked as “Resolved” but there are no more details. This explanation-free status update has been the standard for every iCloud-related outage, including serious incidents. It does not build confidence.

Reuters (via Hacker News):

Messaging app Telegram gained over 70 million new users during Monday’s Facebook outage, its founder Pavel Durov said on Tuesday, as people worldwide were left without key messaging services for nearly six hours.

Mark Zuckerberg (via Hacker News):

First, the SEV that took down all our services yesterday was the worst outage we’ve had in years. We’ve spent the past 24 hours debriefing how we can strengthen our systems against this kind of failure. This was also a reminder of how much our work matters to people. The deeper concern with an outage like this isn’t how many people switch to competitive services or how much money we lose, but what it means for the people who rely on our services to communicate with loved ones, run their businesses, or support their communities.

Monday, October 4, 2021 [Tweets] [Favorites]

Safari Bookmarks [Not Actually] End-To-End Encrypted

Sami Fathi:

Spotted on Reddit, an update to Apple’s “iCloud security overview” page has indicated that alongside Safari tabs and history, Safari bookmarks are now end-to-end encrypted, meaning no one, not even Apple, can access users’ saved Safari bookmarks.

It’s not clear to me when the history became end-to-end encrypted. I’ve heard that this was mentioned at WWDC 2019 for iOS 13 and macOS Catalina. Apple’s iCloud Security Overview also now says iOS 13, but it wasn’t updated to say that until March 2020, long after iOS 13 shipped.

Previously:

Update (2021-10-15): Reddit:

They updated the site again to say that bookmarks are not E2EE.

And it doesn’t say anything about Safari Reader. This privacy documentation is a disaster.

App Store’s “Report a Problem” Is Back

Hartley Charlton:

After being removed several years ago, Apple has restored the “Report a Problem” option on the App Store in an effort to flag issues and combat scams.

Spotted by Richard Mazkewich and Kosta Eleftheriou and highlighted by The Verge, the option allows users to report individual App Store listings in iOS 15. When selected, the option directs users to a website with a drop-down menu to report App Store violations, including a specific option to “Report a scam or fraud.”

However, it’s currently only available in certain countries.

Previously:

Update (2021-10-08): Apple:

Now App Store product pages on iOS 15, iPadOS 15, and macOS Monterey display a “Report a Problem“ link, so users can more easily report concerns with content they’ve purchased or downloaded. This feature is currently available for users in Australia, Canada, New Zealand, and the United States, and will expand to other regions over time. In addition, users worldwide can now choose from “Report a scam or fraud” and “Report offensive, abusive, or illegal content” options at reportaproblem.apple.com, and report issues with their apps, including free apps that do not offer in-app purchases.

Stuck When Upgrading Directly From macOS Mojave to Big Sur

Mr. Macintosh:

The macOS Mojave to Big Sur upgrade is causing problems for some users.

The progress bar is getting stuck, leaving the system in an unbootable state. The user is locked out of their data.

This is especially relevant since Mojave didn’t get the latest round of security bug fixes. He recommends updating to Catalina first, and then to Big Sur.

Scott:

This sounds like the issue @lapcatsoftware experienced in August. Crazy to imagine it is still a known issue since that is the suggested upgrade path for the now unsupported Mojave.

Mr. Macintosh:

The issue is confirmed on Big Sur versions all the way back to 11.4. (Maybe even earlier)

The account is still on the system, but no longer has admin privileges.

Previously:

Update (2021-10-21): Mr. Macintosh:

If folders in multiple directories in the location below

/private/var/folders/*/*/C/com.apple.metadata.mdworker

have more than 20,000 files your upgrade could fail.

In some situations users have reported 500,000 – 2,000,000 files!!!

After updating to Catalina, I started having problems with hundreds of thousands of files collecting in those folders. There were so many in the same folder (at the level, not organized into a hierarchy like with Apple Mail’s message files) that it would take minutes just to view the folder in Finder, and SuperDuper backups would get stuck just reading the list of files to see if they were excluded.

Siri’s 10-Year Anniversary

Benjamin Mayo:

Affected Siri domains include ride booking, configuration of vehicles via Siri over CarPlay, and third-party Photo Search. Many of these SiriKit intents were introduced when third-party Siri support was first added to the system back in iOS 10. Apple didn’t provide a reason for their abrupt removal.

Via Nick Heer:

As Clover reports, these omissions were first documented by users on the AppleVis forums who support disabled people who use iPhones. This may be a bug — the behaviour is also present in iOS 14.8 — but it amounts to a regression until it is fixed.

James Vincent:

Described by Schiller as a “humble personal assistant,” Siri gave 2011’s iPhone a dose of star power during a difficult time for Apple. Just months before the phone’s unveiling, a relative unknown at the company, then-chief operating officer Tim Cook, had been named CEO. The day after Schiller’s presentation, Apple’s legendary co-founder Steve Jobs would die from pancreatic cancer. Analysts were cool on the company’s prospects but praised Siri as a potential game-changer. One called it “a powerful harbinger of the future use of mobile devices,” while another said it was “the beginning of a new user experience [for] all of Apple’s mobile and Mac products.”

A decade later, the sheen has worn off Siri’s star. “It is such a letdown,” was how Schiller described the promise of voice interfaces past, and such a description could easily be applied to Apple’s contribution to the genre. Everyone who uses Siri has their own tales of frustration — times when they’ve been surprised not by the intelligence but the stupidity of Apple’s assistant, when it fails to carry out a simple command or mishears a clear instruction. And while voice interfaces have indeed become widespread, Apple, despite being first to market, no longer leads.

[…]

When I ask Siri for information I know is stored in iOS, like “show me photos from last August,” it just performs an image search for the phrase “last August.”

Dag Kittlaus:

We had a shared long-term vision with Steve which faded after he passed and my successor had no vision or accountability and is happily long gone from Apple. Steve and Scott F and the Siri founders had a plan that sadly died on the vine. But I’m confident Apple will lift Siri up.

Previously:

Update (2021-10-05): Nick Heer:

Every Siri command — beyond adding Reminders and setting timers — feels like a tightrope walk I should attempt rarely.

[…]

A few years ago, I tried a bunch of the commands shown in the original Siri demo video from before Apple acquired the company. It did poorly. I ran through the same commands just now, and saw broadly similar results as I did then[…]

This morning I ran into a temporary glitch where Siri refused to let me make reminders, correctly transcribing what I’d said but complaining that there was no app available for that.

Update (2021-10-08): Federico Viticci:

A good summary of the Siri ecosystem for third-party apps:

The developers of @dueapp advise against using Siri because it doesn’t understand the app’s name “Due”.

So I tried to make my own shortcut for it, and Siri won’t run it.

Friday, October 1, 2021 [Tweets] [Favorites]

Swift Declarative String Processing Pitch

Michael Ilseman (tweet):

String processing is hard and the current affordances provided by the Swift Standard Library are underpowered. We propose adding two new declarative string processing APIs—a familiar Regex literal and a more powerful Pattern result builder—to help make Swift string processing fast and easy.

[…]

We propose adding a new regular expression literal, with strongly typed captures, to Swift.

[…]

Sophisticated features like inline capture group processing feel right at home with the result builder syntax because it’s all just regular Swift code—it isn’t nearly as natural to try to force this kind of functionality into the regex literal.

[…]

We intended to extend and add generic consumer and searcher algorithms to the standard library for operating over collections using patterns or regexes.

[…]

The Swift operator ~= allows libraries to extend syntactic pattern matching by returning whether matching succeeded or not. An enhancement to this would allow libraries to produce a result as part of a destructuring pattern match, allowing patterns and regexes to be used inside case syntax and directly bind their captures to variables.

Michael Ilseman:

I’ve been finding it helpful to think of our long-term goal as making Swift awesome at string processing, data processing, and “event processing” (working title, suggestions welcome). These are not rigid or clear-cut distinct domains (they actually blend together in extremity) so much as they are 3 interesting “regions” in this design space. Thinking about these regions helps clarify what tasks we’re enabling and helps push us towards more general solutions.

Each of these regions share technical fundamentals, but present novel performance and API design challenges. I hope that keeping the big picture in mind will help guide the design process towards pragmatic trade-offs and robust solutions.

[…]

We want to be able to compose, layer, and even interweave different kinds of processing together. And, we want these areas to be library-extensible, so that libraries can provide custom behavior through custom protocol conformances.

Previously:

Update (2021-10-15): Hamish Knight:

We propose to introduce a first-class regular expression literal into the language that can take advantage of library support to offer extensible, powerful, and familiar textual pattern matching.

PSPDFKit Takes Venture Capital

PSPDFKit:

PSPDFKit, the leading document processing and manipulation platform for developers and enterprise businesses, today announced its first strategic growth investment led by Insight Partners, a New York-based global venture capital and private equity firm focused on growth-stage software and technology companies. Insight’s investment, which totals more than €100 million, is expected to accelerate product growth and fund strategic acquisitions, further expanding the capabilities of PSPDFKit’s highly adopted document processing platform.

Nearly a billion end-users in over 150 different countries rely on PSPDFKit every day while using web and mobile applications that are built on the company’s platform, including industry leaders like Dropbox, DocuSign, SAP, IBM, Volkswagen, Fabasoft, Wolters Kluwer Deutschland, and the European Patent Office.

Ingrid Lunden:

PSPDFkit is already profitable, and it has been for a while, so this investment is about stepping up its pace of growth. It plans to use the investment to build more developer tools, make strategic acquisitions (co-founder and CEO Jonathan Rhyne is mum about what, except to say that it will be to expand the suite of useful tools that it provides); and, for the first time, make some concerted efforts in the areas of sales and marketing.

Via Peter Steinberger:

After 10 years of building PSPDFKit, I am moving into an advisory role.

Previously:

iCloudCoreDataStarter and Temporary IDs Bug

Chad Etzel (tweet):

In the course of building Sticker Doodle (which you should go download right now), I ran into many brick walls and learned way too much about Core Data, iCloud sync, Collection and Table Views, and Diffable Data Sources.

There is documentation for each of those individually, but I could find no clear and simple example project that ties them all together in a neat little bow.

Well, that changes today.

[…]

Before .save() is called on the managed object context, this temporary ID can be used to fetch the object, refer to it, etc… it acts like a normal NSManagedObjectID -- HOWEVER, after .save() is called on the managed object context, 2 things are supposed to happen:

  1. NSManagedObjects with temporary IDs are supposed to be assigned a permanent ID and those objects updated in memory with the new ID.

  2. The managed object context forgets all temporary IDs and attempting to use them to identify an object will fail.

There seems to be a bug (in iOS 14 and iOS 15 as of my latest testing) where sometimes Step 1 will not actually happen and newly inserted and saved objects will still have a temporary ID!! This has led to all sorts of unexpected and frustrating behavior until I figured out what was actually going on. There are several developer forum posts and Stack Overflow questions regarding the same behavior, so I am not the only one that has experienced this bug.

Previously:

iOS 15 Messages Bug Deletes Saved Photos

Juli Clover:

If you save a photo from a Messages thread and then go on to delete that thread, the next time an iCloud Backup is performed, the photo will disappear.

Even though the image is saved to your personal iCloud Photo Library, it appears to still be linked to the Messages app in iOS 15, and saving it does not persist through the deletion of the thread and an iCloud backup.

Aside from the data loss, this bug is concerning because I thought that the Messages, iCloud Photo Library, and iCloud Backup systems would be isolated from one another. iMessage threads are supposed to be end-to-end encrypted in iCloud, and they aren’t backed up if you have syncing enabled. Photos and iCloud Backup are not end-to-end encrypted. And photos in iCloud Photo Library don’t go into the iCloud Backup, anyway.

Secondly, is there something a third-party app could do using the PhotoKit API that would also trigger the bug? Or is it related to private APIs that Messages is using?

iOS 15 Shortcuts and SwiftUI

Federico Viticci:

Unfortunately, the Shortcuts experience in iOS and iPadOS 15 is hindered by a variety of severe UI and performance bugs that have made this update the least stable and reliable one in recent memory. I believe Apple is aware of these bugs and is actively working on fixing them, but that doesn’t change the core problem: the Shortcuts app shipping with iOS and iPadOS 15.0 is buggy, crashes often, and gets in the way of power users with SwiftUI-related issues that prevent interactions with the editor.

I don’t want this section to read like a feedback report, so I’ll keep it short, but I also think it’s important to point out that the Shortcuts team should have done a better job with app performance and stability this year. For instance, due to a widely reported SwiftUI bug, it’s often impossible to click UI elements in the editor unless you close and reopen it. This bug is so bad, it has made it extremely challenging for me to work on long shortcuts this summer since I’d have to close and reopen the editor (thus losing my position in it) every 30 seconds. I’m astounded this bug shipped to customers.

Alas, there’s a lot more. Sometimes, drag and drop for actions just refuses to work or drops an action in an entirely different spot in the editor. The ‘Run Shortcut’ action – a fantastic tool for power users that lets you use shortcuts as functions – is somewhat broken at the moment and doesn’t always recognize input. The magic variable output of Choose from Menu blocks no longer works. Sometimes, the share sheet sees no input passed from other apps. When I run shortcuts that contain Files actions with the editor open on my iPad, the app crashes.

Nick Heer:

As my professional and personal technology experiences increasingly revolve around the software-as-a-service model, I have recently been thinking a lot about the lack of stability as a priority. We are on the receiving end of a firehose of changes, redesigns, new features, and reimplementations of existing products. Yet the threshold for problems that will prevent a product from being shipped seems to be getting stricter.

What Viticci describes is an application that Apple shipped — in a production release of its most popular operating system — in an entirely unusable state. It is not a solitary case, nor is Apple the only software vendor to rush something out the door. But stuff like these Shortcuts problems — some of which are UIKit problems — and Siri regressions are profoundly disruptive to frequent users.

Steve Troughton-Smith:

A painful reckoning for Shortcuts & SwiftUI. I don’t think Shortcuts can afford to rewrite its UI every year anymore, it’s too critical a tool for its users and the consequences of it going wrong (like it has, this year) are devastating. SwiftUI was a misguided leap of faith

The newly-rewritten multiplatform Shortcuts app was always going to go one of two ways: a poster child for SwiftUI, or a cautionary tale. I’m really curious what, if anything, broader-Apple will learn from the experience — how it’s developing SwiftUI, and how it’s positioning it

Thomas Clement:

SwiftUI still has a long way to go, especially on macOS.

Certain basic things are still broken or simply impossible to do. The bridging with AppKit can be impossible to work with so there’s just no good solution sometimes.

Steve Troughton-Smith:

We’re in ‘year 3’ of SwiftUI, and my base advice remains unchanged — it is great for auxiliary non-critical UI layouts (inspector sidebars, settings windows, and panels), watchOS apps, and rapid prototyping. Beyond that, it just does not meet the bar for complex, reliable apps

[…]

There’s a clear analogy, and lesson to be learned, between ‘SwiftUI is the future’, and ‘iPad is the future of computing’

Previously:

Update (2021-10-04): Federico Viticci:

Imagine if you couldn’t trust that the Notes app for iPhone and iPad actually saves your text. Or that you fear Mail may send truncated emails to people.

That’s how bad Shortcuts is right now / has been since June. It’s painful to watch and I have no idea what’s going on there.

Previously:

Update (2021-10-19): Steve Troughton-Smith:

In 2015, you could build pretty much everything you needed to build in an iOS app with Swift. It was very much a peer to ObjC, even if very unfinished, and there was a clear path from one to the other. It could back deploy to iOS 7, and even iOS 6 (unofficially)

SwiftUI is not that. It is not a full-featured replacement for existing UI frameworks, has no back-deployment strategy, and has all manner of issues that can make your app buggier & less consistent if not properly handled as Apple’s own apps have demonstrated to disastrous effect

It is not clear at all that someday SwiftUI will power everything you see on iOS, without some bigger, better, more powerful UI framework underneath. That’s certainly the dream for a lot of folks, but I honestly don’t know if iOS is the platform that will ever get to that point

Federico Viticci:

I’m afraid we’re in for a long season of Shortcuts bugs due to their SwiftUI rewrite in iOS 15. If these can get fixed before 16.

iOS 15.1 beta 3, still can’t reliably drag and drop an action.

Drag and drop…for an app based on dragging and dropping things around.