Archive for January 2022

Monday, January 31, 2022

Sony Acquires Bungie

Michael McWhertor (via John Gruber):

Sony is buying Bungie, the developer of Destiny 2 and the studio that originally created Halo, in a deal worth $3.6 billion, Sony Interactive Entertainment announced Monday.

Bungie will remain a multiplatform studio — Destiny 2 is available on PlayStation, PC, and Xbox platforms — with the option to self-publish its games. The studio “will remain independent and multi-platform, will enjoy creative freedom, and their track record in developing massively successful franchises in the sci-fi shooter genre will be highly complementary to SIE’s own IP portfolio,” SIE president Jim Ryan explained in a statement.

Jason Schreier:

[Another] seismic gaming deal that comes just two weeks after Microsoft purchased Activision Blizzard.

Bungie put Xbox on the map. Now it’s part of PlayStation Studios.

Steve Troughton-Smith:

Won’t be long before all games are owned by companies that Apple has burned bridges with, rejected from the App Store, or is embroiled in lawsuits with 😛 […] At some point, Apple’s going to have to buy a big games studio just to not be locked out of the future completely.

Retrohistories:

A look at the first ten years of Bungie Software, charting their path from tiny Mac indie to Microsoft golden goose, and the sacrifices they made to achieve their immense success.

Previously:

Update (2022-02-04): See also: Ben Thompson, Hacker News.

Update (2022-02-16): See also: Accidental Tech Podcast.

CMA Report on Apple Cloud Gaming Restrictions

Stijn Huijts, on the UK Competition and Markets Authority’s interim report:

When it comes to gaming on mobile devices, the great advantage of cloud gaming is that it can far exceed the technological capabilities of even the newest model smartphone, because the storage and processing occurs mostly in the Cloud. As a result, cloud gaming removes the restrictions of a phone’s storage and processing capabilities and therefore expands the range of games available on mobile devices. It therefore becomes less important for consumers who enjoy mobile gaming to have a top-end mobile device to be able to play the best games on a mobile device.

[…]

However, the forced reliance on web apps rather than being able to offer native apps on iOS is having a detrimental impact on cloud gaming. In particular, the CMA highlights that web apps are not listed or discoverable on the App Store. Users can only find them by navigating to the web app via a browser, they are not automatically added to the user’s home screen, and cannot send push notifications to re-engage users.

[…]

The CMA also had indications that a range of features and functionalities of cloud gaming services were hindered by using a web app over a native app. A key reason for this is another restriction by Apple: that all browsers on iOS must use Apple’s WebKit. WebKit lags behind other browser engines in functionality, in particular when it comes to support for web apps.

[…]

To determine the potential harm to competition from Apple’s decision to restrict cloud gaming, the CMA assessed what Apple’s incentives might be for these restrictions, looking at Apple’s own hardware, Apple’s control over how apps are discovered and accessed on iOS devices, and Apple Arcade, Apple’s own subscription service giving access to a catalogue of games.

Previously:

Getting Feedback to Apple

Becky Hansmeyer:

Reflecting on the whole iCloud kerfuffle, I think one major issue is that none of us know how to escalate a critical problem to the right person. Support folks usually lack an understanding of the context, the dev forums aren’t monitored, and radars are likely backlogged.

There’s a reason so many developers on Twitter include feedback/radar numbers in their tweets: they are more likely to reach the correct person/team here on Twitter. So, we find that problems tend to start on Stack Overflow/dev forums, then bubble up through Twitter —> media.

What’s the solution to this? Apple has already created successful Q&A environments where participants are heard, understood, and given feedback: the Swift evolution forums, and the WWDC Digital Lounges.

I realize it’s hard to scale that to a system that is: open year-round, and includes narrow access to someone from every single framework team. But something or someone has to act as a better switchboard: a “sure, let me transfer you to the SwiftUI department.”

As of right now, it is an absolute fact that Twitter is a developer’s best avenue for getting a bug fixed: IF they can get their tweet in front of an Apple engineer, either by having a large following or being retweeted by someone with a large following.

Alex Rosenberg:

Iff you had actual Radar access and iff you knew the component that they use to actually track operational issues with iCloud, then it would be 💯% effective. However, the culture is broken by secrecy and nobody outside that org would know or be able to see the correct component.

Matthew Cassinelli:

Yes. I know every specific bug for Shortcuts but to communicate them to my old team feels like harassing them and not actually being a friend.

It’d also take me 8 hours straight of filing radars for free for things that have been clearly broken for years

Jeff:

What does seem to work in situations like these IS to run to the press. I’ve seen issues from before I started seeing it reported on various sites. And when it cropped up on one tech site, all of a sudden it’s everywhere. Boom. Problem fixed in like a week?

Johann:

I’ve currently used a Code Level Incident to get some extra eyes on FileProvider-integration, because the documentation is from 2017 (WWDC video + slides and not complete) and it’s buggy on a few sides.

My experience is that you can pay DTS to confirm that a bug is in Apple’s code rather than yours. Sometimes they will have a workaround to offer you. You can give them a bug number to associate with your case, but I can’t say that this seems to escalate the bug and lead to it being fixed any faster.

Dave B:

Tim Cook isn’t a product guy like Steve was. He doesn’t have hands-on knowledge or insight into the products. He’s an incredible businessman but not a product guy.

That’s why when there’s a problem with a product, people have to let him know so that he passes it down the chain to fix it.

[…]

The best way to call attention to these kinds of issues is to bring them to popular figures in the Apple community.

Previously:

Update (2022-02-16): Rich Siegel:

There was a time when “write to DTS with the bug number” was a recommended course of action, and they’d either provide a workaround or explain in detail why it wasn’t possible. I think those days are gone, though.

On Photo Sharing

Mike Rockwell:

I’ve since deleted the Instagram app from my iPhone and have only jumped back into my timeline once or twice through a web browser. Each time I came out of it feeling worse than when I went in. I don’t want to do that anymore.

But it got me thinking about photo sharing in general. And more specifically about how we’ve created this efficient system for sharing to a mass audience. The personal aspect of photos is lost in the sharing process. When I would post a photo, I wouldn’t receive any comments, it never sparked any conversations. I would just get a handful of likes and that was that. What’s the point? It’s become a game of vanity where the number of likes you receive is the only feedback mechanism. It stinks.

As an experiment, I started sharing photos with individual people, privately, over iMessage. I wouldn’t send them a whole collection of photos, just one at a time here and there. And what I found is that when you send an individual person a photo privately, you actually spark a conversation.

Requesting Maps Privacy

Killian Bell:

It’s not uncommon to see certain things blurred out inside Apple Maps and Google Maps. Both services regularly conceal things like faces and license plates. However, it is rare to see entire buildings hidden behind big, blurry walls.

But that’s all you get when you visit Cook’s house in Palo Alto, California, today.

[…]

If you would prefer for your home to be censored inside Apple Maps and Google Maps, all you have to do is file a request. Apple has a webpage that explains the process, while Google takes requests inside Google Maps.

Previously:

Saturday, January 29, 2022

Xcode Through the Years

Cory Bohon (tweet, Hacker News):

As we begin 2022, it has been almost 20 years since Apple released Xcode to developers as the predominant way to create Mac apps.

[…]

This was a revolutionary idea, and Apple put itself in direct competition with the commercially available IDEs like CodeWarrior that developers were using at the time to build apps for the Mac. It would take a few years, but Project Builder (and its successor, Xcode) would become the dominant IDE for developers building apps on the Mac — especially as Apple began developing new platforms like the iPhone and essentially locked developers into using Xcode for building apps for those platforms.

[…]

In 2010, Apple took the development community by surprise when it announced Xcode 4, a ground-up rewrite of the interface that merged two major development apps, Interface Builder and Xcode, into a single app.

I have special affection for ProjectBuilder (without the space) and Xcode 3.

These days, having learned to heavily use .xcconfig files and made peace with the single-window workflow and linking groups and folders, I’m reasonably happy with it. Interfacewise, the last several versions have brought welcome tweaks. It seems to be at a local maximum.

The main pain points right now:

Previously:

Update (2022-01-31): Steve Troughton-Smith:

Xcode 4 was the beginning of the end for Interface Builder. What was a fast, reliable, extensible external tool became bogged down with storyboards & autolayout, and accidentally clicking on NIBs became something that’d make you cringe and wait for Xcode to finish beachballing

I am fully convinced that the direction Interface Builder took poisoned the well for iOS development in a way that now makes SwiftUI feel far more appealing than it deserves to be, just as a breath of fresh air and escape from autolayout constraints 😂

Ken Kocienda:

Interface Builder should have remained a separate app. It worked better with more screen real estate and a menu bar tailored for it.

After all, any significantly large app includes resources created in separate apps (e.g. for images, video, sound).

It seems like Interface Builder was built into Xcode to offer an easier onramp for novice developers, with the side effect of permanently hampering it as a tool for professional developers.

Tim Kokesh:

I wouldn’t have a problem with Interface Builder remaining built into Xcode, if I could just open my storyboards in a separate full-sized window. Setting everything up at 50% is an unbelievable drag.

Unlisted App Distribution

Apple (via mikeymikey, MacRumors):

Release your apps that aren’t suited for public distribution as unlisted on the App Store, discoverable only with a direct link. Unlisted apps don’t appear in any App Store categories, recommendations, charts, search results, or other listings. They can also be accessed through Apple Business Manager and Apple School Manager. Apps for specific organizations, special events, or research studies, or apps used as employee resources or sales tools are good candidates for unlisted distribution.

[…]

You’ll need to submit a request to receive a link to your unlisted app.

Perhaps this could also be used to continue distributing and updating old versions of apps.

Ryan Jones:

Old school devs will remember the trick to doing this in ~2012.

Very useful for press access, broader testing, and testing app review ;).

See also Benjamin Ragheb (tweet).

Update (2022-02-04): Markus Müller-Simhofer:

Apple approved our request to move our “MindNode – Volume License” app to be unlisted. Approval took about 1 business day. This is a great new App Store feature. We already wanted to remove this version from sale, but this would have prevented MDM deployments.

Apple’s Q1 2022 Results

Apple (Hacker News):

The Company posted an all-time revenue record of $123.9 billion, up 11 percent year over year, and quarterly earnings per diluted share of $2.10.

Jason Snell (transcript, also: John Voorhees, Malcolm Owen):

Mac revenue also reached a new all-time high at $10.9 billion, and iPhone revenue also peaked at $71.6 billion. The iPad’s revenue was $7.2 billion, down sequentially and year-over-year, but still among the five best iPad quarters in recent years.

Services kept its upward growth path, setting a new record at $19.5 billion, and Wearables/Home/Accessories likewise set a new record at $14.7 billion.

Services is second only to iPhone, despite Mac and Wearables both setting new records. I don’t like seeing that, since increasing Services revenue seems to be linked to so many bad incentives for Apple.

John Gruber:

Last year Mac and iPad were very close to even. This year, Mac sales were up 25%, and iPad down 14%. That’s not surprising given the hardware releases last year: a good but uneventful year for iPads vs. the single most transformative year for Mac hardware ever.

Jeff Johnson:

There’s no conclusive evidence that M1 is a big sales driver for Mac. Sales of Intel Macs skyrocketed with the pandemic and WFH after a number of flat years.

2021 Q2 was massive +YOY but the same as pre-M1 2020 Q4, which was the same as post-M1 2021 Q4. […] It appears though that the pandemic has somewhat disrupted traditional seasonal buying patterns. If you look at quarter-to-quarter comparisons instead, it’s even worse for M1.

Previously:

Unpacking Clone Was the App Store’s Top Download

Luke Plunkett (via Dave Mark):

Unpacking was one of the best games of 2021, not just make my personal GOTY list, but the entire site’s as well. It is currently available on PC, Mac, Switch and Xbox One. It is most definitely not available on Apple’s iOS devices.

And yet! Earlier today, the top free download on the App Store, outranking even YouTube, Tik-Tok and Instagram, was a game called Unpacking Master, which, as you may have guessed from the price-point and platform, is not just inspired by Unpacking, but is a criminally shameless clone of it.

The App Store seems to make it easier for rip-offs and scams to gain traction.

Previously:

Update (2022-01-31): John Gordon:

Like Amazon’s counterfeit business.

Previously:

Thursday, January 27, 2022

Notes in Apple’s Password Manager

Ricky Mondello:

Notes for Passwords are available in the iOS, iPadOS, and macOS betas. I know a lot of you have asked for this; it’s really versatile. :-)

The password manger’s search field searches them. The Mac password manager can import and export them.

I’m loving the built-in password manager’s support for verification codes, and a freeform notes field was my number one feature request.

Filipe Espósito:

Passwords stored in iCloud can be accessed through the Passwords menu in the Settings app. Once you tap to edit a password, there’s now a new option to add a note text alongside the login details.

[…]

As expected, the notes you add to your passwords can only be accessed after you authenticate with Touch ID or Face ID.

Unfortunately, Apple still insists on keeping iCloud Keychain as a menu within the iOS Settings app rather than making it a standalone app[…]

And, on the Mac, it’s available in System Preferences and Safari’s Preferences, both of which have single-window, non-resizable interfaces. (The notes do not appear in the Keychain Access app.)

Ricky Mondello:

And here’s a simple shortcut I made that you can use to put the password manager on your home screen, if you’re into that sort of thing.

John Gordon:

There’s no secondary password, so this demonstrates that anyone with access to phone has full access to all your passcodes including iCloud. Always true but now inescapable. You need super strong phone passcode.

Previously:

Update (2022-01-31): Ricky Mondello:

An iOS 15.4 change that I adore: Sign into the Amazon app. You’ll get a beautiful account picker that includes passwords from your password manager of choice.

The deprecated SecRequestSharedWebCredential API is now implemented with the modern ASAuthorizationPasswordRequest.

macOS 12.3 Beta

Juli Clover:

The iPadOS 15.4 and macOS Monterey 12.3 betas that Apple released today introduce support for Universal Control, the long-awaited feature that’s designed to allow multiple Macs and iPads to be controlled with a single mouse and keyboard.

Federico Viticci:

Holy wow Universal Control is incredible.

This is me moving between a MacBook Pro, an iPad mini, and an iPad Pro using just the MacBook trackpad and keyboard. It’s aware of position, lets you drag files, and supports iPadOS gestures.

The hype was real and it all just works 🤯

Federico Viticci:

Fortunately, you can use both Universal Control and Hot Corners at the same time: just drag the iPad display a bit higher in the configuration UI. In this case, I can use the bottom left Hot Corner just fine.

• • •

Apple:

Python 2.7 was removed from macOS in this update. Developers should use Python 3 or an alternative language instead.

Rich Trouton:

Apple has not included a Python 3 runtime with macOS Monterey, so the removal of Python 2.7 from macOS 12.3 and later will mean that Apple is no longer shipping a Python runtime as part of macOS.

mikeymikey:

It ships with /usr/bin/python3 - which is a stub - that the first time you run it, it will GUI prompt you to install Xcode or Developer Tools

Jeff Johnson:

There’s no distinction anymore between major and minor OS updates. Apple seems happy to not only add but also remove features in minor updates.

Stability and compatibility be damned.

• • •

Joe Rossignol:

Dropbox today announced that users who update to macOS 12.3 once that software version becomes available may temporarily encounter issues with opening online-only files in some third-party apps on their Mac.

[…]

Dropbox did not provide any further details, but Microsoft recently said macOS 12.2 will be the last version that supports its own cloud storage service OneDrive’s current online-only files implementation.

Jeff Johnson:

What’s coming is simply that Apple is removing the special exemptions for the old deprecated kernel extensions of Dropbox and Microsoft, thus forcing them to switch to the File Provider API, which already exists. There’s nothing new coming.

[…]

The system manages the local copies and mediates between the user and the file provider. So there’s a loss of direct 3rd party control, and any bugs in the system are practically impossible to work around.

Stephen Hackett:

I can easily see Apple saying something vague about security and moving on without a real explanation for moving to take features away from users of other cloud services than its own.

Previously:

Update (2022-01-31): Nick Heer:

They will instead be required to use Apple’s File Provider extension, originally created for iOS’ Files app and integrated into MacOS since Catalina. It is a change that Apple has been hinting at for about a year.

The only third-party cloud storage provider I use is OneDrive, which I have to use for work, so I was hopeful this framework would help Microsoft improve the performance of its sync client without requiring too much adaptation on my part.

I was exactly wrong.

[…]

The new version of OneDrive no longer has a global preference for retaining a local copy of all files. Deleting a file now makes it vanish entirely after confirming this action — the file is no longer moved into MacOS’ Trash, nor is it in the OneDrive Recycle Bin on the web. It is simply gone. I do not know if these are choices Microsoft made or if they are side effects of the File Provider transition, but they are regressions nevertheless, and appear to only affect the MacOS client. And, as a user, I have virtually no control over these changes. It is no longer limited to specific software or specific vendors — updates that are interruptive are now everywhere. It makes using the tools for my job a never-ending process of relearning with few rewards.

Also, as a slap in the face, the OneDrive for Mac client still sometimes idles at 90% CPU consumption, and records around 200% while syncing some files. Neither MacOS nor OneDrive is a beta version, yet everything I use seems to behave as though I am testing it.

• • •

MacMule:

Despite this being a point release, there are a few breaking changes.

But to generalise, you’ll want to check all your scripts and packages for occurrences of python -c , /usr/bin/python or /usr/bin/env python.

[…]

Whilst macOS Catalinas release notes state that Ruby and Perl will not be included in future macOS in the same sentence as Python, there doesn’t appear to be any public timeline around their removal, but could be macOS 12.4!

Dr. Drang:

This will make it harder to share Shortcuts and Keyboard Maestro macros that call out to Python, as you won’t know if the sharee has it installed. That prompt to install Xcode tools is going to scare off a lot of users.

Howard Oakley:

Universal installers for the official Python Software Foundation distribution are available from here. If you want to make a relocatable Python framework containing PyObjC, then this GitHub should provide a good solution.

• • •

Joe Rossignol:

Apple today updated its macOS 12.3 beta release notes to warn macOS Catalina users about a potential boot loop issue when installing the macOS 12.3 or macOS 11.6.4 betas on a separate APFS volume with FileVault enabled.

Update (2022-02-16): Dave Nanian:

Under macOS 12.3 beta, on Apple silicon, ‘asr’ calls ‘bless’ with bad options and fails.

[…]

Apple’s mandatory tool, calling another mandatory Apple tool.

Saagar Jha:

The latest macOS beta appears to have a new XProtect written in Swift and it has the terrifying behavior of launching an app with a default icon into your dock at random times of day that disappears half a second later, then making MRTv3 take up CPU for the next minute or so

Update (2022-03-07): Kandji:

And yet the imminent removal of Python 2.7—macOS 12.3 is expected to ship sometime this spring—still demands attention from Apple admins. Here’s what it could mean to you and what you can do to prepare.

Dave Nanian:

[As] I tweeted some time ago, Monterey 12.3, all the way to B4, breaks ‘asr’ which fails to complete due to bless errors on Apple Silicon.

iOS 15.4 and iPadOS 15.4 Beta

Juli Clover:

iOS 15.4 is the biggest update that we’ve had to iOS 15 to date, and it brings Universal Control, Face ID with a mask, new emojis, and tons more.

[…]

After the iPhone 13 Pro models came out, users noticed that third-party apps were not displaying all animations at the full 120Hz ProMotion refresh rate. Apple said there was a Core Animation bug that would be fixed in a future update, and it appears that iOS 15.4 is that update.

Federico Viticci:

iOS 15.4 beta adds support for Face ID unlocking with a mask on. This worked right away for me and it’s amazing.

Details:

  • You can enable it after the update or in Settings later
  • You can add support for glasses while wearing masks
  • No support for sunglasses with a mask on

Since Face ID is obviously less accurate with a mask, I wish Apple would tell us approximately how much less accurate. And it would be good to have a way (while the iPhone is already unlocked) to temporarily enable mask support but only for a specified period of time before it goes back to full security.

Sebastiaan de With:

iOS 15.4 beta has a new ‘Use Face ID with a Mask’ option and the masked FaceID icon is absolutely adorable.

Federico Viticci:

Also in Shortcuts for iOS 15.4: Apple now lets you run Automations in the background without being notified when they execute.

This is great. (But you still can’t disable these notifications for shortcuts added to the Home Screen.)

Previously:

Update (2022-01-31): Juli Clover:

Unfortunately, Face ID with a Mask is limited to some of Apple’s newest iPhones, even though Face ID has been available since 2017 with the launch of the iPhone X. As noted on our forums, Face ID with a Mask is only an option on the iPhone 12 and later, so you’ll need an iPhone 12 , 12 mini, 12 Pro, 12 Pro Max or an iPhone 13, 13 mini, 13 Pro, or 13 Pro Max.

Meek Geek:

Hordes of Apple apologists are out there propagating this myth that this feature has an actual hardware limitation which requires newer SOCs in iPhone 12/13, which is nonsense since Apple hasn’t said a thing about this[…]

Update (2022-02-04): Benjamin Mayo:

Face ID isn’t superior to Touch ID in every respect, and vice versa. For instance, even five years on since the introduction of the TrueDepth camera system with iPhone X, Apple recommends that identical twins only use passcode authentication to unlock because Face ID will not be able to reliably tell them apart. Touch ID did not have this problem. Buying with Apple Pay is also nicer with Touch ID, compared to the double-click dance that Face ID requires.

[…]

The existence of the Unlock with Mask feature probably means that Apple doesn’t have to ship an iPhone with Touch ID again. I would certainly take it as a signal that a Touch ID iPhone is not coming back anytime soon. But I still think they should do it. Long-term, the best iPhone is surely one that offers both Face ID and Touch ID (either via under-display scanner or iPad-esque side button sensor).

Apple System Status Page Needs to Switch Off Its Reality Distortion Field

Ben Lovejoy:

The Apple system status page is best known not for displaying the actual status of Apple services, but rather a pageful of green indicators that only change once a problem is so widespread and severe that the company can no longer hide it.

[…]

Yesterday’s iCloud outage was a classic example. Games Center, iCloud Backup, iCloud Mail, iCloud.com, and iCloud Photos were all down for a significant number of people worldwide – but you’d never have known it if you’d visited Apple’s status page. It was showing all-green “nothing to see here” for several hours before the company finally admitted that there were issues affecting “some people.”

This isn’t just annoying in a roll-your-eyes kind of way – it can also waste a lot of people’s time. When I experience a problem that could be down to iCloud or may be local, the first thing I’ll do is check the status page.

It seems like either Apple doesn’t have automated monitoring systems that actually work or that somoene has decided that their results should not be published on the status page.

Previously:

Wednesday, January 26, 2022

macOS 12.2

Juli Clover (download):

macOS Monterey 12.2 is a bug fix update, and Apple’s release notes have no information other than generic bug fix information. We don’t yet have a full list of security updates, but we do know that macOS Monterey 12.2 addresses a Safari bug that could cause your recent browsing history and details about your identity to be leaked to malicious entities.

Howard Oakley:

Details of security fixes in macOS 12.2 are given here. They include one kernel vulnerability, and total 13.

See also: Mr. Macintosh.

Previously:

Update (2022-01-31): Howard Oakley:

Initial quick testing unfortunately demonstrates that one major bug in 12.0.1 and 12.1 hasn’t been fixed: the Finder still leaks memory badly when its Find feature is used. This doesn’t appear to have even been reduced.

Howard Oakley:

This memory leak appears to affect all models of Mac, both Intel and M1, running any version of Monterey from its initial public release 12.0.1 to the latest update 12.2. As it affects one of the key features of the Finder, if you use the macOS GUI sooner or later you’re likely to come across it, and for some users it’s severe.

[…]

The (literally) big danger is typing one character in and leaving the search to run: do that once, and the Finder’s memory use could readily rise into several GB.

Howard Oakley:

What I find unacceptable about Monterey 12.2 is that it still – three months and two updates after 12.0.1 – suffers a large and severe memory leak which is easily reproducible and renders a key feature in the Finder almost unusable.

Joe Rossignol:

Apple released macOS Monterey 12.2 earlier this week, and some Mac users who have installed the software update are experiencing excessive battery drain during sleep mode, seemingly due to Bluetooth accessories frequently waking the computers.

See also: Hacker News.

Previously:

Update (2022-02-08): My iMac has been having serious problems since updating to macOS 12.2.

iOS 15.3 and iPadOS 15.3

Juli Clover:

Apple will have a full list of security updates on its website, but today’s iOS and iPadOS 15.3 updates specifically address a recently publicized Safari exploit.

Previously:

Update (2022-01-31): Damien Petrilli:

iOS 15 big regressions still not fixed 5 months later:

  • HomeKit: status is totally buggy and unreliable
  • Siri: understand less and less stuff, conflicts between devices when talking
  • Syncing: no app can sync in background anymore. You have to open the App to trigger a sync

Update (2022-02-04): Scott Hanselman:

[S]omething has changed in dictation in 15.3. I dictate extensively on my phone and iPad, and i’m seeing regular crashes and lock ups with dictation in seemingly ordinary text boxes

Swift Foundation Formatter Improvements

Keith Harrison:

Unfortunately the documentation is not great so here’s a summary starting with date formatting.

[…]

In iOS 15 you apply the formatting directly to the Date without the need to create (and cache) a formatter. For example, the formatted(date:time) method applies predefined date and time styles[…]

[…]

You customize the output by adding fields to the style. The output then contains just the fields you want:

now.formatted(.dateTime.year().day().month()) // Jan 23, 2022

[…]

If you add the .attributed field to a format you get back a formatted attribute string. This is handy when you want to format components of the output[…]

The above example is for localized formatting, so the order that you specify the fields in doesn’t matter, and the styles and spellings are subject to the user’s settings.

To specify exactly the format that you want, there’s a new type-safe alternative to format strings. Instead of:

let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd"
dateFormatter.string(from: date)

You can write:

date.formatted(Date.VerbatimFormatStyle(format: "\(year: .defaultDigits)-\(month: .twoDigits)-\(day: .twoDigits)", 
                                        timeZone: .current, 
                                        calendar: .current))

Yes, unfortunately this method leads to long code lines. And you probably still need to use Locale(identifier: "en_US_POSIX") to get dependable results.

Previously:

Update (2022-05-31): See also: Donny Wals.

The 5G Airline Controversy

James Fallows (via Jason Snell):

This post is a basic who-what-why primer on the controversy involving new 5G wireless networks, and airline operations at major U.S. airports.

[…]

Short version: 5G versus the airlines is potentially a real issue, rather than a bogus threat. But it’s likely that the parties involved will work out adjustments soon.

Julio Ojeda-Zapata:

Much has been made—at least by the industry—of 5G’s potential to remake society by enabling gee-whiz technologies such as autonomous vehicles, remotely controlled medical procedures, vast sensor networks, and much-talked-about metaverse (see “Understanding 5G, and Why It’s the Future (Not Present) for Mobile Communications,” 11 November 2020). It remains to be seen how much of this will come to pass, but the addition of C-band support by AT&T and Verizon goes a long way toward providing speedy, widely available 5G to more iPhone and iPad users.

Previously:

Tuesday, January 25, 2022

Clash of the Optionals

Tom Harrington:

What is an “optional” anyway? It depends who you ask. Swift will give you one answer, but Core Data has other ideas. So what happens when you bring them together?

[…]

Guess what, you just broke Swift’s initializer rules! Specifically, you initialized an object but didn’t provide a values for all of its non-optional properties. Nobody stopped you because @NSManaged says the rules don’t apply. You’ve just built a bomb.

[…]

Swift knows that initialization finished and there’s a non-optional property. It’s impossible for non-optional properties to be nil at this point, according to Swift. You can’t even check for nil values, that’s how definite this is. So it’s… not nil?

[…]

There is a way to check for nil first, but you have to pretty much forget that you’re using Swift first and fall back on key-value coding.

Making all your Core Data properties optional in Swift complicates the bulk of your code unnecessarily. But making them non-optional creates other problems, as above. I’ve also run into trouble with bridging changing nil to NSNull, which Core Data doesn’t like as a property value.

Previously:

Update (2022-01-31): Jesse Squires:

Now we can write a designated initializer that provides default values where possible.

[…]

Simply remembering or telling our team to use only a specific initializer is prone to error. Luckily, we can prevent them from being called by marking them as unavailable. This will not only produce a compiler error if used, but it will also prevent them from appearing in Xcode’s auto-complete.

Note that this only affects what happens at compile time when dealing with this class. Core Data itself can still call other initializers on your behalf, e.g. during migration. You can still call the unavailable initializer when writing generic (not in the Swift generics sense) code to process managed objects, e.g. creating them based on an entity name and looking up their properties at runtime.

With sufficient test coverage for each model in Core Data, we can be confident that we will catch most errors that might result from modifying our models later on.

[…]

In case it isn’t obvious, all of this means you should not let Xcode automatically generate your managed object subclass definitions.

[…]

Finally, there is a risk of running into issues with faulting.

See also: Twitter.

Previously:

Monday, January 24, 2022

Netherlands Rejects StoreKit External Purchase Entitlement Plan

Sami Fathi:

The Dutch Authority for Consumers and Markets (ACM) has ruled that Apple’s plan to allow App Store dating apps to use third-party payment methods for in-app purchases does not sufficiently meet the requirements of a previous ruling. As a result, the ACM has hit Apple with an initial 5 million euro fine as a consequence, and fines will continue to be assessed at 5 million euros per week up to a maximum of 50 million euros until Apple complies.

ACM:

Apple has failed to satisfy the requirements on several points. The most important one is that Apple has failed to adjust its conditions, as a result of which dating-app providers are still unable to use other payment systems. At the moment, dating-app providers can merely express their ‘interest’. In addition, Apple has raised several barriers for dating-app providers to the use of third-party payment systems. That, too, is at odds with ACM’s requirements. For example, Apple seemingly forces app providers to make a choice: either refer to payment systems outside of the app or to an alternative payment system. That is not allowed. Providers must be able to choose both options.

Francisco Tolmasky:

It must be really frustrating to roll out an entire plan only to be completely at the whim of a reviewer — err, regulator — to find out whether it sufficiently meets a set of vague criteria.

John Gruber:

Apple could just write them a check for €50 million now, from the company’s spare-change-under-the-sofa account. Or they could just pull dating apps from the App Store in the Netherlands.

Previously:

Update (2022-01-25): David Heinemeier Hansson:

This is the problem with fines. They put a price on criminal behavior, and if the gains from committing those crimes exceed the cost of the fines, there’s a base hyper-rational calculus that says the company should continue to break the law.

Jesper:

What you can’t do is argue these things and then turn around and say that it’s all fine when Apple is doing it to developers. Time after time, Apple has either completely missed or blatantly ignored what makes a sensible application for developers and users, focusing on what draws in more money or tightens the regulatory noose.

A recent installment of the ongoing Floatplane App Review saga is instructive. Floatplane COO Luke Lafreniere has ongoing issues with getting a media network app already on the App Store through review, and time after time struggles despite carbon copying solutions adopted by big and successful apps on the App Store, to the point of copying UI wording verbatim.

Apple Did Not Crowdfund :focus-visible in Safari

Eric Meyer:

A few people, including Jen Simmons, gave credit to Igalia for implementing :focus-visible by means of a crowdfunding project (more on that in a moment).

[…]

Nobody at Apple asked the crowd to fund anything. Nobody at Apple asked Igalia to crowdfund anything. They didn’t even ask Igalia to implement :focus-visible, and then Igalia decided to crowdfund the work. In fact, all of those assumptions get things almost exactly backwards — which is understandable! It’s what we expect from our experience of how the web has developed since at least the late 1990s. But here, something new happened.

[…]

Of its own volition, Igalia decided to experiment with the idea of letting the web community (the “crowd”) vote for implementation of a missing browser feature with their wallets (the “funding”).

Update (2022-01-25): Jason Snell:

I sure wish I could crowdfund features that Apple doesn’t care about in my favorite apps and have Apple add them to its code base! But only in very particular circumstances—when there’s an open-source project at the core—can it happen. And yet when it happened in this case, the reaction in some quarters was to complain. Why am I not surprised?

Increased iCloud Errors

GoodNotes:

