Reading List
The most recent articles from a list of feeds I subscribe to.
Backblaze No Longer Backs Up Dropbox
Rob Halliday: It appeared that Backblaze was now just not backing up Dropbox AT ALL, and was discarding (without warning) existing backups of Dropbox folders. I contacted Backlbaze tech support. Janet their ‘AI Agent’ who is “well-trained to answer your questions” (!!), responded an hour or so later saying that Backblaze now basically do not […]
Japan: App Marketplaces, External Payments, New Fee Structure
Apple: Apple today announced changes impacting iOS apps in Japan to comply with the Mobile Software Competition Act (MSCA). These updates create new options for developers to distribute apps on alternative app marketplaces and to process app payments for digital goods and services outside of Apple In-App Purchase. […] The MSCA’s requirements for alternative app […]
Batch Delete in SwiftData
Fatbobman: SwiftData provides a batch deletion API that is more modern and type-safe than its Core Data counterpart. […] Note: Unlike the standard single-object deletion modelContext.delete(_ model: T), batch deletion is only applied to the database after save() is executed. Coming from Core Data, this is really strange. With Core Data, NSBatchUpdateRequest and the other […]
Extended Attributes Flags in Tahoe
Howard Oakley: When first introduced in Mac OS X, no provision was made for xattrs to have type-specific preservation, and that was added later using flags suffixed to the xattr’s name. For example, the com.apple.lastuseddate xattr found commonly on edited files is shown with a full name of com.apple.lastuseddate#PS to assign the two flags P […]
UserDefaults.register(defaults:) Footgun
Jeff Johnson (Mastodon): “Every instance of UserDefaults shares the contents of the argument and registration domains.” In other words, the result of calling registerDefaults on the object returned by [NSUserDefaults initWithSuiteName:] is the same as calling registerDefaults on the object returned by [NSUserDefaults standardUserDefaults]! Yet the documentation for registerDefaults does not mention this fact. How […]