Archive for March 2023

Wednesday, March 29, 2023

Apple Music Classical

Apple (Hacker News, MacRumors):

Apple today launched Apple Music Classical, a brand-new standalone music streaming app designed to deliver the listening experience classical music lovers deserve. With Apple Music Classical, Apple Music subscribers can easily find any recording in the world’s largest classical music catalog with fully optimized search; enjoy the highest audio quality available and experience many classical favorites in a whole new way with immersive Spatial Audio; browse expertly curated playlists, insightful composer biographies, and descriptions of thousands of works; and so much more.

Does this do anything to fix Siri for classical music? Currently, it’s almost unusable because the titles of the albums and tracks don’t really match the names that a human would think of. And those are not always the right granularity: even if I manage to request a symphony and it plays the first movement, it doesn’t know which of the subsequent tracks on that album are part of the same piece.

Joe Rossignol:

Apple today published a support document explaining why it decided to release a standalone Apple Music Classical app for classical music.

M.G. Siegler:

But it’s also odd in that it’s not like they stripped all of this music out of the main Apple Music app — as far as I can tell, it’s all still available there. So it’s not about de-cluttering that app. It’s more about letting classical music lovers dive deeper and find easier the music that they love. Fair enough, I guess. But I suspect the real reason Apple is doing this is simply because they acquired a beloved classical music service, Primephonic, a couple years ago. It was a way to help differentiate Apple Music versus Spotify. But they undoubtedly also knew that it would piss off users of that service if they killed off that standalone app. So here we are, two apps, one price.


It’s fine. It looks nice, as you might expect. But it’s also very similar to Apple Music.


Here’s something else that’s odd. After again, a year and a half of work, Apple Music Classical is iPhone-only. Every app developer knows that Apple likes to nudge, subtlely or overtly, cross-Apple-platform support for apps. “That’s a nice iPhone app. Would look great as an iPad app as well.” That kind of thing. How can Apple realisticly give such guidance if they themselves don’t have that ready to roll on day one of their services!?


My above stated routine actually doesn’t have me using an iPhone to listen to music. I’m using either my iPad or Mac. And yet I can’t use Apple Music Classical on either of those. […] And wait, it sounds like it may never come to the iPad or Mac! “Built exclusively for mobile”?! What on Earth?

Dan Moren:

Apple Classical is a bit of a strange beast.


I particularly appreciate the refinement Apple has done to the Library section. While it’s shared with Apple Music (you’ll see albums already in your Apple Music library that are also available in Apple Classical), there are also new sections for Recordings and Works, and refined sections for Artists and Composers. In all of those cases, Apple has implemented a Favorites system, where you can choose to save specific items, rather than simply providing an exhaustive catalogue of every single artist or recording you have in your collection.


There’s a lot of curation happening in Apple Classical, too. For example, searching for a specific piece will generally pop up a ton of recordings, but the app will identify an Editor’s Choice version as well as Popular Recordings to help separate the wheat from the chaff.


And lo and behold, Apple Classical includes soundtracks in its catalog, along with scores for Broadway musicals and operas.

Which is certainly cool, but the implementation as it stands right now is a little wonky.

Dave B.:

Something I immediately noticed is the new filter icon, with ‘Filter By’ functionality.

This is a good sign because it means there’s a solid chance we’ll get it in the main Apple Music app.

I’ve been asking for this for years!

Benjamin Mayo:

One odd UI nitpick with Classical I immediately noticed is if the table view is currently scrolling, the edge swipe back feature doesn’t work. This and a few other things gives me the sense the underlying codebase is more different to Apple Music than it first appears.

Now Playing UI report: more like Apple Music than Podcasts is but it’s still different. It has the iOS 16 Music swipey sliders but doesn’t have the same animations on the buttons and the album art transitions differently too. No long-press context menus anywhere.


Apple Pay Later

Apple (Hacker News):

Apple Pay Later allows users to split purchases into four payments, spread over six weeks with no interest and no fees. Users can easily track, manage, and repay their Apple Pay Later loans in one convenient location in Apple Wallet. Users can apply for Apple Pay Later loans of $50 to $1,000, which can be used for online and in-app purchases made on iPhone and iPad with merchants that accept Apple Pay. Starting today, Apple will begin inviting select users to access a prerelease version of Apple Pay Later, with plans to offer it to all eligible users in the coming months.

John Gruber:

Apple Pay Later is only available for online purchases — either on the web or in iOS apps. I guess that makes sense — competing services like Affirm, Klarma, and Afterpay are only available for e-commerce transactions too (I think?). I just never before thought of online Apple Pay being different from brick-and-mortar retail Apple Pay.


Hachette v. Internet Archive

Jay Peters and Sean Hollister:

A federal judge has ruled against the Internet Archive in Hachette v. Internet Archive,a lawsuit brought against it by four book publishers, deciding that the website does not have the right to scan books and lend them out like a library.

Judge John G. Koeltl decided that the Internet Archive had done nothing more than create “derivative works,” and so would have needed authorization from the books’ copyright holders — the publishers — before lending them out through its National Emergency Library program.


He notes that the Google Books use was found “transformative” because it created a searchable database instead of simply publishing copies of books on the internet.

Mike Glyer (via Hacker News):

A copy of the decision can be downloaded from CourtListener.


John G. Koeltl, District Judge of the U.S. Southern District of New York, granted summary judgment based on the record, as was requested by both sides. His analysis of the case is illustrated in the following quotes from the decision.


I have good feelings for the Internet Archive, but in this case it’s about a handful of books that are being copied and distributed a mere 5 years after initial publication, which I think a lot of people who want copyright shortened would still agree is quite a bit too short.


Keep in mind that this isn’t about the Internet Archive specifically. If the court ruled it’s okay for them to copy and rent books, then anyone can copy and rent books, it undermines the entire market for books (and also web sites and images and other media, because this is the Internet Archive).


Tuesday, March 28, 2023

Safari 16.4


This release is packed with 135 new web features and over 280 polish updates.


Deeply integrated with iOS and iPadOS, Web Push notifications from web apps work exactly like notifications from other apps.


WebKit on iOS and iPadOS 16.4 adds support for the Badging API. It allows web app developers to display an app badge count just like any other app on iOS or iPadOS.


Safari 16.4 adds support Declarative Shadow DOM, allowing developers to define shadow DOM without the use of JavaScript. And it adds support for ElementInternals, providing the basis for improved accessibility for web components, while enabling custom elements to participate in forms alongside built-in form elements.


Safari 16.4 adds support for quite a few new CSS properties, values, pseudo-classes and syntaxes.


Safari 16.4 now supports lazy loading iframes with loading="lazy".

Jen Simmons:

It’s hard to express just how massive a release Safari 16.4 is for web developers.

Last night, I was reading replies web developers posted on Twitter back in 2021, when I asked what developers need most from WebKit — and the vast majority of things you asked for have now shipped.

Now how about fixing the history and printing?

Federico Viticci (Mastodon):

I was able to test notifications for web apps added to the Home Screen using, a web service I recently discovered whose sole purpose is to let users program their own notifications to deliver via an API to all their devices. Alerty is similar to Pushcut and Pushover, but instead of requiring a native app to be installed on the user’s device, it can just deliver real-time push notifications via a web browser (on desktop) or a web app on the Home Screen in iOS and iPadOS 16.4. This was a perfect opportunity to sign up for the service and try it out with some of my shortcuts.


Update (2023-03-29): See also: Hacker News.

Matt Sephton:

Safari 16.4 has some breaking changes (fixes?) to CSS, which means the Polyglot Safari Extension by @uechz that I use every day no longer displays its popup.

But I created a quick-fix workaround with a User Stylesheets!

Studio Display Firmware 16.4

Juli Clover (release notes):

According to Apple’s release notes, the Studio Display Firmware Update 16.4 adds support for in-field recalibration of the display using the Pro Display Calibrator. It allows for specific color workflows that may require custom calibration by an in-house spectroradiometer. The update also includes minor stability improvements.

With such a vague description after so many beta releases, I’m going to wait a while to update to make sure they got it right.


Update (2023-03-28): Jonathan Wight:

This Apple Studio Display software update is pretty gnarly.

Lots of long black screens where you’re hoping it comes back to life…

Not the greatest of Apple hardware update experiences….

The RIAA v. Steve Jobs

Paul Kafasis (Hacker News):

Though the precedent of time shifting existed for television, space shifting was still an emerging idea. The acronym for the Recording Industry Association of America, RIAA, was something of a new four-letter word due to their hostility toward new ideas. […] This had an impact on our marketing for the first version of Audio Hijack. Rather than focusing on the app’s recording functionality, we highlighted use cases like adding an equalizer to movies. We knew recording was useful, but the app’s ability to apply audio effects anywhere on the Mac carried much less legal peril.


We never heard a word from the RIAA, nor their lawyers. As time passed without any trouble, we eventually came to assume that they recognized our tool’s many legitimate fair uses. We continued development of Audio Hijack, leaning in to its audio recording abilities. That focus led to it being a premier solution for podcasters, both then and now.

Earlier this month, however, we heard a chilling story. It comes from the Podfather himself, Adam Curry, who was instrumental in helping podcasts take off in the mid-2000s.

Adam Curry:

And in that very meeting, Steve asked: “How do you do your recording?”. We didn’t really have any tools to record, there was not much going on at the time. But the Mac had an application called Audio Hijack Pro, and it was great because we could create audio chains with compressors, and replicate a bit of studio work. Eddie Cue said: “The RIAA wants us to disable Audio Hijack Pro, because with it you could record any sound off of your Mac, any song, anything.” Steve then turned to me and said: “Do you need this to create these podcasts?”. I said: “Currently, yes!”. So Steve Jobs told them to get lost, and I thought: “Hey man, thanks, Steve’s on my side. That’s cool.”

Adam Curry:

His actual words were “fuck them”

I mean, this is great, but as Kafasis says it’s terrifying that it could have gone differently were it not for the whims of one man. And Jobs’ decision was pragmatic, not principled. Apple under his watch later developed the iPhone and the Mac App Store, neither of which allowed software like this. It then made such utilities much harder to install with the M1 Macs. We’re celebrating a small victory, but the larger story is one of a loss.


Monday, March 27, 2023

Gordon Moore, RIP

Gordon and Betty Moore Foundation (Hacker News, MacRumors):

By 1950, after transferring to the University of California at Berkeley from San Jose State University, Gordon had earned his bachelor’s degree in chemistry. He and Betty were married that same year at a small church in Santa Clara, and set out together for Pasadena, where he was awarded his Ph.D. in chemistry from the California Institute of Technology in 1954.

After graduating from Caltech, Gordon moved east for a job in research with the Applied Physics Laboratory at Johns Hopkins University. In early 1956, he was recruited west again by William Shockley, the soon-to-be Nobel Laureate who had, with his team at Bell Labs, invented the transistor. By 1957, Shockley’s abrasive management approach and fluid direction for Shockley Semiconductor prompted Gordon and seven of his colleagues to exit the company and form Fairchild Semiconductor.


Eleven years later, Moore and Noyce co-founded Intel.

Holcomb B. Noble and Katie Hafner:

Mr. Moore had wanted to be a teacher but could not get a job in education. He later called himself an “accidental entrepreneur” because he became a billionaire as a result of an initial $500 investment in the fledgling microchip business, which turned electronics into one of the world’s largest industries.

And it was he, his colleagues said, who saw the future. In 1965, in what became known as Moore’s Law, he predicted that the number of transistors that could be placed on a silicon chip would double at regular intervals for the foreseeable future, thus increasing the data-processing power of computers exponentially.

Walden Kirsch:

By all accounts, Moore was neither brash nor in-your-face like Grove. Nor was he charismatic and high-energy like Noyce. The “law” that bears his name was not self-proclaimed, but popularized by a Cal Tech professor in the mid-1970s. As one measure of his modesty, Moore once confessed to biographer Leslie Berlin that he was “embarrassed to have it called Moore’s Law for a long time.”

macOS 13.3

Juli Clover (release notes, security, enterprise, developer, full installer, IPSW):

macOS Ventura 13.3 adds new emoji characters that include pea pod, ginger, pink heart, blue heart, gray heart, donkey, moose, black bird, goose, wing, and jellyfish, among others.

There are bug fixes to fix an issue that could cause Trackpad gestures to stop working, along with a number of other small features and tweaks.

And Mail plug-ins need to be updated, hence SpamSieve 2.9.52. The first Ventura updates had not required this, unlike with Monterey.


Update (2023-03-29): Howard Oakley:

Significant version changes seen among bundled apps include[…]


macOS 12.6.4 and 11.7.5

Apple (full installer):

This document describes the security content of macOS Monterey 12.6.4.

Apple (full installer):

This document describes the security content of macOS Big Sur 11.7.5.


iOS 16.4 and iPadOS 16.4

Juli Clover (security, enterprise, developer):

iOS 16.4 adds 21 total new emoji characters including shaking head, pink heart, blue heart, gray heart, donkey, moose, black bird, goose, wing, jellyfish, hyacinth, and more.

It also includes Safari web notifications for websites added to the Home Screen, Voice Isolation for clearer cellular phone calls, the return of the Apple Books page turning animation, updates to Podcasts, new HomeKit architecture, and a number of other small changes and tweaks.

Federico Viticci:

Continuing the trend from last year, there are some new actions in Shortcuts for iOS and iPadOS 16.4. Unfortunately, rather than moving the app forward in meaningful ways for power users, these actions mostly revolve around exposing app settings and various toggles to Shortcuts.


Like I said, I’m a bit disappointed that the new actions added to Shortcuts in the past year mostly involve the ability to control on/off settings with no deeper controls.


There are Mastodon link previews in Messages, Mail, and Notes.

Juli Clover:

Voice Isolation has been available for VoIP calls that use FaceTime, WhatsApp, and other apps on devices running iOS 15 or macOS Monterey or later, and it is designed to significantly improve microphone quality when on calls by cutting down on background noise. Until now, it was not available for cellular conversations, with Apple offering no way to improve call quality.

On a FaceTime call, Voice Isolation can be enabled by activating control center, tapping on the Mic Mode option, and choosing the Voice Isolation option, so the feature may be able to be activated in a similar way for voice calls.

Juli Clover:

The iOS 16.4 update that was released today fleshes out the built-in order tracking function that’s available in the Wallet app for purchases made using Apple Pay.

Chance Miller (via Eric Schwarz):

In iOS 16.4, Apple has added underlying support for health departments to end their support of the Exposure Notifications API. When a health authority decides to end support for the feature, users will see a message on their iPhone informing them of that decision.


Update (2023-03-28): Rui Carmo:

I found a stupid bug already: Starting an app from the dock in iPadOS on landscape orientation renders a badly distorted icon in the middle of the zooming window as it launches.

Update (2023-03-29): Juli Clover:

In this guide, we’ve highlighted all of the changes introduced in iOS 16.4 and iPadOS 16.4.


Learn about the new features in Shortcuts for iOS, iPadOS, macOS, and watchOS.

Ricky Mondello:

iOS 16.4 and macOS 13.3 include some nice tweaks to Apple’s password manager. (This isn’t breaking news; it’s in the software.)

(1) You can “Copy Strong Password” on a strong password suggestion in Safari. See the “Other Options” menu. On Mac, you can also right-click on the field!

(2) On iOS, adding a new password in “Passwords” will prefill a new strong password.

(3) Siri now understands “+” in “What’s my Disney+ password?” and “What’s my Paramount+ password?” (Requires auth; safe; try it!)

Joe Rossignol:

First, a new Channels menu in the Podcasts app provides a list of podcast channels all in one place on the iPhone, iPad, and Mac. A channel allows a creator or brand to list all of their podcasts in one place for listeners to easily discover.

Second, the Up Next queue now includes episodes listeners have saved to their Library and episodes that they play from shows they do not follow[…]

Tim Hardwick:

After updating Apple devices to the latest software, users can once again opt to upgrade any homes set up in the Home app to the new Home architecture, which Apple says brings faster, more reliable performance, especially for smart homes with a lot of smart accessories installed.

John Gruber:

Seems to me [voice isolation] ought to be in the interface for the call itself in the Phone app, like the controls for switching the audio output.

Steve Canon:

Two big low-level improvements in the macOS 13.3, iOS 16.4, etc releases that I am very happy about:

  • much, much faster strto[f,d,ld]
  • Accelerate has an updated LAPACK (opt in via -DACCELERATE_NEW_LAPACK) with a bunch of new API, bug fixes, and ILP64 bindings (-DACCELERATE_LAPACK_ILP64).

Meek Geek:

Apple added a screen in the iOS 16.4 update to explicitly opt users back into automatic OS updates. Expecting some to be surprised by this flipped switch when their devices auto update in future.

Pierre Igot:

No matter how many times I tell #iOS to not use cellular data for its updates, it insists on asking me whether I want to authorize it to use cellular data to download the latest iOS updates, even though the phone is right here in my office, in an environment where there is a strong wifi signal and absolutely no need to use cellular data for ANYTHING.

Where is my “Don’t EVER Use Cellular Data For This” button, Apple?

This happens for me, too.

Greg Pierce:

iOS 16.4 seems to have really hosed the display of SiriUITipView in shipping apps. You might want to review if you have any in your apps.

Friday, March 24, 2023

Swift Proposal: Value and Type Parameter Packs


Many modern Swift libraries include ad-hoc variadic APIs with an arbitrary upper bound, typically achieved with overloads that each have a different fixed number of type parameters and corresponding arguments. Without variadic generic programming support in the language, these ad-hoc variadic APIs have a significant cost on library maintenance and the developer experience of using these APIs.

This proposal adds type parameter packs and value parameter packs to enable abstracting over the number of types and values with distinct type. This is the first step toward variadic generics in Swift.


A parameter pack itself is not a first-class value or type, but the elements of a parameter pack can be used anywhere that naturally accepts a comma-separated list of values or types using pack expansions. A pack expansion unpacks the elements of a pack into a comma-separated list, and elements can be appended to either side of a pack expansion by writing more values in the comma-separated list.

A pack expansion consists of the repeat keyword followed by a type or an expression. The type or expression that repeat is applied to is called the repetition pattern. The repetition pattern must contain pack references.


Mark Surman (Hacker News):

We’re only three months into 2023, and it’s already clear what one of the biggest stories of the year is: AI. AI has seized the public’s attention like Netscape did in 1994, and the iPhone did in 2007.


We’ve learned that this coming wave of AI (and also the last one) has tremendous potential to enrich people’s lives. But it will only do so if we design the technology very differently — if we put human agency and the interests of users at the core, and if we prioritize transparency and accountability. The AI inflection point that we’re in right now offers a real opportunity to build technology with different values, new incentives and a better ownership model.


So, today we are announcing A startup — and a community — that will build a trustworthy and independent open-source AI ecosystem. Mozilla will make an initial $30M investment in the company.

I’m not saying that someone shouldn’t do this, but it’s not clear to me why Mozilla should be the ones. Shouldn’t their top priority be Firefox, an important product/engine where they uniquely can make a difference? They laid off most of the Servo team, citing financial difficulties, yet they have tons of money for this.


Google Accused of Violating Retention Obligations

Florian Mueller:

The key allegation is that “Google permanently deletes Google Chats every 24 hours—and did so even after this litigation commenced, after Plaintiffs repeatedly inquired about why those chats were missing from Google’s productions, and after Plaintiffs submitted a proffer on this exact issue at the Court’s direction.” While Google apparently just blames this on an enterprise-wide default setting--“history off”--the governmental and private plaintiffs dismiss that excuse, arguing that “[a]ny administrator of Google Chats—an application developed by Google—could have changed this default setting at any point for all custodians.” The emphasis on “by Google” is in the document itself. While it’s a good thing when tech companies eat their own dog food […], they can’t easily hide behind default settings and other properties of the services they create, control, and could change anytime.

Florian Mueller (Hacker News):

Since the “Google Chats” discovery dispute started with a motion by dozens of state AGs, Epic Games, Match Group, and other plaintiffs in October 2022, it has made Google’s behavior look worse as more information came to the light of day. The issue has also widened because the DOJ and the same state AGs as in the litigation that was originally started by Epic brought a motion for sanctions in the United States et al. v. Google antitrust litigation in the District of Columbia. Both cases are scheduled to go to trial later this year, and the plaintiffs are seeking trial-related sanctions as opposed to a slap on the wrist.

The latest filing by the plaintiffs in the Northern District of California takes the topic to a new level: Google CEO Sundar Pichai himself is being accused of playing a key role in this.


The first redaction likely means that he realized that the topic should not be discussed with history on, and what he did “nine seconds later” will either have been that he turned history off or that he opened a new chat with history off from the beginning.

It sounds as though any text chat is being treated as a record that must be retained. Whereas, I guess for historical reasons, phone calls are treated differently. A Zoom conversation with auto-captioning enabled would also create a written record that would then need to be preserved.


Thursday, March 23, 2023

Other People’s Playlists in Your Apple Music

Tim Hardwick:

Apple Music appears to be sparking serious privacy concerns for some users, with multiple complaints on Reddit about other people’s playlists randomly appearing in their music libraries in the Music app.

Redditor adh1003, who contacted MacRumors about the issue, has compiled several reports from users complaining about the appearance of strange playlists in the app that they do not recognize. MacRumors has since found other posts on Reddit from users reporting the same behavior.

In some cases, unknown playlists have been merged with users’ existing playlists. In other cases, users’ playlists have gone missing or been replaced by unrecognized ones.

Bruce Schneier:

OpenAI has disabled ChatGPT’s privacy history, almost certainly because they had a security flaw where users were seeing each others’ histories.


GitHub Copilot X

Thomas Dohmke (via Hacker News):

GitHub Copilot started a new age of software development as an AI pair programmer that keeps developers in the flow by auto-completing comments and code. And less than two years since its launch, GitHub Copilot is already writing 46% of code and helps developers code up to 55% faster.

But AI-powered auto-completion is just the starting point. Our R&D team at GitHub Next has been working to move past the editor and evolve GitHub Copilot into a readily accessible AI assistant throughout the entire development lifecycle. This is GitHub Copilot X—our vision for the future of AI-powered software development. We are not only adopting OpenAI’s new GPT-4 model, but are introducing chat and voice for Copilot, and bringing Copilot to pull requests, the command line, and docs to answer questions on your projects.


We are bringing a chat interface to the editor that’s focused on developer scenarios and natively integrates with VS Code and Visual Studio. This does far more than suggest code. GitHub Copilot Chat is not just a chat window. It recognizes what code a developer has typed, what error messages are shown, and it’s deeply embedded into the IDE. A developer can get in-depth analysis and explanations of what code blocks are intended to do, generate unit tests, and even get proposed fixes to bugs.


DALL-E in Bing and Edge

Yusuf Mehdi (via MacRumors, Hacker News):

We’re excited to announce we are bringing Bing Image Creator, new AI-powered visual Stories and updated Knowledge Cards to the new Bing and Edge preview. Powered by an advanced version of the DALL∙E model from our partners at OpenAI, Bing Image Creator allows you to create an image simply by using your own words to describe the picture you want to see. Now you can generate both written and visual content in one place, from within chat.


Historically, search was limited to images that already existed on the web. Now, there are almost no limits to what you can search for and create.


Wednesday, March 22, 2023

Little Snitch Mini 1.0

Objective Development:

It shows you each and every Internet connection of all apps on your Mac. And if you don’t like what you see, you simply push the Stop-Button.


Choose from a curated collection of blocklists covering thousands of ad servers, tracking servers and much more. They are kept up-to-date automatically, for optimal protection of your privacy.


The network monitoring functionality, including the real-time connection list, traffic diagrams and the animated map view can be used for free!

The full feature set, including connection blocking, extended traffic history time ranges, advanced display and filtering options and more is available as an in-app purchase.

Great idea to make a simplified version of Little Snitch. It’s $13.49/year vs. $69.


Update (2023-03-23): See also: Hacker News.

Nate Silva:

The new @littlesnitch Mini blocks and reports in the same way that the original Little Snitch did, but it does this by using blocklists. Like an ad blocker, but for the whole system. I guess that makes it like a proxy, but easier to set up and manage. So far, it’s great.

Would like to hear about the blocklists that people use. I think apps could use a blocklist that isn’t as focused on web browser privacy.

Swift Atomics 1.1

Karoy Lorentey (Mastodon):

This change will finally enable widespread use of atomic strong references in Swift code.


ManagedAtomic will finally become conditionally Sendable when its Value is Sendable. This has proved to be a constant pain point for users, especially when first trying out the package, or in the simplest production use cases.


Non-copiable types are quickly approaching, and they are an important step towards modeling synchronization primitives such as atomics as Swift native constructs.


I expect Swift Atomics 1.2 will introduce Atomic<Value> soon after the language matures enough to support it, if and when that happens. (I also expect the Standard Library to start providing the same or (similar) construct at that point, eventually replacing the need for this package altogether.)


Swift Proposal: Noncopyable Structs and Enums


All currently existing types in Swift are copyable, meaning it is possible to create multiple identical, interchangeable representations of any value of the type. However, copyable structs and enums are not a great model for unique resources. Classes by contrast can represent a unique resource, since an object has a unique identity once initialized, and only references to that unique object get copied. However, because the references to the object are still copyable, classes always demand shared ownership of the resource. This imposes overhead in the form of heap allocation (since the overall lifetime of the object is indefinite) and reference counting (to keep track of the number of co-owners currently accessing the object), and shared access often complicates or introduces unsafety or additional overhead into an object’s APIs. Swift does not yet have a mechanism for defining types that represent unique resources with unique ownership.


We propose to allow for struct and enum types to declare themselves as noncopyable, using a new syntax for suppressing implied generic constraints, ~Copyable. Values of noncopyable type always have unique ownership, and can never be copied (at least, not using Swift’s implicit copy mechanism). Since values of noncopyable structs and enums have unique identities, they can also have deinit declarations, like classes, which run automatically at the end of the unique instance’s lifetime.


Tuesday, March 21, 2023 to Close

Scott Everett (via Hacker News, Reddit):

After nearly 25 years of operation, DPReview will be closing in the near future. This difficult decision is part of the annual operating plan review that our parent company shared earlier this year.


