i will never forget when, in early 2016, i saw this for the first time. when looking at the visualization in terms of weeks, i simply cant believe it, even today. i just looked at it again now. it simply cant be so few weeks. it just cant. and yet it is. i cant believe all the time i wasted.
Unfortunately it hasn't helped me do better with my time. I'd love to here more people's changes for not wasting the little time they have (like me spending hours a day on HN, FB, Netflix, etc...)
Years ago i made a version with checkboxes, that would check each box as your life progressed. Was an attempt to learn QT, but it made me hate how much time i was forced to waste in schools.
ATmega's EEPROM has a lifetime of 100k write/erase cycles. The program stores current time every 10 minutes, giving it ~2 years of lifetime. It looks like the clock will die long before you.
A colleague once told me about a bug in it's audi where it would write the current volume of the radio to an EEPROM after every volume change. So, after a few years, the car stopped remembering the last volume setting when turning the radio off and on, because the EEPROM died.
It's much worse: on every knob turn, modified value is written to EEPROM, and then real volume is set to value immediately read from EEPROM. So after some time volume control stopped working at all! (Audi Concert, Chorus)
Why does the thing store the current time every 10 minutes? Seems like it needs your DOB, and whatever the current clock time is - and even a few minutes of drift isn't going to be a problem for an application like this. If it's ever connected to the tubes, it can adjust its clock from a time server.
Arduino (ATmega328) without additional boards does not have RTC nor any network connectivity. Using other microcontroller, such as ESP8266, one could fetch time from NTP, parse life expectancy tables from WWW, use GeoIP for checking which country you live in.
Yeah, if you are doing something like this you have to figure out some way to spread out the writes over the available EEPROM. Since we are just storing a time it would be pretty easy to do, just always write to the next location and pick the largest value on restore.
Thanks! I've updated the code to only save twice a day giving the EEPROM an estimated lifetime of 137 years. It's a little more inconvenient, but (maybe) less inconvenient than having to buy a new EEPROM (or likely a new Arduino) every couple years.
Cool - it'd be fun to wear one of these on your sleeve, and glare meaningfully at it when people start droning on about nothing in a meeting or whatever.
Although, it'd also be some embarrassing morbid irony if you run into an accident somewhere.
Ooh, I got an even better idea - have it cut a few extra seconds whenever you eat a bunch of unhealthy food, and add a few when you take the stairs instead of the elevator or whatever.
Hook it up to a blood pressure/heart rate/glucose monitor to automate a lot of that...ha, talk about a product that nobody would buy!
I essentially have something like this on my laptop (Chrome new tab) and it was awkward having to explain to the interviewer who saw that on my screen what it was counting down for.
Lol no but actually I think I did pretty well on his portion of the interview FWIW. Just set an awkward initial tone that I had to dissipate with some small talk before the actual programming interview.
I’ve seen a similar low-tech version of this clock (sorry I can’t find a link). You setup two jars. Fill one with 365 * (years of life left). In the morning you move a single bead from the full jar to the empty one. It’s supposed to help you visualize “spending” your days, and encourages you to live them more deliberately.
> Chris Crawford owns 29,216 small plastic beads. Each bead is one of eight colors, and there are 3,652 beads in each color group. One bead represents a single day in Crawford's life. Each color group, therefore, represents one decade. The yellow beads are his childhood. The black beads are his teens. The greens are his inexperienced twenties, the oranges his restless thirties, the navy blues his settling forties and so on, all the way up to bead 29,216, which will represent his eightieth birthday.
A simple improvement would be to use the average life expectancy given a certain age. This can be calculated with the age specific death rates for a population: https://en.m.wikipedia.org/wiki/Life_table
Tangent: I see example.jpg added to the main repo, just for the readme. If you don't want to store binary blobs, there's an alternative: open a new issue, then copy-paste the image into the issue. It'll give you a link that you can use in a readme permanently.
It won't, but it will still be displayed when rendering the readme, just like if it were hosted on any other webserver. Of course only as long as the webserver is around, but still better than adding several MB to your repo just for a few screenshots.
I actually designed one of these with the opposite mindset for a longevity researcher friend of mine. It was her 30th birthday and I was unable to attend, so I told her I would make sure to attend her 130th birthday instead and I gifted her a clock counting down until then.
Cool project. I first saw Aubrey de Grey's TED Talk "A Roadmap to End Aging" [1] when it was first released online and it really impacted the way I think about mortality in a similar way.
Increasing the amount of money and social status is not only possible direction in life. For example, one of your directions could be building better connections with people around you. This way playing games or watching movies instead of moving towards your goals is still a waste of time.
After power failure, clock will be 0..10 minutes behind the schedule. If the value written to EEPROM was ahead of actual wall clock by half of timespan between writes (instead of current time), each restart would contribute -5..5 minutes of drift, averaging out to zero over long time and multiple power failures.
One could in fact set it to update EEPROM only once a day, but write time half day ahead of current time. This will prevent wearing out memory for hundred of years while still maintaining decent accuracy.
If the tinkering isn't an end unto itself, an easier alternative is to buy a simple countdown clock on Amazon for ~$15. I got this one for $12 to countdown until the end of my postdoc.
i wanted to make one of these but in the form of a watch you wear on your wrist. its interesting how some people are fascinated with these kinds of countdowns and others hate looking at them. me and my other cs buddy both think its interesting -- he has the tim urban poster on his wall. another friend of mine doesnt even want to look at it.
Split format (ymd/hms) doesn’t feel as fatal to me as e.g. 1 167 607 224 seconds remaining, where each week eats 0,05% and each year is ~ 31 557 000. It would be also nice to make time much slower at the beginning and much faster towards the end, as it really is IRL.
> It would be also nice to make time much slower at the beginning and much faster towards the end, as it really is IRL.
I find this effect kind of terrifying. I'm in my early 30s and would estimate my perception of time is at least 3x as fast as it was before age 16 or so, maybe 4x. It's definitely getting worse. Even assuming some leveling off, I'm guessing a year at age 70 will feel about as short as a kid's month.
I’m 30+ too. When I discussed with my 70+ grandma on this topic, she laughed and said it will be decades, not just years passing by in a click, starting with 40-50+. We actually crossed our subjective time equator pretty long time ago, dude, no matter how healthy we are.
You can slow it down. Move to new place. Have a kid. You will see that you can only remember what came before as if years passed, when it was less than three months ago.
https://waitbutwhy.com/2014/05/life-weeks.html
This is a progress bar, not a countdown clock. Personally, I find it super helpful in keeping perspective on the value of my time.
I do not mean to detract from OP's work (which is cool), I just thought others reading the comment might enjoy this other article too.