HTTP 503 is a temporary error code (“Service unavailable”) indicating iCloud servers aren’t responding correctly to requests from your devices. The error typically gets resolved as GoodNotes automatically retries, but we’re getting many reports of the error lingering on, causing sync failures.

This issue is not apparent to us and we’ve escalated the case to Apple Technical Support team for investigation. It seems it’s happening to other apps as well.

My devices haven’t reported any error codes, but iCloud Drive and Photos have been particularly unreliable and slow for the last week or so. As far as I can tell, eventually all my data did sync. Others, though, have reported losing records and files.

Chad Etzel:

well, add me to the pile of ppl making an iCloud status dashboard for my app

Paul Haddad:

iCloud errors seem to have really increased over the last couple of days. Wonder how many devs have to add these for Apple to I don’t know fix the problems or at the very least publicly acknowledge them.

Craig Grannell:

So pissed off with Apple’s iCloud today. Wasted almost an entire day to it throwing up 503 errors. My backup Apple ID is fine, so it seems like my main ID has been rate-limited for some reason. Bloody infuriating. So much for “it just works”.

RawMean:

iCloud Drive returns a 503 error (service unavailable) since Nov. and it’s affecting all apps that use iCloud Drive. @AppleSupport has not done anything about this and more AppleIDs are being affect.

Adam Overholtzer:

Supposedly they are aware of it, but it’s been going on for weeks — there are forum discussions going back to early December if not earlier.

MeanRaw:

DTS did confirm that the problem is on the server side. But they said it’s outside their jurisdiction and provided no ETA. This started in November

Craig Grannell (tweet):

Then Soulver failed — suddenly and very badly. I needed to restart my iMac so was shutting down all my apps. Soulver threw up a permissions error. A week of input was wiped out in an instant. This was a shock on multiple fronts: in part because of the data loss, but also because Soulver is one of the most robust apps I use. It had never failed before. […] The culprit was clearly iCloud.

[…]

A quick look on Reddit had already suggested to me that the problem had in fact been around for months, rather than days; terrifyingly, Zervaas said he’d seen this issue “on and off since May 2021”, and his own app only currently fully works on some of his Apple IDs.

Becky Hansmeyer:

Ok, there’s clearly an issue going on with iCloud sync right now affecting a lot of users across many different apps. What’s the best way to report this? Radar? I haven’t made any changes to my app since October and users have just recently started reporting sync failures.

Juli Clover:

iCloud failures are a major problem for app developers because the end user of the app doesn’t know that it’s an Apple issue, so customers blame the app developers for a non-working sync feature that they have no control over.

Malcolm Owen:

Outside of Apple Technical Support queries, there has yet to be any official confirmation of an issue from Apple, that it exists or is being actively investigated.

The System Status page is useless, as always.

Becky Hansmeyer:

This is an Apple screw-up of discoveryd proportions.

By the way, I wonder what’s going on with discoveryd these days. Presumably, mDNSResponder was being rewritten for good reasons. Is it slowly being refactored to address the original motiviations for discoveryd? Is a new discoveryd-style rewrite in progress? Did they just decide to leave this code untouched?

Previously:

Update (2022-01-24): Steve Troughton-Smith:

Developer sound off: if you’ve recently been struggling with iCloud sync issues in your apps that sound like they may be related to today’s news, can you reply with whether you’re seeing this with 1) iCloud Drive, 2) CloudKit + your own data model, or 3) CloudKit+Core Data

Craig Hockenberry:

I hate to say this, but iCloud can’t be trusted. It’s disheartening because there has been improvements in the past couple of years.

[…]

The most infuriating part about this is Apple’s complete silence in public.

Privately, they are telling developers there are issues, which is a step in the right direction.

But it’s our customers who are losing the fucking data.

Update (2022-01-25): Rod Christiansen:

I had an iA Writer document literally revert back in front of my eyes to a version from 5 minutes ago!

Happened twice today.

MacJournals:

Analysts could do worse than asking about things like this during Thursday’s conference call.

If services are Apple’s future, how can these problems persist for months? Why is iCloud designed so neither devs nor users can get answers or escalate?

Chris Vasselli:

I believe the key is handling rate limiting properly, which CloudKit (erroneously) returns as 503 errors. But there are some gotchas to watch out for:

[…]

The suggested retry period is too short, and repeating your request after that period will trigger rate limiting again (seriously).

[…]

If there were multiple errors, they will be returned as a single error with a partialErrorsByItemID value containing the underlying errors. The parent error will not contain the retry information, you need to check the underlying errors.

I have seen certain errors (specifically zoneBusy and requestRateLimited) actually omit the CKErrorRetryAfterKey value, and so I have a default value of 30 seconds in case it is missing.

Quota exceeded errors (meaning the user is out of iCloud space) seem to erroneously include CKErrorRetryAfterKey values, even though retrying them is not actually going to help.

[…]

After reading more, it looks like there is more going on here than just properly handling the retry timeout. Some accounts are getting 503’s on all requests, no matter what.

Update (2022-01-26): Becky Hansmeyer:

Regarding the recent iCloud sync issue, I received a very kind and detailed response from Apple indicating that the underlying issue causing the 503 errors/sync failures has been fixed!

Adam Overholtzer:

Will I get an email? What about an apology? What about a removal of all the 1-star reviews this nonsense has earned me the past few weeks?

Seems like this issue, affecting essentially the entire platform, unfolded and was eventually resolved with no official communications from Apple acknowledging the problem or fix.

Paul Haddad:

The number of iCloud Sync is broken reports we’ve gotten over the last 2 days has gone down to basically 0.

See also: MacRumors.

Update (2022-01-31): Jesse Squires:

But as a developer, the iCloud issues are even more frustrating. Sure, we all know software is hard. Minor, intermittent issues are to be expected. But two things are unacceptable — data loss and the (still!) terrible communication from Apple.

If Apple fails to maintain quality software and prevent data loss — that affects our users and there isn’t much we can do about it. Apple strongly promotes these services. Apple really wants third-party devs to integrate iCloud support into their apps. And yet, they seemingly can’t be bothered to make it reliable. Among the many other issues that developers have with the App Store, this ranks at the top. Third-party developers must pay 15-30 percent of their wages to Apple. And for what? What are we paying for? A totally broken iCloud? Developers that depend on iCloud get doubly screwed.

And then, to make matters worse, developers received zero communication from Apple during this outage — not even an acknowledgement that an issue existed.

A few days after the supposed fix, my iCloud Drive uploads broke again.

Craig Grannell:

Same here. iCloud sync for apps is now OK here, but iCloud Drive is totally dead. Nothing is uploading. FFS. This is ridiculous.

Previously:

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

iCloud provides users with one real control: the on-off switch, which isn’t in the least helpful when the problem is failure to sync. My free utility Cirrus can perform a basic test of the first of the three services, and gives access to iCloud entries in your Mac’s log. But those only help in diagnosis, not in treatment.

Cirrus does enable you to download files in the first service category (and you could also use this with shared files used by third-party apps). That enables you to ensure that you keep a local copy, which will also be backed up by Time Machine and other means of local backup. But it does nothing to help you sync those documents with or through iCloud when the service is faulty.

Update (2022-03-16): Adam Overholtzer:

Just say no to CloudKit! My app has 1000s of 5-Star ratings but the stupid Error 500 thing got me enough bad reviews that I’ve dipped below a 4.7 average for the first time. I also never got a word about it from Apple, despite a DTS report and being quoted in a couple articles.

Update (2023-12-19): Adam Overholtzer:

I’m getting another surge of email about iCloud/CloudKit sync errors, specifically Error 500, unspecified internal server error.

This seems to happen every year around this time, except this year it already happened back in August.

Lots of developers are reporting this lately.

Google Drive Incorrectly Flags File for Copyright Infringement

Emily Dolson (via Hacker News):

Uh, @googledrive, are you doing okay? This file literally contains a single line with the number “1”.

Presumably nobody manually added the hash of that data to a list, so this is probably some sort of AI mistake.

The worst part is that the error message says: “A review cannot be requested for this restriction.”

ChicagoBoy11:

I experienced something similar building an internal tool on GSuite. I had a large file with sequences of 9 digit numbers specific to our use-case, all tied to names of people (employees). Whelp, at one point the tool I was working on stopped working, and it was flagged as apparently containing social security numbers (which I suppose matched the character length).

Whelp, on the admin panel, you can get a report of those files, and then mark it as a false positive. Which I did. But then nothing happened, and nothing changed. It was no use.

The hilarious bit: It did, of course, allow me to make a copy of the file in question, and then just point the resource I was building to the new file, which was exactly the same. Weeks later... so far, so good.

Previously:

The same algorithm that did this also has the power to just lock you out of all Google services, permanently cutting off off your access to your emails and whatever else you’ve stored with them. As has happened before.

Previously:

IAP Fees for Event Services, Deferred Again

Apple:

In 2020, we chose to support apps and developers that needed to adapt services from in-person to digital as a result of the COVID-19 pandemic. Specifically, we deferred App Store Review Guideline 3.1.1, which requires apps offering paid online group services to do so via in-app purchase.

Given the recent resurgence of COVID and its continued impact on in-person services, we’ve extended the most recent deadline to June 30, 2022.

Just two months ago, Apple posted a reminder that the December 31, 2021 deadline would stand. Now, three weeks later, it doesn’t. Even in early November it was clear that COVID was not going away by the end of the year.

Michael Love:

If I were a $3T American tech behemoth facing down the imminent passage of brutal new antitrust laws, I would simply say “oops, never mind” about taxing struggling small businesses that switched to Zoom over the pandemic, but what do I know.

Previously:

Friday, January 21, 2022

Jira Discontinues Catalyst Mac App

Atlassian:

Our sole focus is ensuring you have the best possible experience with Jira so for that reason we are sunsetting the Jira Cloud for Mac app and focusing all energy on building outstanding performance across the most powerful versions of Jira Cloud.

[…]

Change is never easy, but the good news is that not only will your experience with Jira’s web and native mobile apps be just as good as the Mac app[…]

Konrad Kołakowski:

Ugh, bad news for Mac Catalyst unfortunately, and a bad news for all JIRA users on the Mac. Sure, desktop app wasn’t feature complete, but it was way faster (!) and consumed less memory[…]

Steve Troughton-Smith:

Bad news for the Mac if Apple’s two new UI frameworks, and an exciting CPU transition, aren’t enough to get companies to care about it

Previously:

User-Friendly Diagnostics Should Be a Core Part of Any System

Howard Oakley:

If my Mac is capable of recognising the faces of friends in their photos, then it’s surely able to provide me with a little assistance in diagnosing the cause of an error, and suggesting what I can usefully do next. If Disk Utility can’t unmount a container, can it please explain why that could be, and at least link to an article like this one?

Software engineers are hopeless optimists when they design and code only for success. There’s much more to handling errors than displaying a couple of phrases of in-house jargon and fobbing the user off with a magic number. It’s high time that designing error-handling to help the user became a central tenet of macOS.

Nick Heer:

My only quibble with Oakley’s conclusion here is that it should not be limited to MacOS; I expect better diagnostics across all of Apple’s operating systems. Otherwise, this is spot on.

It is bananas that the best error messages users will encounter are those with an inscrutable code — “the best” because it is at least something which can begin a web search for answers.

G Suite Removes Free Plans

Google, in 2006:

A standard edition of Google Apps for Your Domain is available today as a beta product without cost to domain administrators or end users. Key features include 2 gigabytes of email storage for each user, easy to use customization tools, and help for administrators via email or an online help center. Furthermore, organizations that sign up during the beta period will not ever have to pay for users accepted during that period (provided Google continues to offer the service).

Abner Li (via Hacker News, David Heinemeier Hansson):

In 2020, G Suite became Google Workspace as part of a mass reorganization of the company’s apps for the “future of work.” Various plans were migrated over, and Google is now finally getting rid of the G Suite legacy free edition.

“Google Apps” for businesses and schools were introduced 16 years ago and was discontinued in 2012. However, the company made no significant changes to those free accounts in the past decade, until today.

[…]

After getting free Gmail, Drive, Docs, and other apps for the past several years, companies/people will need to start paying for those Google services and the ability to use your own custom domain (instead of just gmail.com).

The new plans start at $6/month.

Previously:

Update (2022-01-24): Ryne Hager (via Hacker News):

No lawsuit has been filed yet; the attorneys involved are just collecting information for a potential lawsuit in the future once all the facts are straight (and Google has had time to reconsider its actions).

When we covered the original news of the legacy G Suite shutdown, it seemed unreasonable to us, because customers using those legacy accounts are unable to transfer purchases or things like grandfathered subscription discounts to new accounts. When we asked if moving purchases between accounts might be possible, a Google representative confirmed it wasn’t[…]

Neil Jhaveri:

If you’re currently a Legacy G Suite user, the free plan will end by July 1st. I’m curious: what do you plan to do?

Update (2022-02-16): Ron Amadeo:

Naturally, this move led to a huge outcry outside (and apparently inside) Google, and now, the company seems to be backing down from most of the harsher terms of the initial announcement. First, Google is launching a survey of affected G Suite users—apparently, the company is surprised by how many people this change affected. Second, it's promising a data-migration option (including your content purchases) to a consumer account before the shutdown hits.

Update (2022-05-17): John Gordon:

Google reprieve came. We can continue our non-business legacy Google Apps.

Abner Li:

The company will now let you stay on a “Free Legacy Edition of G Suite for personal use” as the “no-cost” alternative in a rather notable policy change.

[…]

In a change of plans, there’s no longer a waiting list, and these old users can sign-up for no-cost Legacy G Suite now. Head to your account’s Google Admin Console as there are many reports of it going live this afternoon. You have until June 27 to pick a transition path.

How Apple Destroys Lightning

Rene Ritchie:

$1000 and the iPhone 13 Pro is still stuck at USB2 speeds. Never mind the $1100 iPhone 13 Pro Max. Why? Because, Lightning, and — wait for it — Lightning has pretty much been stuck at USB2’s half a gigabit per second, since… 2012. That, in spite of Apple adding 10-bit ProRes HDR video recording back in September. With hardware acceleration fast enough to encode 6GB a minute — a minute! — and a new storage system fast enough to save it, but no… no as in nothing approaching… a new I/O system fast enough to transfer it. So, you can now record the highest quality video of any phone on the planet, you just can’t get it off any faster than the cheapest phone on the block.

[…]

So, USB-C would solve for speed… but also for convenience. You wouldn’t have to keep a specific cable around just to charge your iPhone any more. You could charge it with the same cable as your iPad Air… your Nintendo Switch, your partner’s Google Pixel, whatever. Use that cable between devices as needed, maybe even keep only one to travel with. We’ll have achieved true port peace in our time.

Previously:

Thursday, January 20, 2022

“American Innovation and Choice Online” and “Open Markets” Acts

Makena Kelly:

On Tuesday, the Justice Department and Federal Trade Commission launched a joint effort to modernize antitrust enforcement, seeking comment on how the agencies can apply current law in cases against tech companies like Meta (parent company of Facebook) and Google.

[…]

Tuesday’s announcement follows new plans in the Senate to push through a pair of bills targeting tech giants like Apple, Meta, and Google. The Senate Judiciary Committee plans to vote on the American Innovation and Choice Online and the Open App Markets Acts on Thursday — bills that would outlaw dominant platforms from abusing their market dominance, allow third-party app stores, and protect software sideloading.

Juli Clover:

U.S. bills that would require major changes to the App Store would ultimately cause consumers to be targeted with malware, ransomware, and scams, Apple’s Senior Director of Government Affairs Timothy Powderly said in a letter that was sent today to the Senate Judiciary Committee and that was obtained by MacRumors.

Apple sent the letter as the Judiciary Committee prepares to consider the American Innovation and Choice Online Act and the Open Markets Act, which were first introduced in June 2021.

Timothy Powderly:

In addition to making privacy and security protections nearly impossible to defend, the bills would actually allow predators and scammers to side-step Apple’s privacy and security protections completely.

See also: David Heinemeier Hansson.

Juli Clover:

The U.S. Senate Judiciary Committee today approved the American Innovation and Choice Online Act, which means it will now move on to the Senate floor for a vote, reports The Wall Street Journal.

Juli Clover:

Illinois is the latest state to attempt to pass legislation that would prevent developers from being required to use Apple’s in-app purchase options by allowing for alternate payment solutions within apps.

Previously:

Update (2022-01-24): See also: Leah Nylen.

Ryan Tracy (via Hacker News):

A Senate panel approved antitrust legislation forbidding the largest tech platforms from favoring their own products and services over competitors’, scoring a win for backers of stricter Big Tech regulation against fierce industry opposition.

Update (2022-01-25): David Heinemeier Hansson:

The Mac is such an inconvenient platform for Apple. It prevents the company from making any credible claim of an impending security catastrophe, if lawmakers force the iPhone to allow installation of apps without the App Store. With the Mac, we have almost forty years of proof that computers don’t need an App Store to be safe. Made by the same company that now tries to pretend to legislators that this isn’t possible!

The fact is that the iPhone is already a considerably more secure device than even the Mac! Apps run in a tighter sandbox, and everything is far more locked down than traditional computers. This is where the defense against malware rests, along with the kill-switch power to nix any app that exploit novel vulnerabilities to escape detection up front.

The only thing these technical defenses can’t guard against is business model threats. That’s why Apple employs thousands of people in the App Store review department without any technical or security qualifications! Because they’re not there to uncover security threats, only threats to the faucet of monopoly rents.

Update (2022-02-04): Juli Clover:

The U.S. Senate Judiciary Committee will on Thursday consider the Open App Markets Act, an antitrust bill that would allow for sideloading and alternate app stores.

Ahead of the meeting, Apple’s head of government affairs in the Americas Tim Powderly sent a letter to committee members, urging them to reject the bill[…]

Ashley Gold (via Hacker News):

A bill that would upend how Apple and Google run their mobile app stores easily made it out of the Senate Judiciary Committee on Thursday.

[…]

The 20-2 vote shows there’s increasing support in Congress for the kinds of bills that aim to reel in Big Tech companies.

Previously:

Wednesday, January 19, 2022

No More iOS 14 Security Updates

Juli Clover:

Last week, MacRumors shared news that Apple had stopped releasing iOS 14 security updates and was pushing those still on iOS 14 to upgrade to iOS 15, an apparent reversal of a promise to allow users to stay on the iOS 14 operating system.

Apple today told Ars Technica that the option to stay on iOS 14 and avoid the iOS 15 upgrade was always meant to be temporary. It is not a mistake that there are no more security updates to iOS 14, and support for the update has essentially ended.

Brian:

“Always meant to be temporary” is a hell of a reply to people who thought they were getting more reliable OS support from a keynote announcement.

Previously:

1Password Series C Funding Round

Jeff Shiner (tweet, Hacker News):

I’m delighted to announce that 1Password has raised $620 million in our latest investment round that values our company at $6.8 billion. This moment represents a lot of hard work by a lot of amazing people.

Most days, I find myself too busy to truly reflect on all we’ve accomplished over the past 17 years. I think back to our tiny Macworld booth, or the weeks we’d spend at the Cupertino Inn working on our latest iOS or Mac release. It feels like yesterday that I was excited to cross the 100-employee threshold, yet here we are just a few years later approaching 600.

[…]

Admittedly, it seems peculiar for a consistently-profitable company to accept outside funding. But just like last time, these partnerships make it possible for us to develop and scale human-centric security solutions for everyone.

David Pierce:

1Password has tripled in size in the last two years, up to 500 employees, and plans to double again this year — while also expanding the vision of what a password manager can do. 1Password has long been a consumer-first product, but the biggest opportunity lies in bringing the company’s knowhow, its user experience, and its security chops into the business world. 1Password already has more than 100,000 business customers, and it plans to expand fast.

[…]

“One is, continuing to invest in our team and double the size of our company, again, this year. Two is continuing to look at strategic acquisition. We made the acquisition last year with SecretHub for the secrets automation space. And then three, just have the courage capital to make the big bets that we need to enter new areas and really try and see how ambitiously we can hit those vision and mission goals.”

Previously:

Update (2022-01-20): John Gruber:

Doesn’t seem like a good investment to me, either. Better password management is getting built into operating systems and web browsers. They’re trying to go enterprise mass market with a niche product that was beloved by nerds who really care about their passwords. As a friend just quipped to me, “Unless they’re factoring the value of the individual passwords, $6B makes no fucking sense.”

As a consumer, I’m not happy about the focus on enterprise. But it makes sense from a business perspective because the basics are getting built in, as Gruber says. I do think there’s room for a solid long-term business offering organizations more, and so the valuation doesn’t seem crazy to me.

Update (2022-01-24): Collin Allen:

It’s bonkers to me that they have 600 people there for a password manager app and service. I could see 60, but 600? 😳

Roustem Karimov:

Well, how much experience with SOC 2 Type 2 do you have? What about running 5 production data centres? Also, how many people do you think it would take to support a few million active users?

We used to kill our entire team and work 70+ hour weeks, thankfully it is in the past.

Roustem Karimov:

Early days: it was about 50/50 between developers and customer support. A single Safari or macOS update could generate 10,000 tickets/day and it was all-hands-on-deck for weeks.

Mitchell Cohen:

Let’s narrow our focus further to one tiny part of the app: icons. Ever seen an icon pop in while scrolling through @1Password ? There’s a story behind that, and it’s related to how we enforce memory hygiene, protect your anonymity, and provide full encryption at rest.

John Gruber:

But, still, whether what 1Password is doing is smart business or not, there’s no question that the longtime 1Password users I know personally are unhappy. They’re not happy that the new 1Password 8 for Mac is built on Electron. They’re not happy that 1Password is going subscription-only. They’re not happy that 1Password vaults are now only hosted by 1Password. But these are all decisions that make perfect sense for the enterprise SaaS world. It might not be feasible to move to the new model without spoiling what many 1Password users liked best about their old one.

[…]

I’ve always thought it to be a great product from a great company, but, well, I had my own system for managing passwords from before 1Password existed (which admittedly is a long time ago: they started in 2005) and as the years have gone on, I’ve slowly moved from merely using Apple’s iCloud Keychain to depending upon it. For shared secrets, my family uses locked items in Apple Notes.

Previously:

Update (2022-02-11): Cabel Sasser:

If you’re wondering if 1P will ever live up to that $6.8 billion valuation, please note that they’ve officially reached the Schedule-a-Meeting Sales Spam level

Update (2022-03-23): Gruber has removed the line:

For shared secrets, my family uses locked items in Apple Notes.

Apple’s documentation currently states:

You also can’t password protect notes that you share with someone else.

Making Mac OS X Unix Compliant Certified

Terry Lambert (via Gus Mueller, Hacker News):

I was the tech lead at Apple for making Mac OS X pass UNIX certification, and it was done to get Apple out of a $200M lawsuit filed by The Open Group, for use of the UNIX™ trademark in advertising.

[…]

We were promised 1/10th of the $200 million, or $20 million in stock, on completion. $10 million to me, $5 million to Ed, and $5 million to Karen Crippes, who was looking for a home in Mac OS X development[…]

[…]

Eventually, we had everything working and passing the tests. We were ready to pull the trigger.

And then they pulled in the Intel code changes, and crapped all over everything, because we were told to wait two weeks.

[…]

All told, probably 4% of the 6% of the Max OS X kernel that I wrote? […] IT came from committing massive signals changes, and attributing them to a simple signal bug resulting in a kernel crash, in the “Radar” bugs database.

A lot of the things Ed did to libc header files, and libc itself, had similar “fibs” in Radar.

[…]

You have absolutely no idea how much Apple contributed to the Open Source community, as part of this project, because it was a secret project — at least to people outside Apple — so we didn’t advertise the fact.

But I expect we contributed about two million lines of code, to hundreds of Open Source projects, over the course of that year.

A lot of gratitude — but it wasn’t collective, and so Apple was still faulted for “using Open Source code, but never contributing back”.

[…]

The executive who agreed to the deal left his wife for an HR person, and took the stock for himself.

Microsoft Acquires Activision Blizzard

Tom Warren (Hacker News):

Microsoft is acquiring Activision, the troubled publisher of Call of Duty, World of Warcraft, and Diablo. The deal will value Activision at $68.7 billion, far in excess of the $26 billion Microsoft paid to acquire LinkedIn in 2016. It’s Microsoft’s biggest push into gaming, and the company says it will be the “third-largest gaming company by revenue, behind Tencent and Sony” once the deal closes.

Microsoft plans to add many of Activision’s games to Xbox Game Pass once the deal closes. With the acquisition of Activision, Microsoft will soon publish franchises like Warcraft, Diablo, Overwatch, Call of Duty, and Candy Crush. “Upon close, we will offer as many Activision Blizzard games as we can within Xbox Game Pass and PC Game Pass, both new titles and games from Activision Blizzard’s incredible catalog,” says Microsoft’s CEO of gaming Phil Spencer.

NY Times (tweet):

Microsoft framed the deal as strengthening the company’s hand in the so-called metaverse, the nascent world of virtual and augmented reality. The metaverse has attracted huge amounts of investment and talent, though so far is more of a buzzword than a thriving business. Facebook renamed its parent company to Meta late last year to underscore its commitment.

Sami Fathi:

Microsoft’s Xbox Game Pass is available on the iPhone and iPad through Safari, but not the App Store.

John Gruber:

Game Pass subscriptions cost between $10–15 per month. Let’s just call that about $150/year per subscriber. That’s just under $4 billion per year. Assume that the Game Pass subscriber base will keep growing, and $69 billion for Activision doesn’t seem absurd as a long-term investment. And that’s just counting Game Pass subscription revenue, not traditional game sales.

curiousllama:

It’s wild how Microsoft has been able to vertically integrate gaming.

They now own the distribution (Xbox Cloud Gaming, Xbox Game Pass), the games (Call of Duty, WoW, Starcraft + what they owned before), the OS (Windows, Xbox), the hardware (Xbox, many PCs), and the back end compute (Azure). The only thing they’re missing, the network bandwidth, is mostly a commodity anyway.

Jon Erlichman:

Microsoft’s biggest acquisitions:

Activision Blizzard: $68.7 billion
Linkedin: $26.2 billion
Nuance: $19.7 billion
Skype: $8.5 billion
ZeniMax: $7.5 billion
GitHub: $7.5 bilion
Nokia phone unit: $7.2 billion
aQuantive: $6.3 billion
Mojang (Minecraft): $2.5 billion

Previously:

An Examination of the Bug Bounty Marketplace

Bounty Everything (PDF, via Bruce Schneier):

Ellis and Stevens’s research offers a historical overview of bounty programs and an analysis of contemporary bug bounty platforms — the new intermediaries that now structure the vast majority of bounty work. The report draws directly from interviews with hackers, who recount that bounty programs seem willing to integrate a diverse workforce in their practices, but only on terms that deny them the job security and access enjoyed by core security workforces. These inequities go far beyond the difference experienced by temporary and permanent employees at companies such as Google and Apple, contend the authors. The global bug bounty workforce is doing piecework — they are paid for each bug, and the conditions under which a bug is paid vary greatly from one company to the next.

Tuesday, January 18, 2022

Bartender and the Notch

Josh Ginter (via Matt Birchler):

Bartender provides other customization options to fit your needs. You can ensure specific icons are always visible, other icons always hidden, and you can put spacers between icons to provide breathing room. You can also drop the amount of space between icons if you want to squeeze even more icons into the hidden space.

[…]

Bartender 4 displays hidden menu bar icons in the vacant space in your menu bar, but you can select an option to use that old-style icon tray if you choose.

[…]

Perhaps my favorite part of Bartender’s (surprisingly) long feature list is Show For Updates. In Show For Updates, you can provide a little snapshot of a menu bar icon and Bartender will track that menu bar icon for changes. If the icon changes, Bartender will reveal the icon in the vacant menu bar space. If it changes back to the default icon, it’s hidden again.

Crucially, if you have too many menu bar icons, so that some would be hidden by the notch, Bartender lets you see them in the tray.

Previously:

BackLog 1.0

Matthias Gansrigler (tweet):

It’s complicated, or at least cumbersome, to get logs that predate you clicking “Start streaming” in Console.app – Apple’s recommendation for it is to create an entire system diagnostics report and look for files in there. Madness.

I wanted a quick and easy way to, for example, get all log entries from all processes that happened from boot time to 5 minutes after.

[…]

Numerous times I’ve had to deal with obscure app-sandbox or keychain access issues in Yoink, and having to tell customers to please open Console, filter for Yoink, and then (hopefully) reproduce the issue is just bad UX.

Now, I can send them this app with a backlog:// link, with a time range pre-defined, and all they have to do is copy-paste the results into a response to my mail. And best of all – they don’t have to reproduce anything, the logs already contain all the info I need from the last time the issue occurred.

BackLog is free.

Previously:

Austria: Google Analytics Violates GDPR

noyb:

In a groundbreaking decision, the Austrian Data Protection Authority (“Datenschutzbehörde” or “DSB”) has decided on a model case by noyb that the continuous use of Google Analytics violates the GDPR. This is the first decision on the 101 model complaints filed by noyb in the wake of the so-called “Schrems II” decision.

[…]

In the long run, there seem to be two options: Either the US adapts baseline protections for foreigners to support their tech industry, or US providers will have to host foreign data outside of the United States.

Nick Heer:

[Datenschutzbehörde] specifically cited the risk of espionage by U.S. intelligence agencies as a reason why this publisher’s use of Google Analytics violates GDPR rules. That is not an unreasonable concern. While users in some countries may benefit from having the protections of the U.S. legal system to avoid domestic overreaches, it is detrimental for users in Canada and many European countries.

Update (2022-01-24): See also: Hacker News.

Update (2022-01-31): See also: Hacker News.

Update (2022-02-11): CNIL (via Hacker News):

After receiving complaints from the NOYB association, the CNIL, in cooperation with its European counterparts, analysed the conditions under which the data collected through this service is transferred to the United States. The CNIL considers that these transfers are illegal and orders a French website manager to comply with the GDPR and, if necessary, to stop using this service under the current conditions.

Monday, January 17, 2022

Safari 15 IndexedDB Information Leaks

Martin Bajanik (Hacker News, MacRumors):

In this article, we discuss a software bug introduced in Safari 15’s implementation of the IndexedDB API that lets any website track your internet activity and even reveal your identity.

[…]

In Safari 15 on macOS, and in all browsers on iOS and iPadOS 15, the IndexedDB API is violating the same-origin policy. Every time a website interacts with a database, a new (empty) database with the same name is created in all other active frames, tabs, and windows within the same browser session.

[…]

The fact that database names leak across different origins is an obvious privacy violation. It lets arbitrary websites learn what websites the user visits in different tabs or windows. This is possible because database names are typically unique and website-specific. Moreover, we observed that in some cases, websites use unique user-specific identifiers in database names. This means that authenticated users can be uniquely and precisely identified.

[…]

In this case, private mode in Safari 15 is also affected by the leak.

[…]

Apple engineers began working on the bug as of Sunday, have merged potential fixes, and have marked our report as resolved. However, the bug continues to persist for end users until these changes are released.

The bug was originally reported in November.

Jake Archibald:

This is a huge bug. On OSX, Safari users can (temporarily) switch to another browser to avoid their data leaking across origins. iOS users have no such choice, because Apple imposes a ban on other browser engines.

Alex Russell:

TFW you tell regulators you need to prevent real competition “because privacy and security”[…]

[…]

Some of us are salty about this because:

  1. our engines don’t have this problem
  2. our products on iOS do have this problem
  3. Apple won’t let us keep our users safe

Safari 15 IndexedDB Leaks (Hacker News):

The demo illustrates how any website can learn a visitor's recent and current browsing activity (websites visited in different tabs or windows) using this leak. For visitors, logged into Google services, this demo can also leak Google User IDs and profile pictures.

Previously:

Update (2022-01-19): Nick Heer:

You know what is most wild about this for me? I came across this bug when working on some web development last autumn, but I assumed I must be misinterpreting what I was seeing because there was no way such a critical vulnerability would be so transparently visible.

Update (2022-01-25): Juli Clover:

With the macOS Monterey 12.2 and iOS 15.3 release candidates now available, we could see these updates be made available to the public as soon as next week.

StoreKit External Purchase Entitlement for Netherlands

