Archive for April 2024

Tuesday, April 30, 2024

Ive Drives Icons

Louie Mantia (Mastodon):

It’s been 15 years since the original and 12 years since the sequel. Volume 3 contains a staggering 125 hard drive icons, comprising of 25 metal colors (most—if not all—of Apple’s modern product colors), with 5 varieties of each.

Beautiful external drive icons up to 1,024×1,024.

I’m not sure whether there’s a better way, but if you open the .icns file in Preview, you can Select All and Copy. Then if you Get Info on the drive and Paste it seems to apply all the image representations to the .VolumeIcon.icns file that it creates.

iPadOS Also a Digital Gatekeeper in EU

Tim Hardwick (Hacker News):

EU antitrust officials on Monday identified iPadOS, Apple’s operating system for iPads, as a significant digital gatekeeper under the EU’s new tech regulations, which carry strict requirements that aim to promote fair competition and expand options for consumers.

[…]

“Apple’s business user numbers exceeded the quantitative threshold elevenfold, while its end user numbers were close to the threshold and are predicted to rise in the near future.”

[…]

The Commission has now given Apple a six-month deadline to fully comply with the obligations set by the Digital Markets Act (DMA), which means we should expect enforced changes in iOS like alternative app marketplaces, web distribution, and alternative browsers to come to iPadOS as well in a forthcoming update.

John Gruber:

The “lock-in” is basically just features exclusive to Apple’s own platforms. I’m not even sure how Apple could possibly create a platform without “lock-in”.

On the other hand, iPadOS is clearly more of a marketing distinction than a technical one. It’s iOS under the hood, so I doubt it’ll be much trouble for Apple to apply its DMA compliance features from iOS to iPadOS. I would have been surprised if the EC had not decided to designate iPadOS a “gatekeeping” platform, and I’m guessing Apple itself is unsurprised as well.

See also: Jeff Johnson.

Previously:

Swift Proposal: Synchronous Mutual Exclusion Lock

SE-0433:

Not all code may be able (or want) to adopt actors. Reasons for this can be very varied, for example code may have to execute synchronously without any potential for other tasks interleaving with it. Or the async effect introduced on methods may prevent legacy code which cannot use Swift Concurrency from interacting with the protected state.

[…]

We propose a new type in the Standard Library Synchronization module: Mutex. This type will be a wrapper over a platform-specific mutex primitive, along with a user-defined mutable state to protect.

[…]

Mutex will be decorated with the @_staticExclusiveOnly attribute, meaning you will not be able to declare a variable of type Mutex as var. These are the same restrictions imposed on the recently accepted Atomic and AtomicLazyReference types. […] We do not want to introduce dynamic exclusivity checking when accessing a value of Mutex as a class stored property for instance.

[…]

Mutex is unconditionally Sendable regardless of the value it's protecting. We can ensure the safetyness of this value due to the transferring marked parameters of both the initializer and the closure inout argument.

On Apple platforms, this is based on os_unfair_lock, which is a bit tricky to directly use from Swift because you have to manage the memory for the lock yourself to prevent Swift from moving it. macOS 13 brought OSAllocatedUnfairLock, which is Apple’s implementation that handles this for you. Mutex is better still because it doesn’t need to allocate a separate block of memory for the lock.

Gwendal Roué:

My experience with Swift Concurrency might be somewhat particular.

[…]

And I’m not sure I’ll replace DispatchQueues with any Swift concurrency constructs any time soon, because a demanding user of SQLite won’t accept to be limited to strictly serialized accesses. SQLite supports concurrent database accesses, including parallel reads and writes. Indeed databases support concurrency in a way that is almost never found in any memory-based synchronization primitive: actors, mutexes, read-write locks are all too limited.

Final nail in the coffin: a demanding SQLite user expects to be able to perform synchronous database accesses at will (i.e. when needed) – just like the regular C API – without any risk of concurrency bugs. There’s currently no Swift concurrency construct that allows both sync and async accesses.

Kyle Howells:

I can’t help feeling Swift’s async, Actor, isolation system is a mistake.

Rather than making the safe thing the default, even if a bit slow, and making a slightly awkward API for a “fast mode” it makes most code think about async isolation most of the time.

Previously:

Losing Screen Time Settings

Craig Grannell:

Needed to turn off Screen Time temporarily. Apple: “bollocks to you, then”. Infers the set-up is wiped and has me start from scratch. I go through the set-up, and it merges the new one with what was already there. But the block set-ups have been randomly wiped.

[…]

It’s astonishing that this is the way things work. Because you cannot sign out a child’s device from iCloud without first disabling Screen Time. Which means when you sign that device back in, Screen Time is off and you have to set it up again.

That’s mad. It also suggests sufficiently senior people at Apple don’t have kids, don’t look after their kids, or don’t care about how much screen time their kids have on Apple devices.

And, kids aside, it’s sometimes necessary to sign out of iCloud for troubleshooting purposes. This should not discard any data.

My understanding is that the Mac version of Screen Time still counts time for apps that are in the background. I guess that makes sense in that otherwise it would be trivial to work around the limits for certain apps. But it makes the reports not very informative. Were you spending hours texting? Or did you leave a Messages window open because interacting with Messages notifications doesn’t work very well and you don’t want to keep quitting and relaunching the app?

Previously:

Hearing for Apple Violating Epic’s Injunction

games fray (PDF, via Michael Love):

Judge Yvonne Gonzalez Rogers of the United States District Court for the Northern District of California, who presided over the 2021 Epic v. Apple trial and made the ruling in question, has now reached the preliminary conclusion that Apple is presently out of compliance with the injunction, which could (if not resolved) result in contempt-of-court sanctions. Instead of holding only a short hearing on the matter which was scheduled for April 30, 2024, Judge Gonzalez Rogers has now scheduled a three-day evidentiary hearing for May 8, 10 and 17 in Oakland, California.

[…]

The hearing will serve the purpose of looking at what requirements Apple imposes on app makers, such as by looking at the sequence and appearance of on-screen messages and required user interface actions, and to discuss the commission Apple imposes on purchases made within seven days of clicking on an in-app link. It is possible that Apple will make some adjustments, but at this point the most likely next step is that Judge Gonzalez Rogers will, with or without further measures taken by Apple, hold Apple in civil contempt, and Apple will appeal her decision to the Ninth Circuit.

[…]

“[…] the Court FINDS that Epic Games has made a sufficient preliminary showing that, viewed holistically, Apple’s practice changes undermine the spirit of the injunction by limiting competition, impeding the free flow of information, and constraining user choice.”

Previously:

Google Lays Off Python Team

Sarah Perez (Reddit):

Ahead of Google’s annual I/O developer conference in May, the tech giant has laid off staff across key teams like Flutter, Dart, Python and others, according to reports from affected employees shared on social media.

zem:

in addition to contributing to upstream python, we

  • maintained a stable version of python within google, and made sure that everything in the monorepo worked with it. in my time on the team we moved from 2.7 to 3.6, then incrementally to 3.11, each update taking months to over a year because the rule at google is if you check any code in, you are responsible for every single breakage it causes
  • maintained tools to keep thousands of third party packages constantly updated from their open source versions, with patch queues for the ones that needed google-specific changes
  • had highly customised versions of tools like pylint and black, targeted to google’s style guide and overall codebase

[…]

we also acted as a help desk of sorts for python users at google, helping troubleshoot tricky issues, and point newcomers in the right direction. plus we worked with a lot of other teams, including the machine learning and AI teams, the colaboratory and IDE teams, teams like protobuf that integrated with and generated python bindings, teams like google cloud who wanted to offer python runtimes to their customers, teams like youtube who had an unusually large system built in python and needed to do extraordinary things to keep it performant and maintainable.

It seems like important work and that this team’s experience will be hard to replace.

HT News Desk (via Hacker News):

The company plans to set up a new team in Munich, Germany which would act as “cheaper” labour, the report claimed.

[…]

The US Python team reportedly had less than ten members and managed most parts of Google’s Python ecosystem, stability of Python at Google, updated with thousands of third-party packages and developed a type-checker.

Thomas Wouters (via Hacker News):

It’s a tough day when everyone you work with directly, including your manager, is laid off -- excuse me, “had their roles reduced”, and you’re asked to onboard their replacements, people told to take those very same roles just in a different country who are not any happier about it.

Previously:

Friday, April 26, 2024

Janky Apple ID Security

I had another instance of my Apple ID mysteriously being locked. First, my iPhone wanted me to enter the password again, which I thought was the “normal” thing it has done every few months, almost since I got it. But after doing so it said that my account was locked.

Unlocking the account would require a 1-hour Security Delay, it said, because I had Stolen Device Protection enabled, and I was not at one of my familiar locations. I was at home. But I went to Settings ‣ Privacy & Security ‣ Location Services ‣ System Services ‣ Significant Locations to check, and for some reason the only location in the list was the grocery store that I go to once every two weeks. It didn’t figure out the location of the home/office where the phone spends nearly all its time and which is identified as Home in Apple Maps, Contacts, and Find My.

So I went to my Mac, where there was no delay to unlock the account. However, unlocking didn’t work. It had me enter the password, texted a code to my phone, and then wanted me to enter the password again, but the sheet was broken. I typed the password and clicked Sign In, and the button stayed grayed out, showed a spinner, and then stopped, but it neither accepted the password nor showed an error. It just got stuck with Sign In disabled. Isn’t the new System Settings great?

(Several of the other Apple ID–related sheets have odd layouts and non-standard behavior. If I were not already familiar with this being the unfortunate status quo, I might worry whether they were fake UI trying to phish me.)

(The iPhone version of System Settings also got stuck in a weird state, where the Apple ID Suggestions screen was showing a spinner and a Continue button that didn’t work. And the whole app was inset with a black border around it. I had to force-quit it. And then it got stuck again the same way.)

The only thing to do was to click Cancel to get out of the sheet. Both of my devices kept popping up alerts about signing in to my Apple ID, and I still didn’t want to wait an hour, so I quit System Settings and relaunched it. I followed the exact same procedure as before to unlock my account, but this time it let me do so using my Mac’s password instead of sending a code to the iPhone. And this time the final sheet asking for my Apple ID password worked.

The good news is that the phone automatically unlocked and made the Apple ID services available again. I didn’t have to enter the new password there.

The bad news is that I had to choose another new password for this account. And everything about this process made me feel less secure. If Stolen Device Protection doesn’t work properly, is it going to cause me real trouble sometime? Maybe I should just turn it off. Is there any way I can run my devices without them relying on my Apple ID? Alas, I don’t think so.

(I have another Apple ID that I use on my test Macs, and for some reason it needs to be unlocked every time I use it to sign in to a new installation. I’ve never been asked to reset its password, though.)

Previously:

Update (2024-04-26): Dave Wood:

WTF #Apple. I’m minding my own business, and get an alert on my watch & phone. “Sign in with your AppleID”. Ok, why? I enter my password anyway. Then: Locked out. WTF? Then worse. I can’t unlock my account for an hour because I’m not at a familiar location. I’m home. Where I rarely leave. If my home isn’t familiar, where the hell is?

Vini Barauna:

Same exact thing happened to my wife’s account earlier today.

Adam Chandler:

Both of my apple IDs just got locked and hour ago. Passwords were over 2 years old so okay, that’s probably for the best but I changed the first one while taking off from Atlanta and then when I landed in charlotte, my other one also wanted to be changed. Did it on iPad since the lock was active on my iPhone. I have 2 Mac’s at home that will need to be updated to the new passcode when I get home. I thought it’s just because I was out of the country and Apple flagged both.

nickf:

Not 20 minutes after reading your article the same thing happened to me, including having to set a new password. Weird!

Although I was at home and Stolen Device Protection did recognise that.

Simon Harris:

This happened to me less than 10 minutes ago

nutbunnies:

I also had this happen to me tonight. Probably a silent forced password reset for an intrusion or something

Jonathan Wight:

Xcodes is causing serious problems with my AppleID (apple keeps locking it for “security reasons”).

Mike Cohen:

The same thing happened to me and I wasn’t using Xcode. A few people got password reset requests this afternoon

Marc:

Same things here, and it also wiped out my application specific passwords which caused problems with several apps.

Nic Lake:

Same boat. Watch, then iPhone, Mac, and Apple TV all did this. I spoke to a chat agent about it, and they wouldn’t tell me what happened, only that “sometimes random security improvements are added to your account”.

leo:

Happened to me this afternoon

Thomas Vander Wal:

I got this on an old iPad used for listening to podcasts in the kitchen about 8pm, then all devices were locked. Only after many attempts I got my MBP connected and the iCloud pw reset. Then I could start getting all other devices unlocked with the new password.

It felt more like a hack than something Apple intended.

Tom Bridge:

Anyone else have their Apple ID locked tonight randomly? I had to re-login on all my devices after a password change and a reset of all my app-specific passwords...

Chance Miller:

Apple’s System Status webpage doesn’t indicate that any of its services are having issues this evening. Still, it’s clear based on social media reports that something wonky is going on behind the scenes at Apple.

Update (2024-04-27): See also:

I had to generate a new app-specific password and add it to Fantastical before it could sync.

Although my iPhone didn’t ask for the new Apple ID password, iMessage silently failed to work. It never asked me to log in again; it just stopped receiving new messages. I toggled it off and then on again, and then it started working for new messages, but the ones sent in the interim never synced down from iCloud.

My secondary Mac did ask me to enter the new Apple ID password. It also silently stopped receiving new iMessages until I launched the Messages app, at which point it did prompt me to log in. It also never synced up the messages received while it was logged out.

Giuseppe Carlino:

same here with the significant locations messed up.

Carlo Zottmann:

My iPhone’s “Significant Locations” aren’t that. Apparently I live in the woods 2km from my actual home, and the fact that I can’t get more details about the other 100s of location records it saved isn’t building confidence

Brent:

Happened to me last night also. Had to create new password and enter new one on every device. The watch was the worst because the iPhone keyboard doesn’t allow password manager fill and had to get another device view and key on iPhone. Didn’t work after 3 attempts so I canceled out. Went back in to Settings on watch and I was logged in. Overall, took at least 1 hour to complete for all devices. And the initial unlock/reset took at least 3 attempts. Not a warm, fuzzy experience.

John Gruber:

I just checked on my own iPhone, and the only two “Significant Locations” listed in Settings → Privacy & Security → Location Services → System Services → Significant Locations are “Work” and my favorite (and truly oft-visited) grocery store. But the “Work” location is centered three entire city blocks (~0.2 miles) from my home, which leaves my home just outside the radius that counts as that location. Luckily I wasn’t hit by this account lockout, but this also reassures me that I’m right to not yet have enabled Stolen Device Protection.

Update (2024-04-28): Nick Heer:

It is unclear to me if it is affecting only accounts associated in some way with a developer Apple ID. Neither of my Apple IDs — both of which are connected to developer tools — were affected by this problem.

This problem is about eighteen hours old. It would be useful if Apple said literally anything useful to acknowledge the issue.

I do not use my regular Apple ID with the developers tools, and my developer Apple ID did not need to be unlocked.

Pierre Igot:

When your iCloud/Apple ID starts acting up in weird ways, throwing you in a Kafkaesque loop with a “locked” account and a password reset process that ends in a useless “try again later” error message, while System Status remains solidly green for all Apple services, don’t bother calling Apple about it. Even they don’t know what’s going on. Wait until the next morning, and try again, and find that somehow this time the password reset actually works.

Francisco Tolmasky:

I checked my “Significant Locations” and all it has is a water park we went to for the first time in my life last weekend. Not my home that I literally spend 90% of my time in and is marked as My Home in Apple Maps.

Joe Cieplinski:

Okay. Being forced to change passwords for no reason on about a thousand devices is bad enough. Now it won’t even accept my new password when trying to generate the dozens of app-specific passwords I need.

Ryan Jones:

I got hit by the Apple ID bug last night. And the poor copy and layouts also had me considering my entire machine had be hacked. It was a mess.

Ryan Jones:

Oh christ, the Apple ID reset borked my Apple Wallet.

I need to verify (?) my cards again, of which there is no button or method. And how does one even verify Apple Cash card?

[…]

Oh great, Family Sharing was turned off and errors out.

Name and Photo Sharing too. Just gone. (Even after reboot.)

Aaaaand iMessage it out of sync between devices.

Update (2024-04-29): I continue to see new reports from people encountering this, as well as reports that Apple Support continues to tell customers that there is no widespread issue. It’s disappointing that new people were still encountering the problem at least two days later and that Apple has yet to post anything on its System Status page or provide any information at all.

I decided to disable Stolen Device Protection on my iPhone, which was at home, and iOS said there would be a one-hour security delay because I was not at a familiar location. 🤦‍♂️ It said I would get a notification when the delay ended. Several hours later, the notification never came, and Stolen Device Protection is still enabled. 🤦‍♂️ I am now more determined than ever to turn it off because I do not trust that the delay works properly. I went back to the grocery store, but now that is no longer listed as a Significant Location. The only location it now shows is a gym that I rarely go to and which I last visited less recently than the grocery store. 🤦‍♂️ However, it did let me turn off Stolen Device Protection when I got home, so maybe the delay works and it’s only the notification that’s broken.

Dave Wood:

I checked what my iPhone considers my significant locations. It’s disabled! So I have no significant locations. How does the system let me enable Stolen Device Protection without it turning on significant locations?

Adam Chandler:

and my AppleID is locked again. So many horror stories with iCloud locks that this is the most careful I am resetting a password ever.

David Owens II:

Password not working for my Apple ID, ok.

Try to reset, but since that’s not the “iCloud” account synced to my device but the store account, none of my “signed in devices” get notifications.

So now I have to wait three more days until I get a text to my number to reset it…

Kirk McElhearn:

Significant Locations shows 55 records on my iPhone, but it only shows one recent location. There’s no way to tell the iPhone which locations you want to consider significant, such as your home or work location, so if you have Stolen Device Protection on, you’re at the whim of Apple’s location services.

I’m not sure what’s going on here, as I’ve seen screenshots from others showing multiple locations. My iPhone shows only one.

