Wednesday, September 27, 2006


Oh noes!

Terror in cyberspace!....

....OK, annoyance in cyberspace.

What follows is an E-mail exchange regarding the oddball software issues I've had for some time. I've had numerous payroll problems over the years, had ATM cards go invalid on me 4 times, recently lost all computer records of the few awards I have recieved in the USCGR as well as sundry other things. I most recently had THIS go-round with ODU.

On Wed, 2006-09-27 at 16:27 -0400, wrote:
In a message dated 9/27/2006 3:23:20 PM Eastern Daylight Time,
******************* writes:
On Wed, 2006-09-27 at 12:36 -0400, brickmuppet wrote:
About 2 months ago, I had a HUGE go-round with Old Dominion because
they had erroneously expelled me. I was told that this error was, in
part due, to my birthdate being an "error code".

I initially called
BULLSHIT!! but, being, quite happy that I was now
un-expelled, did my usual Ken thing when trying to avoid going off the
handle, and nodded politely, was effusive in praise for their fixing
the problem and left. No office workers were harmed.
This was too silly an excuse to warrant a second thought.

However, I mentioned it to someone who told me that
01-01-1970 is the start code for unix operating systems and that this could
indeed be an issue. This would explain a HUGE # of issues I have had over
the years, and not just with ODU (the recent deletion of my few awards in the CGR comes to mind).

However, this just sounds beyond silly. OTOH the fellow who
told me this is pretty much rated.

Any thoughts?

The world is full of bad software and you're probably caught
up in it on
a regular basis.

Yes, the UNIX time_t type is an integer number representing
the number
of seconds from midnight 1 Jan 1970 UTC. Systems that care about just
the date would likely use a midnight time, so your birth date
is time_t

So, if a programmer used 0 for an error code or other special
he should be taking around back and shot because he's making
implicit assumption that all maternity ward closed up shop and
hung a
"come back tomorrow" sign on their doors on 1 Jan 1970. It's
a Y2K
class of problem.

The time_t as it is used today is a 32-bit signed value and
that leads
us to a third Y2K class problem. Sometime in January 2038,
time_t will
roll over from 0x7fffffff to 0x80000000, or in decimal
2147483647 to
-2147483648. In dates, that means from Mon Jan 18 22:14:07
2038 EST to
Fri Dec 13 15:45:52 1901 EST. The first problems will like start to
show up in early 2008 as 30 year mortgages start printing with
termination dates of 1901.


Woah! I really was sceptical. But...damn.
That's cool. (?!)....No wait...It sucks!....but it explains a lot.
Thank you for the quick response.

(See Tim, Will, it's not unluck. It's software SO THERE!!)

John, can I post or forward your E-mail?



Wow that is most annoying. A google search brought up the 2038 problem but I'd been skeptical of it actually being responsible for my issues. I was also unaware that these problems will be cropping up in 2008.

I shouldn't be...UPS ran into minor y2k issues well before y2k when its drivers liscences began expiring after the date of doom. Of course like virtually everyone UPS solved them without issue.

1 comment:

Anonymous said...

What's more, there are many functions in different languages that use any number less than zero as a false or error code. Other languages use less than or equal to zero. (And a few languages are mixed, and it depends on the function as to what is returned for errors) A programmer from one school who is maintaining code from another can run into serious headaches if they don't realize that zero is a boundary condition problem. I've seen several issues that caused everything from minor glitches through to catastrophic bugs that rampaged through data, caused by problems like this.

There's one other gotcha... Computers have problems with zeros. If there was _any_ math being done using your birthdate, and the coder never envisioned a zero as a possible birthday, then they could get seriously weird or wrong answers. And weird or wrong data has a tendancy of doing bad things. Very bad things.

So, no, I don't think it's just your mojo causing bad stuff to happen. But then, I have known people you could destroy circuit boards by entering a room.