Hartley Charlton (tweet):

In a message posted on its developer site late on Friday, Apple announced that it will comply with a Netherlands Authority for Consumers and Markets (ACM) ruling that compels the company to allow third-party payment services to pay for in-app purchases in dating apps. Dutch dating apps that link out to or use a third-party in-app payment provider will still need to pay a commission to Apple on transactions.

Benjamin Mayo (tweet):

Developers will need to create and maintain a completely separate app binary which includes special entitlements, and is only made available in the Netherlands App Store.

Apple:

Because we do not believe these orders are in our users’ best interests, we have appealed the ACM’s decision to a higher court.

John Gruber:

The piecemeal regulations popping up around the world are so odd. Only dating apps and only in the Netherlands. Again, alternate payment processing in-app is not the answer, if Google and Apple are still going to take their cut of each transaction. Just send users to the web to process payments outside the app, and stipulate that apps must be allowed to link to their websites.

Michael Love:

Interesting question is how they’re going to collect these commissions absent the ability to intercept purchase data; perhaps they view this small-scale experiment (one type of app in one small-ish market) as a good chance to work on that.

Sami Fathi:

Now that Apple has announced changes, the ACM wants to assess whether those changes meet the requirements of its previous ruling, according to a press release. As part of its probe into the changes, the ACM will meet with dating app providers, such as The Match Group, which owns Tinder, to ensure Apple’s changes sufficiently address concerns.

Previously:

Small Developer Assistance Fund Claims

Juli Clover:

Apple in August announced plans to pay $100 million to settle a class-action lawsuit levied by U.S. developers, and as of today, the website that will allow developers to submit a claim for a payout has gone live.

[…]

Developers need to submit claims by May 20, 2022 to get a payment from Apple, and there will be a final approval hearing on June 7, 2022. The actual payout date will vary based on whether there are objections, how long it takes to resolve those objections, and whether the agreement receives final approval from the court.

This only applies to sales in the US, and it’s only for iOS developers.

Paul Haddad:

This page has a form to figure out how much you’ll get from Apple for settlement money. All you need is your Team ID, or I’m pretty sure anyones easily discoverable Team ID…

Previously:

Photo Ninja

Mikael Thalen (via John Wilander):

Photo Ninja uses a novel series of steganography, detection perturbation, visible overlay, and several other AI-based enhancement processes to shield your images from reverse image searches without compromising the look of your photo,” the company said.

[…]

The service can be used for a range of purposes. For example, a user can run their photos through the tool prior to uploading them to dating apps such as Tinder, ensuring that other users can’t use their pictures in a reverse image search in order to locate their other social media profiles.

Previously:

Friday, January 14, 2022

Canon Forced to Ship “Knockoff” Ink Cartridges

Jon Fingas:

Printer makers have long used chips to thwart third-party ink cartridge sales and drive you toward their own products, but they’re now feeling the sting of those restrictions. The Register and USA Today note Canon has had to ship toner cartridges without copy protection chips due to ongoing shortages. That, in turn, has led to some ImageRunner multifunction printers incorrectly flagging official cartridges as knockoffs — Canon has even told printer owners how to bypass the warnings and deal with broken toner level detection.

[…]

The printer trouble illustrates one of the common complaints about digital rights management (DRM) and other copy protection systems: they create trouble the moment their designers can’t offer full support.

Previously:

iOS Music Player Showcase, 2022

Marc Barrowclift (via Dave Mark):

There’s new and exciting developments every year in the realm of iOS third-party music players, and 2021 was no exception. While 2019 enjoyed an explosion of new players like Power Player and Albums that through time came to lead the space, 2020 in contrast received only a modest handful of new players and is instead remembered for the impressive growth the established player base received that year. This past year, 2021, managed to do both with a dizzying array of five new players and impressive growth across nearly all existing players.

I miss Ecoute, and of course the old Apple app.

Previously:

Faking an iPhone Reboot

Bruce Schneier:

Researchers have figured how how to intercept and fake an iPhone reboot[…]

[…]

I see this as another manifestation of the security problems that stem from all controls becoming software controls. Back when the physical buttons actually did things — like turn the power, the Wi-Fi, or the camera on and off — you could actually know that something was on or off.

PUBG Developer Sues Apple Over Alleged Rip-offs in the App Store

José Adorno (PDF):

In the US, PUBG’s developer sued the maker of another popular battle royale game, Free Fire. Not only that but Krafton has also named Apple and Google in the lawsuit, alleging that Apple and Google have refused to stop selling rip-off versions of its games.

Juli Clover:

Apple and Google are accused of distributing hundreds of millions of copies of the Free Fire apps, earning Garena “hundreds of millions of dollars” and netting Apple and Google a “substantial amount of revenue.”

[…]

Apple on December 21, 2021 was told that Free Fire infringes on Krafton’s PUBG copyrights, but Apple has not taken action to remove the game from the App Store.

I don’t understand why they waited until the end of 2021 to notify Apple if the alleged offending apps have been on sale (and using a variation on the “Battlegrounds” name) since 2019.

Previously:

Thursday, January 13, 2022

An Approach for Migrating From Objective-C to Swift

Steve Barnegren (tweet):

It was difficult to gracefully integrate new Swift code into existing Objective-C classes and systems. A year down the line we still had a mostly Objective-C code base. Almost anything of any real importance was still in Objective-C, and all we’d really built was some surface level Swift on top of an Objective-C core.

[…]

Everything that’s great about Swift has to be sacrificed for Objective-C interoperability. Value types, generics, enums with associated values, optionals.

If you have a whole bunch of Objective-C and you write a tiny bit of Swift in the middle, then that Swift ends up being crappy Swift.

[…]

The key is that we start with a small Swift ‘island’. It can be just be one Swift class. We write nice Swifty code that we can be proud of, and then we provide shims that our Objective-C code uses to interface with it.

[…]

It may seem like overkill to have an Objective-C shim for a Swift wrapper around an Objective-C type, but remember this is all a means to an end. If we’re making good progress on our language transition then we’re deleting shims as fast as we’re creating them.

Nick Lockwood:

Steve makes a great point here. Swift shines brightest at the model layer, where its strong types help you architect a better foundation for the whole app.

Adding some Swift views on top of Obj-C and then working your way down won’t get you there.

I concur. Writing Swift on top of an Objective-C base is not a great experience and doesn’t provide a lot of benefit. But substituting in a Swift base is non-trival because most of the features can’t be used from Objective-C. Even sticking with reference types, you can’t subclass a Swift class from Objective-C. Hence the need for techniques like Barnegren mentions if you can’t rewrite everthing at once.

Update (2022-01-17): Steve Troughton-Smith:

A lot to unpack here, but yes, your Cocoa-oriented data model is absolutely gonna be the worst and most frustrating point of transitioning to Swift. It just doesn’t fit the way everything else works, and forces you into way more potentially-problematic boilerplate than you want

iOS App Library Is Drunk

Jesse Squires:

Periodically, the order of folders in App Library changes. Why?! It is incredibly disorienting. I’m not sure if this is a bug or a “feature” where recently-used or most-used categories move toward the top? The order of category folders should always be fixed.

The second major issue I’ve seen lately: sometimes apps change categories. The other day, Duolingo suddenly moved from “Education” to “Other”, along with a few other bizarre moves. This certainly seems like a bug, but I really don’t understand how this could happen. Presumably, these categories are based on the App Store categories that developers select for their apps, and which are part of an app’s metadata. Apps should only change categories if the developer changes the app metadata.

Previously:

Uber Removes Watch App

Chris Welch:

Uber has quietly shut down its Apple Watch app, with the software now showing a message that instructs people to “please switch to the Uber mobile app.” The company is “no longer supporting the Apple Watch app,” according to the text, which ends with Uber apologizing for any inconvenience caused by the app’s discontinuation. There’s also a sad face emoji to drive that sentiment home.

[…]

On the one hand, this is another example of smartwatches continuing to shed apps — even those that are massively popular and borderline essential on a phone — that aren’t core to their purpose(s) of fitness tracking, notifications, music playback, and so on. I’ve long had Uber installed on my Apple Watch, and I don’t think there was a single occasion where I hailed a ride from my wrist.

[…]

But it also goes to show that, in some ways, smartwatches are only moving further away from being able to serve as a standalone smartphone fill-in — even temporarily.

I wonder whether this is because the apps didn’t get much use, with people preferring the app on the phone that they carry anyway, or because no one seems to like the experience of developing and testing for watchOS.

Jesse Squires:

I think many apps simply don’t make sense on the watch. I would not install any of the above apps, for example. But even apps that do seem to belong on Apple Watch remain awful. In my earlier post, I mentioned how RunKeeper was no match for the built-in Workout app. RunKeeper is glitchy, flakey, and has a significantly inferior UI compared to the Workout app.

At this point, the only third-party watch app that I have installed is Spotify.

Previously:

Update (2022-01-17): Casey Liss:

Having spent a LONG time last year futzing with watchOS, I can tell you that in my experience, the limits are still that bad. As is the dev experience.

Perhaps others feel differently, but I shit-canned an entire app because the watchOS experience turned me off that much.

iCloud Private Relay Incompatible With T-Mobile Parental Controls

Chance Miller (tweet):

Earlier today, a report indicated that some European carriers were blocking the Private Relay feature introduced by Apple with iOS 15. This feature is designed to give users an additional layer of privacy by ensuring that no one can view the websites that they visit.

Now, in addition to some carriers in Europe, it appears that T-Mobile/Sprint in the United States is also blocking iCloud Private Relay access when connected to cellular data.

Juli Clover:

iOS 15.2 did not introduce a bug that turned iCloud Private Relay off for some users, Apple said in a statement that was provided to MacRumors. The statement was in response to a T-Mobile claim that iOS 15.2 had automatically toggled the iCloud Private Relay feature off for some users.

[…]

Apple also said that no carriers, including T-Mobile, have blocked their users from taking advantage of the iCloud Private Relay feature.

[…]

T-Mobile also said that customers who have plans and features that use T-Mobile content filtering, such as parental controls, do not have access to iCloud Private Relay in order to allow these services to work as designed. It is not entirely clear why some T-Mobile subscribers were having issues, but customers who are not using content filtering should be able to use iCloud Private Relay as expected.

[…]

At least some of the confusion over T-Mobile and iCloud Private Relay may be related to the wording of the setting in the current version of iOS 15.2, which says that iCloud Private Relay is not carrier supported even if the feature is actually toggled off by the user in the cellular settings.

That wording sounds like it’s right up there with App Store support telling customers to ask the developer for a refund.

Previously:

Update (2022-01-17): Rosyna Keller:

Apple has updated the iCloud Private Relay support document to help clarify some of the problems users experienced.

Specifically, that you can toggle Private relay on or off per-network (cellular data, specific wi-fi networks, et cetera)

Wednesday, January 12, 2022

Catching Native Apps

Daniel Jalkut, in 2010:

If you imagine a world where the sum of all things you can do with a computer is exactly matched, and locked down for all time with what you can do inside a browser, then the arguments for the web are persuasive. Why write for a specific platform when you can write for all platforms at once and gain the other advantages as well?

The error is in disregarding the many unmatchable attractions of “the desktop.”

[…]

But if I want to write a truly great app, it has to be a desktop app. And this will be true forever, or until there is no difference between the web and the desktop.

Daniel Jalkut:

Apple fixed the hardware problems with the Mac, now they must address software. We need M1-level software platform differentiation, and three competing app frameworks won’t create it. Are they even aware how tentative their footing in consumer software is? They’re not showing it.

12 years ago, I wrote “Can’t Catch Me”, wherein I proclaimed with confidence that the Mac would continue to outpace web platforms. That cockiness presupposed a much greater level of commitment from Apple than we’ve seen.

Since then, Apple has slowed the pace of improvements to the frameworks for writing native Mac apps. It added technical (sandboxing, TCC, SIP, kernel extension restrictions) and policy (App Review) roadblocks that make it harder to develop apps that go beyond what can be done with Web technologies. Apple switched to an annual release cycle, increasing the proportion of time native developers spend testing and working around bugs. For the most part, that doesn’t affect Electron apps, which are insulated from the OS with a layer of middleware, or apps that don’t take advantage of OS-specific features. And it doesn’t affect apps that run purely in the browser. So it has the effect of holding back the types of apps that push the envelope, that increase the distance between Web and desktop.

Meanwhile, Apple is no longer leading by example, at least not in a good way, as its recent Mac apps have been Catalyst ports or weird hybrids that feel more Web or iOS than Mac. Former role model apps were rewritten for iOS, then brought back to the Mac, losing features and desktop-oriented design in the process.

Automation has been a major platform-specific advantage. We once hoped for a successor to AppleScript; now we are grateful that it is at least still on life support. Automator never got much follow-through. Shortcuts for Mac is finally here but is currently rough and lacking some capabilities of the iOS version. The Mac’s Unix layer has been withering, and built-in scripting languages are being removed. Developer tools used to come free on a CD with the OS. Now, you need a paid account to ship an app that isn’t accompanied by a malware warning, and even then you have to upload each build to Apple first. Web app developers don’t need permission to deploy their code.

Apple stopped maintaining an online directory of Mac apps, so it’s harder for customers to find what’s available if it’s not in the Mac App Store. The more distance there is between your app and what a Web app could do, the less likely it is to be allowed in the store. (Even for apps in the store, browsing is more difficult than with the old directory.) Apple also stopped offering affiliate commissions on apps, reducing the incentives for third-party coverage that would help people find a Mac-only app. Web apps, however, get to share marketing across multiple platforms, and they don’t have to pay Apple 30%.

In short, it feels like the distance has closed somewhat since 2010. This is partially because Web technologies got better, but also because of inattention and poor incentives from Apple.

Daniel Jalkut:

To head off any critics who might ask, “OK, smartass, what would YOU do to improve the Mac as a platform?” I say: I don’t know, I look to historic innovators like Apple for that. I would probably start by picking three intrinsic advantages of web apps and strategize against them.

Ilja A. Iwas:

Never gonna happen, but:

  • provide means for updating/crash catching of non-MAS apps
  • provide means for paying/licensing of non-MAS apps
  • make cross-device document storage suitable for shoebox-style apps the default (indexing, full text search, conflict handling just work)

[…]

Isn’t it ironic how the Mac App Store promised a quick, secure, and easy way for developers to get their apps discovered, installed, and paid for - and it turned out to be the exact opposite with its sandboxing requirements, malware infestation, and bogus review process.

Jesse Grosjean:

Uggh electron. I’m now getting bug reports for my Mac app that the keybindings don’t work like windows.

Craig Hockenberry:

This past summer we narrowly avoided a major user interface regression on Apple devices. The story ended well, but I think it’s important to look back on the situation and ask a simple question:

Why did this happen in the first place?

My answer is something I call “consistency sin”. Understanding the cause lets us avoid similar situations in the future.

Previously:

Update (2022-01-14): See also: Hacker News.

Update (2022-01-17): Steve Troughton-Smith:

I think a big part of what Apple needs to do is give AppKit apps an onramp to the future of Apple’s universal app ecosystem. SwiftUI is decidedly not that, and I think that’s a huge mistake. The Mac is going to be minimized further when Apple’s next major OS/platform ramps up

Ken Harris:

My 2¢:

  1. Documentation: Apple’s is the worst of any platform I use.
  2. Bugs: fix ’em. Also, the secret bug tracker is stupid.
  3. @SwiftLang: make it good on every platform; nobody wants an(other) OS-specific language.

Update (2022-01-24): Francisco Tolmasky:

I think the history of tabs serves as a fascinating case study of how Apple’s neglect for its own UI frameworks assisted the rise and acceptance of cross-platform frameworks like @electronjs and the corresponding decline in the importance of “nativeness” and “the HIG”.

[…]

Apple did eventually end up adding an API for tabs to AppKit, but not until 2017, 12 years after they shipped their first tabs in Safari! By that point, it was more of a pain to convert legacy code than anything, and it wasn’t helped by a woeful lack of documentation.

For a long time, the best resource on how to use AppKit’s tabs was a single WWDC video. And of course, being new, it lacked many of the features existing apps had already implemented.

[…]

