Apple antitrust & music piracy

The position of many folks – most recently the U.S. Department of Justice – against Apple has drawn an unexpected parallel to that of music pirates in the late 90’s and early 2000’s. If you’re too young to have personally lived that time, just know this key point: back then, buying or streaming music online… Read more

getBitmapDataPlanes can break NSImages & NSBitmapImageReps

Opaque black square.

Today was one of those days where you plan to real make a dent in your todo list, and end up spending the entire day debugging why the hell some images are suddenly rendering as completely opaque black. Long story short, on at least some bitmap images, as soon as you call getBitmapDataPlanes it somehow… Read more

Including Services in contextual menus in SwiftUI

Screenshot of the good Services submenu (as found in the application menu), with more options, app icons, and better grouping.

SwiftUI provides a way to provide a contextual menu for a view, with contextMenu(menuItems:) and friends, but it requires you to manually specify the entire contents of the contextual menu. That means it does not include the standard Services submenu. A brief history of Contextual Menus Contextual menus were introduced [to the Mac] in 1997… Read more

no platform load command found in ‘libxyz.a’, assuming: macOS

This is a linker warning I see frequently since Xcode 15.0. It appears it’s a result of Apple’s new linker, “ld_prime”, which replaced “ld64” that was in use [by Apple] since around 2005 (per Quinn the Eskimo). ☝️ “ld_prime” might be an internal code name, or perhaps is just Quinn’s personal nomenclature. The actual binary… Read more

The privileges & challenges of being a primitive type for Codable in Swift

This is an elaboration of some posts made in the discussion of SE-425: 128-bit Integer Types. I think it warrants sharing a little more broadly – not because most people ever need to care about this, but rather because it’s interesting. You might have noticed that the primitive types e.g.: …all conform to Codable (which… Read more