This event points out one of the risks of depending on an Apple ID. As more people depend on iCloud, getting locked out of your Apple ID can have devastating consequences. You cannot use iCloud email, IMessage, or FaceTime without this account. You cannot access personal or even work documents if you store them on iCloud. And you cannot use third-party apps that depend on iCloud, such as a calendar or contacts app.

Since an e-mail address can be necessary to access accounts (for verification or if the password needs to be reset), I think it’s a bad idea to to use an iCloud address as the login for any important accounts. This also makes me think twice about using Apple Passwords as my authenticator (actual passwords are in PasswordWallet). Hopefully, I would still be able to use the authenticator if my account were locked because the information would be locally cached. But we all know that iCloud tends to discard cached data for seemingly no reason.

Given the scope of this issue, Apple should explain what happened. Many users were worried that someone had accessed their accounts and rushed to reset their passwords, thinking that their data could be stolen. It’s unclear how many users were affected, but users in many countries had this password reset, and some people even reported this problem occurring as late as Sunday. At the time of this writing, on Monday, April 29, Apple has said nothing.

Pierre Igot:

As usual, Apple screwed up, and as usual, instead of owning up to it, they are just pretending to themselves that it never happened.

In other words, Apple are being their usual arrogant selves, at the expense of their users.

Thursday, April 25, 2024

FTC Bans Noncompetes

FTC (tweet, Hacker News):

Today, the Federal Trade Commission issued a final rule to promote competition by banning noncompetes nationwide, protecting the fundamental freedom of workers to change jobs, increasing innovation, and fostering new business formation.

[…]

The FTC estimates that the final rule banning noncompetes will lead to new business formation growing by 2.7% per year, resulting in more than 8,500 additional new businesses created each year. The final rule is expected to result in higher earnings for workers, with estimated earnings increasing for the average worker by an additional $524 per year, and it is expected to lower health care costs by up to $194 billion over the next decade. In addition, the final rule is expected to help drive innovation, leading to an estimated average increase of 17,000 to 29,000 more patents each year for the next 10 years under the final rule.

As with network neutrality, this is probably something the courts or Congress should have handled, but it seems like a good protection for those of us living outside Silicon Valley.

John Gruber:

As I wrote a year ago, I used to think that noncompete agreements (“agreements”?) were mainly a thing in the tech industry. But their use became so rampant that even sandwich shop chains were requiring them.

Gergely Orosz:

Noncompetes are now banned: not just in California (like before), but nationwide. Very, very relevant for anyone at Amazon (which is the Big Tech that has enforced noncompetes even for low-level engineering positions).

Brian Hall:

Some people might know that Amazon sued me after I had left AWS and later went to Google Cloud. I cannot be happier to see the FTC ruling to ban non-competes in the US. “Noncompete clauses violate a 110-year-old law that prohibits unfair methods of competition, the FTC says.”

Mike Masnick:

The FTC has come out with a very good and important policy ruling, but I’m not sure it has the authority to do so. The legal challenge (that was filed basically seconds after the rule came out) could do way more damage not just to some fundamental parts of the administrative state, but to the very underlying policy that the FTC is trying to enact: protecting the rights of workers to switch jobs and not be effectively tied to an employer in modern-day indentured servitude with no realistic ability to leave.

All the way back in 2007, I wrote about how non-competes were the DRM of human capital. They were an artificial manner of restricting a basic freedom, and one that served no real purpose other than to make everything worse. As I discussed in that post, multiple studies done over the previous couple of decades had more or less shown that non-competes are a tremendous drag on innovation, to the point that some argue (strongly, with data) that Silicon Valley would not be Silicon Valley if not for the fact that California has deemed non-competes unenforceable.

[…]

The rule is 570 pages long, with much of it trying to make the argument for why the FTC actually has this authority. And all those arguments are going to be put to the test. Very shortly after the new rule dropped (long before anyone could have possibly read the 570 pages), a Texas-based tax services company, Ryan LLC, filed a lawsuit.

Previously:

FCC Reinstates Network Neutrality

Jon Brodkin (Hacker News, Slashdot):

The Federal Communications Commission voted 3–2 to impose net neutrality rules today, restoring the common-carrier regulatory framework enforced during the Obama era and then abandoned while Trump was president.

The rules prohibit Internet service providers from blocking and throttling lawful content and ban paid prioritization.

[…]

The court battle against the FCC will center on whether the commission can define broadband as a telecommunications service, a necessary step for imposing Title II common-carrier regulations.

[…]

“Congress never passed a law saying the Internet should be heavily regulated like a utility, nor did it pass one giving the FCC the authority to make that determination. The executive branch pressured the agency into claiming a power that remained, and remains, with the legislative branch,” [Brendan] Carr said.

I don’t recall that argument going anywhere before. Congress seems unlikely to clarify its intent, so maybe this seesaws back and forth depending on who controls the FCC.

Previously:

Update (2024-04-26): See also: Cecilia Kang (via Hacker News).

Update (2024-04-29): Nick Heer:

Bode has, for years, covered the effort to paint the reversal of net neutrality rules as inconsequential. Contrary to popular belief, the reclassification to a Title I service produced plenty of ill effects. Part of the problem was in mainstream coverage of what the rules meant and, similarly, in what their 2018 undoing would entail.

Alexa Copyright Violations

Lindsay Clark (via Hacker News):

According to Ghaderi’s account in the complaint, she returned to work after giving birth in January 2023, inheriting a large language model project. Part of her role was flagging violations of Amazon’s internal copyright policies and escalating these concerns to the in-house legal team. In March 2023, the filing claims, her team director, Andrey Styskin, challenged Ghaderi to understand why Amazon was not meeting its goals on Alexa search quality.

The filing alleges she met with a representative from the legal department to explain her concerns and the tension they posed with the “direction she had received from upper management, which advised her to violate the direction from legal.”

According to the complaint, Styskin rejected Ghaderi’s concerns, allegedly telling her to ignore copyright policies to improve the results. Referring to rival AI companies, the filing alleges he said: “Everyone else is doing it.”

Previously:

Wednesday, April 24, 2024

TikTok Ban

Demetri Sevastopulo and James Fontanella-Khan (2020, Hacker News, CNBC):

TikTok will be removed from US app stores from midnight on Sunday as Washington implements executive orders from President Donald Trump that also target WeChat, a Chinese social media app.

[…]

Oracle and ByteDance have submitted a proposal that would spin out TikTok’s global business into a new US company that would have an all-American board and a security committee headed by someone with government security clearances. The new company would initially be majority owned by ByteDance, but would seek to list publicly in the US.

John Gruber:

Be careful of headlines along the lines of “U.S. bans TikTok” — right now it’s just new downloads that will be banned, not use of the app if already downloaded.

Nick Heer:

The theoretical security risks of apps involved in what Secretary of Commerce Wilbur Ross calls “China’s civil-military fusion” are hazy but plausible. These restrictions only apply to TikTok and WeChat, not all apps with Chinese origin. Furthermore, WeChat is effectively the default digital layer for many in China, so it is an essential app for Americans staying in touch.

[…]

I get why China’s state-connected businesses are worrying for some Americans, but this order does almost nothing to alleviate those concerns.

LibertyRPF:

“ByteDance says it will not transfer algorithm and technology to Oracle as part of TikTok deal” (So it truly is just a cloud hosting deal... so much for national security)

Nick Heer:

At any rate, the TikTok partial sale of unknown structure is still being vetted as of Monday, contrary to the president’s position on Saturday, but it has all of the trappings of a Potemkin arrangement.

Edvard Pettersson (via Hacker News, 3, BBC):

The Trump administration’s curbs on WeChat were put on hold by a judge, upending an effort to halt use of the Chinese-owned app in the U.S.

Tim Hardwick:

U.S. President Joe Biden has withdrawn a series of executive orders from his predecessor Donald Trump banning Chinese apps TikTok and WeChat in the United States.

Casey Newton (Slashdot):

At a hearing in front of the US Senate’s Committee on Homeland Security and Governmental Affairs, TikTok COO Vanessa Pappas faced stern questioning from lawmakers. They had pointed questions about the company’s relationship with its parent, with the Chinese government, and the potential for Americans’ data to be misused. And while on one level it was simply the latest chance for our Senate to grandstand about the tech industry while doing nothing to regulate it, the hearing also showcased the growing momentum to take more definitive action against the company.

[…]

TikTok’s task is impossible because to earn the senators’ trust fully, it must prove a negative: that China has never sought to use the app for influence operations or surveillance purposes, never will, and never could even if it tried. The company swears up and down that nothing of the sort could ever take place.

Nick Heer:

The main thing I am left wondering after reading this New York Times story about a forthcoming deal to resolve U.S. national security concerns is whether anything will be enough to satisfy the biggest TikTok hawks. I can already see the complaints of any agreement not being enough, speculation of the existence of a back door, and general distrust of TikTok.

Brandon Vigliarolo (2022, Hacker News):

TikTok has been accused of preparing to keep covert tabs on the physical whereabouts of certain US citizens using its app.

Bruce Schneier (2023):

Congress is currently debating bills that would ban TikTok in the United States. We are here as technologists to tell you that this is a terrible idea and the side effects would be intolerable. Details matter. There are several ways Congress might ban TikTok, each with different efficacies and side effects. In the end, all the effective ones would destroy the free Internet as we know it.

There’s no doubt that TikTok and ByteDance, the company that owns it, are shady. They, like most large corporations in China, operate at the pleasure of the Chinese government. They collect extreme levels of information about users. But they’re not alone: Many apps you use do the same, including Facebook and Instagram, along with seemingly innocuous apps that have no need for the data. Your data is bought and sold by data brokers you’ve never heard of who have few scruples about where the data ends up. They have digital dossiers on most people in the United States.

If we want to address the real problem, we need to enact serious privacy laws, not security theater, to stop our data from being collected, analyzed, and sold—by anyone. Such laws would protect us in the long term, and not just from the app of the week.

Mike Masnick:

The end result of this might well be that ByteDance divests of TikTok, but we should be clear: the threat, and any potential block, would be a clear, blatant, dangerous violation of the 1st Amendment.

We already know this, from back when former President Trump tried the same damn thing and (rather sloppily) tried to ban both TikTok and WeChat in the US. We called it unconstitutional at the time, and the courts agreed. There were a bunch of lawsuits, and none of them went well.

[…]

Banning TikTok won’t solve the issue of any potential privacy violations. As we’ve noted over and over and over again, the supposed data that TikTok is “collecting” on its users is available from basically anywhere to basically anyone with a few bucks. Want to fix that? Pass a real privacy law.

Paul Matzko:

FB hired a consulting megafirm to astroturf letters to the editor at 100s of newspapers to hype up a TikTok moral panic. The goal? “Dream would be to get stories with headlines like ‘From dances to danger.’” It’s targeted misinformation on a massive scale.

Nick Heer:

It was very clear, from the outset, that most committee members were not much interested in investigating, but were instead trying to justify a forthcoming likely vote to ban TikTok from the United States.

Yoel Roth (Mastodon):

The basic gist of Project Texas, Lawfare reported earlier this year, is that TikTok will stand up a new US-based subsidiary named TikTok US Data Security (USDS) to house business functions that touch US user data, or which could be sensitive from a national security perspective (like content moderation functions impacting Americans). Along with giving the government the right to conduct background checks on potential USDS hires (and block those hires from happening!), TikTok committed as part of Project Texas to host all US-based traffic on Oracle-managed servers, with strict and audited limits on how US data could travel to non-US-based parts of the company’s infrastructure. Needless to say, Oracle stands to make a considerable amount of money from the whole arrangement.

Yesterday’s appearance by TikTok CEO Shou Zi Chew before the House Energy and Commerce Committee shows that even those steps, and the $1.5 billion TikTok are reported to have spent standing up USDS, may prove to be inadequate to stave off the pitchfork mob calling for TikTok’s expulsion from the US. The chair of the committee, Representative Cathy Rodgers of Washington, didn’t mince words in her opening statement, telling Chew, “Your platform should be banned.”

Even as I believe at least some of the single-minded focus on TikTok is a moral panic driven by xenophobia, not hard evidence, I share many of the national security concerns raised about the app.

[…]

The problem is that solutions like Project Texas, and a single-minded focus on China, may end up having the counterproductive result of making the app less resilient to malign influence campaigns targeting the service’s 1.5 billion users around the world.

Michael Love:

One of the big problems with the argument that TikTok can’t be trusted because its executives have to take orders from the CCP is that it naively assumes that Tim Cook does not also have to take orders from the CCP.

Jenny Feng (via Hacker News):

Although Beijing’s opposition to a forced sale of TikTok hasn’t gone beyond words, Chinese internet users seem to have plenty of suggestions as to how China can interfere. “Can we ban iPhone in retaliation?” a Douyin user commented, while another one remarked, “Don’t forget a bunch of American companies like Apple, Tesla, and Microsoft all have businesses in China. We haven’t shown all the cards in our hand yet.”

Adi Robertson (via Hacker News):

It’s hard to describe how strange it feels to sit in New York City in 2023 watching American politicians propose fighting Chinese authoritarianism with their own social media ban.

[…]

Banning TikTok is not, as lawmakers claimed in the hearing, a sign that we’re about to get real tech reform. It will almost certainly be a PR move that lets some of the same politicians who profess outrage at TikTok get back to letting everyone from Comcast to the DMV sell your personal information, looking the other way while cops buy records of your movements or arrest you using faulty facial recognition and getting mad you’re allowed to have encryption that prevents the FBI (and probably also foreign governments) from hacking your phone. And it will be a PR move that betrays America’s supposed commitment to free expression in the face of an increasingly splintered internet — born out of a failure to think bigger than one disfavored app.

It’s almost impossible to tell how grounded the national security concerns about TikTok are in solid evidence.

Breaking Points (via Hacker News):

TikTok Ban Bill Is PATRIOT ACT 2.0 Trojan Horse

David Pogue:

TikTok is the most popular app in the United States. 150 million Americans – almost half the population – use it every month. The app offers an endless, scrolling wonderland of humor, music, dancing, tips, opinion and information – short videos posted by fellow TikTok fans, and all delivered to you according to your interests. And for about five million businesses, TikTok is also a marketing tool.

[…]

Milton Mueller, a professor of cybersecurity and public policy at Georgia Tech, studied the theory that TikTok’s algorithms attempt to influence ideology. He said, “There’s absolutely no indication that this is in some way manipulated or controlled by the Chinese Communist Party. We just found that to be a complete fabrication. You can find information about Uyghur repression, you can find information that ridicules Xi Jinping. It’s all there.”

[…]

So, sell TikTok, or ban it? Selling it might be impossible – though worth a lot, the Chinese Communist Party may object to a sale. As for banning TikTok, Mueller said, “There’s probably a 90% chance that that would be ruled unconstitutional [because of] the First Amendment. You’re banning an information source, you’re banning a publication. I have to emphasize this: if you ban TikTok, it’s not the Chinese Government that would be silenced; it’s the 150 million American users of the app. Those are the ones whose free speech rights would be violated by a ban.”

David Shepardson (via Hacker News):

Montana Governor Greg Gianforte on Wednesday signed legislation to ban Chinese-owned TikTok from operating in the state to protect residents from alleged intelligence gathering by China, making it the first U.S. state to ban the popular short video app.

Montana will make it unlawful for Google and Apple’s app stores to offer TikTok within the state, but will not impose any penalties on individuals using the app.

John Gruber:

Putting aside the fact that Montana is a small state (44th in population, 1.1 million people), it just doesn’t seem feasible to ban TikTok at the state level. Even if this goes into law and Apple and Google comply, Montanans can just cross state lines to download it.

[…]

I do think the U.S. should ban TikTok nationwide. But it seems futile — silly even — for states to do it piecemeal.

Dan Whateley and Ashley Rodriguez (via Hacker News):

An explosive new lawsuit claims TikTok’s owner built a ‘backdoor’ the CCP could exploit

Alexandra S. Levine (via John Gruber):

TikTok has stored the most sensitive financial data of its biggest stars — including those in its “Creator Fund” — on servers in China. Earlier this year, CEO Shou Chew told Congress “American data has always been stored in Virginia and Singapore.”

Makena Kelly:

New York City is banning TikTok from city-owned devices and requiring agencies to remove the app within the next 30 days.

Dan Milmo (via Hacker News):

TikTok has been fined €345m (£296m) for breaking EU data law in its handling of children’s accounts, including failing to shield underage users’ content from public view.

The Irish data watchdog, which regulates TikTok across the EU, said the Chinese-owned video app had committed multiple breaches of GDPR rules.

Gavin Bade (via Hacker News):

Fast forward to the fall and little has changed. Biden’s national security review of the app is still frozen by legal concerns and Congress’ headline TikTok bill — the RESTRICT Act — is stuck in the mud despite backing from senior members of both parties. In an effort to break the logjam, the administration is now throwing its support behind alternative legislation that has yet to be released.

Alexandra Sternlicht (2024, via John Gruber):

Some ex-TikTok employees say the social media service worked closely with its China-based parent despite claims of independence

Sahil Kapur and Kyle Stewart (via Hacker News):

The House also voted Saturday to force TikTok’s parent company to sell it or be banned in the U.S. According to the bill, China-based ByteDance would have to sell TikTok within nine months — which the president could extend to a year — or face a nationwide ban. The policy, which would lengthen the time frame for a sale from an earlier House bill, has Senate buy-in along with Biden’s support, putting TikTok closer than ever to being banned in the U.S.

Cristiano Lima-Strong (via John Gruber):

Congress late Tuesday passed legislation to ban or force a sale of TikTok, delivering a historic rebuke of the video-sharing platform’s Chinese ownership after years of failed attempts to tackle the app’s alleged national security risks.

The Senate approved the measure 79 to 18 as part of a sprawling package offering aid to Israel, Ukraine and Taiwan[…]

Lauren Feiner (Hacker News, MacRumors):

It now heads to President Joe Biden, who already committed to signing the TikTok legislation should it make it through both chambers of Congress.

[…]

Warner added that TikTok’s earlier proposed solution to concerns around its data governance, Project Texas, were inadequate. “Project Texas would still allow TikTok’s algorithm, source code, and development activities to remain in China,” Warner said. “They would remain so under ByteDance control and subject to Chinese government exploitation.”