In the last decade, macOS has slowly been allowed to degrade into an environment where there are increasingly fewer downsides to counteract the benefits of going non-native, and that’s not on developers. It’s been a long time coming, and it isn’t going to be easy to fix.

Update (2022-01-25): Colin Cornaby:

Apple has made the Mac experience much more web like. And that makes it easier to ship a Mac app as a web app.

Back in the day, Mac apps used to have a lot of rich behaviors that were best exposed by system frameworks. Stuff like sheets, utility panels and windows, rich customizable toolbars, etc. As those were all striped away, it provided less of a reason to use the system frameworks.

I think there is a decent argument that this maybe traces back to the iOS-ification of the Mac experience. Apple trying to unify the macOS UX with the iOS UX lead to a lot of those behaviors being stripped out, as they weren’t as easily implementable on an iPhone or iPad.

[…]

Also in case it wasn’t clear: Catalyst and iPhone apps on Mac are clearly not solutions to this problem, and may be exacerbating this problem. These frameworks should probably exist but the core Mac experience should not be built around them.

Alexander Griekspoor:

Yeah, unfortunately the calendar APIs are a good example where things have gone wrong with Apple loosing interest in devs and purely focusing on making the features ship before wwdc.. 😢 None of the stuff they added in recent years made it into the dev API.

[…]

Of course the big problem here is that if you can’t do more than what Apple has thought of for their Apps, you can’t expect to innovate beyond what’s there either. […]

Sadly, at first instance this might even lead to Apple believing that they are the only ones out there doing real innovation, not seeing that this and things like the sandbox simply curbs us developers. Ultimately it will simply mean a dead by a thousand cuts…

If even die-hard Apple devs like myself start to long back to the web world where your creative idea is just one upload away from anyone who can type a web address (just like it felt to make Mac apps for OSX in 2001), it should raise alarm bells, but I doubt it does in Cupertino.

Update (2022-02-11): Orta Therox:

I love the care & attention in solid native apps but on the Mac I only use ~4 3rd party apps now.

As the Mac becomes more iOS-y, x-plat apps have made regularly switching between Linux easier.

It’s a trade of polish/convenience for long-term value alignment.

Which is a shame because I have the strongest value alignment with the sorts of folks who make native apps, and I’m very happy to pay for good software.

Yet they don’t have much say in how the OS and ecosystem shift, and everyone has to adapt in their own ways.

Jeff Johnson:

One reason why people “live in the browser” is that Apple has totally undermined the native Mac software ecosystem. The crap store race to the bottom. Gatekeeper. Notarization. Catalina Vista TCC, implementing what Apple parodied in “Get a Mac”.

Look at the flaming hoops you have to jump through just to install Audio Hijack on M1 Macs. It’s absurd!

No wonder people live in the browser. Apple doesn’t let you live anywhere else.

Previously:

Wordle Clones

John Gruber:

Apple’s App Store is lousy with Wordle rip-offs. I mean not just the concept — there’s a long history of “guess the word” games, including a defunct game show called “Lingo” that was clearly an inspiration for Wordle — but literally the name “Wordle” and its design. As observed by Greg Karber, as I write this, the #3, #7, #14, and #15 word games in the iOS App Store are shameless Wordle clones stealing the name “Wordle”.

[…]

And then we get to the real gem of the bunch. “Wordle - The App”, by Zach Shakked, a free-to-download app with a 30-fucking-dollar-per-year “Pro” unlock. Shakked’s rip-off doesn’t just steal Wordle’s name, design, and mechanics, its “The App” suffix clearly was chosen to make it look like the official App Store version of Wardle’s original.

Apple removed the ones using the “Wordle” name last night.

Previously:

Update (2022-01-24): John Gruber:

Some good rules of thumb, if you’re weighing whether a derivative new work crosses the threshold into ripping off the original: If the derivative steals the original’s title or name, that’s a rip-off. If the derivative is designed to confuse people into thinking it is the original — as Shakked’s Wordle clone clearly did — that’s a rip-off. If the derivative is indistinguishable from the original or brings nothing new to the table, it’s probably a rip-off.

[…]

When last week’s controversy erupted, I watched some footage of Lingo, and rolled my eyes at the “Wordle is just a rip-off of Lingo” allegations. Yes, both games are about guessing five-letter words. But a game show where you compete against other contestants and against a clock “smells” quite different from Wordle’s solo gameplay and leisurely “take as much time as you want” pace.

Turns out Lingo isn’t just a TV game show, though. It’s an officially-licensed video game — in both the App Store and Play Store. David Barnard was the first person I saw who pointed to the official Lingo game, tweeting thus[…]

Update (2022-03-07): Chaim Gartenberg:

The Wordle clones are back on the App Store, just a few weeks after Apple wiped out nearly all the copycat games in January.

[…]

None of the new games are actively passing themselves off as Wordle — at least, not in name. Instead, the clones have creatively rebranded to “Wordus,” “Word Guess,” “Wordl,” and other thinly veiled references to the original game. But all of them offer some variant on Wordle’s gameplay, down to the same gameplay, UI, design, and color scheme.

Tuesday, January 11, 2022

First Impressions of web3

Moxie Marlinspike (Hacker News):

web3 is a somewhat ambiguous term, which makes it difficult to rigorously evaluate what the ambitions for web3 should be, but the general thesis seems to be that web1 was decentralized, web2 centralized everything into platforms, and that web3 will decentralize everything again. web3 should give us the richness of web2, but decentralized.

[…]

However – and I don’t think this can be emphasized enough – that is not what people want. People do not want to run their own servers.

[…]

If something is truly decentralized, it becomes very difficult to change, and often remains stuck in time. That is a problem for technology, because the rest of the ecosystem is moving very quickly, and if you don’t keep up you will fail.

[…]

One thing that has always felt strange to me about the cryptocurrency world is the lack of attention to the client/server interface. When people talk about blockchains, they talk about distributed trust, leaderless consensus, and all the mechanics of how that works, but often gloss over the reality that clients ultimately can’t participate in those mechanics. All the network diagrams are of servers, the trust model is between servers, everything is about servers. Blockchains are designed to be a network of peers, but not designed such that it’s really possible for your mobile device or your browser to be one of those peers.

[…]

This was surprising to me. So much work, energy, and time has gone into creating a trustless distributed consensus mechanism, but virtually all clients that wish to access it do so by simply trusting the outputs from these two companies without any further verification. It also doesn’t seem like the best privacy situation. Imagine if every time you interacted with a website in Chrome, your request first went to Google before being routed to the destination and back. That’s the situation with ethereum today.

Joe Groff:

Maybe people don’t want to run their own servers, but they also don’t want to run their own clients. Part of the allure of iOS, Chrome OS, etc. was centralized admin—immutable OS, automated updates, etc. Could server software do that too, without centralized hardware?

Brandon Skerritt (via Hacker News):

I think was this a fair article that accurately portrays some parts of web3 at this given moment in time.

[…]

I just thought I’d write this and explain what’s being done to fix this and go further.

[…]

There is some genuinely cool tech being worked on here, but due to the monetrary aspect there are scams up to my eyeballs. And those scams make the whole industry look bad.

Alex Ivanovs (via Hacker News):

I will say that by no means am I discounting passionate people who work in this space. Blockchain and security is something I can advocate for. Because it has a promising future to help keep our digital identities sealed. This is interesting to me.

But in its current state, Web3 is as disorganized as it is complex and difficult to grasp. Why would the average citizen of the world care about strings of numbers, hash rates, proof of stakes, sharding, or digital inception of pixelated art.

Adi Robertson:

In the online auction market OpenSea, you can pay around $600 to buy a portrait of a robot in streetwear — and, if you’re lucky, a stake in a new media empire.

The robot is called a TARS, and it’s part of the Voguverse, an elaborate 37th-century mythos involving space arcologies, a nuclear war, and interstellar travel. The portrait is one of countless digital assets being sold as non-fungible tokens, or NFTs. But by pairing its fictional universe with a blockchain-based ledger, the creators think they can tap into a new way to tell stories.

As NFTs explode in popularity, entrepreneurs are imagining an entire media industry that’s built around them. At its most ambitious, the vision is sometimes dubbed a “decentralized Disney”: a world of fictional crossovers like the Marvel Cinematic Universe and its many spinoffs but where different characters and creative properties are owned by a panoply of fans, not a single company.

Lukas Schor:

Apple is blocking a release of our @gnosissafe mobile app because we display NFTs in it. After 2 weeks of back-and-forth, I felt that we need to talk publicly about this to raise awareness.

Ben Thompson:

One of the reasons that crypto is so interesting, at least in a theoretical sense, is that it seems like a natural antidote to Aggregators; I’ve suggested as such. After all, Aggregators are a product of abundance; scarcity is the opposite. The OpenSea example, though, is a reminder that I have forgotten one of my own arguments about Aggregators: demand matters more than supply.

To that end, which side of the equation is impacted by the blockchain? The answer, quite obviously is supply. Indeed, one need only be tangentially aware of crypto to realize that the primary goal of so many advocates is to convert non-believers, the better to increase demand. This has the inverse impact of OpenSea’s ban: increased demand increases prices for scarce supply, which is to say, in terms that are familiar to any Web 3 advocate, that the incentives of Web 3’s most ardent evangelists are very much aligned.

Previously:

Update (2022-01-13): Stephen Diehl (via sirdigby, Hacker News):

At its core web3 is a vapid marketing campaign that attempts to reframe the public’s negative associations of crypto assets into a false narrative about disruption of legacy tech company hegemony. It is a distraction in the pursuit of selling more coins and continuing the gravy train of evading securities regulation. We see this manifest in the circularity in which the crypto and web3 movement talks about itself. It’s not about solving real consumer problems. The only problem to be solved by web3 is how to post-hoc rationalize its own existence.

[…]

On a compute basis, blockchain networks don’t scale except by becoming the very same plutocratic and centralized systems they allegedly were designed to replace. There is an absurd cost to trying to do censorship resistant computation. […] The Ethereum virtual machine has the equivalent computational power of an Atari 2600 from the 1970s except it runs on casino chips that cost $500 a pop and every few minutes we have to reload it like a slot machine to buy a few more cycles.

Update (2022-01-19): See also:

Update (2022-01-25): cdixon:

A recent criticism of web3 is that it isn’t actually decentralized, because there are centralized services in the mix, such as NFT marketplaces like OpenSea, and data availability services like Alchemy.

This criticism is based on a mistaken understanding of what web3 advocates mean by decentralization. I’ll try to explain.

There will be centralized services in web3 just as there were in web1. The key question in web3 is whether the network effects accrue as private goods (as they did in web2) or public goods (as they did in web1).

AmpMe

John Gruber:

Kosta Eleftheriou has found another apparently multi-million-dollar-grossing app that’s been on the App Store for over three years: a shitty music “volume boosting” music player named AmpMe that costs $10 per week after the three-day trial. Thousands of obviously fake reviews, millions of dollars “earned”. Even worse: Apple has repeated featured this app in the App Store.

Thread.

There’s apparently no motivation to vet even the relatively small number of apps that are making millions, even before featuring them.

Harry McCracken:

15 years after the iPhone was announced, the fact that the App Store is both a walled garden AND a wild west is one of the great disappointments of this whole era.

Previously:

Update (2022-01-17): Jason Cross:

AppMe has responded to the criticism by lowering its subscription costs and vowing to look into its “outside consultants,” according to an email sent to The Verge. But if a high-profile Twitter thread is what’s needed to bring attention to the issue, the problem is clearly much bigger than one app.

Kosta Eleftheriou:

The developer admits their App Store page has been full of fake reviews for years while making millions, and Apple’s response is to now whitewash their page so that no-one will ever know this happened?

Welcome to the Wild Walled Garden, folks! 💸

Ben Sandofsky:

Googled for the App Store promo code API and the top advertisement is just depressing.

What’s the point in having reviews at all when this stuff exists?

Blue Bubble Envy Is Real

James Vincent (via Nilay Patel):

Google has accused Apple of benefiting from bullying as part of a deliberate strategy to make Android users into second-class citizens on the iPhone-maker’s iMessage service.

Apple’s messaging service includes a number of iOS-exclusive features, like Memoji, and famously turns texts from Android users green instead of the iOS-native blue. This has turned iMessage into a status symbol among US teens, creating peer pressure for young people to buy iPhones and sometimes leading to the ostracization of Android users. Showing up in a group chat as a green bubble has become, for some, a social faux pas.

[…]

Google’s intervention here is not purely altruistic, of course: the company would benefit hugely from Apple making iMessage available on Android. Google has also recently been pushing for the iPhone-maker to support next-generation texting standard RCS, which is intended to replace SMS and has already gathered support from major US carriers.

Nick Heer:

Is it 2019 again? That was the last time we had a spate of stories examining the plight of Android users texting friends with iPhones. There was the Fast Company exposé of teenagers’ “distaste” for green bubbles, that thorough investigation by the New York Post into the problem — featuring interviews with exactly one iPhone user who refused to date Android users, and one Android user who felt slighted — and there was Samsung’s ridiculous comeback attempt.

[…]

I have written before about how iMessage is a platform differentiator for Apple, but I do not think it is as bulletproof as either its biggest fans or extreme antitrust detractors believe. More to the point, I do not know anybody who uses just one messaging service.

The story keeps coming back because, social pressures aside, iMessage conversations with mixes of green and blue bubbles continue to not work as well as you’d think they could. Then again, the Messages experience with pure blue bubbles is pretty bad, too.

Bridger Maxwell:

I just want Apple to stop splitting group chats with Android users into a new thread every time someone replies

Francisco Tolmasky:

I’ve been out of the loop on this whole iMessage vs. Google thing… but I am fascinated by the fact that anyone is defending is iMessage. I just can’t believe anyone would ever say a single positive thing about iMessage if they’ve ever had to scroll up in that app.

Previously:

Update (2022-01-19): John Gruber:

There’s nothing teen-specific about iPhone users being annoyed at Android users in group chats. In fact, such complaints might be far more common among adults, because so many teenagers have iPhones they don’t encounter it as often. Last year I linked to a story from Mirin Fader’s Giannis: The Improbable Rise of an NBA MVP that claims former Milwaukee Bucks coach Jason Kidd made the entire team run because one player had an Android phone and messed up the team’s group chat. (For what it’s worth, the player in question claims the story isn’t true. It’s the fact that the story resonated that matters.) Here’s a story from October about pro golfer (and well-known oddball) Bryson DeChambeau messing up the U.S. team’s Ryder Cup group chat because he was the lone Android user.

[…]

In fact, these third-party messaging platforms exemplify the gaping hole in the center of the WSJ’s premise: iMessage’s extraordinary popularity in the U.S. is a global outlier. This story created a stir on Twitter over the weekend, and a very common refrain from observers who live outside the U.S. was utter bafflement that iMessage was popular anywhere, because other messaging services are so dominant elsewhere — including with iPhone users. iMessage is obviously only popular where iPhones are popular, but iPhones are popular in countries around the world where iMessage (and SMS) are seldom used.

[…]

A much simpler nutshell explanation is that teenagers have a keener sense of cool, and care more about what’s cool, than adults. And the iPhone always has been and remains today cooler than any Android phone. I don’t think that explains the entire situation very well either — it’s quite a bit dismissive of the fact that teenagers actually use the hell out of their phones and thus are perfectly positioned to want iPhones for the entirely practical and rational reason that they’re better, not just cooler — but it sure as shit is closer to the mark than talking about green vs. blue text bubbles.

[…]

What, pray tell, should Apple do or have already done differently?

Apple should make iMessage work better with SMS. There are a lot of things that could be made nicer or smoother if they wanted to.

Jason Snell:

When you look at the messaging landscape today, iMessage isn’t a colossus that dominates the world. In fact, I’d say that iMessage’s first decade is more of a failure than a success in terms of worldwide acceptance, user experience, and innovation.

[…]

Since Apple made that choice not to support Android, though, it’s probably safe to say that Apple never actually intended for iMessage to compete for instant-message domination over the rest of the world. […] iMessage’s role is to provide a solid, end-to-end encrypted service for the Apple ecosystem that (secondarily) can coexist with SMS messages so that iPhones can exchange messages with people who aren’t in Apple’s ecosystem. It works. It’s better than anything Google has attempted. The problem is, it’s not good enough.

[…]

The problem isn’t the failure of users to embrace buying pizza inside iMessage chats and turning sticker apps into the next big thing. The problem is that when it flopped, Apple seemed to react with what I’ll charitably call indifference, though it might be more accurate to call it denial combined with inflexibility. Instead of diagnosing the failure and seeing what was next, Apple did what it often does with its failures, which is to leave them to rust away and then make them quietly disappear.

[…]

But in the end, the real reason Apple should support RCS (as a green bubble, or perhaps a new color of bubble) is that it’s a more full-featured protocol that will mean that the experiences of everyone in mixed-platform environments–iPhone and Android users alike–will be better than they are currently.

Update (2022-01-25): John Gruber:

Apple has a tendency to either hit home runs out of the box (iPod, iPhone, AirPods) or come out with a dud and just sweep it under the rug, like iMessage apps and stickers. They even unified Messages on a single code base last year (bringing the iOS app to MacOS 11 via Catalyst — quite successfully) but somehow still haven’t bothered to add iMessage stickers on Mac?

Not so much rolling these days, at least on the software side.

Dan Moren:

Perhaps there’s an opportunity here for some light collaboration. Even if Apple doesn’t choose to implement the RCS standard being pushed by carriers and Google as a replacement for SMS, the company might at least find a way to add some interoperability for the two major mobile platforms in existence. Neither Android nor Apple are going away—they should at least learn to live with each other.

AirPods 3 Alternatives

Julio Ojeda-Zapata:

[There] are good reasons that the $199 Beats Fit Pro, not the $179 AirPods, may be your next Apple earbuds.

For an up-to-date comprehensive overview of the Apple earbud landscape, consult a mega-chart I created to compare features found on Apple and Beats audio products (including recently discontinued ones of historical interest).

[…]

That’s where you’ll find a physical button to deal with phone calls and music playback, as with the Studio Buds. This button is quite different from the force sensor squeeze controls found on the third-generation AirPods’ stem (and on the older, pricier AirPods Pro). I love the force sensor, and I find the Beats button a bit clunky and too easy to engage accidentally, but I’m getting used to it.

That stem absence makes the Fit Pro buds incredibly compact (and thereby easier to lose, so be careful).

They have Active Noise Cancellation.

I really like AirPods 3. It’s very comfortable yet stable, like the original AirPods, and works better for calls/Zoom and exercising than AirPods Pro. If I had to pick one, though, it would be AirPods Pro because of the ANC.

I’ve also been trying some of the less expensive alternatives, to test them with ToothFairy and also to see whether you get what you pay for.

The Mpow MX3 is only $25.89. It has Qi charging (along with USB-C) and IPX4 like AirPods 3. You can press and hold the top to increase (right bud) or decrease (left bud) the volume, double-tap to play/pause, or triple-tap to change tracks (right for next, left for previous). A tap and then hold activates Siri. A single tap answers a call, and a double-tap hangs up. The downsides are that the buds (and case) are huge and feel less secure in my ears and any of the AirPods. They also don’t auto-pause when you take them out of your ear.

The Mpow X3 is $49.99 and has ANC and IPX8 but no Qi charging. You have to manually enable the ANC (press and hold the right bud) for each session, which gives you an annoying spoken confirmation, and it doesn’t reduce the noise as much as AirPods Pro. The case is smaller, but still much larger than an AirPods case. It’s difficult to slide the earbuds out of the case.

The main Apple advantages:

So, basically, the Mpow earbuds do work, but AirPods are certainly much nicer.

Some other alternatives with good reviews are:

Previously:

Monday, January 10, 2022

Converting from Aperture to Apple Photos

John Gordon:

Photos said it could not open the Aperture library. It did not say why.

I then regenerated full sized previews per Apple’s directions and I tried again. This time the import proceeded. I could see the Version of my original photo but not the original. I then chose Revert to Original and Photos displayed the original image. Then I tried "Undo Revert" but that did nothing. My Version was lost.

[…]

There does not appear to be any way to see the original image other than by reverting to original -- which cannot be undone. There also doesn’t seen to be any indication that an original exists!

Previously:

Has Time Machine Slowed for Small Files?

Howard Oakley:

The only common factor is that, when trying to back up folders containing seriously large numbers of very small files, some of which may be hard links, the rate of copying falls to ridiculously low numbers.

[…]

Looking back before 10.15.3, Time Machine never seemed to have problems with copying Xcode, or with the .DocumentRevisions-V100 folder. Exclude those, and anything like them, from backups now, and it performs well, even to a NAS via SMB.

[…]

Monterey introduced a new hidden feature in Time Machine: before making its first backup to a new backup set, backupd runs a speed test.

[…]

It’s unclear what Time Machine does with those results, or why it should perform the second test using many small files, unless Apple knows there’s a problem, perhaps.

I’ve been seeing this problem, too, except that it’s also triggered by small files that I do want to back up. I had to restructure my folders to prevent it from grinding away 24/7.

Previously:

Update (2022-01-25): Howard Oakley:

There’s another part to this, at least in M1 Macs, in that backupd threads must also be given sufficient % CPU to be able to take advantage of any release of that throttle. Having demonstrated how user threads can make best use of the Efficiency (E) cores in the M1 Pro, my next step was to inspect what happens during a backup using powermetrics and the CPU History window. Here I was surprised to see that, while backupd accounted for around 90% active residency on each of the two E cores during a backup, those cores were largely running at 972-1332 MHz, around half their maximum frequency.

By default, then, Time Machine backups are run exclusively on the E cores, at economy mode to minimise power consumption, with an I/O throttle preventing them from accessing storage at normal speed. These limit it to backing up no more than 300-400 items/s, which in turn means that folders containing very large numbers of items will take a long time to back up.

Sadly, Apple doesn’t provide any options for the user to accelerate a backup, nor does backupd change its settings when it knows that there are a great many items to be copied.

Updating “Basic Computer Games”

Jeff Atwood:

From here, if you were lucky, you might have a cassette tape drive. If you knew the right commands, you could type them in to load programs from cassette tape. But that was an expensive add-on option with early personal computers. For many of us, if we wanted the computer to do anything, we had to type in entire programs from books like 101 Basic Computer Games, by hand... like so.

[…]

There was a half-hearted attempt to modernize these early BASIC programs in 2010 with SmallBasic, but I didn’t feel these ports did much to bring the code up to date, and overall had little relevance to modern code practices. You can compare the original 1973 BASIC Civil War with the 2010 SmallBasic port to see what I mean[…]

[…]

So it was with considerable enthusiasm that I contacted David H. Ahl, the author, and asked for permission to create a website that attempted to truly update all these ancient BASIC programs.

The project is here.

Avast Antivirus Software Sold Browsing History

Nick Heer (in 2020):

Avast’s web browser extensions were caught collecting every website users were visiting for sale by its Jumpshot subsidiary. Those extensions were pulled and the company insisted that the information had no personal information attached[…]

[…]

Of course, Avast knows de-anonymization is trivial. That’s why it sells an anti-tracking product that explicitly promises to “disguise your online behavior so that no one can tell it’s you” for just $65 per year. That’s nice of Avast: it will sell your identity, and also sell you a product that promises to prevent companies from selling your identity.

[…]

Update: Avast has announced that they are shutting down Jumpshot.

Previously:

Saturday, January 8, 2022

Why “utf8” in MySQL Is Not UTF-8

Florian Köhler (via Ken Harris):

For whatever reason, a few months later, in September 2002, a MySQL developer decided to push a one-byte commit UTF8 now works with up to 3 byte sequences only to the repository and change the allowed bytes from six to three.

Since then, the character set called utf8 has been a crippled and proprietary variation as it neither conforms to the old nor the new definition (RFC 3629) of UTF-8. The misleading name still causes issues today.

[…]

To remediate this mistake MySQL added the utf8mb4 charset in version 5.5.3. utf8mb4 fully implements the current standard. Now utf8 is an alias for utf8mb3 and will be switched to utf8mb4.

Update (2022-01-13): See also: Hacker News.

Programmatic Podcast Ads

Ashley Carman:

All the industry’s major players have, over the past two years, acquired companies focused on one feature: inserting ads into podcasts.

[…]

The industry is sprinting toward this programmatic advertising future. However, there are some obstacles along the way, and podcasters are already running into them. The Verge has identified multiple examples of programmatic advertising going wrong, according to sources who asked to remain anonymous over concerns of fraying industry relationships. Ads are showing up in places they shouldn’t, signaling not so much a death knell for the effort, but more of a warning that if the trend continues, early trust between podcast networks and tech companies could fall apart.

[…]

Prior to this programmatic movement, most podcasters and their sales teams peddled host-read ads baked into a show, meaning they were read, included, and never taken out of an episode. That changed with dynamic ad insertion, which still could work as a host-read ad, but instead of living in a show forever, the ads switched out, hence the “dynamic” wording. Then came programmatic, which relies on dynamic ad insertion with an automated twist. The big idea is advertisers can buy a number of impressions targeting a certain audience, and the ad serving technology will automatically carry out the order across shows and networks, finding the best audience for that marketing at the best price.

Via Marco Arment:

Old-fashioned podcast ads (baked-in host reads) have had better CPMs, stronger response rates, and higher audience trust than almost any other form of advertising for over a decade.

And large podcast companies threw that world away for… a worse outcome.

John Gruber (tweet):

Even when the “right” ads are dynamically inserted, the ads are inevitably going to be bad. We know how this story ends because we all use the web and can see with our own eyes the quality (and oppressive quantity) of “ad tech” advertising.

[…]

“The ads are part of the product” succinctly sums up my thinking, and saves me from writing an extended rant.

[…]

But without a model for advertising in RSS, most websites — particularly big websites from established media companies — stopped publishing RSS feeds. Podcasts avoided that fate because the sponsorship model, typically with hosts reading the ads, took root across the entire field.

Previously:

Norton 360 Now Comes With a Cryptominer

Brian Krebs (Hacker News):

Norton 360, one of the most popular antivirus products on the market today, has installed a cryptocurrency mining program on its customers’ computers. Norton’s parent firm says the cloud-based service that activates the program and allows customers to profit from the scheme — in which the company keeps 15 percent of any currencies mined — is “opt-in,” meaning users have to agree to enable it. But many Norton users complain the mining program is difficult to remove, and reactions from longtime customers have ranged from unease and disbelief to, “Dude, where’s my crypto?”

Yes, really. My guess is that with most GPUs and electricity providers this would not even be profitable for the user.

See also: Bruce Schneier.

Previously:

Lawsuit Alleges Google Paid Apple to Stay Out of Search

Philip Elmer-DeWitt, quoting Bernstein (via Dave Mark, Hacker News):

We now forecast that Google’s payments to Apple might be nearly $15B in FY 21, contribute an amazing ~850 bps to Services growth YoY, and amount to ~9% of company gross profits.

[…]

We have noted in prior research that GOOG is likely paying to ensure Microsoft doesn’t outbid it. That said, with payments likely to approach $18 – $20B in FY 22, it not implausible that Google could revisit its strategy.

Tim Hardwick:

Google’s agreement with Apple in the search and advertising markets has been in place for over a decade, but with Google’s search engine dominance coming under increasing scrutiny in recent years, Bernstein analysts believe the agreement could face a regulatory risk.

Tim Hardwick (tweet, Hacker News):

Apple has an agreement with Google that it won’t develop its own internet search engine so long as Google pays it to remain the default option in Safari, a new class action alleges.

Filed in a California court earlier this week against Apple, Google, and their respective CEOs, the lawsuit alleges the two companies have a non-compete agreement in the internet search business that violates US antitrust laws.

[…]

The class action also alleges that Google pays Apple annual multi-billion-dollar payments based on an agreement that Apple won’t launch its own competing search engine, and that the non-compete agreement includes plans to actively suppress smaller competitors and acquire actual and potential competitors.

Nick Heer:

This is one hell of a lawsuit; you can read the complaint here (PDF). Unlike many antitrust suits, it does not argue solely that Google’s presence as the default browser on all of Apple’s platforms — and its multibillion-dollar annual payments for its position — is illegally hampering competition. Rather, it claims that Apple has agreed not to develop a search engine to avoid giving Google any competition. It also says that Tim Cook derived personal bonuses based on this agreement.

Jeff Johnson:

The Search Preferences in Safari for Mac contains a list of search engines, such as Bing, DuckDuckGo, and Google, from which you can pick one as your default search engine. But what if you want to use multiple search engines in Safari? It turns out that you can! The same preference pane also contains a little known feature, Enable Quick Website Search.

[…]

When you click the “Manage Websites…” button, you see a list of sites. You can remove any sites you want from the list, but unfortunately you can’t add any sites from this menu. You have to visit a site and search for something, then hopefully Safari will save that site in the list.

Previously:

Friday, January 7, 2022

Every Mac OS Welcome Video

TechieFreddie (via Dave Mark):

macos used to have intro videos, here’s their history!

These are the videos that would play during installation, from Mac OS 8 through Snow Leopard.

Previously:

A Guide to NSButton Styles, 2022

Kuba Suder (tweet):

It was hard to figure out the purpose and intended use of each kind of button, and there were hardly any clues inside Xcode itself. So I decided to do some research to find some tips about what each button is for. I put together information I found in the old-style Apple docs and the Human Interface Guidelines, I also looked through Apple’s system apps to see which buttons are used in what contexts, and I even peeked inside some apps using Interface Inspector.

[…]

In this second edition, I’ve replaced all old screenshots with new ones in Retina quality (I even installed a Mavericks VM in VirtualBox to get 2x pictures from there!), and I added a new set for Big Sur and Monterey. In some cases there are even separate versions for Yosemite and Catalina, because I’ve noticed that a few things were tweaked during that macOS era. I also added new content about new kinds of buttons and features introduced in recent years, clarified and expanded a lot of descriptions, and added some additional examples. I also went through Apple’s own apps and looked inside some of them again, this time using Xcode view debugger with SIP turned off (thanks to Tim Oliver for the tip!).

Previously:

Facebook App Reads Accelerometer Data

Zak Doffman (via John Wilander):

Facebook goes even further, using the accelerometer on your iPhone to track a constant stream of your movements, which can easily be used to monitor your activities or behaviors at times of day, in particular places, or when interacting with its apps and services. Alarmingly, this data can even match you with people near you—whether you know them or not.

Just like the photo location data, the most serious issue here is that there is absolutely no transparency. You are not warned that this data is being tracked, there is no setting to enable or disable the tracking; in fact, there doesn’t seem to be any way to turn off the feature and stop Facebook (literally) in its tracks.

Researchers Talal Haj Bakry and Tommy Mysk warn that “Facebook reads accelerometer data all the time. If you don’t allow Facebook access to your location, the app can still infer your exact location only by grouping you with users matching the same vibration pattern that your phone accelerometer records.”

Ben Savage:

Fraud detection stuff. Hard to fake a realistic accelerometer and similar signals if you’re sending in bogus ad clicks that never happened but were just generated on a server somewhere.

Previously:

Key M1 Mac Engineer Departs Apple for Intel

Juli Clover (Hacker News):

Apple’s former Director of Mac System Architecture Jeff Wilcox this week announced that he has left Apple to take on a new role at Intel. As noted on LinkedIn (via Tom’s Hardware), Wilcox was part of Apple’s M1 team and he had a key role in the transition from Intel chips to Apple silicon.

Wilcox’s profile says that he “led the transition” for all Macs to Apple silicon, and prior to that, he developed the SoC and system architecture for the T2 coprocessor used in Intel Macs.

Previously:

Update (2022-01-13): Juli Clover:

Microsoft has hired Mike Filippo, a semiconductor designer who formerly worked at Apple as a chip architect, reports Bloomberg. Microsoft is aiming to further expand on chip designs for the servers that power its cloud computing services, and at Microsoft, Filippo will be working on processors for Azure servers.

Cydia Lawsuit Against Apple Dismissed

Joe Rossignol:

Judge Yvonne Gonzalez Rogers today granted Apple’s motion to dismiss a lawsuit filed against the company by Jay Freeman, creator of an alternative App Store known as Cydia for “jailbroken” iPhones and iPads.

Previously:

Update (2022-05-31): Tim Hardwick:

