Archive for December 13, 2022

Tuesday, December 13, 2022

Swift Pitch: Predicates

Jeremy Schonfeld:

We propose creating a new value type, Predicate, as part of the FoundationEssentials package, that addresses these problems. These new constructions of predicates will be expressed using standard Swift syntax elements and are fully type-checked by the compiler. This allows us to design Predicate to be type safe, readily archivable and Sendable, and integrated with Swift development environments.

Aside from type-safety with respect to the object being tested, this could also potentially address the problem where it’s not clear which APIs support which types of NSPredicates.

Debbie Goldsmith and Jeremy Schonfeld:

The current design proposes that any developers that need to expand or restrict the set of allowed expressions in their predicate-accepting APIs need to declare their own predicate types with corresponding macros.


macOS 13.1

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

Today’s macOS Ventura update introduces the Freeform app, designed to allow users to sketch, draw, and write on a blank whiteboard-style canvas that can be used with friends and colleagues. It also includes Advanced Data Protection for iCloud, expanding end-to-end encryption to iCloud Backup, Notes, Photos, and more.

There are improvements to search in Messages, an option to play a sound in the Find My app to locate AirTags, AirPods Pro, and Find My network accessories, plus there are several bug fixes.

Howard Oakley:

Those using network Locations will be delighted to see that this feature has been restored to System Settings.

See also: Mr. Macintosh.


Update (2022-12-14): Howard Oakley:

Significant changes to the version and build number of bundled apps include[…]

Matthias Gansrigler:

[C]onfiguration of 3rd-party widgets is broken[…]

Jeff Johnson:

I’ve discovered that macOS updates do remove Rosetta for everyone, but they also silently reinstall Rosetta. Or attempt to reinstall. The attempts always fail for me, because I have Little Snitch installed.


So this appears to be fixed now in Ventura!

iOS 16.2 and iPadOS 16.2

Juli Clover (security, developer):

Today’s iOS 16.2 and iPadOS 16.2 updates bring several notable features to iOS 16 and iPadOS 16, including the Freeform app, which is a sort of digital whiteboard that you can use for anything, while also working collaboratively with friends and colleagues.

It includes the Apple Music karaoke feature called “Sing,” it introduces Advanced Data Protection for end-to-end encryption for more iCloud features, plus more. On the iPad, the update brings support for external displays on M1 and M2 iPads.

Federico Viticci:

With today’s release of iPadOS 16.2, the idea behind Stage Manager achieves the full vision first presented in June, while its design and technical implementation remain stuck in an unpolished, half-baked state. Which is to say: conceptually, I love that Stage Manager in iPadOS 16.2 allows me to extend my iPad to an external display and put four additional windows on it; I’ve waited years for this feature, and it’s finally here. Technically speaking, however, the performance of this mode leaves a lot to be desired, with frequent crashes on my iPad Pro and an oft-confusing design that, I will reiterate, needs a rethinking.

Jason Snell:

Freeform is fun. It’s got a bunch of rough edges that I hope can be sanded out over time as it grows and evolves, but I love the idea that Apple decided that its collaboration tools (and, by extension, its platforms) really needed a free space for individuals and groups to use as an infinite sheet of Internet-connected note paper.


My complaints about Freeform are mostly about how it frequently just didn’t do what I wanted it to do. Sometimes tapping an object and dragging would move it on the canvas, while other times it would lift a copy of the item for me to drag around… but when I dropped it elsewhere in the app, nothing would happen. Sometimes I could drag an image on a shape to automatically use the shape as a mask for the image… other times it just didn’t work. I can crop imported photos, but not videos.


Update (2022-12-14): Rui Carmo:

For the first time in years, I can take an iPad to my office, plug it into the same monitor I use with any of my computers and trust it will be usable for actual work[…]


It’s buggier than a bait store. At noontime, in Summer.

Juli Clover:

With the launch of iOS 16.2, Apple is expanding an AirDrop limitation that was introduced in China with the launch of iOS 16.1.1. Going forward, AirDrop will be primarily restricted to Contacts Only, and the option to turn on AirDrop for “Everyone” will be limited to 10 minutes.

John Gruber (tweet):

I wonder, though, whether “Everyone all the time” should have remained an option alongside “Everyone for 10 minutes” — it does seem like some people (schools for example) make good use of keep AirDrop open always.


Update (2022-12-23): See also: Hacker News (on Freeform).

Apple Pay Expiration Dates

Adam Engst:

Apple Pay’s tokenization process prevents Stripe, our payment processor, from knowing the expiration date for the actual card. Instead, Stripe—and the Paid Memberships Pro plug-in that we use to manage TidBITS accounts—displays a seemingly random expiration date from the tokenized card. The problem is purely cosmetic and doesn’t block transactions in any way.


This date quirk is the first downside of using Apple Pay instead of a straight credit card transaction that I’ve seen. In all other ways, Apple Pay’s tokenization of credit card data is a good thing because it significantly increases security.

The Verse Programming Language

Simon Peyton Jones (via Ian Kettlewell, Hacker News, slides):

Since joining Epic Games in late 2021, I have been involved in the design and development of Verse, a new, declarative programming language that Epic plans to use as the language of the metaverse.

Verse is a functional logic language, with a bunch of innovative ideas. Like Haskell Verse is declarative (a variable in Verse stands for just one, immutable value), and higher order (lambdas are first class). But Verse goes well beyond Haskell, with existential variables, unification, expressions that yield multiple values, and more besides. In this talk I’ll give you a sense of what functional logic programming is about, what it looks like to program in Verse, and how we can give meaning to Verse programs using rewrite rules.

Simon Peyton Jones (PDF):

Functional logic languages have a rich literature, but it is tricky to give them a satisfying semantics. In this paper we describe the Verse calculus, VC, a new core calculus for functional logical programming. Our main contribution is to equip VC with a small-step rewrite semantics, so that we can reason about a VC program in the same way as one does with lambda calculus; that is, by applying successive rewrites to it.

This unpublished draft describes our current thinking about Verse.

Dan Luu:

Interesting to compare [Sweeney (2005)] to [Jones et al. (2022)] to see how the thinking about Epic’s new language has evolved over almost two decades.

There’s obviously a lot of new stuff, but some of the core ideas from 2005 are still there, e.g., […] “Transactions are the only plausible solution to concurrent mutable state.”


At a meta level, it’s a bit surreal to see a game company fund a two decade research effort into a new language at a time when classic industrial research labs like IBM Research, MSR, Bell Labs, etc., have been severely defunded or shifted much of their focus to shorter-term projects or both.