changelog
    
    
    - Wed, 14 Feb 2018 15:23:39 +0000
- by Tuomo Valkonen <tuomov@iki.fi> [Wed, 14 Feb 2018 15:23:39 +0000] rev 114
- Disable Notification Centre notifications.
 They don't work reliably for some reason, and are in any case annoying
 unless the display is somehow fine-tuned.
    - Wed, 07 Feb 2018 20:39:01 +0000
- by Tuomo Valkonen <tuomov@iki.fi> [Wed, 07 Feb 2018 20:39:01 +0000] rev 113
- Time snapshot fixes.
 Python's default arguments are purely idiotic (aka. pythonic): generated
 only once. This makes sense in a purely functional language, which Python
 lightyears away from, but severely limits their usefulness in an imperative
 language. Decorators also seem clumsy for this, as one would have to tell
 the number of positional arguments for things to work nice, being able to
 pass the snapshot both positionally and as keyword. No luck.
 So have to do things the old-fashioned hard way.
    - Tue, 06 Feb 2018 20:55:53 +0000
- by Tuomo Valkonen <tuomov@iki.fi> [Tue, 06 Feb 2018 20:55:53 +0000] rev 112
- UI time display fixes
    - Tue, 06 Feb 2018 20:16:59 +0000
- by Tuomo Valkonen <tuomov@iki.fi> [Tue, 06 Feb 2018 20:16:59 +0000] rev 111
- Changed dreamtime calculation.
 The monotonic clock (time.monotonic()) sometimes advances unreliably
 in sleep, so isn't reliable for calculating sleeping time. We have to
 use time.time(). But this may be changed by the user, so we only use
 it to track sleep periods, and still use time.monotonic() to track
 wake periods.
    - Tue, 06 Feb 2018 08:30:20 +0000
- by Tuomo Valkonen <tuomov@iki.fi> [Tue, 06 Feb 2018 08:30:20 +0000] rev 110
- Oops, removed stray reset of menu entry info
    - Mon, 05 Feb 2018 18:34:08 +0000
- by Tuomo Valkonen <tuomov@iki.fi> [Mon, 05 Feb 2018 18:34:08 +0000] rev 109
- Better error reporting logic.
    - Mon, 05 Feb 2018 18:32:36 +0000
- by Tuomo Valkonen <tuomov@iki.fi> [Mon, 05 Feb 2018 18:32:36 +0000] rev 108
- Error status wasn't correctly transmitted to UI after recent changes.
    - Mon, 05 Feb 2018 18:24:30 +0000
- by Tuomo Valkonen <tuomov@iki.fi> [Mon, 05 Feb 2018 18:24:30 +0000] rev 107
- Oops, a zero retry_interval check had gone missing in scheduling reorganisation.
    - Mon, 05 Feb 2018 10:25:17 +0000
- by Tuomo Valkonen <tuomov@iki.fi> [Mon, 05 Feb 2018 10:25:17 +0000] rev 106
- Added exeption protection decorators to callbacks.
 If callbacks crash, there's rarely anything in the logs otherwise.
    - Sun, 04 Feb 2018 14:37:09 +0000
- by Tuomo Valkonen <tuomov@iki.fi> [Sun, 04 Feb 2018 14:37:09 +0000] rev 105
- Various tray menu fixes
    - Sun, 04 Feb 2018 09:38:55 +0000
- by Tuomo Valkonen <tuomov@iki.fi> [Sun, 04 Feb 2018 09:38:55 +0000] rev 104
- Added some debug log messages
    - Sun, 04 Feb 2018 02:19:26 +0000
- by Tuomo Valkonen <tuomov@iki.fi> [Sun, 04 Feb 2018 02:19:26 +0000] rev 103
- Missing notify in scheduler sleep/wake callback
    - Sun, 04 Feb 2018 01:36:59 +0000
- by Tuomo Valkonen <tuomov@iki.fi> [Sun, 04 Feb 2018 01:36:59 +0000] rev 102
- Changed scheduler busylooping method, and decreased precision to 5 minutes:
 if there are finite-horizon events in the queue, the scheduler thread will never
 sleep longer than that. This is to quickly get back on track with the schedule
 when the computer wakes up from sleep, if the sleep monitor is not working or
 is not implemented for the particular operating system. However, if there are
 only infinite-horizon events in the queue (meaning, DreamTime-scheduled events,
 and the system is sleeping or "sleeping"), the scheduler will also sleep.
 Hopefully this will also help the system stay properly asleep.
    - Sun, 04 Feb 2018 01:27:38 +0000
- by Tuomo Valkonen <tuomov@iki.fi> [Sun, 04 Feb 2018 01:27:38 +0000] rev 101
- Part 2 of handling macOS sleep/wake signal brokenness.
 a) Added Time.horizon(), which indicates how far the Time event is from the
 epoch, in monotonic time. For DreamTime, if the system is sleeping, this
 returns ∞. b) The DreamTime monitor also signals sleep to callbacks, so
 that the Scheduler can re-sort the events. The sorting is now done by
 the horizon, so DreamTime events will be moved last and not activated when
 the system is sleeping or "sleeping", but other events will be executed
 normally if the system is merely "sleeping".
    - Sun, 04 Feb 2018 00:22:20 +0000
- by Tuomo Valkonen <tuomov@iki.fi> [Sun, 04 Feb 2018 00:22:20 +0000] rev 100
- macOS "sleep" signals / status are complete bollocks:
 at least when plugged in, the system is actually sometimes running all
 night with the lid closed and sleepNotification delivered. Therefore,
 we need our timers to work in a sane manner when we should be sleeping!
 
 This patch is a first stage of this fix, implementing stopped dreamtime.
 It also has improved comparisons of different types of time, based on
 snapshotting.
    - Wed, 31 Jan 2018 22:41:12 +0000
- by Tuomo Valkonen <tuomov@iki.fi> [Wed, 31 Jan 2018 22:41:12 +0000] rev 99
- Oops, log display wasn't working due to missing import