Apple in January 2022 had its motion to dismiss the lawsuit granted by U.S. district judge Yvonne Gonzalez Rogers, who agreed with the company that the claims in the first lawsuit were outside the statute of limitations. However, the judge allowed Freeman to bring a new complaint, which has now been accepted, according to Reuters.

Freeman’s lawyers argued in the amended lawsuit that Apple’s technology updates between 2018 and 2021 were “overt” acts that harmed iOS app distributors such as Cydia. The changes that Apple implemented in iOS are described as “more aggressive” and designed to prevent Cydia and other alternative app stores from providing “useable” apps for iPhones.

Wednesday, January 5, 2022

Wordle

Peter Hosey:

Wordle is a word puzzle game by Josh Wardle. The game is this:

  • Every day, there is a new five-letter word to guess. The word changes every day at midnight.
  • You have six tries to figure out what the word is.
  • In each of your guesses, the game highlights which letters were right but in the wrong place (in yellow) and which were right and in the right place (in green). (There’s also a color-blind mode that changes the color assignments to blue and orange, respectively.)

If you guess the word, the victory screen includes (at least on some browsers; it doesn’t show up on my iPad) a Share button that gives you the spoiler-free emoji representation of how you did.

John Gruber:

It’s fun and simple, and the fact that you can do one and only one puzzle per day is a huge part of the charm. It’s a habit, not an addiction, and feels like a wee bit of mental calisthenics to start the day.

Update (2022-01-17): See also: Josh Centers.

Using Kaleidoscope with XCTest Failures

Florian Albrecht:

Kaleidoscope 3.1.3 and later can show XCTest failures in that format for you! No further trick or conversion is needed. Kaleidoscope parses the incoming content and automatically splits it into A and B parts, so the exact differences can be seen instantly.

You can drag and drop from Xcode’s issues navigator to Kaleidoscope’s Dock icon.

Xcode goes to great lengths to provide specialized previews for user interface code, playgrounds, etc., but its tools for viewing unit test output are so primitive. I’ve long used a wrapper for XCTAssertEqual that prints the expected and actual values on separate lines, so that at least they line up and you can more easily see the differences. It can also optionally diff them to help find the interesting lines. This Kaleidoscope feature goes further by highlighting differences within a line.

Encoding and Decoding References with Codable

Guilherme Rambo:

The CodableReference property wrapper implements Codable and takes care of encoding only the id of the wrapped value, and decoding the id and resolving the reference when it’s being decoded.

There is a missing piece of the puzzle though: how do we figure out which Category corresponds to any given category ID when decoding Post?

The solution I came up with was to take advantage of the userInfo property in JSONDecoder in order to provide the collection of models that the property wrapper can use while decoding.

Previously:

Parsing .numbers Files With Python

numbers-parser (via Hacker News):

numbers-parser is a Python module for parsing Apple Numbers.numbers files. It supports Numbers files generated by Numbers version 10.3, and all 11.x up to 11.2 (current as of November 2021).

[…]

Numbers uses a proprietary, compressed binary format to store its tables. This format is comprised of a zip file containing images, as well as Snappy-compressed Protobuf.iwa files containing metadata, text, and all other definitions used in the spreadsheet.

Previously:

obb: ClojureScript OSA

obb (via Zane Shelby, Hacker News):

Ad-hoc ClojureScript scripting of Mac applications via Apple’s Open Scripting Architecture.

[…]

ClojureScript code is evaluated through SCI, the same interpreter that powers babashka. SCI is compiled to JavaScript which is then by executed by osascript.

Tuesday, January 4, 2022

Search Engines and SEO Spam

Michael Seibel (Hacker News):

A recent small medical issue has highlighted how much someone needs to disrupt Google Search. Google is no longer producing high quality search results in a significant number of important categories.

Health, product reviews, recipes are three categories I searched today where top results featured clickbait sites riddled with crappy ads. I’m sure there are many more.

I’ve long been in the camp saying that Google’s search was way ahead. I’m not sure what’s happened, but in the last few months I’ve noticed a huge decline in the quality of its results. I now regularly repeat my searches with DuckDuckGo to make sure I’m not missing something. Sometimes the problem is SEO spam, where the page I want isn’t on the first page or two of results, but perhaps if I clicked Next enough times I would eventually see it. Other times, I’m searching for something rare, Google only finds a handful of matches, and it appears that the page in question is not even indexed.

frenchyatwork:

I think one of the fundamental things that make search work well about 1-2 decades ago was that web sites would link to each other, and that those links could vaguely correlate with reputation. There were link spammers, but there was actually a some decent organic content as well.

What’s happened since then is that almost all the normal “people linking to things they like” has gone behind walled gardens (chiefly Facebook), and vast majority of what remains on the open web are SEO spammers.

ijidak:

Because, years ago, linking to lower reputation sites would drain your page rank. So everyone worried about SEO became afraid to link to anything except: 1) Their own website 2) High reputation sites like NYTimes, etc.

Previously:

Exposure Notification Update, January 2022

Gerrit De Vynck and Cat Zakrzewski:

The tech giants managed to build and launch the “exposure notification” framework in months, a previously unheard-of level of collaboration for the rivals.

[…]

But nearly two years later, as the omicron variant sweeps across the United States, adoption of the system is still far behind what its creators and proponents envisioned. More than 20 states don’t use it at all, including large states like Florida and Texas that have reported millions of cases and tens of thousands of deaths. Even in states where millions have activated the notifications, only a fraction of people who test positive for the virus report it to the Apple and Google system. California’s system, for example, has been activated on more than 15 million devices, but only about 3 percent of the nearly 3.9 million cases reported since launch were logged in the system.

[…]

The apps are “not really talked about as part of the mitigation strategy,” said Kameka Dempsey, a co-chair of the Covid-19 Technology Task Force, a group of prominent technologists and venture capitalists working on efforts to combat the virus.

Anecdotally, there still seems to be little awareness of these apps outside of tech circles. And without lots of people using them they’re not very helpful.

Via Nick Heer:

Similarly, this Post report paints a bleak picture of the framework’s poor adoption in the U.S., which Karen L. Howard of the GAO blamed partly on a lack of privacy protections in U.S. law. But I have had a hard time finding similar information about other countries’ responses.

The Apple–Google exposure notification framework is the system adopted by national COVID apps in Germany, Ireland, and Switzerland, where there are much stricter data privacy laws than in the U.S., which has perhaps played a role in driving higher adoption rates. Even still, finding evidence that this framework has played a meaningful difference in this pandemic is hard to come by. Irish authorities were understandably proud of their country’s rapid adoption rate, but a report earlier this year found that only a quarter of cases in Ireland were registered in the app.

Previously:

Update (2022-02-11): Anthea Katelaris:

Now, almost two years after its launch in April 2020, we publish in The Lancet Public Health our evaluation of the app’s effectiveness and usefulness in New South Wales.

[…]

A total of 22% of cases were using the app. Most (61%) contacts the app registered as “close contacts” turned out not to be epidemiologically linked to a case. The app detected only 15% of true close contacts identified by conventional contact tracing.

In total, COVIDSafe detected only 17 additional true close contacts in NSW during the six-month evaluation period.

It caused substantial additional work for contact tracers and overall, did not make a meaningful contribution to the COVID response in NSW.

iCloud Private Relay White Paper

Apple (via John Wilander):

When Private Relay is in use, the user’s device opens up a connection to the first internet relay (also known as the “ingress proxy”). The software for the first internet relay is operated by Apple in locations around the world.

As the user browses, their original IP address is visible to the first internet relay and to the network they are connected to (e.g., their home ISP or cellular service). However, the website names requested by the user are encrypted and cannot be seen by either party.

The second internet relay (also known as the “egress proxy”) has the role of assigning the Relay IP address they’ll use for the session, decrypting the website name the user has requested and completing the connection. The second internet relay has no knowledge of the user’s original IP address and receives only enough location information to assign them a Relay IP address that maps to the region they are connecting from, conforming to the IP Address Location preference they selected in Private Relay settings. The second internet relay is operated by third-party partners who are some of the largest content delivery networks (CDNs) in the world.

[…]

To ensure only Apple devices and valid iCloud+ accounts can use Private Relay, the server performs device and account attestation using the Basic Attestation Authority (BAA) server prior to vending out tokens. To mitigate abuse, rate limiting restricts how many tokens a user’s device can retrieve per day.

Previously:

Update (2022-01-07): Nick Heer:

Compared to some of Apple’s more detailed technical documentation, this white paper has noticeable omissions.

Update (2022-01-13): Howard Oakley:

Despite its careful design, Private Relay still does have problems with certain sites and services. Where possible, Apple is preferring to advise the user when a connection can’t be made, rather than expecting the user to build and maintain an exception list. Otherwise the service now appears quite robust and performs well.

[…]

From what I see, iCloud+ Private Relay almost invariably wins when it comes down to trust. And the fact that I currently pay less than $/€/£ 1 per month for my iCloud+ service.

John Gruber:

iCloud Private Relay is still officially in beta, but it’s been so reliable for me that I had to check just now that I’ve got it enabled on all my eligible devices.

Thomas Karpiniec:

It is therefore uncomfortable to admit that one platform, in one key aspect, has become the best. I’m talking about Safari. Yes, that dinky browser that only works on one brand of computer and never seems to keep up with web standards. I now feel like I’m compromising severely if I have to use anything else. Why on earth is that? Aren’t all browsers basically the same? Well no, it’s all to do with iCloud+ Private Relay.

Siri Suggestions and Privacy

Jeff Johnson (tweet):

I have no interest in Siri, and I don’t want my devices to phone home to Apple with so-called “anonymous” data that always turns out to be less anonymous than claimed. I expected that the OS would respect my setup screen choice, and indeed if I look at the Siri pane in System Preferences, everything looks disabled.

[…]

At the very end you see Siri Suggestions, but you don’t want to click “Learn More…” because that’s the wrong thing. In typical Apple fashion nowadays, this spectacularly bad UI has a disclosure widget that you want to click to learn about Siri Suggestions.

[…]

I believe that I understand what this is saying, but the most confusing and maddening thing about it is that not only are the Siri Suggestions preferences themselves somewhat hidden, but the procedures — multiple procedures! — required to stop Siri Suggestions from phoning home to Apple are hidden in entirely different places. It’s like an obstacle course of apps, preference panes, and buttons.

It’s clearly not designed with the idea that you would want to turn off Siri Suggestions for privacy reasons, because there’s a separate checkbox for each app and you would have to remember to go back to the list each time you install a new app. The “Enable Ask Siri” checkbox looks like it might be a global killswitch for all Siri functionality, but it isn’t.

Previously:

Monday, January 3, 2022

External Retina Display Rumors for 2022

Parker Ortolani:

Rumors have started to pick up about a new more affordable Apple display that could come this year. Just this morning, Mark Gurman at Bloomberg reported that the company is indeed planning to release a display in 2022 that’s half the price of the Pro Display XDR. But the Pro Display XDR is $6,000-$7,000 leaving this rumored display to be around $3,500 still. This product isn’t what most of us are looking for. It’s not even out yet and most customers in the market for an Apple display have been priced out.

Tim Hardwick:

In related rumors, Twitter-based leaker @dylandkt last month claimed LG is developing three new standalone displays that may end up being for Apple, including one based on the current 24-inch iMac, one based on the upcoming 27-inch iMac, and a 32-inch model that may be a new Pro Display XDR with an Apple silicon chip.

I would rather see something based on the 2021 27-inch iMac display. The new iMac will probably be mini-LED. For many uses, that’s not worth the expense, and in some viewing conditions it actually looks worse due to blooming.

Adam Chandler:

I knew this was an issue going into both my iPad Pro and MacBook Pro purchases but in that same MacRumors article, it was mentioned that the blooming has been mostly fixed in these MacBook Pros. I can say it has not. More technically speaking, “16-inch offers 10,216 miniLEDs across 2,554 local dimming zones.” and the iPad Pro 13″ has, “10,000 mini LED grouped into four so 2,500 local dimming zones.” so the two are very close so I can’t see how anyone would think the issue would just go away.

Everyone knows Mini LED has this issue. Products from all companies have blooming complaints online but I think my issue here is that Apple went all-in on this technology from the $1300 iPad Pro up to the $4900 Pro Display XDR. MiniLED is something Apple is heavily invested in despite these short comings. How I fix it is to turn off ‘true black on apps like Reeder or various writing apps like ByWord. With true-black turned off, the issue is better. I can also turn on a light in my room and turn down the display which helps.

Previously:

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

However, all display technologies have tradeoffs, and the mini-LED design seen in the MacBook Pro is no different. Blooming is often discussed as a downside of mini-LED but funnily enough, I don’t see it crop up too much in how I use my computer. It’s there if you seek it out, but you really have to hunt.

As shown in the video above, a persistent niggle for me is the vignetting effect around the edges of the display. The extreme edge of the screen is just slightly darker all the way around, and it sticks out when the rest of the screen is uniformly bright.

[…]

OLEDs don’t exhibit the edge vignetting and have no blooming because each pixel is individually lit, but they bring their own issues like burn-in and jelly scrolling to contend with.

Almost Always Unsigned

Dale Weiler (via Richard Geldreich):

There are a lot of arguments against the use of unsigned integers. Let me explain why I think they’re mostly incorrect.

[…]

Trap representations are actually quite insufficient as they can only trigger at runtime when those paths are successfully executed with the correct trap-producing inputs. This coverage is impossible to expect in any non-trivial program even with exhaustive unit testing. The idea is also incompatible in many contexts such as library code where you almost never want the library to panic, but rather all errors be recoverable by the calling application code, or in service-availability sensitive code which must not be susceptible to denial of service attacks, where a panic is pretty much not acceptable.

[…]

The reality is that the use of signed and unsigned paints all your integers red or blue, respectively. What color is Your Function. The more of one you use, the more likely it is everything will also share the same signedness regardless of if it’s appropriate. Since most integers never require representing negative values, I personally think it’s more appropriate to paint everything blue in this case.

[…]

In many ways signed integers are the null pointers of integers.

Previously:

Hyper Thunderbolt 4 Hub

Joe Rossignol:

Hyper also announced what it claims is the world’s first Thunderbolt 4 hub with an integrated 100-watt GaN power supply. The hub features one Thunderbolt 4 upstream port for connecting to and charging Thunderbolt-equipped computers like Macs, while three Thunderbolt 4 downstream ports provide up to 40 Gbps of total bandwidth and support for connecting dual 4K displays at 60Hz or a single 8K display at 30Hz.

Previously:

Squeezing the Most Out of Bluetooth

Tom Parsons (Hacker News):

As I discovered during a recent conversation with Geaves and Eric Treski from the Product Marketing Team, much of the work in designing the new AirPods 3 revolved around trying to solve problems inherent in the brief to come up with a true-wireless in-ear headphone that crams into its tiny form next-gen technology such as Spatial Audio and ups the sound quality ante without resorting to a burrowing or noise-isolating design.

[…]

The so-called ‘Transparency’ modes of the AirPods Pro and AirPods Max are very impressive (as are many similar features offered by rival noise-cancelling headphones) but they can never sound as natural as a true open design. What’s more, an in-ear headphone that sits outside the ear canal is always going to be more comfortable than one that’s wedged into it. Personally speaking, I’m therefore glad that Apple has stuck with the non-burrowing design for the AirPods 3, even though doing so presented lots of challenges for Geaves and his team.

[…]

“Obviously the wireless technology is critical for the content delivery that you talk about”, he says, “but also things like the amount of latency you get when you move your head, and if that’s too long, between you moving your head and the sound changing or remaining static, it will make you feel quite ill, so we have to concentrate very hard on squeezing the most that we can out of the Bluetooth technology, and there’s a number of tricks we can play to maximise or get around some of the limits of Bluetooth. But it’s fair to say that we would like more bandwidth and… I’ll stop right there. We would like more bandwidth”, he smiles.

Nick Heer:

Given that AirPods Max and Apple Music’s lossless audio option were announced within six months of each other, yet were incompatible for bandwidth reasons, it seemed like something had to give. It felt like a plot hole in both products’ respective stories.

José Adorno:

If analyst Ming-Chi Kuo is right, Apple is probably adopting a new standard to offer Lossless support with AirPods Pro 2.

Previously: