MorbidMeter was inspired by the 1974 short story “Forlesen” by SF writer Gene Wolfe which I read back in 1992 when it was republished in the story collection Castle of Days. Inspired is the right word here. MorbidMeter has nothing to do with the story — a Kafka-esque nightmare that like all of Wolfe’s work is a jewel of writing — except for one element, the undermining of the meaning of time. In the bizarre yet familiar setting of the story, a day is divided into 240 “ours”, an 80 our work shift becomes a whole career, and a whole lifetime occurs in less than a day.
This story planted an idea in my head that undoubtedly bubbled along subconsciously for years before finally resurfacing as a computer program. The idea was this: I am X years old, and on average I might live to age Y. If my life span were considered to be a single year, what date would today be? If a single day, what time would it be? And so forth.
For example, I was born on November 1, 1951. There are lifespan calculators on the web that estimate longevity; let’s say that I am expected to live to my 86th birthday. Given this, at the time I write this, 10:55 AM MST on November 28, 2015, if I considered this 86 year lifespan as occurring over a single year, it would be 5:36:28 PM on September 29th of that year.
Why is this important? It’s not. I already knew I was in the Autumn of my years. And obviously I don’t know how long I will live. No one but terminally ill patients and those on Death Row know this, and even then the timing is never 100% certain. Like many attempts to measure the unmeasurable, MorbidMeter time is too precise. Yet there is something compelling (at least to me) about a weird clock that reflects my whole life span in something easier to grasp than 86 years, like a single year, day, or hour. MorbidMeter time moves slowly, but like all time it does move inexorably forward. Seeing the very slow ticking of MorbidMeter seconds is a reminder that I my life will not last forever, and that I still have things to do.
The MorbidMeter time algorithm is pretty simple in theory. You figure out what percentage of your life span you have already lived (age / total lifespan) and then multiply that by the time period you are transposing into (e.g. (percent lifespan) * (1 year)). You then translate the answer into an actual date and time. In practice though, time is messy. There are different calendars. There are leap years and leap seconds. We move around in different time zones. There is also the scourge of our existence, Daylight Savings Time. Computers have not always dealt well with the exigencies of time. Remember the Y2K panic?
In order to standardize this mess, computers use the number of seconds since “The Epoch” which is defined as 00:00:00 on January 1, 1970, UTC. This system is not perfect, as it doesn’t account for leap seconds, and has the problem that storing time in a 32 bit integer means that time variables will overflow on January 19, 2038 — the so-called Y2038 problem. Switching to 64 bit integers nicely solves this, adding 293 billion years to the time range in both directions. In any case, the trick is to convert date and time values to seconds or milliseconds since the Epoch, do, the calculations, and convert this value back to a date and time. The programming languages have I have used to implement MorbidMeter (which now include Python, Java, and C) all more or less provide these time functions.
I started out with a simple command line script in Python, later expanding it to a little GUI window for the desktop. Later I wrote an Android widget to calculate and display MorbidMeter time. It has been the least popular of the apps I have written. Most people don’t seem to “get it.” I discovered from user feedback that most people who actually used the widget were using it as a countdown clock. Someone gave me an actual countdown clock about a year before I retired, and I did enjoy watching it slowly count down the time until January 1, 2014 when I retired. MorbidMeter can certainly be used as a traditional countdown clock, counting down days, hours, minutes and seconds in real time. As such it is not morbid, though you are still stuck with the little skull on the widget.
The latest MorbidMeter iteration has been for the Pebble watch. I just completed this and put it on the Pebble watch app store yesterday. It duplicates the functionally of the Android app. The MorbidMeter for Pebble watchface can be used with either Android or Apple smartphones. It can be used as a long or short term timer, and will buzz when the countdown is complete. Shaking the wrist toggles between showing local time and the timer.
Some of the timescales of MorbidMeter are a little obscure. For example the Universe timescale stretches time over the entire 15 billion years from the Big Bang until Now. The X-Universe timescales are for my young earth creationist friends who would prefer to believe in a shorter (6000 year) duration of the universe.
I plan on putting my experience with expanding and shrinking time in MorbidMeter to good use, when I unveil my Time Travel app in the near future.