Thank you for your support over the years, and we hope you’ll join us in the coming weeks as we celebrate this journey.


The site will be locked, with no further updates made after April 10th 2023. The site will be available in read-only mode for a limited period afterwards.

This is so sad.


The forums on this site needs to be archived ASAP. Theres so much information living within those forums that it would be a major blow if it all just disappeared, especially as a film photographer, where finding a lot of my niche information pops up on these forums.


Update (2023-03-22): ReclusiveEagle (via Hacker News):

PSA DPReview is being archived by the Archive team. Currently they are working to scrape over 4 million articles and posts within the next 3 weeks. [1] — see April 10 2023

Once archived, the entire site will be made available for anyone to browse on the internet archive. The entire .WARC will also be made available for anyone to download and view locally with a .WARC viewer such as Web Replay — this allows you to download the site and view it locally forever. You will be able to download the .WARC file from here once complete.

Jaron Schneider:

Chris Niccolls and Jordan Drake are joining PetaPixel and will lead its new YouTube Channel. The two have been a mainstay in the photography industry for more than a decade as hosts for first The Camera Store and then DPReview.

See also: Adam Chandler, Rui Carmo, Nick Heer, Om Malik, Jeff Carlson, John Gruber, TidBITS.

Update (2023-03-24): Glenn Fleishman:

Contrast Amazon’s integration of DPReview since 2007 (not at all) with the New York Times’s of Wirecutter—no offense to Wirecutter, but the NYT treats it poorly within the NYT family/framework however good the work is. IMDB is a better example for Amazon: they bought it in 1998 and it remains fairly independent in appearance, yet well integrated with Amazon’s product and video offerings.

See also: Devin Coldewey (via John Gruber) and Arun Venkatesan.

The Growth of Mastodon


Looks like users of are starting to register for Mastodon accounts.

Welcome to all new users of Mastodon.

Registered users of Mastodon might reach 10million users tomorrow.

And, indeed, that happened (via Hacker News). Some of the accounts are surely defunct, though that’s also the case with numbers from other social networks.

Mike Masnick:

Anyway, again, no idea how accurate any of these numbers are, but potentially more interesting is’s stats suggesting that the fediverse is closing in rapidly on an average of a billion posts per month!


Recovering Cropped Parts of Google Pixel Screenshots

Simon Aarons (via Hacker News):

Introducing acropalypse: a serious privacy vulnerability in the Google Pixel’s inbuilt screenshot editing tool, Markup, enabling partial recovery of the original, unedited image data of a cropped and/or redacted screenshot.

David Buchanan (via Hacker News):

Google was passing "w" to a call to parseMode(), when they should've been passing "wt" (the t stands for truncation). This is an easy mistake, since similar APIs (like POSIX fopen) will truncate by default when you simply pass "w". Not only that, but previous Android releases had parseMode("w") truncate by default too! This change wasn't even documented until some time after the aforementioned bug report was made.

The end result is that the image file is opened without the O_TRUNC flag, so that when the cropped image is written, the original image is not truncated. If the new image file is smaller, the end of the original is left behind.

This reminds me of the old Microsoft Word issue where if you had it set to “fast save” it would leave deleted text in the file. Sometimes there even seemed to be chunks of unzeroed content from other apps’ deleted files.

I found that the data was indeed compressed using dynamic Huffman coding, but that the Huffman tree was re-specified every ~16KB or so. This was excellent news because it meant I didn’t have to solve the “Huffman coding cryptanalysis” problem, and could instead solve the much simpler-in-practice problem of “find the start of a dynamic-Huffman-coded zlib block”.


Although I’m currently an iPhone user, I used to use a Pixel 3XL. I’m also a heavy Discord user, and in the past I’d shared plenty of cropped screenshots through the Discord app.

I wrote a script to scrape my own message history to look for vulnerable images. There were lots of them, although most didn’t leak any particularly private information.


Very simple script to check which PNG files have trailing data.

I hope that people who host forums, image boards, chat applications, etc., will delete or fix potentially vulnerable images before anyone uses them maliciously.

One way to repair a vulnerable image is to use optipng -fix.


These types of issues are exactly why whenever it’s sensitive, I screenshot, crop/edit, then screenshot the crop’d/edited screenshot. There’s other possible issues than this bug (like iOS’s non-destructive edits by default), so it’s better to be safe than sorry.

Nick Heer:

There are some people in the replies to Aarons’ tweet claiming the same is true for cropped iPhone screenshots. In my testing, that is not exactly right: if you crop an iPhone screenshot and then share it with default sharing options, it does not transmit edit history or removed image data, as best as I can tell. When I AirDropped a cropped screenshot to myself, it sent a re-encoded JPG image instead of the HEIF original. In the iOS Share sheet, there is an “Options” button; if you want, you can toggle the switch to “include all photos data” which includes “edit history and metadata”, including image data removed via cropping. This option is off by default.


Monday, March 20, 2023

Microsoft 365 Copilot

Jared Spataro:

Today, we are bringing the power of next-generation AI to work. Introducing Microsoft 365 Copilot — your copilot for work. It combines the power of large language models (LLMs) with your data in the Microsoft Graph and the Microsoft 365 apps to turn your words into the most powerful productivity tool on the planet.


Copilot is integrated into Microsoft 365 in two ways. It works alongside you, embedded in the Microsoft 365 apps you use every day — Word, Excel, PowerPoint, Outlook, Teams and more — to unleash creativity, unlock productivity and uplevel skills. Today we’re also announcing an entirely new experience: Business Chat. Business Chat works across the LLM, the Microsoft 365 apps, and your data — your calendar, emails, chats, documents, meetings and contacts — to do things you’ve never been able to do before. You can give it natural language prompts like “Tell my team how we updated the product strategy,” and it will generate a status update based on the morning’s meetings, emails and chat threads.


With Copilot in Word, you can jump-start the creative process so you never start with a blank slate again. Copilot gives you a first draft to edit and iterate on — saving hours in writing, sourcing, and editing time. Sometimes Copilot will be right, other times usefully wrong — but it will always put you further ahead.

Via John Gruber:

Hard to predict how these AI-powered features are going to play out, but it feels like they’re soon going to be table stakes.

Lukas Mathis:

It has always been a truism that what we have gained in ease of use by switching from the command line to the graphical user interface, we have lost in efficiency. I've long been interested in exploring how text-based interfaces could be integrated into GUIs, but it was just never quite possible to find the balance between accessibility and power. Make a text-based user interface too powerful, and it becomes impossible to use for the majority of people. Make it easier to use, and now it's just no longer powerful enough to warrant its own existence.

Until now.


Photos Data Loss With macOS 13.3 Beta

Josh Hill (via Marquelle D. McKean):

During a Europe trip in May 2022, I uploaded over 6,000 photos and hundreds of videos to the cloud. Upon editing and deleting some of the photos, I encountered an issue with, which ultimately led to the complete wiping out of my entire cloud library. Despite my efforts to recover the lost data using tools such as Disk Drill and contacting Apple support, no useful recoverable files could be found. Unfortunately, Apple support refused to escalate the issue to the engineering team due to the use of a beta version of macOS Ventura.

The loss of my lifetime memories and tens of thousands of dollars’ worth of intellectual property is one of the most devastating experiences of my life. I believe it is crucial to highlight the importance of backing up all data, including cloud content, to prevent such a catastrophic loss.

As a result of this incident, Koingo Software is investing 100% of our resources into finding a solution; all standard business operations have been halted for the time being.

Cloud syncing is not a backup. Apple doesn’t provide a way to directly download a backup of your photos, so you need to have Photos set to Download Originals to this Mac, which for most people means that they need to fit on your internal SSD. Then you can back them up yourself with Time Machine or to another cloud provider.

The other issue here is using your real data with a beta OS version. It’s easy to say that one shouldn’t do that, and I try not to. But I can’t really blame a developer for doing so because we want to identify bugs before they hit our customers, and many bugs don’t show up when using a clean test system. There’s no way to, say, use different Apple IDs for calendars and photos. And it’s not as though release versions are free of data loss bugs, either. So I think the main problem was not realizing that his local backup needed to include the photo library.

Marquelle D. McKean:

By all reasonable standards, this is a person we would expect to have understanding of how these things work. You don’t become the CEO of a small software company that’s been in business for nearly 30 years by being ignorant about computers. (Okay, maybe some people do, but they generally don’t stay in business for long after that.)

If someone like Josh can get something so straightforward and fundamental so very wrong, is it any wonder “ordinary” users make the same mistake, over and over again?


Update (2023-03-21): Brian Stucki:

The greatest digital fear. I “Optimize for Storage” on MacBook and iPhone but I have a Mac mini in the data center set to “Download Originals to this Mac” and copy to an external hard drive. It does the same for full copies of iCloud Desktops and Documents. Automatic everything.

Nick Heer:

I expect big cloud providers have more redundancies than most of us do, which makes it all the more disappointing that none of this stuff comes with a guarantee. That is, even if Hill were only running production operating systems, Apple — like every major provider of consumer cloud services — does not obligate itself to perform data restoration. iCloud Photo Library may only officially be a syncing service, but it is easy to think of it as something more robust, especially when it is described as “safe”, where your photos are “always available”, “without worrying about space on your devices”. Not sure about you, but after reading Hill’s experience, I am less concerned about disk space and more concerned about whether those photos are actually as safe as they ought to be.

I still think that a backup that’s not in your direct control is not really a backup. But Apple could certainly do more here. Calendars and contacts are synced, but multiple versions are stored in the cloud, and you can roll them back. This should be extended to other types of data.

Juli Clover:

Apple today seeded the release candidate version of macOS Ventura 13.3 to developers for testing purposes, with the new software update coming a week after the release of the fourth macOS 13.3 beta.

I hope the bug is fixed, but I’ve seen no reason to believe that it is.


Update (2023-03-23): Ezekiel Elin:

I’ve never seen any issues but 22E252 does run a Photos library upgrade

Damien Petrilli:

The Apple world is now used to beta being alpha quality without any questioning.

No Beta should incur data loss, they are almost production ready. And if data loss happens, it should be escalated quickly because of the oversight of a critical bug.

Update (2023-03-28): Josh Hill:

Regular every day phone-in support basically said there was nothing they could do — especially because we had used a beta. They wouldn’t even submit a ticket to the engineering team and told me to submit a comment using the Feedback tool instead (which often feels like the lowest priority format simply for remitting bugs).


I wrote in to upper management and explained the situation, and made a desperate plea to anyone in the tech community who could help provide suggestions.


After a few days, Apple’s backend engineers were finally able to recover what now seems to be all of the lost data, despite what the phone-in agent stated.


As it turns out, the “feature” is unlikely related to the beta at all after talking with Apple. The support agent I spoke with even told me he had the same problem.

The problem was triggered by creating a new local library and setting it as the system photo library.


If you designate a new library as the System Photo Library and then turn on iCloud Photos, the photos and videos in the new library will merge with those already in your iCloud Photos. Additionally, all photos and videos from iCloud will redownload to the device.

However, instead it deleted all the photos from all devices, bypassing “Recently Deleted.” It sounds like this is not fixed in macOS 13.3.


Spelunking Apple’s Open Source

Daniel Jalkut (Masotdon):

There’s no need to worry: the whole list, indexed by the pertinent platform and OS release to which they belong, is still available on a separate Releases page. Even better, each of these releases now has a corresponding GitHub repository, hosted in a dedicated organization reserved exclusively for open source distributions.


If you want to find the source code to an arcane tool like “banner”, just type it into a GitHub search of the organization. If there are too many false hits, as is the case for a common word like banner, try searching on something unique like a term from the command’s man page. The banner tool is credited as being authored by Mark Horton, and a search for “org:apple-oss-distributions Mark Horton” brings up more hits than I would have guessed (he also contributed to vim and vi, coincidentally), but a reference to the banner man page is the second search result.


Camo Studio 2

Jason Snell:

I’ve been using Camo Studio 2 for a few weeks and I’ve been relieved, frankly, to finally have proper control over my Continuity Camera and Studio Display cameras. The lighting in my office is weird, so I often need to adjust the color balance, and I’m never happy with the default zoom and options that Apple offers. With Camo Studio, I can drop an iPhone into a MagSafe mount and use it immediately without attaching a cable or launching an app on the iPhone.

Camo Studio has also picked up a bunch of new tricks. In addition to its classic zoom and image-adjustment settings, it’s got its own versions of Center Stage, Portrait Mode, and Studio Light. Reincubate claims its features are better and less processor intensive than Apple’s versions. (I did notice a few cases where Camo’s software seemed to better detect the difference between me and my background.) There’s also a really nice auto-pan mode that’s similar to Center Stage, but allows you to lock the zoom.


Update (2023-03-28): Duncan Babbage:

Camo Studio 2.0 from Reincubate makes the Apple Studio Display’s webcam look great.

You can set a fixed zoom position, SO much better than Centre Stage, and sharpen the image. It shows how ridiculous it is Apple doesn’t offer a pick-the-section-to-crop-and-display option for the Studio Display webcam.

No longer do I have to experience bouncing up and down in my chair slightly and having Centre Stage put my eyes in the centre of the frame, when it should be framing me head-and-shoulders.

Friday, March 17, 2023

Amazon Shuts Down Newspaper and Magazine Subscriptions

Laura Hazard Owen (via Hacker News):

It doesn’t matter whether they’re for your Kindle or in print — starting this week, Amazon is no longer selling newspaper and magazine subscriptions.


Instead, Amazon wants publishers to add their content to its $9.99/month digital subscription program, Kindle Unlimited, which includes a bunch of magazines and access to one newspaper that I saw — USA TODAY.


Anyway, while this all feels very 2011, news publishers in particular should check out some of the comments on last week’s Reddit thread, where customers talk about why they liked reading newspapers on Kindle, and why they’re sorry to lose the subscriptions — and it still has to do with the “satisfying reading experience” Sulzberger talked about more than a decade ago.


Who Can Access Private Home Security Footage

Alfred Ng (via Hacker News):

The police said they were conducting a drug-related investigation on a neighbor, and they wanted videos of “suspicious activity” between 5 and 7 p.m. one night in October. Larkin cooperated, and sent clips of a car that drove by his Ring camera more than 12 times in that time frame.

He thought that was all the police would need. Instead, it was just the beginning.

They asked for more footage, now from the entire day’s worth of records. And a week later, Larkin received a notice from Ring itself: The company had received a warrant, signed by a local judge. The notice informed him it was obligated to send footage from more than 20 cameras — whether or not Larkin was willing to share it himself.


The Magic Highlighter 0.6

Caleb Hailey:

If you’re like us, you might have developed a habit of smashing the ⌘-F keyboard shortcut and repeating some or all of the exact same search terms you already submitted to the search engine (e.g. Google, DuckDuckGo, or Bing).


The Magic Highlighter is a brand new Safari Extension that automatically highlights your,, and search terms and phrases on search result web pages — saving you time, and helping you find what you’ve been searching for.

This is referring to the actual found pages, not the lists of search results. It’s a $1.99 universal purchase.

Equality in Swift: NSObject, Subclasses, and Existentials

Mark Newton:

Conformance to the Equatable protocol seems pretty straightforward. You simply override the == function.


This works great for objects like structs, or classes with no superclass. However, we can run into problems with the == function if we’re dealing with NSObject subclasses.

Jayesh Kawli (via Marcin Krzyzanowski):

And now if you try to do following comparison, they will either won’t work, will be buggy or fail to compile

Noah Gilmore:

Swift can be tricky sometimes. For example, what does the following print?

class A: NSObject {
  let x: Int

  init(x: Int) {
    self.x = x

func ==(left: A, right: A) -> Bool {
  return left.x == right.x

print(A(x: 1) == A(x: 1))
print([A(x: 1)] == [A(x: 1)])


The best way to make an NSObject subclass use custom equality inside an array is to override isEqual:[…]

His reasoning for why the custom == didn’t work as expected is wrong, but the solution is correct. Similarly, you should override hashValue (not hash(into:)) if you need to change how it is Hashable.

For non-NSObject classes, a similar issue applies. If you have something like:

class Base: Equatable {
    static func == (lhs: Base, rhs: Base) -> Bool {
        return lhs === rhs

class A: Base {
    let x: Int

    init(x: Int) {
      self.x = x

func ==(left: A, right: A) -> Bool {
    return left.x == right.x

The results may not be what you expect:

A(x: 1) == A(x: 1) // true
[A(x: 1)] == [A(x: 1)] // false

Array uses the == from where its elements conformed to Equatable.

Natalia Panferova (tweet):

In Swift 5.7 that comes with Xcode 14 we can more easily check if two values of type Any are equal, because we can cast values to any Equatable and also use any Equatable as a parameter type thanks to Unlock existentials for all protocols change.


Inside isEqual() method we have access to Self, so we can try to cast the other value to the same type as the concrete type of the value this method is called on. If the cast fails, the two values cannot be equal, so we return false. If it succeeds, then we can check the two values for equality, using == function on values of the same concrete type.

There are some edge cases to be aware of, however, so it is preferred to use AnyHashable.

Ben Cohen:

You can define something similar for Comparable[…]


Thursday, March 16, 2023

Petey 1.1.2


We are excited to introduce Petey your AI assistant app for the Apple Watch! With this app, you can now interact with the famous GPT model right from your wrist.


With Petey on your wrist, you can easily access a vast source of knowledge and communicate with an intelligent computer in real-time. It’s like having a personal assistant on your wrist!

Via John Gruber:

I’ve been using it for a week or so and it’s occasionally been genuinely handy, especially if you keep it on an easily-accessed watch face complication. With other devices, you can just search the web for answers to questions. Oftentimes, when you ask a question to Siri, you get redirected to a web search. But if all you have handy at the moment is your watch, a web search is useless. Petey gives good answers to a lot of questions.

Note that this is a watch-only app. It doesn’t even show an icon on iOS.

Ken Case:

It’s great that the developers […] don’t collect any data from their app. But is that App Store privacy label misleading, when ChatGPT itself collects everything you ever enter into it?


Apple’s guidance is pretty clear in stating that the app privacy label should identify “all of the data you or your third-party partners collect” (emphasis added).

So any app using ChatGPT really ought to be declaring ChatGPT’s data collection in that privacy label (unless the app meets all of Apple’s “optional disclosure” criteria, including being “not part of your app’s primary functionality”).


Ventura Adds

Howard Oakley (Hacker News):

What happens in macOS Ventura is essentially the same until the moment that quarantine is cleared, when macOS now attaches a new extended attribute (xattr) of type to the file. This contains an 11-byte binary reference unique to that quarantine event, and may be protected by SIP to make it persist and prevent it from being stripped.


Defeating any SIP protection is simple for the user: when an app with a protected xattr is copied to another volume, the SIP protection breaks, and the xattr can be deleted in the normal way. However, code that tries to remove that xattr while it’s still protected may fail, and that has resulted in problems reported in Ventura by some users.


Randy has also identified the binary content of this new xattr as containing an 8-byte integer that is that app’s primary key in the provenance_tracking table in /var/db/SystemPolicyConfiguration/ExecPolicy. This would enable macOS to check the previous cdhash and other information about the app, perhaps to determine whether fuller checks are required by Gatekeeper, when the app is launched on subsequent occasions. That would make it a key part of Ventura’s new extended Gatekeeper checks.

Ethan Schoonover:

A small macOS improvement idea:

When I hit command-i on a macOS app, it would be nice if the app would include the website for the developer/application in the info or comments field.

I’ve forgotten about some apps that I’ve installed (i.e. i have no idea what they are even for) and would like to easily pop open the site for them without launching and hoping the URL is in help or about (or just manually searching online).

Howard Oakley:

While it’s clear that macOS Ventura is now tracking the provenance of apps that have completed their first run with the quarantine flag set, this provenance tracking doesn’t (yet) appear to be used to tailor or modify the checks run by Gatekeeper. It’s possible that provenance tracking isn’t yet mature enough to be used for that purpose, or that it’s intended for something else. Perhaps Ventura 13.3 will reveal more.


Peakto 1.5


CYME adds annotation features to Peakto, the AI-powered photo meta-cataloger for macOS. Thanks to its wide compatibility–Lightroom, Luminar AI/Neo, Capture One and Apple Photos–Peakto allows photographers to annotate from the same interface thousands of images belonging to different photo editing software and different folders. This borderless annotation, which can be applied to hundreds of photo catalogs, complements Peakto’s automatic AI annotation that effortlessly assigns keywords and categories to images.


Peakto also recovers the annotations present in the original catalog and allows users to add new ones such as title, caption, author’s name, rights of use and legal mentions. Because Peakto is an AI-enhanced photo organizer, it offers photographers two options to find a specific shot or make image selections: (1) keywords describing the image content automatically assigned by the AI, and (2) the photographer’s personal notes. Peakto simplifies the sharing of the best images from a shoot, the creation of a thematic album or the selection of visuals for a book or portfolio.

I like the concept of an app that pulls together photos from different apps and provides an interface tuned for browsing, searching, and annotating. My main photo app is Lightroom Classic, but it doesn’t have AI searching and can’t show the map in the grid view. Peakto can give me these and other features without my having to give up Lightroom, which is great in many other respects.

This new version offers annotation roundtripping. Metadata that I add in Lightroom shows up in Peakto, and changes made in Peakto can be written to XMP sidecars (or HEIC/JPEG files) and then brought back into Lightroom. This is great but doesn’t seem quite ready for my purposes yet. Lightroom doesn’t automatically bring in the changes; you have to tell it to sync. And syncing only works with folders Peakto is set to watch, not with whole linked catalogs, and it’s not recommended for folders with Lightroom masters. CYME has plans to expand syncing with Lightroom and with other apps, and I will be following their progress with interest.


Passing Types to Swift Functions

Paul Samuels:

This post uses a toy helper function that fetches remote JSON to show how we can design its api so that explicitly providing the type isn’t required when the compiler can infer types from context.


We can look at how JSONDecode.decode is defined to see how its api is designed. Clicking through the header we see

open func decode<T>(_ type: T.Type, from data: Data) throws -> T where T : Decodable

This is nothing new, but I wanted to document it here because I did not find this pattern obvious when I first learned it. My instinct from Objective-C was to pass in an AnyClass or perhaps an Any.Type, but that doesn’t work because there’s no way to convince the compiler that the return value will match the type received at runtime.

So you have to use generics. You could omit the type parameter and have the compiler infer T based on how the call site uses the return value, but that feels kind of backwards. Instead, using T.Type lets you go the other way and have T inferred from the parameter. This makes more sense, though it’s still a bit weird because you are passing in type but don’t really need it at runtime since you already have T.self.

With the latest change we have more flexibility but if feels like we’ve lost some brevity in cases where the compiler can infer things. To bring this type inference back we can use a default argument[…]

Wednesday, March 15, 2023


OpenAI (Hacker News):

GPT-4 is a large multimodal model (accepting image and text inputs, emitting text outputs) that, while less capable than humans in many real-world scenarios, exhibits human-level performance on various professional and academic benchmarks. For example, it passes a simulated bar exam with a score around the top 10% of test takers; in contrast, GPT-3.5’s score was around the bottom 10%.


We are releasing GPT-4’s text input capability via ChatGPT and the API (with a waitlist). To prepare the image input capability for wider availability, we’re collaborating closely with a single partner to start. We’re also open-sourcing OpenAI Evals, our framework for automated evaluation of AI model performance, to allow anyone to report shortcomings in our models to help guide further improvements.

Hartley Charlton:

Apple is testing generative AI concepts that could one day be destined for Siri, despite fundamental issues with the way the virtual assistant is built, the New York Times reports.

Employees were apparently briefed on Apple’s large language model and other AI tools at the company’s annual AI summit last month. Apple engineers, including members of the Siri team, have reportedly been testing language-generation concepts “every week” in response to the rise of chatbots like ChatGPT.


Update (2023-03-20): Gary Marcus (via Hacker News):

Chomsky co-wrote a New York Times op-ed the other day, and everyone is out there once again to prove they are smarter than he is, in the smuggest possible language they can muster.

Update (2023-03-22): Bill Gates:

In my lifetime, I’ve seen two demonstrations of technology that struck me as revolutionary.


I thought the challenge would keep them busy for two or three years. They finished it in just a few months.

In September, when I met with them again, I watched in awe as they asked GPT, their AI model, 60 multiple-choice questions from the AP Bio exam—and it got 59 of them right. Then it wrote outstanding answers to six open-ended questions from the exam.

Update (2023-03-24): DV (via Hacker News):

You might know that MSFT has released a 154-page paper on #OpenAI #GPT4, but do you know they also commented out many parts from the original version?

A thread of hidden information from their latex source code.

Aiko 1.0.3

Sindre Sorhus:

High-quality on-device transcription. Easily convert speech to text from meetings, lectures, and more.

The transcription is powered by OpenAI’s Whisper model running locally on your device.

It’s free. There’s even an option to translate to English.


Printing Lazy Web Images

Adam Engst:

Mail generates an offscreen web view, waits for the “load” part of the document to arrive, and then “prints.” But loading="lazy" causes images to load only when scrolled into view, which never happens with printing.


I did testing and found that if I changed the scaling percentage to 99%, some images would load—but they’d be fuzzy—and others would remain blank. However, if I changed the scaling percentage more seriously, such as to 87%, and then scrolled through the entire document preview, all images would appear crisply in the resulting PDF, even if I later returned the scaling to 100%. Presumably, asking the Print dialog to scale the output forced WebKit to load all the images, allowing them to appear.

This is a longstanding problem that also affects pages saved as PDFs from Safari and third-party apps. WebKit should just handle loading the whole page automatically.

Why a Separate App for Classical Music

Jessie Char (via Nick Heer):

Now here’s The Nutcracker. The composer is in the album title, the performer and conductor are listed as the artists, each track has a byline for the conductor, and while all 17 tracks are unique you can’t see the bit that sets them apart. And the play preview displays even less.

In fact when you tap to full screen the song it still doesn’t display the full title, you have to wait a few seconds for it to start scrolling.

And it doesn’t show it at all in CarPlay. Will that get Apple Music Classical, too?

The year refers to the year this particular version was was recorded, not the year the piece was composed. Year of composition AND year of recording are both important.

The “artist” tag is also really tricky, and often this’ll be tagged with composer, ensemble, soloist (if relevant), and conductor. It’s a lot of names, and these often get clipped or some just don’t get added to the mix.


Take Apple News vs iBooks- they’re both reading apps, so why is it necessary to have two separate apps? Because they’re extremely different reading and writing experiences and it doesn’t make sense to lump them into a one-size-fits-all approach.


Tuesday, March 14, 2023

Update on Cloud File Provider Extensions

Adam Engst (Mastodon):

My understanding is that Box, Google, and Microsoft have migrated their Mac users to the File Provider approach, whereas Dropbox—probably the most popular among everyday Mac users—has only recently started to encourage those outside its beta program to switch (while others are still being asked to join the beta). It can be hard to tell since cloud storage providers often roll out changes over time or to subsets of customers to test user response, identify concerns, and reduce support loads. Some Dropbox users even report one Mac being upgraded to the new File Provider approach, while others continue to use the kernel extension.

I’ve switched most of my formerly Dropbox files to Git and am now using iCloud Drive for everything else. Unfortunately, iCloud Drive sometimes takes a day or more to sync new files from my iPhone to my Mac.

Some users, including us, have experienced situations where the local folder doesn’t move but becomes disconnected from the service.


However, there are no guarantees that references to files will all resolve to the new locations, and in the case of apps that use cloud storage for syncing settings, you may not even notice immediately.


The most significant limitation of the new File Provider approach is that ~/Library/CloudStorage is located on your internal drive. For those with terabytes of files in a cloud storage service, that’s a huge problem.

Another case where it seems like Apple has forgotten those with external storage needs.

Therefore, assuming you have sufficient disk space, I recommend downloading your entire cloud storage data store, at least temporarily. Bring everything down and let Time Machine and your other backup systems make a copy.

Or, if you don’t have the space, ChronoSync can download the files in stages, back them up, and then evict them while keeping peak storage needs low.


Using a Mac Without Phoning Home

Howard Oakley:

A great deal has happened in the two years since Apple promised that it would provide an option to stop online checking of certificate validity using OCSP, and that of notarization. Instead, it has introduced two quite different enhanced security modes: Lockdown Mode, and iCloud Advanced Data Protection. Although they’re both valuable, it’s surprising that Apple has put great engineering effort into those, but still can’t see its way to let Macs run without repeatedly connecting to its servers.


There’s a small but strong body of users who, for a variety of reasons, really don’t want their Macs when they’re in use repeatedly connecting to Apple. To get a feel for how extensive the problem is, this article lists all the connections that Macs and devices require. I count 75 for regular macOS, excluding MDM and enterprise/education/business.

Howard Oakley (Hacker News):

This article explains what does and doesn’t work when a Mac running Ventura has no network connection at all.

It’s what you would expect.


The problem with online checks (gatekeeper) are when you have flaky internet connection.

It can handle no connection quite well, but unstable internet is really a PITA - commands and applications lag randomly when launching etc... It took me some time to troubleshoot why suddenly ma MacOS was almost unusable and this was the culprit.


Bugs in OpenBSD’s UTF-8 Decoding Logic

Exotic Silicon (via Hacker News):

In this article, we’ll take a look at the [sorry] state of affairs regarding UTF-8 support on the OpenBSD kernel, at least as of OpenBSD 7.2-release. It’s not a pretty picture, but hopefully we can improve things.


Still, the debugging process we went through here to discover the cause of the problems in the first place is worth sharing from the beginning, as the code in question was particularly bad with plenty of textbook mistakes. Who knows what you might find in your own investigations elsewhere.


So effectively, when we tried sending the 0xC4, 0x80, sequence to print character 256, the kernel tried to interpret it as a three byte sequence instead of a two-byte sequence. The trailing newline caused the re-assembly of the multi-byte character to fail, but we fell through to code which then correctly processed the newline character.


Converting the Streaks Apple Watch App to SwiftUI

Quentin Zervaas:

At this time, Streaks for Apple Watch still supports watchOS 6. Even though SwiftUI runs on watchOS 6, there were some roadblocks in our implementation, so if you’re on watchOS 6, you’ll still be running the WatchKit version.


In Streaks 9, this animated view on Apple Watch fully uses SwiftUI, not a series of animated images. This makes it much smoother, faster and nicer to interact with.


All of these edge cases are the primary reason why it’s taken us two years to get all this working as well as we’d like.


The multiline support in TextField on Apple Watch is buggy: while it would reserve 3 lines of space, it would just truncate the first line and not show subsequent lines.


Monday, March 13, 2023

Pattern Matching on Swift Error Codes

Ole Begemann:

I was wondering why this shorter syntax works. Is there some special compiler magic for pattern matching against error codes of NSError instances? Turns out: no, the answer is much simpler. Foundation includes an overload for the pattern matching operator ~= that matches error values against error codes.

The implementation looks something like this:

public func ~= (code: CocoaError.Code, error: any Error) -> Bool {
    guard let error = error as? CocoaError else { return false }
    return error.code == code

However, my experience has been that this only works for concrete types, not when your errors or codes use a protocol.


Update (2023-03-15): See also: Rob Jonson.

Update (2023-03-16): The problem seems to be this bug (via Rob Jonson).

Ventura Time Machine Backups and the APFS Uncertainty Principle

Howard Oakley:

Before making any snapshots for this backup, TMA performs housekeeping on its own previous snapshots, both on each volume being backed up, and on the target volume (backup storage). The rule it applies is inflexible: it deletes any local snapshots (on a volume being backed up) that are more than 24 hours old, unless it’s the last snapshot on that volume, which it retains for this backup. Even so, TMA snapshots can become orphaned and left indefinitely, for the user to spot and delete manually. Although uncommon, this can occur when Macs are unable to make full backups because they’re disconnected from their backup storage for more than 24 hours at a time.


TMA next has the task of deciding how it’s going to work out what needs to be backed up on each source volume. […] Snapshot deltas were first choice in the past, but TMA has returned to preferring FSEvents when possible, for second and subsequent backups of a volume.

I wonder whether this is for performance reasons.

Howard Oakley:

If the large files you put in the Trash were on the volume being backed up when Time Machine made one of those hourly snapshots, then the data for those files will be retained as part of that snapshot, until the last snapshot containing those files is deleted. Only then can the data for those files be removed, and the space they took up will be freed.


The cleanest way to avoid this happening is to keep all downloads and large temporary files on a separate volume which isn’t backed up, so doesn’t have snapshots made of it automatically.


If you don’t want to use a BigFiles volume, or can’t select where to save a large temporary file, you can work around snapshots by timing. Before acquiring that large file, check when the last Time Machine backup was made, using the Time Machine item in the menu bar. Provided there’s sufficient time before the next backup is due, you can download the large file(s), move them to another disk for storage or otherwise use them, then put them in the Trash. But the most essential step is that you must then empty the Trash before the next backup starts, or they’ll be captured in the next automatic snapshot.

Adam Engst:

I’ve been pondering just how difficult—perhaps impossible—it is to know how much free space you actually have on a Mac’s drive these days (see “Ensure Sufficient Free Space before Upgrading to Ventura,” 15 November 2022 and “iPhones and iPads Now Require a Passcode on Every Backup/Sync,” 11 January 2023). The complexity underlying APFS and macOS in general creates a situation where the amount of free space isn’t entirely deterministic.


I figured that if I emptied the Trash, I’d either see no change due to the Time Machine snapshot issue or have almost exactly 145 GB free. Surprisingly, neither was true. After a minute or so, the free space number did rise—as expected—but first to 148 GB (not shown) before settling down at 146 GB. I can’t explain why it was a full gigabyte higher than would seem possible.


Grasping at straws, I decided to restart, just in case that somehow helped the filesystem come to a better conclusion about the amount of free space. Unfortunately, after my Mac came back up (with the same apps running), the free space number had dropped to 159 GB.


I no longer believe it’s possible to audit the free space on a Mac or to explain precisely how much space should be freed up by a particular action.


Indispensable Developer Tools

David Smith:

This isn’t comprehensive, but my hope is to surface potentially less well known tools that I have found super helpful. The obvious ones like Xcode and Terminal are obviously essential, if not particularly interesting.

Sim Genie is an absolutely required tool for anyone doing development involving GPS. Curtis has put together a fantastic tool that can do all manner of things for improving the iOS simulator, but its GPS Simulator function is amazing. You load up a GPX file and it will play it back and various speeds and various rates.


Pastel is essential for anything involving color (which is probably every app).


The iOS Simulator’s video recording can export gifs, but I can’t easily edit those outputs. So instead I would often record to video there, then roundtrip quickly to Final Cut to tweak something, then export them in Gifski for sharing.


I was constantly juggling GPX files for this update and found the best place to preview/compare them was the website GPX Studio.

From this article, I use Soulver, Sketch, and Kaleidoscope a lot. Other key apps for development: BBEdit, Dash, Tower, Hopper, LaunchBar (opening headers, snippets for coding and customer support), DropDMG, Script Debugger, EagleFiler (issue tracking, customer support history, and documentation searching), Apparency, and Base.


Friday, March 10, 2023

Music to No One’s Ears

Joe Rosensteel (member post):

Look, I’ve been hoping that at some point, the rocky transition from iTunes to the Music app would be over and we’d all look back on it and say, “Wow, I can’t believe that was so brief.” But it isn’t over. Here I am, in the year 2023, and I have the same problems using the app that I’ve had for about half a decade at this point. And yes, many of these problems are tied to changes made for the Apple Music service.

When launching the Music app on macOS, you always start off at the Listen Now section of the app. It doesn’t matter what I was previously listening to in the app—that information has been lost to the sands of time. I can’t resume playback of anything I was listening to on this device, or any other. Anything I was looking at in the interface is wiped away too. I can, instead, see the four things that Apple thinks I want immediate access to.


Surely, the section under it, Recently Played, is exactly what I want? No, I want what I was last listening to, where I was last listening to it, tied directly to the play button. Recently Played only provides the entire song, album, or playlist I was listening to from its start.

He also discusses how search doesn’t work as well as it used to and how it lost his star ratings.

Dan Moren:

In implementation, however, the macOS Music app is basically the former iTunes app with Apple Music’s streaming functionality bolted on. While being able to include both tracks from your personal library and Apple Music in one unified interface has its benefits, especially when it comes to ease of use, it can sometimes feel like Apple’s performing some clever legerdemain. For example, one of my biggest frustrations is discovering that a specific track from an album that I’ve added to my library is unavailable because of streaming rights. Why just a specific track? It’s almost always unclear—but it does put paid to the idea that music in your library is actually in your library.

That’s just one example of where this melding doesn’t always work; there are plenty of others, including matching an explicit version of a song to a clean version (or vice versa), ending up with split albums because of metadata problems, and just plain getting the wrong version of a song (live instead of studio, for example).


But there exists no similar [Handoff] functionality for music. If I pause a song I’m playing on my Mac and want to pick it up on my iPhone—an analog of which was performed in the very first ad for the iPod in 2001, I have to launch the Music app on my phone, find the track, and skip ahead to where it was on the Mac.


This has caused me no end of frustration, especially when I start listening to an album on my phone, AirPlay it to my HomePod mini, and then go back to my phone only to discover that it’s still on the same track it was when I first AirPlayed it.

Pierre Igot:

One of the many ways that Apple effectively punishes Mac users for not fully embracing the all-Apple approach to music (by using third-party tools to rip CDs, etc.) is the chronic failure of #iOS’s #Music app to provide reliably GAPLESS playback of ripped album tracks. Could they not use a bit of that “machine learning” magic to detect when there is no silence between tracks and make sure the playback has no annoying gaps/blips between them?

I just tried to open the MiniPlayer window in the Music app, and in response I got a modal alert asking me to join Apple Music.

Nick Heer:

Was wondering if Apple had fixed Music’s “Sync Library” feature. Nope. Still not enabling it.


Update (2023-03-14): evilerutis (via ednl):

[A] majority of songs came back. But a few hundred are just completely gone for good. The support person said “sometimes that happens” (?!?)

Adam Demasi:

I’ll take an occasional bad design decision (Spotify’s new TikTok-style homepage) over the death by a thousand cuts you’re made to endure to use Apple Music.

Judo 1.13.1

Judo (via Collin Allen):

Judo is a design and build tool for SwiftUI apps that writes production-ready code for you while you’re designing. Eliminate back-and-forth with developers and free them from unrewarding grunt work.


Drag-and-drop a Judo file into any Xcode project and use the Judo SDK to render it as native SwiftUI — then wire up button actions and input controls to custom code.

Roku Doesn’t Support IPv6

DingleBog3899 (via John Gruber):

Our tribal network started out IPv6, but soon learned we had to somehow support IPv4 only traffic. It took almost 11 months in order to get a small amount of IPv4 addresses allocated for this use. In fact there were only enough addresses to cover maybe 1% of population. So we were forced to create a very expensive proxy/translation server in order to support this traffic.

We learned a very expensive lesson. 71% of the IPv4 traffic we were supporting was from ROKU devices. 9% coming from DishNetwork & DirectTV satellite tuners, 11% from HomeSecurity cameras and systems, and remaining 9% we replaced extremely outdated Point of Sale(POS) equipment. So we cut ROKU some slack three years ago by spending a little over $300k just to support their devices.


Now if ROKU cannot be proactive at keeping up with connectivity standards they are going to be wiped out by their own complacency. Judging by the growing number of offers to replace their devices for free their competitors are already proactively exploiting that complacency.

I suppose I’m lucky that, as an end user, IPv6 so far isn’t something I’ve had to think about. It’s kind of like Y2K in that I know there’s been a lot of work going on, but it’s been mostly invisible. I don’t actually know which of my devices and apps have been updated.

Geoff Huston (in February 2022, via Tim Bray):

I bet that nobody believed in 1992 that thirty years later we’d still be discussing the state of the transition to IPv6! In 1992, we were discussing what to do about the forthcoming ‘address crunch’ in IPv4 and, having come to terms with the inevitable prospect that the silicon industry was going to outpace the capacity of the IPv4 address pool in a couple of years, we needed to do something quickly. We decided to adopt a new protocol, IP version 6, a couple of years later, and in December 1995 the IETF published RFC 1883, the specification of IPv6.

There were many views as to how long the transition from IPv4 to IPv6 would take, from an optimistic six-month rapid cutover to a hopelessly pessimistic view of a protracted ten-year transition. If there was a prevalent view at the time, it was that the transition would take a further five years or so. But don’t forget that this was in the lead up to the Internet bubble of 2000, and anything that was going to happen five years from now was shelved as a ‘tomorrow’ problem while we toiled away on adding more carriage capacity to the network, fixing the myriad of issues with routing, and making dial-up modem access work!

While this was a pressing issue in 1992, four years later in 1996 there was no longer any particular sense of urgency about the transition to IPv6. Why not? There are four major reasons for the shift in attitude.

Google (via Hacker News):

Google collects statistics about IPv6 adoption in the Internet on an ongoing basis. We hope that publishing this information will help Internet providers, website owners, and policy makers as the industry rolls out IPv6.

It’s around 38% right now.


Screen Saver Doesn’t Properly Display Rotated Images

Adam Engst:

But therein lies the longstanding rub: an unresolved bug that spans many years. The big win of Apple’s photo screen savers is that they let you select photos from your Photos library or a folder. According to the author of ArtSaver, an independent macOS screen saver that offers many more options, Apple doesn’t allow third-party apps access to your Photos library.

The macOS permissions system is designed around giving apps access to things. There is apparently no way to do this for a plug-in.

The problem is simple: Apple’s photo screen savers display only original, unedited images in Photos. If you have edited an image, including rotating it, the screen saver ignores your changes, instead using the original image stored separately in Photos.


There are workarounds, but you’re not going to like them because they waste disk space and require regular maintenance to include new photos.

The seemingly basic task of displaying a collection of photos from the system photo library on your lock screen is awkward on both macOS and iOS.


Update (2023-03-14): Satish E Viswanath:

ever tried screen savers on Apple TV via Home Sharing your photo library? It does NOT support HEIC photos (!) Dates back to 2017.

Working Around Stuck Safari Tabs Syncing

Jesse Squires:

Aside from tabs not syncing, the biggest problem I’ve had is that tabs from my Mac get “stuck” on my iPhone and iPad. These “ghost tabs” are ones that have been closed on my Mac — often for weeks or months — yet they continue to appear as open tabs on my iOS devices. Most recently, a tab appeared on my iPhone that was supposedly open on my Mac for a project on GitHub that I haven’t worked on for over a year! I’ve tried deleting/closing these ghost tabs on my iPhone, but they always reappear.

He disables syncing on all devices, keeping the data only for the Mac, reboots each device, and then launches Safari for Mac first.


Thursday, March 9, 2023

Apple Music Classical Pre-Order

Hartley Charlton:

Apple’s long-awaited dedicated classical music app today appeared on the App Store and is available for pre-order ahead of its launch at the end of March.

Sarah Perez (Hacker News):

The company’s decision to target classical music listeners with a standalone app is a differentiator for its Apple Music subscription service — though it’s one that’s quite different from the features rival Spotify announced this week, which had involved tech-forward features like AI and video-based discovery feeds.

Instead, Apple Music Classical will present a simple interface for engaging with classical works. Users will be able to search by composer, work, conductor or even catalog number, to locate recordings. These can be streamed in high-quality audio of up to 192 kHz/24-bit Hi-Res Lossless. And thousands of recordings will be available in Apple’s immersive spatial audio, as well.

There’s no additional charge for Apple Music Classical as it’s being shipped as part of the Apple Music subscription. The app will be available to subscribers across plans, including the Individual ($10.99/mo), Student ($5.99/mo), Family ($16.99/mo) plans, and in the Apple One bundles.

Hartley Charlton:

Apple says that it has been working with classical music artists and institutions to offer exclusive content and recordings in Apple Music Classical, including Hi-Res Losless and Spatial Audio tracks.

The app’s design is based on Apple Music, but with a simplified UI that heavily uses Apple’s New York font instead of SF Pro.


There is no version of Apple Music Classical for iPadOS, making it an iPhone-only app.

An Android version of Apple Music Classical is in the works and set to arrive “soon,” according to Apple.

Steven Woolgar:

It says there will not be an iPad app, but there will be an Android app. It doesn’t say anything about macOS.

I don’t know what to think that Apple has prioritized Android over iPad. As an iPad user and music lover I am not too impressed.

They’ve got Catalyst and SwiftUI, but the second platform to be supported will be Android? And what about HomePod?

Jason Snell:

As I learned years ago from Macworld contributor Kirk McElhearn, classical music fans have some very specific needs that aren’t well served by the pop-music-oriented design of Apple Music (and all the way back to iTunes, for that matter). Hence the need for a dedicated app. (It’s unclear to me if a Mac app is in the works, however.)

Dave B.:

On the one hand, I’m glad it’s finally coming.

On the other hand, if you look at the screenshots on the App Store, it looks like it has the exact same design as the normal Apple Music app.

I had been hoping the long delay to Apple Music Classical was the result of Apple building a newly designed Classical app, and then applying those updated designs to the regular Music app so that they could both be released together with a new, improved design.

By the looks of it, that’s not the case. If Apple Music Classical looks exactly like the current Apple Music app, that means it’s less likely that Apple is actually redesigning the current app. That’s immensely disappointing to me.

And I guess the classical-focused UI improvements won’t be available for already purchased music, only via subscription.


Update (2023-03-10): Rui Carmo:

Sometimes I wonder if Apple really has a services strategy instead of a bunch of tiny, disjointed little teams that appear to operate in a completely isolated way without thinking about how and end customer would use all their services across all of their devices.

Indie Success

David Smith:

Widgetsmith has just achieved a remarkable milestone, surpassing 100 million downloads since its launch in September 2020. A number that I can’t really wrap my mind around. A number larger than the population of all but 14 countries (🤯).


The success of Widgetsmith was made possible by the amazing platform Apple has made and the amazing users it has attracted.


It took me a long time to get here, Widgetsmith was the 59th app I launched over 12 years, and there are no guarantees that anything we make will ever find its audience.


2022 Apple Vision Accessibility Report Card

AppleVis (via Steven Aquino):

To gather the ratings and comments contained in the report card, we conducted a comprehensive survey where participants rated their experience using Apple’s various platforms with the available vision accessibility features on a scale of 1 to 5. Additionally, we invited participants to provide detailed written feedback and suggestions for enhancing Apple’s vision accessibility features and user experience. The survey also included questions that assessed Apple’s performance in addressing vision-related bugs, as well as the new vision accessibility features added in 2022.

The report card below presents a summary of the survey results, showcasing the areas where Apple excels and where there is room for improvement. It also includes a selection of participant comments, providing further insight into the specific challenges and opportunities related to Apple’s vision accessibility offerings.

There are lots of complaints about VoiceOver on macOS.


EU Narrowing the Spotify Antitrust Case

Joe Rossignol:

The European Commission today announced it has narrowed its antitrust investigation into Apple’s rules for streaming music apps. In a revised Statement of Objections sent to Apple, the Commission said it will no longer challenge Apple’s requirement for apps to use the App Store’s in-app purchase system for digital goods and services. […] The investigation will now focus entirely on Apple preventing streaming music apps from informing iPhone and iPad users within the app that lower subscription prices are available when signing up outside of the App Store.

John Gruber (Dithering):

I’ve thought all along that most of the EC’s probe against Apple was overreaching (the stuff about opening up IAP in particular), but Apple’s anti-steering provisions are wrong and either already are illegal or should be made illegal.


Wednesday, March 8, 2023

Swift “Certificates” and “ASN.1” Packages

Cory Benfield:

I’m excited to announce two new open source Swift packages: swift-certificates and swift-asn1. Together, these libraries provide developers a faster and safer implementation of X.509 certificates, a critical technology that powers the security of TLS.


Swift ASN.1 provides two major pieces of functionality: an implementation of the common ASN.1 currency types, and an implementation of DER serialization and deserialization. This is sufficient for implementation of the majority of the cryptographic use cases for DER, including for swift-certificates.

Swift ASN.1 provides these security-critical parsing and serializing services using entirely memory-safe code with low overhead.

I’ll probably eventually use this for receipt and license validation.


Medium’s Mastodon Server

Alex Benzer:

A few weeks ago, we announced that Medium is embracing short-form writing by launching our very own Mastodon server at Starting today, we’re opening up access for our member community. If you’re a Medium member, you can create an account on

Via John Gruber:

To my knowledge no company with such resources has started a public Mastodon instance to date. I am very uncomfortable with the fact that nearly all Mastodon servers are free-to-use volunteer efforts, funded by voluntary donations. That’s not sustainable. I suspect a lot of Mastodon servers that seem to be thriving today won’t be around in 5 years, taking all of their posts with them. I don’t feel great about the fact that Medium is venture-backed, either, but they do charge $5/month or $50/year for a membership.

I’ve been using, which is funded by Patreon donations. It seems to be one of the better servers but was down for a while yesterday. I haven’t actually seen Twitter go down recently, but sometimes it’s really slow.


Overhead of Using APFS Encryption

Howard Oakley:

T2 Intel and Apple silicon Macs invariably encrypt the Data volume on their internal SSD; adding the protection of FileVault’s password comes at no cost.

Some external SSDs can use APFS encryption without any reduction in performance at all.

Other external SSDs may show reduced write speed to APFS encrypted volumes, particularly when they are connected via a hub rather than directly.

Currently the only way to tell SSDs apart is to measure their write speeds.

This third point is not what I would have expected.

macOS Network Metrics Using sysctl()

Milen Dzhumerov:

As part of my work on the Buck2 build system, I needed a way to observe the network throughput of the system. After some research, the conclusion was to use sysctl() with NET_RT_IFLIST2: this provided access to 64bit metrics which do not suffer from overflowing that affects the 32bit fields of the older APIs.


If you looked at the traffic metrics, they would only ever increase in multiples of 1KiB. The reason for the behaviour is that the kernel applies batching to prevent malicious code from fingerprinting the system. This restriction applies only to 3rd party programs (i.e., not codesigned by Apple).


Upon further investigation, it became clear that the API truncates and wraps around the traffic metrics at the 4GiB mark. Again, this only affects 3rd party programs.

Update (2023-03-29): Mojo66:

BTW, my currently-in-development Mac app “DerPinger” uses [sysctl()] to fetch 64-bit interface metrics, and does not have problems with 4GB wrapping on 13.2.1.

I’m looking for beta testers.

Tuesday, March 7, 2023

Cracking the Mac Gaming Market

Oliver Mackenzie (in August 2022, via John Voorhees):

Let’s take a look at our gaming benchmarks, calculated via video capture as is the Digital Foundry way.


It’s not a particularly large table because, unfortunately, there aren’t many high-end Mac games that we can actually test, particularly when it comes to big-budget games. But we do have a few titles here - and the results are intriguing.


This is a full-bore Apple Silicon version of Blizzard’s long-running MMO, but despite running natively, the same pattern emerges with the M1 Ultra yet again falling squarely between the two PC systems, falling well short of the 3090 but still delivering performance in line with a high-end PC GPU. The Max is borderline unplayable while the 3080M hovers around 30fps. All of these systems would be perfectly fine with the game at remotely reasonable settings, of course - we are running the game essentially maxed out at a whopping 8K internal resolution to create a proper stress test.


Gaming on Mac has historically been quite problematic and that remains the case right now - native ports are thin on the ground and when older titles such as No Man’s Sky and Resident Evil Village are mooted for conversion, it’s much more of a big deal than it really should be.

Matthew Panzarino:

One arena still holds fascination for any of us who have found a home on the Mac for nearly every part of our digital life — save one: gaming. The M-series Macs are undoubtedly more gaming capable than any previous Mac due to the inclusion of much-improved onboard GPUs across the lineup. But even with big titles popping up on Mac in spurts, there still is a fairly large section of “here there be dragons,” where you would think Apple would like to map in the multi-billion-dollar gaming market.

Borchers says that Apple is feeling like the Apple silicon gaming story is getting more solid release by release.

“With Capcom bringing Resident Evil across, and other titles starting to come along, I think the AAA community is starting to wake up and understand the opportunity,” he says. “Because what we have now, with our portfolio of M-series Macs, is a set of incredibly performant machines and a growing audience of people who have these incredibly performant systems that can all be addressed with a single code base that is developing over time.


Millet says that Apple’s work on cracking the gaming market started with the early days of the Apple silicon transition.

Peter Cohen:

Reading this interview from last month, I was struck by the fact that I’ve heard the same basic line from Apple since they released the blue and white Power Mac G3 in 1999: “Now we have performant gaming hardware.”

The problem isn’t the hardware. The problem is getting an entire industry of developers and publishers on board to support the platform, and consumers to buy them with this purpose in mind. Apple can’t fix this with new game-savvy senior management.

Also, pointing out the amazing GPU performance of the M2 isn’t helpful, because most of us don’t have one. And won’t be goaded to buy one based on how well it plays games that have already been out on PC and console for years. It’s “Field of Dreams”-level magical thinking: Build better silicon and they will come.

Cabel Sasser (Hacker News):

A short story. We once submitted Untitled Goose Game to the Mac App Store. It was rejected by the reviewer because they thought you couldn’t skip the credits. (?!?) We explained that you could skip the credits by holding space. It was then rejected for something else and at that point we just gave up and never bothered to resubmit.

John Gruber:

Untitled Goose Game, of course, is one of the funnest and most original games of the last decade. And Panic is a company that has made a couple of decent Mac apps over the years.

Isaiah Carew:

i think the most damning evidence is that the goose game is on a bunch of other really strict platforms, like Nintendo Switch, and not of the app store.


Update (2023-03-14): Wraithe:

I will say, my primary gaming system for the past 5+ years has been the same Mac.

I play AAA titles, relatively high end FPS, and it’s a MacPro 2012, albeit with upgrades (video cards, SSD drives) so it’s over 10 years old, still doing the work.

Of course (and you knew there was an “of course :)) it’s running Windows.

So, the issue isn’t the hardware….

It’s also been a wonderful reminder of what I don’t like about windows. 😂

MoneyWell 2023.01

Diligent Robot:

After a lot of dillydallying, we’re very pleased to announce the return of sync to MoneyWell. This is available in MoneyWell 2023.1. To go along with this, we’re releasing MoneyWell Express 2023.1 for iPhone.


We know a subscription will put lots of people off, but we need to make MoneyWell sustainable, and the existing model isn’t.

The syncing seems to use Ensembles/CloudKit. It’s not clear to me what else is new in the version, other than the Big Sur–style icon. The subscription is $49.99/year, the same as the original price I paid for the app back in 2009. There hasn’t been a paid upgrade since MoneyWell 3, which was $25 back in 2015.

They’re also going Mac App Store–only. Eight hours after I received the update e-mail, the app still doesn’t show up at all when searching in the Mac App Store. The direct link works, though.

We have a roadmap for future development on MoneyWell. Our biggest goal is for MoneyWell to return to sustainability so it can be our main, and eventually only, source of income. Currently that isn’t the case, which is one reason why progress is slow.

Over the next 12 months amongst other things we’re planning[…]

I’m not interested in anything on the roadmap, but I still really like the app and will be happy if they can simply maintain the current feature set. Hopefully the subscription and planned features, which seem marketing friendly, will make that possible.

MoneyWell Help:

Because of the way syncing now works, we’ve moved away from a “document” model, where you look after your document and can move it around. The MoneyWell app now manages all of the budgets. This enables multiple budgets to be synced. If you want to make sure your budgets are backed up (and you should) ensure your backup system backs up ~/Library/Containers/com.diligentrobot.MoneyWell/

I can see why they’re doing this, but I’m not thrilled because I don’t use syncing, anyway, and I liked to keep my document file on an encrypted disk image. Undo support has also been removed, since it doesn’t work with the new syncing. The new version seemed to migrate my data correctly except that it reported that some of my smart filters were damaged.


Microsoft Adds Free Outlook Tier

Jeremy Perdue (AppleInsider, MacRumors, Slashdot, Hacker News):

Now consumers can use Outlook for free on macOS, no Microsoft 365 subscription or license necessary.

However, according to the pricing page, you need to pay in order for it to be ad-free. The new version also removes the switch to turn off the “New Outlook” user interface. You can still turn it back off using Terminal to get back features like rules and AppleScript (which are required for SpamSieve and EagleFiler) that have not yet been implemented, however that’s only allowed if you’ve paid for Microsoft 365. Otherwise, it will only run in offline mode. So, although everyone seems to be writing that “Outlook is now free,” I think it’s more accurate to say that there is a new free tier.

Microsoft updated its roadmap on March 1 to state that AppleScript will finally be implemented this month, but I don’t see anything about full rules support.

Whether at home, work or school, Mac users everywhere can easily add, Gmail, iCloud, Yahoo! or IMAP accounts in Outlook and experience the best mail and calendar app on macOS.


With Outlook, you’ll get a modern and native user interface that has been designed and optimized for macOS.


Microsoft plans to continue building and maintaining best-in-class native apps on macOS and iOS. There is no plan to build a web app version of Outlook for Mac.

When key members of the Claris Emailer team went to Microsoft to build Outlook Express and later Entourage, I would say those were best-in-class native Mac apps. The current version of Outlook feels weird to me. It’s not a Web app, but the design feels like a hybrid of mobile, Web, and Office. It doesn’t use a Mac standard toolbar or table view. Many of the buttons look weird. Keyboard navigation is odd. There are some new cloud-based features, but overall I think “New Outlook” removed a lot of the good stuff that was in the previous Outlook, which itself removed some great features that were in Entourage.


How Troubleshooting Has Changed With macOS Security

Howard Oakley:

With the guaranteed integrity of the SSV and cryptexes on IT2 and AS models, reinstalling the same version of macOS has no effect on the great majority of macOS. Similarly, installing an older version and updating it to the current one can only produce exactly the same result as installing the current version directly.

Two procedures might be worth considering, though: replacing the latest version of macOS with an older one, in an attempt to clear new problems, and installing macOS and migrating to it from backups. Both of these can also make problems worse as they rely on migration, which could restore other components responsible for a problem, or those incompatible with the version of macOS being installed.


Just as successfully booting macOS is verification of its integrity, so launching an app without a code signature error verifies the code within that app. That applies to all Macs running Ventura, where replacing a misbehaving app with a fresh copy is likely to be pointless.

Most non-bug problems these days seem to be caused by bad data files or file permissions.

Howard Oakley:

Every time you run an app or other executable code, such as a command tool, those first run checks are now repeated, although not quite in the same depth, and with slightly greater tolerance for minor errors, it appears.


This shows how Apparency reports an app I crafted to check whether macOS had fixed a longstanding vulnerability in signature checking. Code signatures apply to different architectures, including Intel and Apple silicon. For some time, Gatekeeper checks didn’t cover all architectures correctly, a failure which could have been exploited. This crafted version of my app Cormorant contains two conflicting signatures, as recognised by Apparency.


Certificate expiry dates are a little more complicated than you might expect, and depend on the type and purpose of certificate. For ordinary app and other executable signing, a Developer ID Application certificate is used, and remains valid for Gatekeeper even though the certificate has long expired. The crucial date in this case is when the app was signed: so long as the Developer ID Application certificate was valid at that time, then Gatekeeper will accept the certificate many years later.

That isn’t true of certificates used to sign Installer packages, which are a different type, Developer ID Installer.


Monday, March 6, 2023

Rogue Amoeba Historic Screenshot Archive

Paul Kafasis:

20 years ago today, on March 3, 2003, Rogue Amoeba released Audio Hijack Pro 1.0. This was a crucial event in the company’s history, as sales grew a much higher level, taking Rogue Amoeba from a hobby to a viable business.

On this anniversary, it seems fitting for us to unveil something else special: the Rogue Amoeba Historic Screenshot Archive. It’s an in-depth collection of images and information about key versions from our 20+ years in business, and we think it’s well worth a look.

This is really cool.


Update (2023-03-08): Rui Carmo:

Although we blame the web and shitty Electron apps for the recent downturn in overall computer usability, it is sobering to go over these screenshots and notice that the erosion of clarity and usability on the Mac actually started with Apple itself as it progressively sanded down the macOS UI into featureless rounded rectangles laden with ambiguous text that (lacking affordances) might or might not be buttons and drop-downs.

John Gruber:

I really miss UI design that made controls obvious. Clear affordances. All buttons obviously buttons, all text input fields obviously text input fields. Pop-up menus that are obviously pop-up menus (today’s MacOS 13 is chock full of pop-up menus that only reveal themselves as pop-ups when you hover over them). 20 years ago we bent over backwards to make the purpose of every control as obvious as possible; the style today is to make everything look like flat static text.

Depth and texture in UI are good things. Our displays have never been better suited to displaying color and fine detail, but our UI themes today look like they were designed for output on a crummy old laser printer or something.

Update (2023-03-14): Cory Birdsong:

Taking extremely busy UIs and making them cleaner and less obtrusive often ends up in a decent-ish place, but the mistake is not keeping in mind that the goal should be clarity, not indiscriminately stripping out every bit of visual noise.

The shiny aqua style makes the active control here a little hard to read, but when glancing at the new style you might not even notice there's an active control[…]

CoverSutra Open Source

Sophia Teutschler:

The source code for CoverSutra is now available on GitHub.

This was a great app back in the day. So many of these talented indie developers ended up working at Apple.

Via Dave Verwer:

Sophia Teutschler has been open-sourcing her old apps (Tipulator, CoverSutra, and Groceries) recently[…] None of Sophia’s apps is exactly ten years old, but they’re certainly of that era, and it struck me how much things have changed as I browsed the repositories.

It’s got Objective-C properties with manual reference counting, NS_DURING, Cocoa bindings, Scripting Bridge, and “delicious” interface design.


Samra 1.1

Serena (tweet):

There are a few existing asset catalog viewer applications for macOS, however, none felt feature complete, Samra offers the following:

  • Browse through the Asset Catalog file
  • Show all types of objects (renditions) in it, not just images (colors, pdfs, image sets, etc)
  • Ability to edit icons/images & colors
  • Search in Asset Catalog for renditions by name
  • View detailed information about each rendition, such as lookup name, width, height, appearance (if it’s meant for dark mode or light mode) and other type-specific information (ie, RGB values for colors).

It’s open-source, with downloads available here.


iOS Announcements and Offers

Adam Chandler:

150% of my iPhone 14 Pro Max’s screen on the App Store’s Today screen is occupied by advertisements that aren’t relevant to my interests. Apple’s services team is ruining the experience.

Mario Guzman:

Ugh. I got hit by two Apple ads this morning. What the f is this shit?

First, some Apple Store ad for Valentines Day.

Then I open Music to get my day going and this is what I get immediately. An ad for the Super Bowl Halftime Show. 😒

When did Apple get so freakin’ spammy?!

Mario Guzman:

Turn off Apple Store Spam notifications by going to Account > Settings > Notifications and switching off “Announcements and Offers”

Mario Guzman:

Earlier I posted about shutting off Spam Notifications from Apple via the Apple Store app.

Well, apparently it’s worse. If you shut it off, you get this little reminder (that won’t go away unless you re-enable the spam notifications). This is so fucking user hostile.

Christina Warren:

These sorts of ads in the Apple TV app are so obnoxious.

The worst part is this is literally when you launch the app. Don’t do this shit! This is a bad, dark pattern! Apple doesn’t get to claim moral high ground when it does stuff like this!


Friday, March 3, 2023

Brave Search Summarizer

Brave (via MacRumors):

The Summarizer provides concise and to-the-point answers at the top of Brave Search results pages, in response to the user’s input, solely based on Web search results. Unlike a purely generative AI model, which is prone to spout unsubstantiated assertions, we trained our large language models (LLMs) to process multiple sources of information present on the Web. This produces a more concise, accurate answer, expressed in coherent language.

In addition, the provenance of original sources of data is cited at all times via links. This maintains the rightful attribution of information, and helps users assess the trustworthiness of the sources, both of which are needed to mitigate the authority biases of large language models.


OpenAI Is Today Unrecognizable

Chloe Xiang (via Hacker News)::

This blog post and OpenAI’s recent actions—all happening at the peak of the ChatGPT hype cycle—is a reminder of how much OpenAI’s tone and mission have changed from its founding, when it was exclusively a nonprofit. While the firm has always looked toward a future where AGI exists, it was founded on commitments including not seeking profits and even freely sharing code it develops, which today are nowhere to be seen.

OpenAI was founded in 2015 as a nonprofit research organization by Altman, Elon Musk, Peter Thiel, and LinkedIn cofounder Reid Hoffman, among other tech leaders. In its founding statement, the company declared its commitment to research “to advance digital intelligence in the way that is most likely to benefit humanity as a whole, unconstrained by a need to generate financial return.” The blog stated that “since our research is free from financial obligations, we can better focus on a positive human impact,” and that all researchers would be encouraged to share “papers, blog posts, or code, and our patents (if any) will be shared with the world.”


By March 2019, OpenAI shed its non-profit status and set up a “capped profit” sector, in which the company could now receive investments and would provide investors with profit capped at 100 times their investment. The company’s decision was likely a result of its desire to compete with Big Tech rivals like Google and ended up receiving a $1 billion investment shortly after from Microsoft.


Update (2023-03-16): James Vincent:

Yesterday, OpenAI announced GPT-4, its long-awaited next-generation AI language model. The system’s capabilities are still being assessed, but as researchers and experts pore over its accompanying materials, many have expressed disappointment at one particular feature: that despite the name of its parent company, GPT-4 is not an open AI model.


“I think we can call it shut on ‘Open’ AI: the 98 page paper introducing GPT-4 proudly declares that they’re disclosing nothing about the contents of their training set,” tweeted Ben Schmidt, VP of information design at Nomic AI, in a thread on the topic.


Update (2023-03-24): Rohan Goswami (via Hacker News):

Altman didn’t take an equity stake in the company when it added the for-profit OpenAI LP entity in 2019, Semafor reported Friday.

Linode Price Increases

Shawn Michels (Hacker News):

The price of Shared and Dedicated compute plans will increase by 20%. Our shared Nanode plan remains unchanged at US$5 per month.

Additional IPv4 IP addresses will increase from US$1 to US$2 per month. IPv6 addresses remain free.


Akamai faces the same macroeconomic headwinds of growing costs for data center space, energy, and hardware as other providers. We resisted making any changes to our offerings for as long as we could.


The message being sent to customers claims that they “remain more aggressively priced than our peer providers”, which is nonsense as far as I can tell—unless they now consider their “peer providers” to be the likes of AWS, Azure, and GCP?


What is really weird about this, they are now more expensive than comparable systems on AWS Lightsail.

Marco Arment:

Deleted my earlier post about packet loss to Linode — that may be a regional Verizon thing closer to me, so I can’t blame them for it.

The price hike still has me looking around and making a contingency plan, though.


I’m not as concerned about the price increases as I am about Akamai just completely changing what Linode is, which I feel is inevitably underway. Very frustrating since I just moved to Linode last year after finally getting fed up with Digital Ocean’s laissez-faire attitude turning their network into a spam factory. Up to now I’ve been really happy with Linode.




Use this property wrapper on view controller properties that can be nil before the view controller’s view loads. Wrapping view controller properties this way eliminates crashes that can occur from implicitly defining properties as Optional, and then referencing them before the view controller finishes loading.


Use this property wrapper over implicitly unwrapped optionals for IBOutlets as well.

This is introduced in the Xcode 14.3 beta but requires macOS 13.3 (still in beta) for deployment. So it will be a long time before many developers can use this, but it seems like the sort of thing you could reimplement yourself.

There are also NSWindowController.WindowLoading and UIViewController.ViewLoading.


Thursday, March 2, 2023

Outlook Syncing With Microsoft Cloud

Beatrix Willius:

According to the German computer magazine Heise Outlook is now using “Microsoft Synch Technology” without asking the user.

When you create a new account, there’s a checkbox to opt out, but the Heise article implies that existing accounts are automatically opted in and you have to delete and recreate them to opt out:

A reader pointed out to us that the previously established direct retrieval of an IMAP account with him now also takes detours via Azure. [Apple translation]

This seems really bad to do without consent, but perhaps the reader is mistaken or it’s a bad translation.

Yesterday, when I tried adding a Gmail account, the Sync with Microsoft Cloud option was present but pre-checked.

But today, when I did the same thing, the wizard did not offer me the option. It briefly showed some text saying that “for a better experience” it was going to sync with Microsoft, but before I could take a screenshot it switched to the next page. The configured Gmail account did not show any indication that Microsoft sync was in use.

I then tried adding an IMAP account, and the Sync with Microsoft Cloud option was not presented at all. I don’t understand why Outlook seems to be behaving inconsistently.


Syncing your account to the Microsoft Cloud means that a copy of your email, calendar, and contacts will be synchronized between your email provider and Microsoft data centers. Having your mailbox data in the Microsoft Cloud lets you use the new features of the Outlook client (Outlook for iOS, Outlook for Android,, or Outlook for Mac) with your non-Microsoft account, just like with your Microsoft accounts.


The ability to sync to the Microsoft Cloud is available to new Outlook for Mac users who are on build 16.15.18070902 and higher and have an active Microsoft 365 subscription.

Yeah, I don’t want that.


Tweetbot and Twitterrific Subscription Cliff

John Gruber (tweet, MacRumors, Hacker News):

Twitter’s kneecapping of third-party clients didn’t just mean that their future revenue was gone — it meant revenue they’d already collected from App Store subscriptions would need to go back to customers in the form of prorated refunds for the remaining months on each and every user’s annual subscriptions. Consider the gut punch of losing your job — you stop earning income. It’s brutal. Now imagine that the way it worked when you get fired or laid off is that you’re also suddenly on the hook to pay back the last, say, 6 months of your income. That’s where Tapbots and The Iconfactory are.


This week, both Tapbots and The Iconfactory released updates in the iOS App Store to Tweetbot and Twitterrific — not to restore any functionality, but to deal with the grim meathook reality of these paid-for subscriptions rendered useless by Phony Stark’s imperious shitheadedness. Both apps, upon launch, now simply display a single screen describing what has happened, and offer options to users with existing subscriptions.


Tweetbot offers users three choices. The first is an option to transfer your existing Tweetbot subscription to Ivory, Tapbots’s magnificent (and magnificently Tweetbot-like) new Mastodon client. […] Twitterrific offers two choices: the same do-nothing-and-get-a-prorated-refund-from-us option, and a clear “I Don’t Need a Refund” button with this heartfelt description[…]

Perhaps because I haven’t developed a subscription product, I’m really confused about what’s happening here. The idea that some customers would want a prorated refund since the apps no longer work makes sense. And most businesses aren’t prepared to deal with a large number of refunds, on top of no longer being able to sell their product. But I have questions about the details:


Update (2023-03-03): Bryan Jones:

Stripe will absolutely withdraw funds from your bank account to fill a refund or credit card dispute—I’ve had it happen. I’d expect Apple to do the same. (Unclear what happens if that withdrawal bounces due to lack of funds, though.)

Arrested Development Leaving Netflix Soon

Selome Hailu:

All episodes of “Arrested Development” are set to leave Netflix on March 15 — including Seasons 4 and 5, which Netflix produced itself.


Netflix co-produced Seasons 4 and 5 with 20th Television and Imagine Entertainment, and the licensing deal that allowed the streamer to host those seasons is now expiring.

Pete Volk:

The first three seasons of Arrested Development are also on Hulu, and there has been no indication they will be removed from that platform. Hulu adding the last two seasons to their platform once they’re removed from Netflix would sure make a lot of sense, but no announcement has been made.

Christina Warren:

[The] only way I’ll be able to be a completionist and get the 5th season and the season 4 remix is to pirate it off of sketchy sources? Like, just sell it to me, Netflix/Fox. Just sell me a box set.

This has been my biggest fear with streaming-only shows and it’s why I still buy stuff on Blu-ray and iTunes. Because I’ve never trusted these fuckers to let me be a digital hoarder.

They already removed the original cut of Season 4 when they made the remix version. Even for streaming shows that remain available, the music is often different.


Thought the same as I believed “Oh, they wouldn’t remove things that they’ve made” Well, was wrong there with HBO. Westworld and Raised by Wolves gone and I hadn’t started season 2 of Wolves yet, now I can’t.

Apple’s original shows and movies are not available for purchase on iTunes, and I can’t imagine them ever being on Blu-ray.


Update (2023-03-28): Christina Warren:

Netflix reupped the Arrested Development contract! There’s always money in the banana stand.

Orwell and Dahl on Kindle

Annalee Newitz (in 2009):

Thousands of people last week discovered that Amazon had quietly removed electronic copies of George Orwell’s 1984 from their Kindle e-book readers. In the process, Amazon revealed how easy censorship will be in the Kindle age.

In this case, the mass e-book removals were motivated by copyright . A company called MobileReference, who did not own the copyrights to the books 1984 and Animal Farm, uploaded both books to the Kindle store and started selling them. When the rights owner heard about this, they contacted Amazon and asked that the e-books be removed. And Amazon decided to erase them not just from the store, but from all the Kindles where they’d been downloaded.


Apparently, until last week, Amazon claimed it wouldn’t take back purchased books[…]

John Timmer:

The company has since apologized to its users and promised that it will never happen again, but those steps aren’t enough for some. A lawsuit has been filed in Seattle that seeks class action status for Kindle owners and Orwell readers, alleging that Amazon has done everything from committing computer fraud to eating a high school student’s homework.

One of the plaintiffs, Justin Gawronski, has a compelling story about his experience with Amazon’s memory hole. Apparently, he was reading his copy of 1984 as a summer assignment for school, and had been using one of the Kindle’s selling points—the ability to attach notes to specific parts of the e-book text—to prepare for his return to school. Since he was actively reading the work when Amazon pulled the plug, he actually got to watch the work vanish from his screen. He’s left with a file of notes that are divorced from the text that they reference.

Carolyn Kellogg:

Amazon has agreed to pay $150,000 in a lawsuit filed by Justin Gawronski, who sued the online retailer after George Orwell’s novels ‘1984’ and ‘Animal Farm’ were deleted from his Kindle, along with his homework. The money, after going to the law firm representing the teen, will be donated to charity. Gawronski had already been compensated for the loss -- with a $30 gift certificate.

• • •

Ben Ellery and James Beal (via Josh Centers, Hacker News, 3, 4):

Owners of Roald Dahl ebooks are having their libraries automatically updated with the new censored versions containing hundreds of changes to language related to weight, mental health, violence, gender and race.


Yesterday Puffin, the children’s division of Penguin Random House, announced it would publish additional classic editions of the stories with the original texts.


It said the books will be available alongside the sanitised versions “offering readers the choice to decide how they experience Roald Dahl’s magical, marvellous stories.”

But it’s not really a choice if they push updates to the version that you already bought, also potentially breaking existing annotations.


Wednesday, March 1, 2023

SwiftUI Views Versus Modifiers

John Sundell:

So, regardless of whether we want to change the styles or structure of a view, or introduce a new piece of state, it’s starting to become clear that SwiftUI views and modifiers have the exact same capabilities. But that brings us to the next question — if there are no practical differences between the two approaches, how do we choose between them?

At least to me, it all comes down to the structure of the resulting view hierarchy.


Looking at the view-based call site above, it’s very clear that our two texts are being wrapped within a container, and it’s also easy to tell which of those two texts will end up being the leading versus trailing view.

That same thing can’t really be said for the modifier-based version this time, though, which really requires us to know that the view that we’re applying the modifier to will end up in the leading slot. Plus, we can’t really tell that those two texts will end up being wrapped in some kind of container at all. It looks more like we’re styling the leading label using the trailing label somehow, which really isn’t the case.

iMessage on Windows via Microsoft’s Phone Link

Chance Miller (Hacker News):

As reported by The Verge, the Phone Link app for Windows is meant to mirror your phone on your PC for things like notifications, phone calls, and messages. The app has historically only supported Android devices, but that’s changing today with the addition of iPhone support.

The new version of Phone Link for Windows uses Bluetooth to link a user’s iPhone to their Windows PC. It then “passes commands and messages” to the Messages app on that paired iPhone. This means you can send and receive all iPhone messages — text messages and iMessages — through the Phone Link app on your PC.


[You] can’t see the full message history in conversations via the Phone Link app. Instead, you’ll only see messages that “have been sent or received using Phone Link.”

It doesn’t support images or group messages, either. I guess this is similar to the limited iMessage support that CarPlay and Fitbit have.

I wish there were an actual iMessage API so that third parties could work around the bugs and limiations of Apple’s Messages app.


I got access to the updated version of Phone Link on my PC today, and this integration is pretty wild and it actually works, albeit with several limitations.

Blocking Adobe’s Acquisition of Figma

Leah Nylen et al. (Hacker News):

The Justice Department is preparing an antitrust lawsuit seeking to block Adobe Inc.’s $20 billion acquisition of startup Figma Inc., people familiar with the matter said.


The deal also faces an antitrust review in the European Union after the bloc’s antitrust watchdog said it had received requests from national regulators to look into the deal. The UK Competition and Markets Authority is reviewing the merger as well, and the three jurisdictions often coordinate on their investigations.

The antitrust division, which has taken a more aggressive approach to mergers under President Joe Biden, is concerned the deal — one of the largest takeovers of a private software maker — would reduce options for design software used by creative professionals.

Paul Kunert (Hacker News):

Adobe told us it expects the sale to stand up.


GraphicConverter 12

Lemke Software (product page):

With the new Metadata Juggler dialog you can effortlessly combine several editing steps, save them and open them again at any time, just as you already know from the actions. Your advantage: You can, for example, delete parts of the metadata such as exposure time and aperture in one editing step and copy the contents of an IPTC field into another field, etc.


you can now automatically crop people and objects and insert them into another image, for example.


lines, circles and rectangles can now be created as vector objects, optionally with a shadow. Save your image in GraphicConverter format /gcimgd) to be able to change the vector objects later.


Our new dialog makes quick conversions even easier. Drag your images onto the dialog and sit back. GraphicConverter does the conversion and performs an action at the same time if you wish.


If you have only changed the IPTC/XMP metadata, you can now save these changes without resaving the entire file. This way you avoid unnecessary quality losses with formats like the JPG or the HEIC format.

It’s $39.95 or $25.95 to upgrade.