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:

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.

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[…]

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:

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:

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:

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.

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?

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.

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.

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.

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:

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: