Hexinverter ¬ I made a Pebble watch face (and started collecting ddate code up)

Of course now Pebble is no more, so sad.

Project link: https://github.com/chaomodus/ddatedtime

I also made up a time system to go with the Discordian Calendar system. You know, there are no Discordian calendar watch faces on the Pebble marketplace? Weird yeah. Well I'll fix that once I clean up the code and finish some TODO items.B--dwU-UwAAaqg7

So the time system is pretty straight forward, just 5, 5, 25, 25... which is interesting because the second layer unit is almost an hour, and the first layer unit is just above 5 hours. I'm sort of debating keeping it pegged to west coast time (I like zoneless systems, but at the same time it's confusing to have calendar in local time but clock in universal time).

Some interesting / annoying bits implementing watch faces on Pebble right now:

Big one, Pebble doesn't currently support time zones (well maybe it does sort of sometimes?). After EXTENSIVE digging, I found an article on their blog about how to get the timezone from their phone-side Javascript (seems like an ok way to do it, but it is NOT well documented). I have some stub code in my watch face as a start of implementing supporting this, but before I release it to the marketplace I'll also support watch-local timezone (they give you the tools to determine if it is supported at runtime).

Another strange thing is that it uses newlib, so struct tm's tm_year is years-since-1900 instead of years-since-zero (have encountered this before and knew what to look for when the year came up odd).

Super annoying is the font selection, I can understand it being limited but having a range of sizes for particular fonts would be nice.


Extra super annoying! Forgot this, but the pebble project stuff uses waf, some sort of python-based make system. Now I've no problem with this in particular, except that doing a lot of trivial things is distinctly non trivial, like I just wanted to copy source from the main trees for the ddate and qulawk code, which turned out after a lot of digging and a lot of experimenting to be beyond my patience. I wrote a Makefile to wrap the waf system (called through the pebble command) in a matter of minutes that did this trivially. I have a major beef with build systems that aren't just hard to use but actively counter-intuitive. I've not yet encountered a build system that matches the simplicity/power tradeoff that make has.

Anyway, a fun little adventure into time keeping land.