But he also addressed the concerns of many young Americans who use TikTok and fear this legislation means it will go away. “I want to make clear to all Americans, this is not an effort to take your voice away,” Warner said. “Many Americans, particularly young Americans, are rightfully skeptical. At the end of the day, they’ve not seen what Congress has seen. They’ve not been in the classified briefings that Congress has held, which have delved more deeply into some of the threats posed by foreign control of TikTok.”

Eric Schwarz:

This is a dangerous precedent—the nursing home government hasn’t provided clear-cut data for this, only vibes and fear-mongering. While I’m personally not against aiding our allies, how about we work on fixing ourselves first?

[…]

I’m not so much as giving TikTok a pass as asking why this is the most pressing thing and why we aren’t addressing poor behavior by domestic social media companies?

Pieter Arntz:

The Electronic Frontier Foundation (EFF), an international non-profit digital rights group based in the US, says it opposes this bill, mainly because it is afraid that TikTok will not be the last app to face this type of ban.

Previously:

Update (2024-04-26): See also: TikTok CEO Shou Zi Chew’s response.

Rob Jonson:

US Government: TikTok must be banned because the Chinese Government could demand that the owners hand over data on users.

Also US Government: Everyone must hand over data on their users to US. (FISA 702)

Lauren Feiner (Hacker News, Slashdot):

President Joe Biden signed a foreign aid package that includes a bill that would ban TikTok if China-based parent company ByteDance fails to divest the app within a year.

Louise Matsakis:

The version of TikTok impacted by the legislation is not the same platform that then-president Donald Trump first tried to abolish back in 2020, citing national security concerns about its links to China. TikTok, its user base, and the ecosystem of creators making a living from the platform have grown, transformed, and matured since then. And the potential consequences of the app disappearing have become more significant.

Mike Masnick:

We’ve discussed this a few times before, but the move to ban TikTok is particularly stupid. It demonstrates American hypocrisy regarding its advocacy for an open internet. It goes against basic First Amendment principles. It overreacts to a basic moral panic. And it does fuck all to stop the actual threats that people justifying the ban talk about (surveillance and manipulation/propaganda).

It’s particularly stupid to do this now, just as Congress was finally willing to explore a comprehensive privacy bill.

[…]

This leaves out some fairly important elements, including powerful lobbying by companies like Meta (who were clearly threatened by TikTok) to spread a moral panic about the app. It also leaves out the massive financial conflicts of many of the lawmakers who pushed for this bill.

Kane Wu and Julie Zhu (Slashdot):

TikTok owner ByteDance would prefer to shut down its loss-making app rather than sell it if the Chinese company exhausts all legal options to fight legislation to ban the platform from app stores in the U.S., four sources said.

The algorithms TikTok relies on for its operations are deemed core to ByteDance’s overall operations, which would make a sale of the app with algorithms highly unlikely, said the sources close to the parent.

Extending Section 702 of FISA

H.R.7888:

Section 701(b)(4) is amended[…] by inserting after subparagraph (D) the following new subparagraph[…] any other service provider who has access to equipment that is being or may be used to transmit or store wire or electronic communications[…]

Elizabeth Goitein:

Buried in the Section 702 reauthorization bill (RISAA) passed by the House on Friday is the biggest expansion of domestic surveillance since the Patriot Act.

[…]

If the bill becomes law, any company or individual that provides ANY service whatsoever may be forced to assist in NSA surveillance, as long as they have access to equipment on which communications are transmitted or stored—such as routers, servers, cell towers, etc.

That sweeps in an enormous range of U.S. businesses that provide wifi to their customers and therefore have access to equipment on which communications transit. Barber shops, laundromats, fitness centers, hardware stores, dentist’s offices… the list goes on and on.

[…]

None of these people or businesses would be allowed to tell anyone about the assistance they were compelled to provide.

[…]

The NSA, having wholesale access to domestic communications on an unprecedented scale, would then be on the “honor system” to pull out and retain only the communications of approved foreign targets.

Edward Snowden (via Hacker News):

The NSA is just days from taking over the internet, and it’s not on the front page of any newspaper--because no one has noticed.

AP:

President Biden on Saturday signed legislation reauthorizing a key U.S. surveillance law after divisions over whether the FBI should be restricted from using the program to search for Americans’ data nearly forced the statute to lapse.

Barely missing its midnight deadline, the Senate had approved the bill by a 60-34 vote hours earlier with bipartisan support, extending for two years the program known as Section 702 of the Foreign Intelligence Surveillance Act.

[…]

One of the major changes detractors had proposed centered around restricting the FBI’s access to information about Americans through the program. Though the surveillance tool only targets non-Americans in other countries, it also collects communications of Americans when they are in contact with those targeted foreigners. Sen. Dick Durbin, the No. 2 Democrat in the chamber, had been pushing a proposal that would require U.S. officials to get a warrant before accessing American communications.

Elizabeth Goitein:

It’s a gift to any president who may wish to spy on political enemies, journalists, ideological opponents, etc.

Update (2024-04-26): Richie Koch:

This article examines some of the most important privacy legislation and law enforcement policies in the US and how they impact privacy online.

Tuesday, April 23, 2024

Elegant Concurrency Operations in Core Data

Fatbobman (Mastodon):

This article aims to explore how to introduce elegant and safe concurrency operations similar to those of SwiftData into Core Data, implementing a Core Data version of @ModelActor.

[…]

Following the fundamental principles of Core Data concurrency operations, all operations on managed objects must be performed on the thread of their owning context. This restriction means that the Actor model cannot be directly applied to Core Data’s concurrent operations.

However, the Swift community proposed the concept of custom Actor executors through SE-392, and this functionality was implemented in Swift 5.9.

Previously:

Charles Edge, RIP

Adam Engst:

News started to spread this morning on the MacAdmins Slack, Rich Trouton’s Der Flounder blog, and Tom Bridge’s site about how our friend and Take Control author Charles Edge died suddenly and unexpectedly on 19 April 2024. He was in his late 40s, and yes, his standard bio picture below gives you a feel for his sense of humor and irreverence.

I met Charles at a MacTech event in New York in 2012, but I already knew that he had written a bunch of tech books and thousands of Krypted blog posts on sysadmin topics. We exchanged some email about the possibility of him writing a Take Control book then, but it wasn’t until early 2014 that we came up with the idea that turned into Take Control of OS X Server.

[…]

He left Jamf in 2020 and was most recently working on Secret Chest, a password manager aimed at quantum-proofing Apple’s Keychain.

Previously:

Update (2024-04-24): See also:

Fairphone Fairbuds

Samuel Gibbs:

Fairphone, the repairable and ethical electronics pioneer, is back with a pair of some of the first Bluetooth earbuds to make it so easy and cheap to replace their batteries that you can do it at home in minutes.

[…]

The earbuds have a little door hidden behind a silicone sleeve, which opens to reveal a small button battery ready to be replaced once it wears out. The design seems so simple you wonder why no one has tried it before.

The oval top of the earbuds has a touch-sensitive surface for a good set of controls. Tap once, twice or thrice for playback controls, slide your finger up and down for volume, or touch and hold on the right to switch noise-cancelling modes or the left to trigger your phone’s voice assistant. Take out an earbud and the music pauses.

Via Nick Heer:

Gibbs noted an audio sync issue which the company says it was working on. Otherwise, these seem to be perfectly fine true water-resistant wireless earbuds with approximately similar battery life to Apple’s AirPods Pro.

Previously:

Update (2024-04-24): Ged Maheux:

A huge thank you to those that wrote about my AirPod volume problem and suggest cleaning with isopropyl and a brush. Totally did the trick, they now sound as good as new.

Monday, April 22, 2024

How to Use Experimental Swift Versions and Features in Xcode

Donny Wals:

We can click the Universal download link to install the Swift toolchain that you’re interested in. For example, if you’re eager to try out a cutting edge feature like Swift 6’s isolation regions feature you can download the trunk development toolchain. Or if you’re interested in trying out a feature that has made its way into the Swift 6 release branch, you could download the Swift 6.0 Development toolchain.

Once you’ve downloaded your toolchain and you can install it through a convenient installer. This process is pretty self explanatory.

After installing the toolchain, you can activate this new Swift version in Xcode through the Xcode → Toolchains menu.

[…]

To try out new Swift features, we sometimes need to enable them through a compiler flag. The evolution proposal that goes along with the feature you’d like to try will have an Implementation field in its header that explains which toolchain contains the feature, and whether the feature is gated behind a flag or not.

Apple Maps in Tokyo

Joe Rosensteel:

When searching for a business, like your hotel which is part of a very large hotel chain, Google will show the one saved in your list as the first search result when you start typing. Apple Maps will show you the search results in the same order you’d see them otherwise, but it will write “in your guide” under the hotel that could be further down the list.

[…]

Apple Maps is also bad if you move the map to an area and want to search within that area. It’ll snap back to where you are and search that area first.

[…]

If I had upgraded from 14.4.0 to 14.4.1 while I was traveling I would need to catch this error with enough time to re-download my offline maps, especially the offline maps for the city I was in.

[…]

Apple Maps is not very good for English-speaking tourists in Japan. Apple Maps Japanese data is from its partnerships with local Japanese companies. That’s great for locals, but that means things like restaurant reviews are in Japanese. Again, this is helpful if you speak Japanese, and very relevant to the residents of Japan, but far less accessible to me, an English-speaking traveler.

[…]

The crowds in some of these places in Japan are no joke. Google Maps has had the ability to show a little bar graph for every location for how busy a place is throughout the day, in addition to how busy it currently is. It’s had this feature since 2016.

Previously:

Hackintosh Is Almost Dead

Aleksandar Vacić (via Hacker News, Ric Ford):

It’s true that latest macOS 14 (Sonoma) still supports the latest generations of Intel Macs and it’s very likely that at least one or two major versions will still be compatible. But there’s one particular development that is de-facto killing off the Hackintosh scene.

In Sonoma, Apple has completely removed all traces of driver support for their oldest WiFi/Bt cards, namely various Broadcom cards that they last used in 2012/13 iMac / MacBook models. Those Mac models are not supported by macOS for few years now thus it’s not surprising the drivers are being removed. Most likely reason is that Apple is moving drivers away from .kext (Kernel Extensions) to .dext (DriverKit) thus cleaning up obsolete and unused code from macOS. They did the same with Ethernet drivers in Ventura.

Those particular cards were the key ingredient to many fully functional Hackintosh builds for simple reason: they worked out of the box with every single (so-called) iService Apple has: Messages, FaceTime, AirDrop, Continuity, Handoff - you name it. Everything worked. Despite the valiant efforts of OCLP crew to make workarounds, those cards can work in Sonoma only if you seriously downgrade the macOS security.

Previously:

The Apple Jonathan

Stephen Hackett (Hacker News):

Those four machines are well known, but there was a fifth possibility in the mix, named the Jonathan. In his book Inventing the Future, John Buck writes about the concept, which was led by Apple engineer Jonathan Fitch starting in the fall of 1984.

This concept envisioned a computer that would expand with the needs of the user, through the use of modular components:

Buck also writes:

It was a consumer model computer that came with pre-installed operations as well as a base-level I/O, and it could be upgraded during/or after purchase to business-centric specifications using a unique set of plug- and-play modules. Customers would be able to add a series of book-sized modules (for software and hardware options) that clicked into a slender docking station sitting under the monitor, that itself looked like a bookshelf. The individual software modules, for the prototype, contained the O/Ss for Apple II, Mac, UNIX, or DOS, while the hardware options were DSP, Ethernet, GenLock (for video), extra RAM, mass storage, or a power supply (for different regions). There were no cables.

Fitch believed that the machine’s literal backbone design could become the backbone of Apple’s future sales strategy. An ever-expandable computer that could cover multiple markets without Apple needing to make multiple devices.

Nicola D’Agostino:

After eight months of development, a Jonathan mockup was finally unveiled to the Apple Executive staff in June 1985.

The Executives’ first reaction was of astonishment. The design’s militaristic look with smooth surfaces, sharp corners, vertical ribs around the base and the use of a dramatic black color with white product graphics was unlike anything done before at Apple.

The Jonathan concept was deemed too advanced and risky. Jean-Louis Gassée, who at the time was Apple’s VP of Product Development, observed that they would have to sell two or three Jonathans to equal the profit of a single Macintosh II.

Both posts have some great photos and renders.

Friday, April 19, 2024

Apple Removes Messaging Apps From Chinese App Store

MacRumors (CNN, Hacker News):

Apple on late Thursday into Friday removed the popular messaging and social media apps WhatsApp, Telegram, Signal, and Threads from its App Store in China at the request of the Chinese government, The Wall Street Journal reported.

[…]

In a statement shared with several media outlets, Apple said China’s national internet regulator ordered the removal of the apps from the App Store in the country due to unspecified “national security concerns.” Apple said it is “obligated to follow the laws in the countries where we operate, even when we disagree.”

However, it’s Apple’s choice to make distribution through the App Store a single point of failure.

Previously:

Update (2024-04-24): John Gruber:

The answer re: sideloading is yes, and both Signal and WhatsApp offer direct downloads of their latest Android builds.

Kaveh:

A small amount of Googling and it seems like sideloading the default way to get any Google apps in China since Android there isn't offered with the Play Store.

Patrick Wardle:

Apple consciously (& greedily) made the decision to be the arbiter/gatekeeper of what can run on our iOS devices…which directly empowers governments to ban whatever apps they so choose[…]

Update (2024-04-26): See also: Jon Brodkin.

VLC vs. the App Stores

VideoLAN (via Hacker News):

App Stores were a mistake.

Currently, we cannot update VLC on Windows Store, and we cannot update VLC on Android Play Store, without reducing security or dropping a lot of users…

For now, iOS App Store still allows us to ship for iOS9, but until when?

VideoLAN:

If you do wonder why we don’t update VLC on the Windows Store or why VLC/iOS can’t connect properly to OneDrive shares, it’s because Microsoft Kafkaïesque bureaucracy refuses to help us.

We’re only trying to contact someone since 2years…

VideoLAN (Anisse, Hacker News):

If you wonder why we can’t update the VLC on Android version, it’s because Google refuses to let us update:

  • either we give them our private signing keys,
  • or we drop support for Android TV before API-30, and all our users on TV API<30 can’t get fixes.

VideoLAN:

VLC cannot even enter the Mac App Store, because of the restrictions…

Look at all those platforms competing to benefit users.

Florian Mueller:

This here is a European app store for Android and Google’s YouTube has just killed their channel. It’s obviously a problem if you depend on the incumbent’s platforms all the way.

Previously:

Update (2024-04-26): President of VideoLAN (Hacker News):

On Android, we can either give Google our private (!) key or not support existing Android versions, and there is (as usual for Google) no one to discuss this with.

On Windows, they changed soo many times the backend of their store, that even with support from the top of the hierarchy, we cannot even update our desktop apps (change a URL, not even a binary…)

Apple, so far, is less annoying, but to support old versions (iOS9 or 10) is an always on battle.

Apple AppStores does not allow GPL, Microsoft does not allow GPLv3 and Unity does not even allow LGPL…

It’s very frustrating and time consuming, but because we don’t make money out of those, and we are on more platforms than anyone, we can complain publically…

Color Kobo E-readers

Sheena Vasani (Hacker News):

Rakuten Kobo is launching its first color e-readers, the Kobo Libra Colour and the Kobo Clara Colour. Both use E Ink’s latest Kaledio color screen technology, which has subtle, pastel-like hues and drops from a 300ppi grayscale resolution to 150ppi when you view content in color.

[…]

The seven-inch Kobo Libra 2 is my favorite e-reader outside of Amazon’s ecosystem, offering the Kindle Paperwhite’s IPX8 waterproof design but with extras like physical page-turning buttons, no lockscreen ads, and more storage.

The $219.99 Kobo Libra Colour retains all of those features but is also now compatible with the Kobo Stylus 2, just like the Kobo Elipsa 2E.

Nathan:

E Ink’s color “Kaleido” screen technology has been around for several years, but it’s gone through three generations now and devices that use the latest Kaleido 3 screens just started coming out last year.

[…]

Color E Ink supports 4096 colors, which might sound like a lot but it’s actually far lower than a typical LCD screen. Colors tend to look softer and more subdued with E Ink, and color accuracy isn’t great, especially with certain colors, and it has more of a printed newspaper look.

[…]

The main drawback with color E Ink screens is they look darker than regular B&W screens because of a color filter layer that is applied over the top of the screen, which makes the contrast appear lower. Kaleido color screens are really just regular black and white E Ink Carta screens with a fancy passive filter over the top (that’s why color resolution is lower than black and white resolution).

[…]

Afterimage effects are more noticeable on color E Ink screens, where you can see a faint impression of the previous page. Color content may require more full page refreshes and flashes to look clear.

Previously:

Optimizing WebKit & Safari for Speedometer 3.0

Alan Baradlay et al.:

We made our fast JSON stringifier work for unicode characters. We also analyzed profile data carefully and made JSON.parse faster than ever.

[…]

We took the release of the new Speedometer 3.0 benchmark as an opportunity to adjust inlining heuristics based on data collected in modern Apple silicon Macs with the latest JavaScriptCore.

[…]

Prior to the opportunistic task scheduler, incremental sweeping in JavaScriptCore was automatically triggered by a periodically scheduled 100 ms timer. This had the effect of occasionally triggering incremental sweeping during asynchronous timing intervals, but also wasn’t aggressive enough to prevent on-demand sweeping in the middle of script execution. Now that JavaScriptCore is knowledgable about when to opportunistically schedule tasks, it can instead perform the majority of incremental sweeping in between rendering updates while there aren’t imminently scheduled timers. The process of sweeping is also granular to each marked block, which allows us to halt opportunistic sweeping early if we’re about to exceed the deadline for the next estimated rendering update.

[…]

Previously, we required a synchronous IPC call from the Web Process to the GPU process to determine which of the existing buffers had been released by CoreAnimation and was suitable to use for the next frame. We optimized this by having the GPUP just select (or allocate) an appropriate buffer, and direct all incoming drawing commands to the right destination without requiring any response. We also changed the delivery of any newly allocated IOSurface handles to go via a background helper thread, rather than blocking the Web Process’s main thread.

[…]

With all these optimizations and dozens more, we were able to improve the overall Speedometer 3.0 score by ~60% between Safari 17.0 and Safari 17.4.

Previously:

Thursday, April 18, 2024

Daniel C. Lynch, RIP

Katie Hafner (via Hacker News):

In 1986, Mr. Lynch decided to hold a workshop to train vendors and developers to configure equipment for routing traffic through the internet. The point was to make different manufacturers’ equipment work together and demonstrate the uses the internet could have for businesses. The first event, attended by 300 vendors, was run largely by volunteers, who snaked cable through the room and programmed specialized computers called routers, which were just becoming commercially available, to communicate with one another.

“His brainstorm was that you couldn’t be there unless you were willing to interconnect with everyone else,” said Vinton G. Cerf, a vice president and chief internet evangelist at Google. Mr. Lynch required the attendees to adhere to TCP/IP, a language spoken by computers connected to the internet that was quickly becoming the industry standard.

Mr. Lynch started calling his event Interop in the late 1980s. Within a decade, it had become one of the world’s largest computer exhibitions, helping to create a global community of specialists capable of supporting a networking standard that made it possible for all the world’s computers to share data. One computer industry analyst called it “the plumbing exhibition for the information age.”

See also: Internet Hall of Fame and A Brief History of the Internet.

Legibility and San Francisco

Niko Kitsakis (tweet):

Why is San Francisco not the best typeface for a user interface? After all, Apple has gone through quite some trouble designing it in-house. Do a search on the matter and you will find articles and videos for deve lo pers, where the people from Apple explain their thinking. They talk about optical sizes, different use-cases, space efficiency, expressiveness and so forth. It all sounds very professional.

[…]

Apple’s San Francisco falls into the same category as the Japanese sword: It might, from a technical standpoint, be a very well designed typeface, but it’s the wrong kind of typeface to begin with. Apple’s typeface lacks two things that any typeface (to a different extend) needs: Personality and purpose.

[…]

If you compare San Francisco (or SF Pro as Apple also calls it) to FF Unit, you’ll see that the numeral “1” and the shapes of the first three letters of the word “Iliad” are much more distinct from one another in FF Unit than the same characters (or glyphs) are in in SF Pro. This was done on purpose, of course: Typefaces like FF Unit were de signed with legibility in mind, and one of the things a type designer does in that case, is ensuring that visually similar letters have shapes that make them more distinct from one another.

Previously:

Why Has Figma Reinvented the Wheel with PostgreSQL?

Sammy Steele:

The data revealed that some of our tables, containing several terabytes and billions of rows, were becoming too large for a single database. At this size, we began to see reliability impact during Postgres vacuums, which are essential background operations that keep Postgres from running out of transaction IDs and breaking down. Our highest write tables were growing so quickly that we would soon exceed the maximum IO operations per second (IOPS) supported by Amazon’s Relational Database Service (RDS). Vertical partitioning couldn’t save us here because the smallest unit of partitioning is a single table. To keep our databases from toppling, we needed a bigger lever.

[…]

Horizontal sharding was an order of magnitude more complex than our previous scaling efforts. When a table is split across multiple physical databases, we lose many of the reliability and consistency properties that we take for granted in ACID SQL databases.

[…]

We built a DBProxy service that intercepts SQL queries generated by our application layer, and dynamically routes queries to various Postgres databases. DBProxy includes a query engine capable of parsing and executing complex horizontally sharded queries. DBProxy also allowed us to implement features like dynamic load-shedding and request hedging.

[…]

We avoided having to implement “filtered logical replication” (where only a subset of data is copied to each shard). Instead, we copied over the entire dataset and then only allowed reads/writes to the subset of data belonging to a given shard.

Denis Magda (via Hacker News):

Figma doesn’t use the open-source distribution of PostgreSQL. Instead, they utilize PostgreSQL as a service by subscribing to Amazon RDS. There’s an interesting, often overlooked fact about PostgreSQL managed services provided by large cloud providers and smaller vendors. While these services usually offer all the core PostgreSQL capabilities, the list of supported extensions is at the mercy of the service provider.

Now, we have CitusData, a mature PostgreSQL extension for sharding, and we know that Figma uses RDS, a fully-managed PostgreSQL service by Amazon. However, if you check the list of PostgreSQL extensions supported by RDS, CitusData isn’t included[…]

So, now, let me speculate. The real reason why Figma reinvented the wheel by creating their own custom solution for sharding might be as straightforward as this — Figma wanted to stay on RDS, and since Amazon had decided not to support the CitusData extension in the past, the Figma team had no choice but to develop their own sharding solution from scratch.

Cryptocurrency Apple Antitrust Lawsuit

Juli Clover:

A lawsuit targeting Apple’s refusal to allow apps to support cryptocurrency transactions was today tossed out by a San Francisco judge, reports Reuters. The lawsuit, which was filed by Venmo and Cash App customers, claimed that Apple drove up the fees charged by Venmo and Cash App by not letting payment apps facilitate cryptocurrency transactions.

The plaintiffs alleged that Apple curbed competition in the mobile peer-to-peer payment market with its App Store guidelines. No option for cryptocurrency has supposedly caused Venmo and Cash App to raise prices for transactions and services due to “no competitive check.” A payment app that is based on decentralized cryptocurrency technology would let iPhone users “send payments to each other without any intermediary at all.”

Previously:

Wednesday, April 17, 2024

It’s Time for a New AirPort

Joe Rosensteel (Mastodon):

Jason didn’t get that speed boost from an Apple-made wireless router, because Apple got out of making those long ago. He didn’t get that speed from a wireless router currently for sale at the Apple Store because the only two options are the Linksys Velop AX4200 WiFi 6 Mesh System, and AmpliFi Alien Router (with optional mesh extenders). Linksys does make a version of their Velop mesh network with 6E, but it’s not for sale through Apple.

Jason used an Eero 6E router, and wasted half a day trying to change his network topology to allow for it so he could see that speed difference.

[…]

Designing networking solutions in every device to work around the one component Apple doesn’t want to make is a lot of effort. The R&D can’t cost more than a self-driving, bread-loaf saloon, and the benefits of an Apple wireless router will lift all of Apple’s products. It’s time to head back to the AirPort.

Matt Birchler:

Apple doesn’t need to be in every market, but I do agree with Joe’s point that basically everything Apple makes relies on good wireless networks to deliver the best experience, and it makes sense for Apple to get back in the game.

Previously:

macOS 14 Sonoma vs. exFAT

Mike Wuerthele and Malcolm Owen (via Ric Ford):

An issue preventing some external drives from mounting onto a Mac running macOS Sonoma has plagued users for months, and it probably was caused by changes Apple made to drive handling.

[…]

Unlike the Windows-preferred NTFS or Apple’s APFS, exFAT can be read from and written to by both Macs and Windows PCs without requiring any extra software assistance. In a multi-platform environment, it’s almost always the best formatting option for external drives.

[…]

Shortly after the introduction of macOS Sonoma, complaints started to surface on Apple’s Community Support forum. The complaints featured irate users discovering that their external disks were not reliably being mounted in macOS at all.

It seems like the last few releases of macOS have trouble with mounting external drives in general, even APFS ones. But there may also be an exFAT-specific issue here.

macOS Sonoma 14 Release Notes:

The implementations of the exfat and msdos file systems on macOS have changed; these file systems are now provided by services running in user-space instead of by kernel extensions.

Previously:

Jpegli

Google (via Hacker News):

To improve on this, we are introducing Jpegli, an advanced JPEG coding library that maintains high backward compatibility while offering enhanced capabilities and a 35% compression ratio improvement at high quality compression settings.

[…]

When images are compressed or decompressed through Jpegli, more precise and psychovisually effective computations are performed and images will look clearer and have fewer observable artifacts.

[…]

While improving on image quality/compression density ratio, Jpegli’s coding speed is comparable to traditional approaches, such as libjpeg-turbo and MozJPEG.

[…]

Jpegli can be encoded with 10+ bits per component. Traditional JPEG coding solutions offer only 8 bit per component dynamics causing visible banding artifacts in slow gradients. Jpegli’s 10+ bits coding happens in the original 8-bit formalism and the resulting images are fully interoperable with 8-bit viewers. 10+ bit dynamics are available as an API extension and application code changes are needed to benefit from it.

Previously:

Rediscovering CardDAV

Jan-Piet Men (2020, via Hacker News):

I can no longer sync iOS’ Contacts with my macOS Catalina’s Finder (the iOS sync portion of iTunes is now built into the Finder in macOS Catalina); the OS insists I’ve iCloud configured for Contacts which I do not.

[…]

I was spilling my sorrows on Christoph who simply said he avoids all those issues by using CardDAV. I slapped my forehead: I’ve been using CalDAV for years, for synchronizing two calendars across devices: my own calendar across two Macs, an iPad, and an iPhone, and the family calendar across the family’s devices. How could I have forgotten about CardDAV?

[…]

I then created a Baïkal address book for myself, set up macOS and an iPhone to use that, and created a pseudo person’s entry on the Mac and another on iOS, and experimented a bit with how long it takes either side to sync, etc. As soon as I was satisfied I copy/pasted all contacts from macOS’ internal address book to its CardDAV store.

[…]

CardDAVMATE is an Open Source CardDAV web client which is nice to use for editing some of the more esoteric (read: not available in the GUIs) vCard attributes, in particular those for spouse and the social profiles.

Previously:

Tuesday, April 16, 2024

Twitter’s Pivot to x.com Is a Gift to Phishers

Brian Krebs (Hacker News):

On April 9, Twitter/X began automatically modifying links that mention “twitter.com” to read “x.com” instead. But over the past 48 hours, dozens of new domain names have been registered that demonstrate how this change could be used to craft convincing phishing links — such as fedetwitter[.]com, which until very recently rendered as fedex.com in tweets.

[…]

The apparent oversight by Twitter/X was cause for amusement and amazement from many former users who have migrated to other social media platforms since the new CEO took over. Matthew Garrett, a lecturer at U.C. Berkeley’s School of Information, summed up the Schadenfreude thusly:

“Twitter just doing a ‘redirect links in tweets that go to x.com to twitter.com instead but accidentally do so for all domains that end x.com like eg spacex.com going to spacetwitter.com’ is not absolutely the funniest thing I could imagine but it’s high up there.”

I still go to twitter.com, which serves links to twitter.com rather than x.com. And if I go to x.com it redirects me to twitter.com.

Previously:

Update (2024-04-24): See also: Bruce Schneier.

The Apple curl Security Incident

Daniel Stenberg (Hacker News, Slashdot):

The friendly reporter showed how the curl version bundled with macOS behaves differently than curl binaries built entirely from open source. Even when running the same curl version on the same macOS machine.

The curl command line option --cacert provides a way for the user to say to curl that this is the exact set of CA certificates to trust when doing the following transfer. If the TLS server cannot provide a certificate that can be verified with that set of certificates, it should fail and return error.

[…]

When this command line option is used with curl on macOS, the version shipped by Apple, it seems to fall back and checks the system CA store in case the provided set of CA certs fail the verification. A secondary check that was not asked for, is not documented and plain frankly comes completely by surprise.

[…]

This is a security problem because now suddenly certificate checks pass that should not pass.

Yet another case where Apple’s security team doesn’t agree about what constitutes a security issue.

Previously:

The Race to Replace Redis

Steven Vaughan-Nichols (via Hacker News):

For those of you who aren’t open-source licensing experts, this means developers can no longer use Redis’ code. Sure, they can look at it, but they can’t export, borrow from, or touch it.

Redis pulled this same kind of trick in 2018 with some of its subsidiary code. Now it’s done so with the company’s crown jewels.

Redis is far from the only company to make such a move. Last year, HashiCorp dumped its main program Terraform’s Mozilla Public License (MPL) for the Business Source License (BSL) 1.1. Here, the name of the new license game is to prevent anyone from competing with Terraform.

Joe Brockmeier (via Hacker News):

So it should be apparent that code contribution is beside the point. Redis is a venture-backed company that has taken more than $350 million in funding over many rounds since 2011. The company, and its investors, seem to have calculated that they can safely move away from open source to try to capture more revenue.

They have some reason to believe this is the case, if MongoDB’s results are any guide. The company went public in 2017 and moved to the SSPL a little more than a year later. Shortly afterward, major Linux distributions stopped packaging the database because it no longer met their licensing standards. But, by that time, the company had set its sights on a platform model that would encourage developers (and their employers) to use and pay for MongoDB and ancillary offerings with the as-a-service model. Distributing a source-available version of MongoDB could be seen as a loss-leader strategy to reach developers that the company wagered did not care about open-source.

[…]

Having to find a replacement to ship in place of Redis is not the only problem for community distributions. Jacob Michalskie called out several services in use by the openSUSE project that will need a Redis replacement, including the Pagure code-hosting software (created and used by Fedora as well) used for code.opensuse.org, and the Discourse forum software.

[…]

It is, of course, too soon to predict whether one or more of the forks will gain significant traction—but it seems likely that Valkey will be a credible alternative. The possibility of a swift fork with widespread community and industry backing should give pause to vendors who expect a smooth path after abandoning open source.

Previously:

Update (2024-04-24): Gergely Orosz:

Redis will probably be the case study on why it’s a terrible idea for a VC-funded company (Redis Labs) to take over a permissive open source project they did not start (Redis), become the de facto owners, and then “rug pull” (change the license).

Mojo Is Open Source

Modular (Hacker News):

We firmly believe for Mojo to reach its full potential, it must be open source. We have been progressively open-sourcing more of Mojo and parts of the MAX platform, and today we’re thrilled to announce the release of the core modules from the Mojo standard library under the Apache 2 license!

[…]

Beyond just providing source code, we are also opening up revision history for the standard library, releasing nightly builds of the Mojo compiler, providing public CI, and allowing external contributions through GitHub pull requests. This is expensive and non-trivial to set up, but in our experience, it's critically important to allow the community to scale.

Previously:

Monday, April 15, 2024

The Demise of Email Forwarding Is Getting Closer

gastropod:

A bunch of universities have just sent out notices that email forwarding is going to increasingly break in the very near future. The big email services, gmail, yahoo, outlook and apple, are going to start tightening the thumbscrews (strict SPF, DMARK and DKIM, but also other stuff) on April 1 (bad timing, that).

I’d vaguely seen that gmail was planning to block much more bulk mail to individuals, but hadn’t really thought about the consequences to normal email forwarding.

[…]

It’s a good time to audit your email situation, especially if you currently forward mail to large provider controlled domains, or if you have any chains of forwards set up that you’ve forgotten about.

This has been breaking for a long time. I get lots of bounces because people have set iCloud Mail to forward to an address that rejects the message based on the headers (which iCloud didn’t rewrite).

Previously:

Update (2024-04-26): See also: Hacker News.

NSTableView With SwiftUI

Edvinas Byla (via Dave Verwer):

The [LazyVGrid] user experience isn’t great, but it’s still probably okayish for a version 1.0.0 release. The performance issues are less noticeable with fewer items unless you’re used to high-quality apps. But then there was this one thing that bugged me: the behavior of the context menu.

On macOS, right-clicking an item usually selects it and shows the context menu. SwiftUI’s .contextMenu shows the menu but doesn’t select or give you any callback for selecting the item. This can be confusing because you don’t know if you’re seeing the menu for the right item.

You’re supposed to be able to use the contextual menu to interact with a list item without changing the selection.

Damn, did [NSTableView] feel buttery.

[…]

But the main reason for this overhaul wasn’t just the scroll performance. It was also fixing that annoying context menu issue.

[…]

On top of all this, I managed to get rid of some extra code for keyboard navigation, clean up the layout mess, and now I can easily adjust and rearrange columns.

[…]

The remaining part of this post will go over some challenges and gotchas of replacing LazyVGrid with NSTableView while still reusing SwiftUI views.

Lots of good stuff there about using SwiftUI views inside the column headers and table cells.

I don’t want the takeaway to be that SwiftUI is slow and AppKit is fast, or that SwiftUI on macOS isn’t ready for serious apps. In reality, the very complex template editor for this app is almost entirely written in SwiftUI, which handles it impressively well.

Helge Heß:

SwiftUI is part of the future, it is not “the” future. It is still unclear how sth basic like a text editor can work with the scalability constraints of SwiftUI. Or a List w/ more than 1k items. Everything becomes easier if you start to acknowledge that SwiftUI is a convenience extension to Cocoa, not a replacement in any way. And miraculously SwiftUI also allows super easy integration w/ Cocoa, making sure it is no either or 🙂

Malcolm Hall:

having a constant number of Views per row (i.e. no ifs) is one of the performance secrets recently explained at 16:25 here.

Another is no sorting/filtering in body, e.g. it could be bounced through onChange and saved in another state

Previously:

Update (2024-04-26): Greg Pierce:

SwiftUI Q: Is there a trick to get lazy generation of a context menu on a list row?

Keeping Your Data From Apple Is Harder Than Expected

Minna Tiainen (via Hacker News):

The researchers studied eight apps: Safari, Siri, Family Sharing, iMessage, FaceTime, Location Services, Find My and Touch ID. They collected all publicly available privacy-related information on these apps, from technical documentation to privacy policies and user manuals.

The fragility of the privacy protections surprised even the researchers.

‘Due to the way the user interface is designed, users don’t know what is going on. For example, the user is given the option to enable or not enable Siri, Apple's virtual assistant. But enabling only refers to whether you use Siri's voice control. Siri collects data in the background from other apps you use, regardless of your choice, unless you understand how to go into the settings and specifically change that,’ says Lindqvist.

[…]

‘It turned out that the participants weren’t able to prevent any of the apps from sharing their data with other applications or the service provider,’ Bourdoucen says.

Mysk:

Privacy Nutrition Labels are a great idea, but the lack of a mechanism to verify what’s on them makes them unreliable. They can be inaccurate or misleading. Here’s an example: Apple’s own Podcasts app states that search history isn’t linked to the user’s identity, but experiments show that every search performed in the app sends a request to Apple servers with the user’s iCloud ID associated with search keywords, as shown in the screenshot. Perhaps this data is discarded, but in theory the data is enough to build a search history that is linked to a particular user. And this’s not what the privacy label says.

Previously:

GM Stops Sharing Driver Data With Brokers

Jonathan M. Gitlin (Hacker News):

After public outcry, General Motors has decided to stop sharing driving data from its connected cars with data brokers. Last week, news broke that customers enrolled in GM's OnStar Smart Driver app have had their data shared with LexisNexis and Verisk.

Those data brokers in turn shared the information with insurance companies, resulting in some drivers finding it much harder or more expensive to obtain insurance. To make matters much worse, customers allege they never signed up for OnStar Smart Driver in the first place, claiming the choice was made for them by salespeople during the car-buying process.

Karl Bode:

The absolute bare minimum you could could expect from the auto industry here is that they’re doing this in a way that’s clear to car owners. But of course they aren’t; they’re burying “consent” deep in the mire of some hundred-page end user agreement nobody reads, usually not related to the car purchase itself but the apps consumers now use to manage roadside assistance and other programs.

So not surprisingly, GM was subsequently sued. And now the company finds itself on an apology tour[…]

Previously:

Update (2024-04-24): Jude Karabus (via Hacker News):

Two New Jersey drivers claim they now pay more for their car insurance because General Motors (GM) and its OnStar app snooped on their driving behavior without their consent and sent metrics to “various insurance carriers.”

As the lawsuit [PDF], filed in Georgia on Friday, concedes, some vehicle purchasers do knowingly consent to having their personal driving habits and behavior monitored and handed on to third parties when they agree “to specific safe driving programs … and to installing dongles in their vehicles.” But the plaintiffs claim they agreed to no such thing.

Update (2024-04-30): Kashmir Hill (via Bruce Schneier):

Automakers have been selling data about the driving behavior of millions of people to the insurance industry. In the case of General Motors, affected drivers weren’t informed, and the tracking led insurance companies to charge some of them more for premiums. I’m the reporter who broke the story. I recently discovered that I’m among the drivers who was spied on.

Friday, April 12, 2024

Swift for C++ Practitioners

Doug Gregor:

I’ve started a blog series aimed at C++ programmers who are interested in learning #SwiftLang. It teaches the breadth of the Swift language, but anchored in the features and idioms of C++. So if you know your Rule Of Fives and your SFINAEs and think you might be interested in Swift, I’d love to hear what you think.

Previously:

Update (2024-04-24): Doug Gregor:

Part 6 covers error handling.

Effects of the DMA’s Browser Choice Requirement

Ashley Belanger:

Smaller web browsers are gaining traction in the European Union after the Digital Markets Act (DMA) started requiring designated gatekeepers like Google and Apple to make it easier to switch default web browsers on devices.

[…]

Reuters collected data from six companies, confirming that, when presented with a choice screen, many EU users will swap out default browsers like Chrome or Safari for more privacy-focused options. And because iPhones have a larger market share than Google-branded phones in the EU, Apple is emerging as the biggest loser, Reuters reported, noting that under the DMA, “the growth for smaller browsers is currently coming at the cost of Safari.”

Dan Moren:

In some ways, this isn’t surprising: I’m guessing a lot of consumers in the EU weren’t even aware that they could change the default browser on iOS. But it’s also early days and it’s possible that some of this is experimentation for people to see what else is on there—it’s not entirely clear to me from the story (or the Reuters story where the numbers originate) over what time period they’ve logged this. People may try out another browser and then change back—especially if we’re talking about browsers with, say, free trials to a paid subscription.

Nick Heer:

I have seen others suggest people may be picking third-party browsers because they are unclear about what a web browser is, or are unsure which one they want to use. I can see legitimacy in both arguments — but that is just how choice works. A lot of people buy the same brand of a product even when they have other options because it is the one they recognize; others choose based on criteria unrelated to the product itself. This is not a new phenomenon. What is fascinating to me is seeing how its application to web browsers on a smartphone is being treated as exotic.

[…]

It has so far been a little bit like entering a store where they give you a basket of house brand products and you have to decide which third-party options you want to add or exchange to the basket. Someone needs to really care in order to make the effort. Now, because of this ballot screen, the market is a little more levelled, and it seems some users are responding.

Tim Hardwick:

Despite users increasingly choosing alternative options, browser companies have criticized Apple and Google for the slow rollout of the change, and believe it is hampering the migration away from Safari and Chrome. Mozilla, which owns Firefox, estimates that only around a fifth of iPhone users in the EU have received the iOS update, and claims that the rollout is much slower than Apple’s previous software updates.

Some alternative browser makers are also concerned that the design of choice screens is sub-optimal at best. For example, Vivaldi CEO Jon Stephenson von Tetzchner notes that Apple’s choice screen only appears when iPhone users open Safari, while the list of browsers provides no additional information.

[…]

Vivaldi is also unhappy with the design. “The list of browsers does not show additional information and that does not help users to make a meaningful choice,” a company spokesperson told TechCrunch. “If the user has already selected a browser of their own choice, the choice screen can actively try to push them away from it, and may not even include it in the list that it presents to the user.”

Previously:

“Don’t Let Me Go” and iCloud Storage Tiers

John Gruber:

The gist of the commercial is that you shouldn’t worry about deleting photos to free up storage, because modern iPhones have plenty of space.

[…]

But this commercial made me want to yell at my TV each time it came on: “The problem is iCloud storage, not on-device storage!” The free tier of iCloud remains just 5 GB, and the $1/month paid tier offers just 50 GB, which may not be enough to back up even a 64 GB iPhone SE.

[…]

And no amount of cleverness in iOS can protect a user with un-backed-up photos and videos if they lose or break their iPhone.

[…]

It feels like this new commercial is just whistling past the single biggest shortcoming in the Apple ecosystem.

I bet Apple has data showing that millions of iPhone users have precious photos that aren’t backed up because they don’t have enough iCloud storage. iOS will nag about this, and people get used to ignoring it. There’s an aversion to subscriptions, even if it’s only 99 cents per month to back up important data. I don’t know what the answer is, but it seems odd that the free tier hasn’t changed and that purchasing a new $999 phone doesn’t get you more. I guess it’s like how the fancy hotels are the ones that charge for Wi-Fi…

Ryan Jones:

User must choose between (roughly speaking) 5-10GB on device or 100-200GB on device. That’s so binary. There’s no benefit to more device storage until and unless it can fit ALL your photos.

Carlos Ribas:

Plus it doesn’t do a great job. I have to turn it off or else I frequently find myself waiting to download offloaded videos I just took, while the phone sits 75% empty. Doing a good job would mean filling the phone but automatically purging oldest-first as-needed.

John Gruber:

The free tier for Google One offers 15 GB of storage.

[…]

Google used to offer “unlimited storage for photos and videos” to owners of Pixel phones, but they dropped this offer starting with the Pixel 6 in late 2021. That was such an appealing offer — especially considering that much of the appeal of Pixel phones comes from their renowned camera systems. I can only surmise that this proved more expensive to Google than they deemed worthwhile.

You don’t need to pay for iCloud to back up a large amount of iPhone storage — you can still back up to a Mac or PC manually. I don’t know any non-expert users who do this, though, and there are zillions of iPhone owners who don’t even own a Mac or PC. For the masses, iCloud backup is the only backup.

Previously:

Update (2024-04-24): Chance Miller:

Nearly 13 years later, how does iCloud’s free storage offer – and paid upgrade plans – compare to the competition?

Update (2024-04-26): Scott:

What gets seemingly lost[…] in this discussion of Apple’s “free” 5GB iCloud tier is that it isn’t, in fact, FREE… in actuality, Apple diverts revenue from device purchase to the Services silo to PAY for it.

That means: CUSTOMERS pay for it. In the case of existing iCloud users, which is the majority of device purchasers, Apple diverts the revenue but then never delivers the product… which serves to ‘juice’ their Services profits (because it -IS- pure profit).

If an Apple customer purchases several devices within the period of time that Apple is deferring revenue, they ARE ENTITLED to multiples of 5GB. They don’t get it.

They’re deferring the full amount for each device purchase, not a fraction based on how many users have multiple devices?

Grindr’s Plan to Squeeze Its Users

Zoë Schiffer:

Since its initial public offering in 2022, Grindr has been on a rocky road financially. Its stock has fallen 70 percent since its SPAC. After hitting an IPO-high of $71.51, it currently sits at $10.13. Last summer, employees announced plans to unionize, amid industry layoffs and worries that the company was losing its progressive culture. Two weeks later, CEO George Arrison abruptly ordered his mostly remote workforce of 180 people back to the office. About half the company left and Grindr paid out more than $9 million in severance.

Now, Grindr plans to boost revenue by monetizing the app more aggressively, putting previously free features behind a paywall, and rolling out new in-app purchases, employees say. The company is currently working on an AI chatbot that can engage in sexually explicit conversations with users, Platformer has learned. According to employees with knowledge of the project, the bot may train in part on private chats with other human users, pending their consent.

[…]

During the pandemic. Match Group was riding high, with a market cap well over $40 billion. But when growth started to slow across the tech industry, the company’s stock suffered accordingly. Tinder reported a year-over-year drop in the number of paying users in third-quarter earnings in 2023, sending Match Group’s stock plunging 15 percent – the lowest it had been since the company separated from IAC in 2020. Its market cap today has fallen below $10 billion, compared to $1.76 billion for Grindr.

[…]

But frustration with dating apps’ aggressive monetization efforts is on the rise. And as more of Grindr slips behind the paywall, users may face a disappointing future: one with fewer free users to chat with, and an app that regularly pushes them to romance a chatbot.

Previously:

Thursday, April 11, 2024

Used Genuine Apple Parts and Parts Pairing

Apple (MacRumors):

Today Apple announced an upcoming enhancement to existing repair processes that will enable customers and independent repair providers to utilize used Apple parts in repairs.

[…]

And in order to simplify the repair process, customers and service providers will no longer need to provide a device’s serial number when ordering parts from the Self Service Repair Store for repairs not involving replacement of the logic board.

[…]

Apple will also extend its popular Activation Lock feature to iPhone parts in order to deter stolen iPhones from being disassembled for parts.

Brian Heater (MacRumors):

Components that don’t require configuration (such as volume buttons) were already capable of being harvested from used devices. Today’s news adds all components — including the battery, display and camera — which Apple requires to be configured for full functionality. Face ID will not be available when the feature first rolls out, but it is coming down the road.

At launch, the feature will be available solely for the iPhone 15 line on both the supply and receiving ends of the repair. That caveat is due, in part, to limited interoperability between the models. In many cases, parts from older phones simply won’t fit. The broader limitation that prohibited the use of components from used models comes down to a process commonly known as “parts paring.”

[…]

“‘Parts pairing’ is used a lot outside and has this negative connotation,” Apple senior vice president of hardware engineering, John Ternus, tells TechCrunch. “I think it’s led people to believe that we somehow block third-party parts from working, which we don’t. The way we look at it is, we need to know what part is in the device, for a few reasons. One, we need to authenticate that it’s a real Apple biometric device and that it hasn’t been spoofed or something like that. … Calibration is the other one.”

They don’t block third-party parts from working, but they do make sure they’re real Apple parts. I’m so glad to have that clarified.

“Parts pairing, regardless of what you call it, is not evil,” says Ternus. “We’re basically saying, if we know what module’s in there, we can make sure that when you put our module in a new phone, you’re gonna get the best quality you can. Why’s that a bad thing?”

Jason Koebler (tweet):

Seemingly magically and surely not coincidentally, Apple has announced that it will suddenly ease some of its “parts pairing” iPhone repair restrictions just weeks after Oregon passed a law banning this practice and on the same day that Colorado is considering a bill that would do the same.

[…]

What this means, practically, is that Apple will let you swap the screen of one iPhone with the screen of another iPhone, something that was impossible for a consumer or independent shop to do under the restrictions it has implemented on recent iPhone models. The current announcement will not allow for aftermarket parts to be used, which is a critical distinction. Aftermarket parts are widely used in other electronics, other companies’ smartphones, and they used to be widely used in iPhones prior to the parts pairing restrictions.

Nick Heer:

This all sounds pretty great and, it would seem, entirely triggered by regulatory changes. But it also seems to me that it is designed to challenge the parts pairing section of Oregon’s right-to-repair law (PDF).

Previously:

Update (2024-04-12): Matt Birchler:

I find these to be very “the sky is falling” stories about the dangers of user choice, but what makes the part pairing issue interesting is that we have history here. I believe it wasn’t until the Face ID generation of iPhones that tons of iPhone components had the “part pairing” issue, so we have about a decade of iPhone history where third party parts were able to be used to repair broken iPhones.

John Bumstead:

Parts from needlessly Activation Locked devices are EXACTLY the parts that NEED to be allowed and EXACTLY the parts that exist in abundance. If Apple is banning their reuse, they are making the situation WORSE. This is newspeak at its finest.

Apple Alerts Users to Mercenary Spyware Attacks

Manish Singh (via Hacker News, MacRumors, Reddit):

Apple sent threat notifications to iPhone users in 92 countries on Wednesday, warning them that they may have been targeted by mercenary spyware attacks.

[…]

Apple previously described the attackers as “state-sponsored” but has replaced all such references with “mercenary spyware attacks.”

Apple:

Apple threat notifications are designed to inform and assist users who may have been individually targeted by mercenary spyware attacks, likely because of who they are or what they do. Such attacks are vastly more complex than regular cybercriminal activity and consumer malware, as mercenary spyware attackers apply exceptional resources to target a very small number of specific individuals and their devices. Mercenary spyware attacks cost millions of dollars and often have a short shelf life, making them much harder to detect and prevent. The vast majority of users will never be targeted by such attacks.

According to public reporting and research by civil society organizations, technology firms, and journalists, individually targeted attacks of such exceptional cost and complexity have historically been associated with state actors, including private companies developing mercenary spyware on their behalf, such as Pegasus from the NSO Group. Though deployed against a very small number of individuals — often journalists, activists, politicians, and diplomats — mercenary spyware attacks are ongoing and global. Since 2021, we have sent Apple threat notifications multiple times a year as we have detected these attacks, and to date we have notified users in over 150 countries in total.

[…]

Although our investigations can never achieve absolute certainty, Apple threat notifications are high-confidence alerts that a user has been individually targeted by a mercenary spyware attack, and should be taken very seriously. We are unable to provide information about what causes us to issue threat notifications, as that may help mercenary spyware attackers adapt their behavior to evade detection in the future.

Previously:

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

The majority of emails and almost all messages purporting to be from Apple are scams.

[…]

With one notable exception, Apple doesn’t know whether your Mac or devices have any malware, and can’t tell you if they do. Any message that tries to tell you otherwise is phishing or scam.

[…]

Instead, if you think you have received a threat notification from Apple, sign in to iCloud.com, where you should see confirmation that those messages are genuine.

Update (2024-04-26): Kirk McElhearn and Joshua Long:

Let’s examine the reasons why Apple might legitimately contact you (and how they’ll do so), and how to recognize scams.

Humane Ai Pin Reviews

David Pierce (Hacker News):

The AI Pin is an interesting idea that is so thoroughly unfinished and so totally broken in so many unacceptable ways that I can’t think of anyone to whom I’d recommend spending the $699 for the device and the $24 monthly subscription.

AI Pin and its AI OS, Cosmos, are about beginning the story of ambient computing,” Humane’s co-founders, Imran Chaudhri and Bethany Bongiorno, told me in a statement after I described some of the issues I’ve had with the AI Pin. “Today marks not the first chapter, but the first page. We have an ambitious roadmap with software refinements, new features, additional partnerships, and our SDK. All of this will enable your AI Pin to become smarter and more powerful over time. Our vision is for Cosmos to eventually exist in many different devices and form factors, to unlock new ways to interact with all of your devices.”

As the overall state of AI improves, the AI Pin will probably get better, and I’m bullish on AI’s long-term ability to do a lot of fiddly things on our behalf. But there are too many basic things it can’t do, too many things it doesn’t do well enough, and too many things it does well but only sometimes that I’m hard-pressed to name a single thing it’s genuinely good at. None of this — not the hardware, not the software, not even GPT-4 — is ready yet.

Clarko:

Dunking on the Humane Ai Pin is too easy.

I’d sooner dunk on the Apple Watch because we should be able to point at that, and ask why you’d ever want a lapel pin to do its job.

We should be able to say it’s the perfect device for people who want to live a phone-free life.

Steve Troughton-Smith:

Neither Vision Pro nor Humane’s Ai Pin are ‘the future’, but they’re both showcasing aspects that will become the future. A pair of glasses, running an OS like visionOS, with advanced multimodal AI smarts. That’s the next product that can truly change the world, something anybody and everybody can wear all day every day, and give the smartphone a run for its money; what we have now are science projects — really cool science projects — but science projects nonetheless.

See also: Ken Kocienda, Imran Chaudhri, Bethany Bongiorno.

Previously:

Update (2024-04-12): Julian Chokkattu:

Not being able to fully trust the results from the Ai Pin’s Ai Mic and Vision features (the latter is still in beta) is just one problem with this wearable computer. Unfortunately, there’s not much else to do with it as it’s missing a great many features. The Humane Ai Pin could be an interesting gadget a year from now after promised software updates, but at the moment it’s a party trick.

Cherlynn Low:

Not only is the Humane AI Pin slow, finicky and barely even smart, using it made me look pretty dumb. As it stands, the device doesn’t do enough to justify its $700 and $24-a-month price.

[…]

If only voice interactions were the worst thing about the Humane AI Pin, but the list of problems only starts there. I was most intrigued by the company’s “pioneering Laser Ink display” that projects green rays onto your palm, as well as the gestures that enabled interaction with “onscreen” elements. But my initial wonder quickly gave way to frustration and a dull ache in my shoulder. It might be tiring to hold up your phone to scroll through Instagram, but at least you can set that down on a table and continue browsing. With the AI Pin, if your arm is not up, you’re not seeing anything.

[…]

It’s not just those of us afflicted with tiny palms that will find the AI Pin tricky to see. Step outside and you’ll have a hard time reading the faint projection. Even on a cloudy, rainy day in New York City, I could barely make out the words on my hands.

Dare Obasanjo:

I continue to believe that the problems that products like the Humane AI Pin and Rabbit R1 are trying to solve are best solved using AirPods and an app on your phone.

The only issue is Apple’s closed ecosystem prevents companies from doing this so they’re inventing superfluous devices nobody asked for.

Louie Mantia:

A team with this collective pedigree is smart enough to thoroughly test their own product, so I can’t imagine a reality in which the people at Humane didn’t know about these issues before shipping it. However, if we assume they did know, the story becomes somehow more troubling.

Ben Sandofsky:

It fits my theory that the product was a late stage pivot…

Founders pitch investors on a hand laser thing when it’s a napkin sketch. They raise too much money, hire too many people.

They build a prototype, but too late. Turns out the laser UI sucks and eats too much battery.

“Hmm. Investors are shopping for AI companies now… voice uses less power… pivot to AI!”

Suddenly tech has a downturn. Can’t raise another round of funding. They launch an alpha.

Update (2024-04-26): See also:

Automattic Acquires Beeper

Eric Migicovsky (tweet, Hacker News, MacRumors):

I’m excited to announce that Beeper has been acquired by Automattic. This acquisition marks the beginning of an exciting new chapter as we continue our mission to create the best chat app on earth.

[…]

Given the state of the messaging landscape today, we believe there is a huge opportunity for us to push boundaries and create new experiences in chat. The majority of other chat apps have stagnated, entrenched in their positions, with no significant new players emerging since Discord’s launch in 2015. Given the state of the messaging world, we’ve long felt the need for a strong ally with the resources to support us on our quest. Automattic has a long history of putting user control and privacy first with open source, and great bilateral relationships with Meta, Apple, Microsoft, Google, Matrix and others that we hope can usher in a new era of collaboration.

[…]

Matt, Automattic’s CEO, and I have known each other for years. He was an early user, supporter and investor in Beeper. We’re very well aligned on our goal (build the best chat app on earth), approach (open source where possible), and independence (Beeper will operate independently as part of Automattic’s Other Bets division).

Matt Mullenweg:

We’re going to use the Beeper brand, because it’s fun. This is not unlike how browsers have evolved, where solid tech and encryption on top of an open ecosystem has created untold value for humanity.

[…]

A lot of people are asking about iMessage on Android… I have zero interest in fighting with Apple, I think instead it’s best to focus on messaging networks that want more engagement from power-user clients.

Sarah Perez:

The deal, which was for $125 million according to sources close to the matter, is Automattic’s second acquisition of a cross-platform messaging solution after buying Texts.com last October.

[…]

Automattic had previously made a strategic investment of $4.6 million in Element (previously New Vector), another company building on Matrix, and it contributes annually to Matrix.org, as does Beeper.

Dare Obasanjo:

$125M for a 25 person team whose claim to fame is getting blocked by Apple for trying to interop with iMessage is a sweet exit.

Automattic’s bet on Tumblr didn’t work out and so it’s looking at messaging as its next growth vehicle. Telegram is valued at $30B and claims to make hundreds of millions in revenue so it makes sense for Automattic to try this. Either that or short form video 😁

Nick Heer:

Seems like a smart way for Beeper to become better resourced, and a bet by Automattic on more legislation like the Digital Markets Act enabling further interoperable messaging.

Previously:

Update (2024-04-12): John Gruber:

While the Beeper Mini/iMessage thing is where Beeper garnered, by far, the most publicity, it was always a sideshow from their primary goal of building a universal messaging app for multiple (14!) platforms. Think of it like a modern-day Adium.

[…]

Now that I’ve tried Beeper for Mac (connecting Twitter/X, WhatsApp, Signal, Instagram, and Slack accounts) — it’s remarkable how similar it is to Texts. They’re both Electron/React apps, and both suffer from a lot of Electron-isms. (What in the world is going on with the keyboard shortcuts in the contextual menu for the text editing field?) Both are just big bloated Electron web apps pretending, by appearance, to be Mac apps.

Update (2024-04-26): John Gruber:

Electron.

[…]

Putting aside the thirstiness of asking for an app to remain running in the background, despite it consuming 1.8 GB of RAM in idle state, “Close” does not mean “Quit” in Mac parlance, and the Cancel button should be on the left.

Wednesday, April 10, 2024

Run-time Polymorphism in Swift

Jordan Rose (Mastodon):

There are only three ways to get run-time polymorphism in Swift. Well, three and a half.

[…]

[…]

Generics are a powerful and flexible tool, but in general they don’t result in any more run-time polymorphism than any types (formerly “protocol composition types”). This often throws people who are used to C++ templates, where overload resolution is done on the concrete type that satisfies the generic constraints rather than on the generic type. Swift didn’t choose that option for two main reasons: it makes it much harder to diagnose issues at compile time, and it means that the entire body of the generic has to be visible to callers (so they can substitute in the concrete type). This is good for optimization, but bad for library evolution. You can think of Swift’s model as “the decision of which overload to call is made based on the knowledge where the call is written, which in this case is inside a generic function with certain constraints”.

Previously:

Universal macappstore: Links

Jeff Johnson:

The App Store app on macOS is the default handler of URLs with the macappstore: scheme. App Store preview web pages automatically open the App Store app by setting the location of an HTML <iframe> element to a macappstore: URL. My free open source app Stop The Mac App Store registers itself as the default macOS handler for the macappstore: scheme, thereby preventing Safari and Safari Technology Preview from automatically opening those URLs in App Store. If you click Cancel or press the escape key, the App Store app won’t open.

[…]

I’ve discovered that macOS Ventura and Sonoma changed how Safari handles App Store links, bypassing Stop The Mac App Store in some cases. Fortunately, I’ve also discovered a solution to the problem. In this blog post I’ll discuss both the problem and the solution. As a bit of a spoiler, let me first deflate the conspiracy theories: Apple wasn’t specifically targeting Stop The Mac App Store, which is too obscure to be noticed by the corporate giant. My app never lost the ability to become the default handler of the macappstore: URL scheme. Rather, it seems that macOS Ventura started treating App Store URLs as universal links[…]

It continues to be infuriating that macOS doesn’t offer a way to opt out of Universal Links. I’ve had to uninstall the Twitter and Mastodon apps because otherwise URLs for those services become unusable in my Web browser. I guess an alternative would be to switch from Safari to Chrome, which offers more control here.

As for macappstore: links, I generally prefer to view them on the Web because:

Unfortunately, you need to use the App Store app to access all of the reviews.

Previously:

Facebook Blocking Links to Kansas Reflector

Nick Heer:

Earlier this week, Dave Kendall of documentary production company Prairie Hollow and formerly of a Topeka, Kansas PBS station, wrote in the Kansas Reflector an article criticizing Meta. Kendall says he tried to promote posts on Facebook for a screening of “Hot Times in the Heartland” but was prevented from doing so. A presumably automated message said it was not compliant with its political ads policy.

[…]

While this interpretation of a deliberate effort by Facebook to silence critical reporting is kind of understandable, given its poor communication and the lack of adequate followup, it hardly strikes me as realistic. In what world would Meta care so much about tepid criticism published by a small news operation that it would take deliberate manual actions to censor it?

[…]

If some system at Meta erroneously flagged as a threat Kendall’s original attempt to boost a post, it makes sense that related stories and domains would also be flagged.

[…]

Unfortunately, the coverage of this non-story has been wildly disproportionate and misses the actual problems. […] What is true and deeply frustrating is the weak approach of companies like Meta and Google toward customer service. Both have offloaded the administrative work of approving or rejecting ads to largely automated systems, with often vague and unhelpful responses, because they have prioritized scale above quality from their earliest days.

Previously:

Google Search Changes Hurt Independent Sites

Brandon Saltalamacchia (Hacker News, Dennis):

The main source of our traffic was through Google Search. Whenever you searched for something retro gaming-related, our hope was that you would stumble across our website for advice, as we have invested hundreds of thousands of dollars into expert journalists to provide you with answers to your retro gaming queries. It worked incredibly well; Google’s search engine did what it entailed, showing users informative content created by human experts.

[…]

Since September 2023, Google has hidden our site from millions of retro gamers, reducing our organic traffic and revenue by 85% and causing our business to be on the edge of going under.

[…]

Google’s algorithms now favor a handful of results BEFORE “normal” websites, results that rarely show independent websites.

[…]

Reddit is the single biggest winner in recent algorithm changes, seeing millions of more clicks every single day thanks to recent updates.

[…]

My real issue is that Google isn’t telling us and other creators what we are doing wrong; they are replying with vague answers or sharing advice that goes completely against what’s showing up in the search results.

Spivak:

I left the article being like “oh it can’t be that bad” and left my little Kagi oasis to try out some Google searches similar to the article and I’ve completely changed my tune. What in the hell happened? There’s nary an organic result to be found, 80% of the page is shopping garbage and sponsored links, the few organic results are blogspam, and there’s banner ads in the middle of results now?

The folks here in the comments are missing the forest for the trees here, sure algo tweaks reshuffle winners and losers but there’s almost no results that aren’t Google’s own scraped content and ad spots. No amount of “make better content” can push you above the fold.

Barry Schwartz:

While we have still not seen any sites recover from the September 2023 helpful content update, we have seen sites recover from previous core updates. We were hoping by now to see sites recover from that September 2023 helpful content update with this March 2024 core update (since it incorporated the helpful content system in part), but no, not yet.

Previously:

Tuesday, April 9, 2024

OmniFocus 4.2

Ainsley Bourque Olson:

For anyone running the Pro edition of OmniFocus, this release also introduces some very exciting new custom perspective rules that support filtering based on dates, repeats, and more:

  • New “Has date in range” rule type enables filtering a perspective by assigned date range.
  • New “Is repeating” rule enables filtering repeating tasks.
  • New “Is project, group, or neither” rule type enables filtering for projects or groups.
  • New “Is in single actions list” rule type enables filtering for items in single action lists.

[…]

Also for anyone running the Pro edition of OmniFocus, Omni Automation now supports “Install Links” for simplified Omni Automation plug-in installation.

Release notes:

In direct downloads of the app, the icon chosen in Appearance Settings will continue to be used in the dock when the app isn’t running.

Ken Case:

After some heroic spelunking, debugging, and tuning of our SwiftUI outline view, we’re now testing a performance improvement for OmniFocus 4.2 which makes adding an item to an inbox with 100+ items 20x faster.

The outline performance on iOS is indeed much better.

The watch experience continues to be frustrating, with slow syncing that doesn’t trigger automatically nor always complete. After the update, the complication was stuck showing a count of actions that didn’t match the app, and the digits were truncated. I eventually fixed it by removing and re-adding the complication. I assume there’s some sort of OS issue here because I see similar problems with Lock Screen widgets on iOS, e.g. Weathergraph stuck showing a temperature from a week ago.

I’m going to try removing OmniFocus from my iPad, because even leaving it as the frontmost app doesn’t seem to get it enough background time for it to stay in sync when I don’t touch the iPad for a few weeks. My hope is that, with the iPad out of the mix, syncing will be faster everywhere and therefore more reliable on the watch.

Previously:

Update (2024-04-26): Weathergraph:

Re: Widgets getting stuck (they stop updating).

I think I fixed everything I could on my side, and there is a pretty serious issue in iOS/watchOS (since 17.0/10.0), which I finally managed to catch in the wild and reported to @apple.

So far device restart is the only help :/.

Copyright Takedown Against Hundreds of Wordle Clones

Jason Koebler:

The New York Times has filed a series of copyright takedown requests against Wordle clones and variations in which it asserts not just ownership over the Wordle name but over the broad concepts and mechanics of the word game, which includes its “5x6 grid” and “green tiles to indicate correct guesses.”

The Times filed at least three DMCA takedown requests with coders who have made clones of Wordle on GitHub. These include two in January and, crucially, a new DMCA filed this week against Chase Wackerfuss, the coder of a repository called “Reactle,” which cloned Wordle in React JS (JavaScript).

Craig Grannell:

I find it curious that this is even possible, given that Wordle itself was a straight rip of Lingo, which itself was in part based on existing mechanics. Games build on other games. The NYT denying that stops others from having the success Wordle itself enjoys.

Nick Heer:

The Times’ two most recent ideas for games were blatantly ripped from “Only Connect” but, sure, some random people on GitHub are irrevocably diluting Wordle’s reputation.

Timothy Geigner:

For this discussion, you really do need to recall that Wordle began as a free to play, simple daily game that became a quick craze nationally. It was created by one person, Josh Wardle, who made absolutely clear at the time that he had no interest in wrapping anything like intellectual property around the game. And when others did create spinoffs or clones of the game, he handled it in roughly as congenial a manner possible.

But then he sold the game to the New York Times. And the Times promptly began to strongarm these spinoffs and clones into shutting down, wielding IP threats to do so.

Nick Lockwood:

A lot of folks replying to this with “you can’t copyright gameplay” and of course that is correct, in legal terms. But with IP (as with so much in our society) it doesn’t actually matter what the law says, it only matters how much money you have.

A free software author cannot defend themselves against a billion dollar corporation in court unless they are willing to risk ending up homeless on the street.

Previously:

AirTag Firmware Rollout Date

iSoftware Updates (via Sebastiaan de With):

Looks like Apple accidentally set the deployment dates for the 2.0.73 AirTag firmware to “m/d/24” instead of “m/d/2024” that has used in previous versions and which the AirTag update system uses as date format.

As a result, AirTags think the deployment dates are in the year 24 and they just skip to the 100% rollout batch 😅

Why is the goLiveDate even stored as a string when plists have a date type?

Previously:

Daylight Saving Time UI Design Test

Nikita Prokopov (Hacker News):

I have five clocks in my house. All of them I have to change manually twice a year: one hour back in the Autumn and one hour forward in the Spring. Today was one of these days.

Each clock presents a unique puzzle. Three out of five have no direct controls for changing time, and manuals have long been lost, so I have to figure it out every time.

Previously:

Monday, April 8, 2024

Coordinated Lunar Time (LTC)

Aimee Picchi:

The moon could soon get its own time zone.

The White House is directing NASA to work with other government agencies to develop a lunar-based time system called Coordinated Lunar Time, abbreviated as LTC. The Biden administration has given the space agency until the end of 2026 to hammer out the new system.

According to a Tuesday memo from the White House’s Office of Science and Technology Policy, the goal is to create a standard time measurement that will help coordinate efforts as humanity returns to the moon for exploration and economic development. The reality of such developments is not far off, with Intuitive Machines’ Odysseus lander touching down on the moon earlier this year and NASA planning a manned landing in 2026.

Debbie Goldsmith:

I keep seeing the news about lunar time presented as “the Moon is getting its own time zone.” What’s actually happening is the Moon is getting its own time standard. The problem being solved is that time passes slightly more quickly on the Moon compared to Earth (due to General Relativity) and so the Moon needs its own time standard for precise measurements and navigation. UTC is the time standard for measuring time on Earth, and LTC is being created for the Moon.

Voice Dream Reader Switches to Subscriptions

Jonathan Mosen:

Unfortunately, the relationship between Voice Dream Reader’s new owners and its engaged user base got off to a rocky start. Members of the online blind community did not find out about the sale of Voice Dream Reader last year from either the buyer or the seller. Instead, they found out because an indie developer who offers a product that competes in some ways with Voice Dream Reader discovered a new subscription option in a just-released build of Voice Dream Reader. He, not anyone associated with the app, broke the news to the blind community that subscriptions were on the way.

When a developer moves from a one-off purchase model to a subscription-based model, it is always controversial, even if said company makes great efforts to communicate it thoroughly. When you add an unpopular change, the departure of a popular indie developer, and nonexistent communication together, those ingredients add up to an inevitable firestorm. In the absence of information to the contrary, existing customers were concerned that they were about to be charged.

[…]

When a developer publishes an app in the App Store, they must comply with Apple’s App Review Guidelines. […] There is no wiggle room here. By taking away primary functionality users already paid for, such as adding new material to the Library, Voice Dream Reader does not comply with the Guidelines. […] Voice Dream Reader’s release notes make no mention of the subscription being forced on people who paid for the app already if they want to retain the functionality they paid for, and I suspect this has simply flown under Apple’s radar.

Via Shelly Brisbin:

The move comes from the app’s new owner, Applause Group, which bought the app in 2023 from original developer Winston Chen. Part of the backlash results from the planned $79 per year price tag (discounted to $59 until at least May 1, when the subscription becomes mandatory), but a bigger issue for longtime users is that Applause Group will effectively disable the older version of the app.

Applause Group:

Your feedback, along with the impactful stories shared about Voice Dream being a pivotal part of your daily lives, has led us to reverse this change.

[…]

We will continue to provide access to the app’s existing features at no additional cost.

Previously:

Music App Links in EU

Apple (Hacker News):

3.1.1(a): Updated to include Music Streaming Services Entitlements.

The new guideline reads:

3.1.1(a) Link to Other Purchase Methods: Developers may apply for entitlements to provide a link in their app to a website the developer owns or maintains responsibility for in order to purchase digital content or services. Please see additional details below.

[…]

Music Streaming Services Entitlements: music streaming apps in specific regions can use Music Streaming Services Entitlements to include a link (which may take the form of a buy button) to the developer’s website that informs users of other ways to purchase digital music content or services. These entitlements also permit music streaming app developers to invite users to provide their email address for the express purpose of sending them a link to the developer’s website to purchase digital music content or services. Learn more about these entitlements.

Innovation!

Juli Clover:

The European Commission in March fined Apple $2 billion for anti-competitive conduct against rival music streaming services. The fine also came with a requirement that Apple “remove the anti-steering provisions” from its App Store rules, which Apple has now done. Apple is restricted from repeating the infringement or adopting similar practices in the future, though it is worth noting that Apple plans to appeal the decision.

Previously:

Allowing iOS Game Emulators and Mini Apps

Apple (Hacker News):

4.7: Added games from retro game console emulator apps to the list of permitted software, and clarifies that mini apps and mini games must be HTML5.

Sweet! The new guideline reads:

4.7 Mini apps, mini games, streaming games, chatbots, plug-ins, and game emulators

Apps may offer certain software that is not embedded in the binary, specifically HTML5 mini apps and mini games, streaming games, chatbots, and plug-ins. Additionally, retro game console emulator apps can offer to download games. You are responsible for all such software offered in your app, including ensuring that such software complies with these Guidelines and all applicable laws. Software that does not comply with one or more guidelines will lead to the rejection of your app. You must also ensure that the software adheres to the additional rules that follow in 4.7.1 and 4.7.5. These additional rules are important to preserve the experience that App Store customers expect, and to help ensure user safety.

[…]

Your app may not extend or expose native platform APIs to the software without prior permission from Apple.

Juli Clover:

Game emulators have managed to sneak onto the App Store several times over the years by using hidden functionality, but Apple has not explicitly permitted them until now. The rule change that allows for game emulators is worldwide, as is support for apps that offer mini apps and mini games.

Ben Sandofsky:

From day one, Apple banned emulation from the App Store for no legal reason, just vibes, even though users want it.

After @altstore announces their own third-party App Store, which will be a haven for emulators, Apple changes their rules to allow it.

Riley Testut:

10 years too late Apple 🙃

Emma Roth (via Tom Warren):

Apple says those games must comply with “all applicable laws,” though — an indication it will ban apps that provide pirated titles.

[…]

The change seems to come in response to the antitrust lawsuit filed by the United States, which accuses Apple of attempting to stomp out both cloud game streaming apps and super apps. Apple recently started letting cloud streaming services, like Xbox Cloud Gaming and GeForce Now, onto the App Store.

Samuel Axon (Hacker News):

It’s a little fuzzy how this will play out, but it may not allow the kind of emulators you see on Android and desktop, which let you play retro games from any outside source.

jeff_tyrrill:

The emulator change is a minor rule change about bundling and is not what many of the reactions to the change think.

What people seem to think this means: Open-ended retro game emulators like Snes9x and Dolphin are now allowed. (I don’t think this is correct.)

What the change is actually doing: If you are the licensed publisher of a retro game collection, you can now offer them in one app (including perhaps downloading additional games added to the collection later) instead of splitting them into individual apps. Each game must be individually vouched for.

What is not changing: “Emulators” have long been allowed if the emulated code is bundled with the app and it is officially licensed.

Mike Rockwell:

I suppose it’s still possible that emulators like RetroArch and PPSSPP would be allowed, but it seems like the rule could imply that this is just for retro game collections that allow for downloading of more games within the app. More like Sega releasing a Sonic the Hedgehog collection that utilizes emulation or a game developer that wants their homebrew NES game available on iOS.

I suspect someone will test the rule and see exactly where the line is drawn, but I get the feeling we’ll still need sideloading to have what we think of as “emulation” on iOS.

Colin Cornaby:

Actually - this reading makes it sound like my DOS emulator dream is still dead. You could actually ship emulators to the store before - but they had to include the ROMs in the bundle. This just makes it sound like games are allowed to download ROMs from an external server that is still under developer control.

[…]

Basically if Sega wanted to launch an “Every Genesis game ever” service it would have been difficult before because they would have been forced to include every game in the app bundle.

This just makes it so they can download those ROMs on the fly.

OatmealDome:

Notably, Apple still does not allow non web browsing apps to use JIT recompilers. This precludes emulators for 6th generation and newer consoles (GameCube, etc) from running on the platform even with this guideline change.

I submitted a DMA interoperability request for JIT recompilers, but Apple denied it on the grounds that it doesn’t fall under Article 6(7) for “multiple reasons”, including that JIT is only used by web browsers on iOS.

Steve Troughton-Smith:

An App Store with game streaming services and support for emulators is a better App Store.

Apple is using this opportunity to find out why people might ever want to sideload or jailbreak, and head them off at the pass.

Now do virtualization and JIT, since those are easy, low hanging fruit

Nick Lockwood:

also, with retro games the developers don’t keep remotely tweaking a game that you liked after you bought it and removing content you already paid for until it’s no longer a game you like

Craig Grannell:

“You can load your own ROMs? That’s piracy!” now appears to be the default take on emulators and the App Store.

And, yes, it may well be. But places do also sell ROMs for old systems, or provide them as a digital backup/alternative when you purchase a cartridge or disk. It’s not 100% yo-ho-ho.

Also, the other growing consensus – Apple will only allow emulators where you can add games via IAP – makes no sense to me because that’s existed for YEARS in the App Store anyway.

Another example of raising App Store fees without raising the percentage.

Previously:

Friday, April 5, 2024

Embedding a Privacy Manifest Into an XCFramework

Joe Heck (Mastodon):

I expected documentation at least, and was hoping for an update in Xcode – specifically the xcodebuild command – to add an option that accepted a path to a manifest and included it appropriately. So far, nothing from Apple on that front. […] I hope that something is planned to make this easier, or at the minimum document a process, since it now appears to be an active requirement for new apps presented to the App Store.

[…]

In the meantime, if you’re Creating an XCFramework and trying to figure out how to comply with Apple’s requests for embedded privacy manifests, hopefully this article helps you get there. As I mentioned at the top of this post, this is based on my open source work in Automerge-swift. I’m including the library and XCFramework (and show it off) in a demo application. I just finished working through the process of getting the archives validated and pushed to App Store Connect (with macOS and iOS deliverables). To be very clear, the person I worked with at DTS was both critical and super-helpful. Without this information I would have been wandering blindly for months trying to get this sorted.

Previously:

Update (2024-04-24): Marcin Krzyzanowski:

apple: you have to add a privacy manifest
me: what’s that
apple: it’s a manifest
me: is it a plist file?
apple: use Xcode to make one
me: using Xcode
apple: not like that. The manifest file is invalid
me: what is valid
apple: check documentation
me: it doesn’t say the actual file format
apple: it’s invalid
me: google around and find out what is invalid in plist file because apparently, everyone struggles

Macs Targeted by Infostealer Malware

Jamf Threat Labs:

While searching for “Arc Browser” on Google, it was brought to our attention that following the sponsored result for what seems to be the legitimate Arc web browser, actually brings you to a malicious site aricl[.]net that imitates the legitimate arc.net.

[…]

The DMG is signed ad-hoc and provides directions to right-click the app and select open thus overriding any Gatekeeper warnings.

[…]

Dumping plain text passwords out of the keychain requires the user’s macOS password. Infostealer developers have long caught on to the fact that the easiest way to get this password is to simply ask the user for it. We see a prompt generated via a call to AppleScript.

Recalling Apple v. Qualcomm

Reed Albergotti (via Eric Migicovsky):

One of the first stories I covered then was Apple’s lawsuit against Qualcomm, which was accused of having a wireless modem monopoly and overcharging companies for the device. Apple paid Qualcomm about $7 per phone.

The opening arguments in that trial were riveting. Apple’s slide presentation included a photo of Radar O’Reilly, the comic relief radio operator from M.A.S.H. That was Qualcomm, Apple’s lawyers argued, the company that simply operated the radio on Apple’s otherwise sophisticated device.

Then it was Qualcomm’s lawyers’ turn. They revealed bombshell documents that had not been publicly seen before; Apple’s lawyers had accidentally sent them to Qualcomm.

[…]

Apple had tried to replace some of Qualcomm modems with a different model made by Intel. But Qualcomm chips were so much faster that Apple had to secretly throttle them so that all of its phones would operate at the same level.

Qualcomm only sought a percentage of the cost of the iPhone, not of all the software and services that used the modem.

Previously:

Trying to Bring Apple Watch to Android

Chance Miller (Hacker News):

As part of its response to the United States DOJ lawsuit today, Apple confirmed that it at one point considered creating an Apple Watch for Android. The company tells me that it spent three years working on bringing Apple Watch to Android before ultimately scrapping the idea.

Mark Gurman:

This was Project Fennel, which I wrote about last year.

I’d love to know more about this because it doesn’t seem to make much sense given the way apps work. Would it have been just be the built-in apps and some health features? If there’s an antitrust issue here, I would think it’s with lack of support for third-party watches on iOS rather than not supporting Apple Watch on Android.

Previously:

Thursday, April 4, 2024

Google Podcasts Is Gone

David Pierce:

Google Podcasts is dead. It has been dying for months, since Google announced last fall that it was killing its dedicated podcast app in order to focus all its podcasting efforts on YouTube Music. This is a bad idea and a big downgrade, and I’d be more mad if only I were more surprised.

The Podcasts app is just the latest product to go through a process I’ve come to call The Google Cycle. It always goes the same way: the company launches a new service with grandiose language about how this fits its mission of organizing and making accessible the world’s information, quickly updates it with a couple of neat features, immediately seems to forget it exists, eventually launches a competitor out of some other part of the company, obviously begins to deprecate it and shift focus to the new competitor, and then, years later, finally shuts it down for real. The Google Graveyard is full of apps like Reader, Duo, Inbox, Allo, Wallet, and countless others that have been through The Google Cycle, and it feels just as bad every time.

Via John Gruber:

I haven’t been bitten by Google killing an app or service since Google Reader, because I never again trusted them. I suppose this might be a lot more difficult for Android users, but I honestly don’t even remember the last time I added a new Google app or service to the set of tools I rely upon.

YouTube is irreplaceable. I wouldn’t want to be without Google Maps. Other than that, I use Google Search, Google News, Google Cloud Storage (with Arq), and Google Wi-Fi, all of which have decent alternatives. AdSense doesn’t, but it seems to have gotten a lot worse and isn’t doing much for me these days. I stopped using AdWords a while ago because it seemed untrustworthy. I also have a Nest Cam, which Google hasn’t supported very well.

See also: Sunset.

Update (2024-04-12): Tim Hardwick:

Google One VPN will be discontinued later this year, according to a customer email seen by Android Authority. The service was rolled out for Android in October 2020, before coming to iOS devices and Macs in 2022.

AV1 Integer Overflow

Paul Ducklin (tweet):

The security vulnerablities themselves turn out to be a single bug, or at least to be covered by a single bug identifier, CVE-2024-1580, which was found and reported by Nick Galloway, a researcher in Google’s Project Zero bug-hunting team[…]

[…]

We’re guessing, from Apple’s purposeful silence when the first fixes came out last week, that the CVE-2024-1580 bug was considered dangerous to document before the patches for other platforms, notably macOS, were published.

We’re further guessing that this implies that even with just basic information on what to look for and where to start, cybercriminals will be able to work backwards from the patches to construct a working exploit.

However, it seems that the details had already been made public in February.

CVE-2024-1580:

An integer overflow in dav1d AV1 decoder that can occur when decoding videos with large frame size. This can lead to memory corruption within the AV1 decoder.

Previously:

New FileVault Recovery Keys and GoFetch

Howard Oakley:

macOS Sonoma 14.4 and 14.4.1 updates have been prompting some users to create a new FileVault Recovery Key. If you see this as your Mac completes an update, here’s what you should next.

[…]

If your Mac has FileVault turned on, and you opt to use a Recovery Key, check using fdesetup validaterecovery that the Recovery Key is correct whenever it’s changed. Otherwise you could be in for a big disappointment if you ever need to use it.

It’s not clear why some users are being prompted.

Howard Oakley:

The internal SSD in T2 and Apple silicon Macs is connected directly to its Secure Enclave, which performs its encryption and decryption using keys generated and stored within the Secure Enclave.

[…]

All volumes on the internal SSD that are encrypted have a Volume Encryption Key (VEK), protected by two internal keys, one the unique hardware UID from the Secure Enclave, the other from xART and intended to protect from replay attacks. The VEK isn’t exposed outside the Secure Enclave, nor is it handled by CPU cores.

[…]

When a user enables FileVault, a third key becomes involved in protecting the VEK, the Key Encryption Key (KEK), protected by the User Password and the hardware UID. This explains how no decryption and re-encryption is required when changing the User Password, or when enabling or disabling FileVault. Changes to the KEK affect access to the VEK, but don’t change the VEK at all.

[…]

Software encryption, including FileVault, for external storage of Apple silicon Macs may be vulnerable to GoFetch, but there’s no evidence that could affect FileVault encryption performed in the Secure Enclave.

Previously:

GoFetch

GoFetch (PDF, Hacker News):

GoFetch is a microarchitectural side-channel attack that can extract secret keys from constant-time cryptographic implementations via data memory-dependent prefetchers (DMPs).

We show that DMPs are present in many Apple CPUs and pose a real threat to multiple cryptographic implementations, allowing us to extract keys from OpenSSL Diffie-Hellman, Go RSA, as well as CRYSTALS Kyber and Dilithium.

Dan Goodin (via Kim Zetter, Hacker News, MacRumors):

The flaw—a side channel allowing end-to-end key extractions when Apple chips run implementations of widely used cryptographic protocols—can’t be patched directly because it stems from the microarchitectural design of the silicon itself. Instead, it can only be mitigated by building defenses into third-party cryptographic software that could drastically degrade M-series performance when executing cryptographic operations, particularly on the earlier M1 and M2 generations. The vulnerability can be exploited when the targeted cryptographic operation and the malicious application with normal user system privileges run on the same CPU cluster.

[…]

The threat resides in the chips’ data memory-dependent prefetcher, a hardware optimization that predicts the memory addresses of data that running code is likely to access in the near future. By loading the contents into the CPU cache before it’s actually needed, the DMP, as the feature is abbreviated, reduces latency between the main memory and the CPU, a common bottleneck in modern computing. DMPs are a relatively new phenomenon found only in M-series chips and Intel’s 13th-generation Raptor Lake microarchitecture, although older forms of prefetchers have been common for years.

[…]

The breakthrough of the new research is that it exposes a previously overlooked behavior of DMPs in Apple silicon: Sometimes they confuse memory content, such as key material, with the pointer value that is used to load other data. As a result, the DMP often reads the data and attempts to treat it as an address to perform memory access. This “dereferencing” of “pointers”—meaning the reading of data and leaking it through a side channel—is a flagrant violation of the constant-time paradigm.

Bruce Schneier:

Note that exploiting the vulnerability requires running a malicious app on the target computer. So it could be worse. On the other hand, like many of these hardware side-channel attacks, it’s not possible to patch.

Casey Muratori (tweet):

I recorded this video where I walk through what a “DMP” is, what the researchers figured out about Apple M-Series DMP behavior via microbenchmarking, and how a “GoFetch” DMP-enabled attack works in practice.

If you are already familiar with microarchitecture analysis, and would like some deeper reading on the subject, I would suggest reading the original GoFetch paper and three of its references in particular[…]

Paul Ducklin:

Intel, perhaps confusingly, gives the setting that turns this feature off the name DOIT, short for data operand independent timing, which actually tells the CPU, “Don’t do data memory-dependent prefetching.”

[…]

Very simply put, the researchers figured out how to feed in decryption keys that they knew wouldn’t work, but that might trigger DMP if they had guessed one of the bits in the key correctly, because they would have tricked the CPU into thinking it was looking at a pointer of interest.

By testing how quickly they could access the ‘memory address of interest’ immediately afterwards, they could determine whether it had been prefetched by the CPU (fast access) or not (slightly slower access), and therefore decide whether they had guessed correctly at one of the bits in the key.

With enough trials, they could gradually recover more and more bits of the key, to the point that they could then use other, existing attacks, albeit involving additional work based on data collected during the GoFetch stage, to figure out the entire key.

Previously:

Update (2024-04-08): Damien Petrilli:

Still not a word from Apple since this issue was disclosed publicly.

Wednesday, April 3, 2024

Seven Years of APFS

Howard Oakley:

Although APFS has certainly had its moments over the last seven years, Apple’s gambles have paid off, and proved key to the success of Apple silicon Macs. Had there been no APFS, many of the fundamental technologies like Secure Boot and the Signed System Volume (SSV) would have been far tougher if not impossible to implement.

[…]

What has attracted almost no attention, though, is how APFS is designed to prolong the working life of SSDs by minimising the number of write/erase cycles. Although the user may be unable to realise the space efficiency achieved with the use of sparse and clone files, for instance, by reducing the number of storage blocks actually written in order to store files, with APFS each write/erase cycle should store unique data rather than needless copies or null data.

This is of little or no comfort to those condemned to use hard disks for storage, even if only for Time Machine backups. Although the great majority of APFS users’ devices will never be connected to a hard disk, for the small minority running it in macOS, they remain the medium of choice for backups and other bulk storage, and vulnerable to performance degradation resulting from fragmentation by the file system.

[…]

Although Apple dropped early hints that APFS might be released as open source, after seven years information about its internals released by Apple still appears to be insufficient to allow third-party developers to create maintenance tools independent of those bundled in macOS. This isn’t just about the potential for someone outside Apple to improve on the performance of fsck or Disk Utility, but also concerns features that Apple shows no sign of supporting.

For me, the biggest issues are:

Previously:

A Disk So Full, It Couldn’t Be Restored

Glenn Fleishman (Mastodon):

Turned out, my kid had managed a neat trick, though they were not alone: they had filled macOS’s startup volume storage so full that the operating system was incapable of deleting files in any fashion. Instead of halting the massive Steam download when the drive became disastrously full, macOS continued to write files until there was just 41K free on the drive.

[…]

Due to our gigabit Internet connection and the size of the Steam file, macOS outstripped its ability to throttle filling storage because it was also making a local Time Machine snapshot.

[…]

It was time to restart to see if it would clear caches. Unfortunately, restarting left the Mac unable to start up at all. No matter what I tried, it would reach about halfway through the progress bar before failing.

[…]

I shifted to recoveryOS, Apple’s somewhat new name for the special disk partition in macOS that lets you run operations on the main startup volume while it’s not mounted, including Disk Utility repairs and reinstallation. From there, I hit the wall as well, as Terminal commands continued to fail with the same error.

He had to erase the Mac and ran into a Sonoma bug trying to restore from a network Time Machine backup.

Previously:

Checking Bootable Systems Using bputil

Howard Oakley:

Apple gives the user control over the level of security to be used, in Startup Security Utility, in Recovery. For this to work with boot volume groups (BVGs), each must have its own set of boot security policies, determined by its LocalPolicy.

Without a valid LocalPolicy, Apple silicon Macs will refuse to boot from what would otherwise be a bootable BVG. This article extends my previous account of what makes a disk bootable by explaining more about LocalPolicy, and how you can use the command tool bputil to check it.

[…]

LocalPolicy is created when installing macOS to an external disk, when the boot volume group on that disk is assigned its Owner. It can also be created when selecting the boot volume group on a bootable external disk to be the startup disk, if it doesn’t already have a valid LocalPolicy, for example when you want to boot from an external disk previously created using another Mac. This is commonly the point at which failure occurs.

