Archive for November 18, 2024

Monday, November 18, 2024

Swift Concurrency Proposal Index

Quinn (via Fatbobman):

This post summarises the Swift Evolution proposals that went into the Swift concurrency design. It covers the proposal that are implemented in Swift 6.0, plus a few additional ones that aren’t currently available.

The focus is here is the Swift Evolution proposals. For general information about Swift concurrency, see the documentation referenced by Concurrency Resources.

Marcin Krzyzanowski:

I really really dislike the state of Swift Concurrency knowledge

  1. check the year
  2. find appropriate version of proposal
  3. find how it is implemented
  4. find proposal that changes that proposal
  5. extract current state of expectation

Previously:

Why Is Lightroom Always Generating Thumbnails?

I really like working in Lightroom Classic except that—despite continually updating to newer versions that promise performance improvements and newer Macs with faster processors, SSDs, and more RAM—it still feels slow. Maybe it’s my imagination, but I don’t think it was always thus. I think I used to be able to import a thousand photos and do stuff in the app during that process. Now, the app almost locks up during the initial phase of the import, and it bogs down the entire Mac. Sometimes I can’t even monitor the CPU use with App Tamer because the XPC messages between its daemon and menu bar item get delayed.

Imports are not the main problem, though, because I can generally start them before I take a break and let the Mac chug away while I’m gone. What really gets in the way is that—unlike Apple Photos—it can’t smoothly scroll through a grid of thumbnails. Some of them are inevitably blank or blurry, and Lightroom shows three dots in the upper-right corner to show that it’s busy working. Sometimes a given thumbnail will load in a few seconds, but other times it takes more like minutes. It does not seem to do any pre-loading so that when I press Page Down the next screenful of thumbnails will already be ready. It seems to wait until they are in view before beginning the work.

I’d like to be able to tell Lightroom to pre-generate all the thumbnails, and keep them stored, so that scrolling is always fast. But my understanding is that there’s no such command. Thumbnails seem to be tied to the generation of previews. I have Lightroom set to auto-generate previews on import, but that doesn’t do the job. Choosing Library ‣ Previews ‣ Build Standard-Size Previews doesn’t seem to help. Choosing Library ‣ Previews ‣ Build 1:1 Previews does help somewhat, though I’m not sure why building huge previews vs. standard ones would help more with thumbnails. But, even then, if I scroll through a few thousand photos whose 1:1 previews I just rebuilt, I still see the indicator on some thumbnails. Many that don’t show that indicator are blurry for a few seconds. Browsing within a single collection, I can slowly scroll down to the bottom so that all the thumbnails are eventually loaded, but they don’t all stay loaded. Doing the same scroll again seems to cause some of them to be regenerated or at least reloaded.

Previously:

Does Apple Smell Blood in the Water?

Jaron Schneider (Hacker News):

In just the last year and a half, Apple launched Final Cut on iPad and Final Cut Camera, updated Final Cut Pro to a new version for the first time in 13 years, and moved to purchase Pixelmator. As Adobe’s public perception continues to struggle, Apple is making moves to take advantage.

Through the 2010s, Apple didn’t do much on the software front. Sure, it had Final Cut Pro X but the move from version 7 required a complete rewrite of the program’s code. The benefit of this was marked improvement in performance. The downside was a gutting of the app’s features. The negative response to Final Cut Pro X was so strong that Apple lost a large chunk of the professional video editing market and it has since never made up that ground. Most moved to Adobe Premiere which over the next decade would solidify itself as a major player in the professional space, both in small teams and feature-length productions.

But public perception of Adobe has dipped in recent years. The switch to a subscription plan has left many editors dissatisfied, especially considering how inflexible Adobe has been with its plans — the lack of an a la carte option leaves creative professionals either the option to only edit photos or pay for a large number of apps they’ll never use if they want to get Premiere Pro. Performance has also been a regular complaint across Adobe’s ecosystem with Lightroom and Premiere Pro the focus of most of the consternation.

Adobe does seem to have lost a lot of good will, its current offerings are not very good Mac citizens, and Apple doesn’t seem to be promoting them as much. On the other hand, we all remember Aperture and the other pro apps that Apple discontinued. Final Cut Pro and Logic are the anomalies where Apple’s heart stayed in it. With the other creative apps—even iMovie—it just seemed to lose interest.

See also: Accidental Tech Podcast.

Previously:

Retrofitting Spatial Safety to Hundreds of Millions of Lines of C++

Google Security:

Based on an analysis of in-the-wild exploits tracked by Google’s Project Zero, spatial safety vulnerabilities represent 40% of in-the-wild memory safety exploits over the past decade[…]

[…]

A key element of our strategy focuses on Safe Coding and using memory-safe languages in new code.

[…]

However, this transition will take multiple years as we adapt our development practices and infrastructure. Ensuring the safety of our billions of users therefore requires us to go further: we’re also retrofitting secure-by-design principles to our existing C++ codebase wherever possible.

[…]

Hardened libc++, recently added by open source contributors, introduces a set of security checks designed to catch vulnerabilities such as out-of-bounds accesses in production. […] Hardening libc++ resulted in an average 0.30% performance impact across our services (yes, only a third of a percent).

Previously: