Archive for June 30, 2021

Wednesday, June 30, 2021

DocC Is Unusable for Open Source Projects

Jesse Squires (tweet, Hacker News):

The problem with DocC is hosting and distribution — arguably the most important aspect of this type of tool! What’s the point of generating amazing docs for your library or SDK if you can’t easily distribute or publish them for your users? When you run DocC, it produces a .doccarchive package that includes all the HTML, CSS, JavaScript, and other resources for your documentation website. According to the docs on distribution, you must host this .doccarchive on your web server and implement various rules to rewrite incoming URLs. The example provided defines rules in an .htaccess file for Apache.


DocC fails to deliver for this extremely popular use case — in my opinion, the most popular. DocC does not work with GitHub Pages — a significant barrier for adoption for essentially all open source projects in the Apple developer community. I experimented with some hacks, but was unable to make DocC do what I need. The GitHub Pages server environment is a bit opaque to the user, but it is intended for hosting static sites (Jekyll, for example), which DocC does not produce. DocC creates a Vue.js web app and requires that you run your own web server to dynamically serve it, as described above. The process feels clunky and overcomplicated compared to GitHub Pages.


It feels like Apple built DocC for Apple.

Paul Hudson:

As things stand, the generated documentation is effectively a sealed box – the Apache rewrite rule references a theme-settings.json file, which suggest some customization is going to come, but I don’t know to what extent. I can imagine bigger companies wanting their corporate branding integrated, or their regular site navigation.

The web pages are also very heavy on the JavaScript and honestly I’m not sure why – the reference documentation and articles are simple beasts, and if DocC could flatten them to plain HTML then I imagine the rewrite rules would just go away. At the same time, Apple’s own documentation system is completely inaccessible with JavaScript turned off, so I don’t hold out a great deal of hope here.

Update (2021-07-02): Helge Heß:

We are going to look at the documentation archive produced, the good&bad and how to generate a static website.

Remixing Old Tracks in Spatial Audio Is “Sacrilegious”

Bob Lefsetz:

I got the following e-mail from a producer/engineer:

I just want to try and alert you to the potential seismic scam happening with this Atmos roll out. Atmos catalog remixing is being done by the truckload in a handful of Nashville, LA, and NYC rooms right now and has been for a couple of years, and almost none of it is being overseen or approved by the artist or original producer or mixer. And these versions- according to Apple- will be the new standard versions, superseding the original versions, now designated by Apple to the dustbin of history.


In the rush to make content for Apple, labels are jamming this crap out with little QC and -again- almost no input from artists.


And what I’ve learned is…the Spatial Audio and stereo versions are not only different, the process affects the punch, the essence of the originals!

I compared Spatial Audio tracks to their HD equivalents on Amazon Music and I found exactly what one writer said: the vocal gets lost. Instead of being up front and in your face, it’s buried more in the mix.

Via Nick Heer:

No matter how good I thought Marvin Gaye’s “What’s Going On” sounded in Atmos, it is a bit like doing a 3D movie conversion on “2001: A Space Odyssey”. The person creating the remix, no matter how well-intentioned, has no idea what the original mixer or the artist would have wanted in this situation.


Update (2021-07-03): Nilay Patel:

Turned Apple Music spatial audio off for good. I appreciate the effort but it’s a lot of complication for everything to sound slightly more hollow. The 3DTV of music.

Update (2021-07-09): David Sparks:

Thankfully, spatial audio is nothing like that. It comes through as different, and it is most definitely noticeable. However, it is also subtle, and in the case of some of my favorite older jazz tunes, it feels like a really good remaster. Luckily, everything came through sounding like it did before but in 3D instead of 2D. In short, I’m sold, and I want more.

A few playlists I would recommend if you want to give this a try are Apple’s Jazz in Spatial Audio playlist. Art Blakey’s “Hipsippy Blues” feels like one of the most improved tracks. I expect that’s because so many of Art Blakey’s albums were recorded live in clubs that this treatment feels natural. Another album worth checking out is the L.A. Philharmonic’s Celebrating John Williams album, which also got the Dolby Atmos treatment.

Oregon Trail for iOS Is Back

Mark Wilson:

A new version of The Oregon Trailout now for iOS devices that subscribe to Apple Arcade—begins to wrestle with this tension. Developed by an Australian team at Gameloft, a prominent mobile game developer, the new version mostly plays like the old Oregon Trail you know. You get a wagon, buy supplies, and gather a team to join you on the journey. Along the trail, you ford rivers, break legs, and shoot way too many pounds of buffalo to possibly carry back.

What’s different is that Native American history scholars gave input. That input led to more human, and historically accurate, representations of Indigenous people, culminating in the first playable Native American characters in any Oregon Trail game.


Faster App Launching in iOS 15 and Monterey


All programs and dylibs built with a deployment target of macOS 12 or iOS 15 or later now use the chained fixups format. This uses different load commands and LINKEDIT data, and won’t run or load on older OS versions.

Noah Martin:

The app binary is broken into segments which each contain a chain of fixups that can be either binds or rebases (there are no more lazy binds). Each 64 bit rebase location in the binary now encodes the offset it points to as well as the offset to the next fixup[…]


This very compact encoding means the entire process of walking the chain can be contained within the existing size of the binary. In my tests over 50% of dyld data’s contribution to binary size is saved since only a small amount of metadata is reserved to indicate the first fixup on each page. The end result was an over 1mb size reduction for large Swift apps.


[The] chained fixups group all changes for each memory page together. Dyld can now process them faster with one pass through memory, completing rebases and binds at the same time. This allows OS features like the memory compressor to take advantage of the well known ordering, not needing to go back and decompress old pages during binding.


Update (2021-07-06): See also: Hacker News.

Why You Can’t Roll Back Big Sur’s System Volume

Howard Oakley:

If you as a user make a snapshot of the System volume, you’ll get an unsealed replica of the System volume that can’t be used to replace the new sealed snapshot, and hasn’t even been blessed to make it bootable. Trying to roll back to that would only end in failure.

What has been tried earlier in Big Sur is preserving the previous bootable sealed snapshot rather than deleting it once a macOS update has been completed. This isn’t a cheap option, though: it would probably require up to 15 GB of free space on the System volume. Because of that, macOS would need to remove it automatically after a period of a week perhaps, which sets a time limit on its use for a rollback.

It’s unclear why Apple doesn’t provide an option in its updaters to automatically preserve the old snapshot for a maximum of one week, to support rollback over that time. Unfortunately, it’s not something the user can achieve any other way.