Previously:

Apple’s Problem With Lina Khan

Matt Stoller (ArsTechnica):

As part of the claim outside of the smartphone, the Antitrust Division asserted that “Apple’s conduct extends beyond just monopoly profits and even affects the flow of speech. For example, Apple is rapidly expanding its role as a TV and movie producer and has exercised that role to control content.” Some economists mocked the suit, suggesting, among other things, that political power should have no role in analysis of how monopolies function.

A recent incident should have disabused us all of that naive illusion. Last night, Jon Stewart interviewed Federal Trade Commission Chair Lina Khan on the Daily Show. Stewart, after a long hiatus, which included a stint doing a podcast for Apple TV+, resumed hosting the show he made famous, even if only one night a week. During the interview with Khan, he said that Apple had blocked him from interviewing her while he was at Apple. “They literally said, please don’t talk to her,” he offered. Stewart also noted that Apple had told him not to do segments on artificial intelligence, adding to his earlier complaints about Apple’s refusal to sanction discussions of China.

Note that Stewart was trying to interview Khan for his podcast, not for his actual Apple TV+ show.

Previously:

Update (2024-04-24): John Gruber:

The thing I don’t understand about this is why Apple ever hired Stewart to do that show, or why Stewart agreed to do that show with Apple. Based on, you know, the entire body of Stewart’s work, it’s obvious that Lina Khan is exactly the sort of person he’d want to interview. It’s not like something changed. My only guess is that the part of Apple that agreed to host The Problem With Jon Stewart didn’t get buy-in from the top of the company. But I find that hard to believe. It just doesn’t make sense. It’s like hiring Martha Stewart to do a show and then asking her not to do any cooking segments.

Personally, I think Apple should put its big boy pants on and gladly host a topical news show that is free to criticize the company or the technology industry as a whole.

Tuesday, April 2, 2024

Switching From Xcode to Neovim

Wojciech Kulik:

To give you an idea what it means, here is a simple example. Let’s say you want to delete the current line in Xcode. You would probably use the mouse to select the line, then press cmd + x to cut it or backspace to delete it. In Neovim, you can do the same thing with just one command: dd.

Another example is let’s say deleting everything within the nearest brackets. In Xcode, you would have to manually select the text, while in Neovim you can do it with dib or cib if you want to start typing right away.

These are both pretty easy to do in Xcode. You can use Control-A, Control-K to delete the current line. And I assign Command-Shift-B to Xcode’s Balance command to select everything within the nearest brackets. It does not have editor macros, though.

You could have thought: “ok, but what’s the difference between Neovim and VSCode? It also offers thousands of plugins.”

The difference is that Neovim allows you to extend the environment without creating the whole plugin and the knowledge on how to do that. You just need to know the basics of Lua language (which is very easy to learn) and you can right away customize whatever you want directly in your config.

Previously:

Update (2024-04-03): Timothy Perfitt:

i just discovered recently that xcode has a VIM mode as well. so you literally can do dd in xcode as well.

Where iPad Fits In

Matt Birchler:

Well, nearly 2 months later and it turns out the Vision Pro replaced precisely zero of my iPad use cases, and every day I find myself thinking, “sure would be nice if I had an iPad right now.”

[…]

The iPad is not a good replacement for a Mac or an iPhone for me, but damn it all if I didn’t enjoy having it around for some situations where neither of those devices were perfect. It’s cliche, but the iPad was the G.O.A.T. for doing stuff on the couch.

[…]

A Mac that could run on iPad hardware would be a dream for me, but that product doesn’t exist today.

Rowan Johnson:

It’s on these occasions that — like Matt — I miss my iPad. In fact, I would be incredibly reluctant to live without one in my life. Yet, the iPad still feels like it’s finding a place as far as work and productivity goes. So which is it? Is it an indispensable tool or is it a toy?

[…]

In theory, everything I’ve described above is possible to accomplish on an iPad. But MacOS is simply more reliable and capable. From obvious things, like the variety of software available on the Mac, to less visible things like the way MacOS handles app multitasking, I know that if I take my Mac on a job it will handle whatever gets thrown at it. I simply can’t say that same about my iPad.

iPadOS has a “death by a thousand cuts” issue, where all of the little things it can’t do results in the iPad being unreliable for anything particularly mission critical. On my iPad, if I start uploading a big video file to WeTransfer or Frame.io in Safari, the system will almost certainly boot it from memory before it’s finished the upload unless I keep that Safari tab open in front of me the whole time.

[…]

But my iPad can be used as a teleprompter with the right accessory for my camera. It can be used for drawing sketches of my tech plans for live streams with an Apple Pencil. It can act as a monitor to allow a presenter to get Q&A questions from Slido, Zoom or Teams during a live stream; far more discretely than a laptop or computer monitor could.

[…]

In short, my iPad is a big iPhone, but with more room to breathe.

Via Eric Schwarz:

Despite my M2 MacBook Air being an excellent piece of hardware, I don’t love macOS in its current state as much as the earlier OS X days. It feels colder, unfriendlier, and in some ways like a bad iOS skin on top of older versions of Mac OS X—it does get used for all the heavy-lifting that is just too cumbersome on iPadOS.

Previously:

Oregon Passes Right-to-Repair Law

Karl Bode (Hacker News, MacRumors):

Oregon has officially become the seventh state (behind New York, California, Massachusetts, Colorado, Maine, and Minnesota) to pass “right to repair” legislation, making it easier and more affordable for consumers to independently repair their own electronics.

[…]

But it also takes aim at “parts pairing,” or the practice of preventing you from replacing device parts without the approval of a company or its restrictive software. Apple, which routinely uses this practice to try and monopolize repair, lobbied extensively against the Oregon bill. As usual, under the (false) claim that eliminating parts pairing would put public safety and security at risk[…]

Nick Heer:

Quick note: the bill (PDF) specifically exempts restrictions on parts pairing related to battery safety in paragraph 3(f). Of course, Apple has made the same dire warnings for years in protest of right-to-repair legislation, and it is hard to know how seriously to take these claims. Oregon’s law does impose some new rules about the ways parts pairing can be used which appear to address some gaps in Apple’s repair policies.

Previously:

AI and the Web Developer Job Market

Baldur Bjarnason:

We have the worst job environment for tech in over two decades and that’s with the “AI” bubble in full force. If that bubble pops hard before the job market recovers, the repercussions to the tech industry will likely eclipse the dot-com crash.

[…]

Not every CEO is predicting the end of programming as a profession. GitHub’s CEO instead thinks that programmers will be the primary beneficiaries of the introduction and improvement of LLM tools for coding.

[…]

This world-view assumes that the purpose of software development is the productive creation of successful, defect-free, software projects. LLMs would increase productivity.

The alternate world-view, one that I think is much more common among modern management, is that the purpose of software development is churn.

Via Kyle Hughes:

The overwhelming thing I agree with is: the observable disconnect between software quality and business outcomes is what is ripe for exploitation in the short-to-mid-term with LLMs. We don’t need to agree on the efficacy of LLMs to agree on this. If management could reduce quality and cost by an order of magnitude while maintaining or slightly sinking outcomes, wouldn’t they?

I think Apple platform developers are more likely to be caught off-guard by the viability of business success on top of bad software. I think we assume the success of iOS in particular is due to software quality but I have always suspected it was a secondary factor, if relevant at all. We could all collectively uphold that illusion because we were the self-selected people that cared and did the work. It’s hard to tell if it’s just our pet concern.

Previously:

Monday, April 1, 2024

XPC Resources

Quinn:

XPC is the preferred inter-process communication (IPC) mechanism on Apple platforms. XPC has three APIs:

  • The high-level NSXPCConnection API, for Objective-C and Swift

  • The low-level Swift API, introduced with macOS 14

  • The low-level C API, which, while callable from all languages, works best with C-based languages

A great collection of links.

App Store Subscriptions and Family Sharing

Craig Hockenberry:

Your code and the App Store don’t agree about when a subscription expired. The cause of this is Apple’s StoreKit sample code. It’s likely that you have some code similar to line 246 of Store.swift:

subscriptionGroupStatus = try? await subscriptions.first?.subscription?.status.first?.state

That code will work fine until you encounter a customer that has Family Sharing enabled, as most do. The issue is that the Product.SubscriptionInfo can contain multiple items, and the code above only checks the first one.

How can that happen? With Family Sharing, the people who are using the subscription act independently: one may subscribe for a year and then cancel. Then another could subscribe at a later date for only a month. You have to check all of the subscriptions, not just the first one.

As he notes, it’s not documented that the sample code doesn’t support Family Sharing. And, even if you’re aware of this issue, there’s no reasonable way to test your code in Xcode, TestFlight, or even production.

Previously:

Apple’s Immersive Video Problem

Jason Snell:

On Thursday Apple debuted its first immersive video since the Vision Pro launched, a five-minute-long compilation of highlights from the MLS Cup playoffs late last year.

Without even seeing the video, I had many questions. Why did it take more than three months to produce a highlight package? And why, when it finally arrived, was it only five minutes long? And what do those two facts suggest about how difficult it is for Apple to produce immersive video content on an ongoing basis?

[…]

Most of Apple’s initial immersive videos, launched with the Vision Pro, linger with long shots. Cuts happen, but only occasionally. The pace is such that when a cut occurs, there’s time to re-orient. You need time to immerse. Quick cuts in a regular video help speed up the action; in immersive video, they’re like hitting a speed bump.

Previously:

xz Backdoor

Thomas Claburn:

Red Hat on Friday warned that a malicious backdoor found in the widely used data compression software library xz may be present in instances of Fedora Linux 40 and in the Fedora Rawhide developer distribution.

The IT giant said the malicious code, which appears to provide remote backdoor access via OpenSSH and systemd at least, is present in xz 5.6.0 and 5.6.1. The vulnerability has been designated CVE-2024-3094. It is rated 10 out of 10 in CVSS severity.

Dan Goodin (Hacker News):

xz Utils is nearly ubiquitous in Linux. It provides lossless data compression on virtually all Unix-like operating systems, including Linux. xz Utils provides critical functions for compressing and decompressing data during all kinds of operations. xz Utils also supports the legacy .lzma format, making this component even more crucial.

Andres Freund, a developer and engineer working on Microsoft’s PostgreSQL offerings, was recently troubleshooting performance problems a Debian system was experiencing with SSH, the most widely used protocol for remotely logging in to devices over the Internet. Specifically, SSH logins were consuming too many CPU cycles and were generating errors with valgrind, a utility for monitoring computer memory.

Through sheer luck and Freund’s careful eye, he eventually discovered the problems were the result of updates that had been made to xz Utils. On Friday, Freund took to the Open Source Security List to disclose the updates were the result of someone intentionally planting a backdoor in the compression software.

[…]

This code allowed someone in possession of a predetermined encryption key to log in to the backdoored system over SSH. From then on, that person would have the same level of control as any authorized administrator.

See also:

HaxRob:

Plans to literally “hack the planet” foiled due to 500ms of latency that Andres instinctually investigated.

The latency was due how the malicious code parsed symbol tables in memory.

Amjad Masad:

You know that annoying person on your team who insists every bit of perf regression needs to be investigated. One day they will save the world.

Perry E. Metzger:

I’ve always thought that your CI and monitoring systems absolutely have to flag performance regressions and that you have to investigate them quickly, but I never thought of it as a security issue until now.

Rob Mensching:

Lots of analysis of the xz/liblzma vulnerability. Most skip over the first step of the attack:

0. The original maintainer burns out, and only the attacker offers to help (so the attacker inherits the trust of the project built by the maintainer).

Gynvael Coldwind (Hacker News):

Someone put a lot of effort for this to be pretty innocent looking and decently hidden. From binary test files used to store payload, to file carving, substitution ciphers, and an RC4 variant implemented in AWK all done with just standard command line tools. And all this in 3 stages of execution, and with an “extension” system to future-proof things and not have to change the binary test files again. I can’t help but wonder (as I’m sure is the rest of our security community) – if this was found by accident, how many things still remain undiscovered.

Rob Mensching (Hacker News):

This thread is a microcosm of the interactions in Open Source projects. Consumers make demands (some polite, some not-so-polite) of one maintainer (rarely two) that does everything.

Make no mistake. This is the way it works.

Glyph Lefkowitz:

For most maintainers, Tidelift pays a sub-hobbyist amount of money, and even setting it up (and GitHub Sponsors, etc) is a huge hassle. So even making the transition from “no income” to “a little bit of side-hustle income” may be prohibitively bureaucratic.

[…]

Specifically, every employer of software engineers should immediately institute the following benefits program: each software engineer should have a monthly discretionary budget of $50 to distribute to whatever open source dependency developers they want, in whatever way they see fit.

[…]

This sub-1% overhead to your staffing costs will massively de-risk the open source projects you use. By leaving the discretion up to your engineers, you will end up supporting those projects which are really struggling and which your executives won’t even hear about until they end up on the news.

thegrugq:

The xz backdoor was the final part of a campaign that spanned two years of operations. These operations were predominantly HUMINT style agent operations. There was an approach that lasted months before the Jia Tan persona was well positioned to be given a trusted role.

[…]

Every intelligence agency in the world could run this campaign, design and execute these operations. There is a serious level of technical acumen on display as well, the Jia Tan persona has to be able to do the work and talk the talk, but the core of this campaign is HUMINT.

[…]

It is important to remember that Lasse is blameless in this. There is no individual, and very very few organisations, able to detect, let alone resist!, the directed interest of an intelligence agency.

Lukasz Olejnik:

We should… maybe… resist the temptation of portraying XZ as alleged evidence of underfunded OS. Could it rather be THE evidence that resisting orchestrated and well-organised and funded campaign is hard?

Saagar Jha:

The problem is that nobody can read all this code. That’s it. You can make the code 50% clearer or reduce the number of libraries loaded or increase auditing but there is so many orders of magnitude more code being written than is properly reviewed that this can’t be fixed

It makes me so sad because I want this to be fixed and I want to go “oh if we paid maintainers some money the problem would go away” but, like, it just doesn’t seem to work. There is just so much code. We are drowning in it. The complexity of our stacks is insane

Juliano Rizzo:

Jia Tan’s git commit to turn off Landlock sandboxing one week after Lasse Collin improved it.

Note the extra period.

Simple Nomad (Hacker News):

This xz backdoor thing reminds me of a story I heard from friends that worked at a tech company that made cell phones. They had a great coder that worked on the project, he had put in work as a contractor for a few months, and due to the quality of his work he was hired in full time. After two months he simply stopped showing up to the office.

An investigation turned up the following interesting items. His account had accessed all files including source code to all cellular projects - in that he had apparently downloaded a copy of everything. He had committed a large amount of contributions to the project he was assigned to. None of his paychecks were ever cashed. A wellness check to the house he had rented was performed and the house was completely empty.

Isaiah Carew:

xz is an inflection point. people are going to lose their collective shit.

the idea that instead of breaking 4096-bit keys with gigawats of compute, or infiltrating hardened machines with 1337 haxors…

just shotgun backdoors into 1000 libraries that everyone uses.

Feross Aboukhadijeh:

The xz package backdoor is just the tip of the iceberg.

There’s a CONSTANT low-level stream of malware and spyware being uploaded to npm, PyPI, and Go registries.

I want to share a few examples from the 20,000+ malicious packages we detected so far[…]

Previously:

Update (2024-04-02): Russ Cox (via Hacker News):

This post is a detailed timeline that I have constructed of the social engineering aspect of the attack, which appears to date back to late 2021.

Mark Atwood:

The xz attack was not because it was open source. The attack failed because it was open source. The way this attack works for non-open source is the attacker spends 2 years getting an agent hired by contract software development vendor, they sneak it in, nobody finds out.

FFmpeg:

The xz fiasco has shown how a dependence on unpaid volunteers can cause major problems. Trillion dollar corporations expect free and urgent support from volunteers.

@Microsoft @MicrosoftTeams posted on a bug tracker full of volunteers that their issue is “high priority”

Update (2024-04-03): Russ Cox (Hacker News):

At a high level, the attack is split in two pieces: a shell script and an object file. There is an injection of shell code during configure, which injects the shell code into make. The shell code during make adds the object file to the build. This post examines the shell script.

See also:

Update (2024-04-08): blasty (via Hacker News):

the xz sshd backdoor rabbithole goes quite a bit deeper. I was just able to trigger some harder to reach functionality of the backdoor. there's still more to explore.

John Gruber:

Another is that it was very subtle: the ultimate goal was a back door in OpenSSH but the attacker(s) put their code in a compression library that was sometimes a dependency for another library that was itself only sometimes a dependency of OpenSSH.

See also: Jordan Rose.

Update (2024-04-11): Oxide Computer Company (via Adam Leventhal):

Andres Freund joined Bryan and Adam to talk about his discovery of the xz backdoor. It’s an incredible story… so great to get into the details with Andres. We started by ranting about the coverage in the New York Times… coverage that explicitly refused to dig into the details! It’s all the more shocking because the big story here is how Andres’ penchant for digging into the details is what saved us all from what would have been a pervasive and damaging attack!

Bruce Schneier:

It’s impossible to count how many of these single points of failure are in our computer systems. And there’s no way to know how many of the unpaid and unappreciated maintainers of critical software libraries are vulnerable to pressure. (Again, don’t blame them. Blame the industry that is happy to exploit their unpaid labor.) Or how many more have accidentally created exploitable vulnerabilities. How many other coercion attempts are ongoing? A dozen? A hundred? It seems impossible that the XZ Utils operation was a unique instance.

Solutions are hard. Banning open source won’t work; it’s precisely because XZ Utils is open source that an engineer discovered the problem in time. Banning software libraries won’t work, either; modern software can’t function without them.

Update (2024-04-24): Joab Jackson (via Hacker News):

At any rate, how the backdoor got so close to so many production systems may be a cautionary tale over the state of the internet infrastructure.

Kaspersky (via Hacker News):

Unlike other supply chain attacks we have seen in Node.js, PyPI, FDroid, and the Linux Kernel that mostly consisted of atomic malicious patches, fake packages and typosquatted package names, this incident was a multi-stage operation that almost succeeded in compromising SSH servers on a global scale.