Thursday, November 1, 2018

SuperDuper’s Smart Wake

Dave Nanian:

Apple, of course, has its own “dark wake” feature, used by Power Nap. Dark wake, as is suggested by the name, wakes a system without turning on the screen. However, it’s not available to 3rd party applications and has task-specific limitations that tease but do not deliver a solution here.

And you can’t put up a black screen on wake, or adjust the brightness, because it’s too late by the time the wake happens.


Basically, if we are running a minute before the backup is scheduled to run, we assume we’re also going to be running a minute later, and cancel any pending wakes for that time. So, if we have an event for 3am, at 2:59am we cancel that wake if we’re already running.

That ensures that a system that’s already awake will not wake the screen, whereas a system that’s sleeping will wake as expected.

SuperDuper deserves an award for sweating so many details like this. Nanian’s posts are a sobering reminder of the difference between theory and practice in app development. A direct API is often missing, so you need to find roundabout solutions. And much remains undocumented and unreliable.

Update (2018-11-05): Dave Nanian:

The result of the rather intensive stress testing: once over about 700 sdautomatedcopycontrollers are queued up waiting, things get weird.

In case it isn’t obvious: no one would ever do that. But it shouldn’t ever get weird, so I’m trying to fix it anyway.

1 Comment RSS · Twitter

[…] SuperDuper’s Smart Wake […]

Leave a Comment