Hmmmm,
As I suspected a couple of weeks ago once you open your eyes to a subject and commence blogging about it you have it constantly in the back of your mind. My post on bad systems design and planning has had this affect on me.
I am minding my own business at my local quiz night when a question was read out by the quiz master or perhaps mistress as she is a lady. "What day of the week was Valentines Day in the year 2000?" Now as I am not the romantic type so I certainly couldn't recall this answer based on an event, although a friend 'H' was adamant he knew the day.
I decided the simple solution was the mobile phone calender so I plucked out the phone. It is a reasonably new Motorola Razor phone. So you know the routine, Menu, Organiser & Tools, Calendar. Voila.... The calendar is showing February 2009 (the current month when this event occurred).
"Excellent", I said (I remember the excitement), I can now work it out by counting back. Then I thought what about the leap years? So at this stage I decided to press the previous month button again and again and again working my way back in time faster than Marty McFly in his time machine and I didn't need a flux capacitor.
You get the idea, November 2008 came and went. July 2006 soon appeared but a few more key presses and my phone stopped working. It got as far as January 2005 and it stopped. No message, no nothing.
Bang. Another blog appears out of the blue. And a lot of questions.
Why did it stop at January 2005? How am I going to answer the question? Anyhow another of the team had an older phone that could go back further and we got the answer right in the end. fyi it was a Monday.
This got me thinking a little. What is the upper limit for this phone. After hundreds and hundreds of key presses (1007 to be precise) I got my answer NOVEMBER 2088. December 2099 I can understand as it would have covered a century but NOVEMBER 2088, what a strange limitation.
That works out at 83 years and 11 months or 30,650 days and I can't for the life of me think of a reason why my phone wouldn't be calculating this on the fly. It is not showing holidays. Leap years can be identified by a simple formulae. I certainly can't see a contraint in computing terms that would cause this to occur.
If someone can tell me why the programmer decided to restrict the dates in this way I'd be keen to hear your comments. It might be because they assumed that the phone was made after 2005 and therefore didn't need to go back for storing calendar entries. Fair assumption. But why put it in? Another unneccessary computer programmer/designer limitation I think.
Other friends on the night had different limitations on their phones and a colleague at work with a cool new blackberry had no issues at all with date range restrictions far in excess in both directions that he was prepared to sit around trying to find.
I don't think you have heard the last of the 'Why bad design sucks!' series....... It does worry me that people still impose design limitations.
Thanks for reading.
Lee.
The limit has me stumped. 1007 months is bigger than a 3-digit field, yet smaller than a 10-bit number. The number of days is well below the limit of a 16-bit integer.
ReplyDeleteI blame it on a failure of imagination. I was coding for infinite date ranges when 5.25" floppies were the storage medium of the day.
Anonymous.
ReplyDeleteDidn't I make it quite clear that my mate 'H' knew the day. I was merely validating his view. Is that cheating? as without the device we would have still gone with his answer. ;-)
Anyhow, I consider myself truly reprimanded.
Zkarj.
I too spent a little while trying to figure this limit out......
And then I put it down to bad design and idiot programming. No wonder the millennium bug occurred in the first place.
ReplyDelete