Skip to main content

Time to think about Time seriously!

Attention programmers!

Good logic lasts forever.

Many of you were not in the programming business in the 1980s.  Back then, we realized that Y2K was on its way and there was a lot of code that would break with dates beyond 1999-Dec-31.

At the time we were looking to save storage - heck, I supported systems that stored the year in 4 bits, because  it was a huge memory saver, and 16 years of operation was a long time.  We simply expected that our systems would be retired before then.

But come the 1990's, we realized we were still running programs written in the 1960s, and someone would have to address all of the date calculation problems.

Turn the clock ahead to today and we see that in less than 25 years the classic 32-bit Unix clock will turn over.    And the storage problem no longer exists like it once did.  In the past we often tried to squeeze in a full Gregorian date (Y-M-D) into 15 or fewer bits.    Today, using 24 or 32 more bits to store a Gregorian date seem completely reasonable and will greatly outlast our era.

Best practice demands that our code of today will work perfectly with dates into and beyond 2038.  As programming matures as a business, we should be validating clocks and times and dates well into the future, at least beyond 2101.

Are you signing a contract for software services?  Demand proper testing for this problem today.  Code easily lasts for more than 25 years, and so not demanding proper date handling behavior is irresponsible and a dereliction of your professional obligations.  Period.

Our software will be running in 80+ years into the future?

Why not?  Buildings and bridges are designed and maintained to last for centuries... we hope.  Logic lasts forever; why dispose of otherwise good work?

Popular posts from this blog

Fixing a SodaStream Jet, part 1: Disassembly Guide

I've had my SodaStream Jet for years, and once in a while something has gone wrong. Disassembly is the first step to repair.  Start with this article to see how to disassemble the SodaStream, and then once you have that down, scroll through my other articles to see how I repaired specfic SodaStream problems. SodaStream Jet Disassembly Guide Tools Required Flat head screwdriver Phillips head screwdriver 1. Remove the Carbonator.  Duh. 2. Remove the black panel lever The front big black tilt lever needs to be removed first. Removing this panel is tricky, but it isn't impossible. Looking up at the bottom of the black panel, there are two tabs, one on the left and one on the right. These tabs fully secure the panel in place. The trick is to use a flat-head screwdriver under the plastic to gently lever the tabs out of the way.  Note in the pictures how I approach these tabs with my screwdriver.  I usually release the left side first, and then I release ...

Connecting your MIDI keyboard to your Mac

MIDI and the Mac.  It's easy, fun, and shockingly inexpensive! I enjoy fooling around with musical instruments, and so when Garageband originally came out several years ago, I was very excited to start using it with my cheap little Casio keyboard. Initially it seemed expensive and complicated to get the right parts together to connect the Mac to my keyboard via MIDI. I didn't want to spend a ton of money in professional-class electronics. I wanted to fool around. Happily, I discovered that it's inexpensive and easy.  If you know where to look, a Mac-compliant MIDI adapter can be purchased for under $10! That's right, for less than $10 I connected my Mac to my MIDI keyboard and by MIDI drum kit. I bought an MIDI-to-USB interface, in particular, one like this really inexpensive USB MIDI Cable available through Amazon . The adapter is a simple device that has a MIDI "in"/"out" connectors on one end, and a USB connector on the other.  The adapt...

Macintosh: Upgrading an eMac

It's been a long time since I wrote this article, but the fact remains: The good old eMac can still be useful if you take the simple steps to keep it as good as it can be.  All can run Tiger, and most can run Leopard - great operating systems for their day with a bit of useful life.  This article describes the procedure I used to upgrade my old eMac, including: Replacing the internal hard disk with a large capacity drive. Increasing the memory for performance Upgrading the operating system Here I'm upgrading a 700 MHz eMac, but the procedure and tasks for upgrading other eMac models should be almost identical. Upgrading versus Replacing My sister's eMac is of the 700 mhz variety, with 256 MB of memory. The machine seemed to be getting "slower", and the original 40 GB disk was becoming jammed packed with photos and iTunes, and within a few months she'd be out of disk space. There were two options to address the problems: upgrade the eMac, or go o...

The Windy City

Some folks are under the mistaken assumption that Chicago is not actually a windy city.  They look at the NWS weather data and see that Milton, Massachusetts is the windiest city, and that Chicago is a bit down on the list. The problem with this logic is that NWS weather stations are often not actually in the cities themselves, or at least not downtown. The Milton, Massachusetts weather station is on Great Blue Hill (the namesake of WGBH), the highest prominence on the coast of Massachusetts.  In contrast, the Chicago NWS station is at O'Hare International Airport, which is far west of downtown Chicago and as far away from the shore as one can be and still be within the sprawling limits of that city.

Transitioning to Comcast Now!

I've transitioned to Comcast NOW, a lower speed, lower cost alternative.  The kids have grown up and moved out.  I'm spending much more of my time traveling.  I don't need the high speeds at home like I used to. This transition promises to save me $240 dollars a year versus my old "discounted" plan. Xfinity to Comcast Now transitioning process I went to the Xfinity store and told them I was cancelling two weeks out.  This isn't weird - people move all the time, so they do have a process for cancelling at a future ("move-out") date. Later the same day, I was able to go to the Comcast website and order the NOW modem for the new service. Note that Comcast didn't let me do this until I had a future cancel order in place.  Three days later, the modem arrived via FedEx. The cancel date came and went - Xfinity seems to have a grace period, so the old modem wasn't unceremoniously yanked out of service at midnight.  This made the transition smooth.  ...

Installing the Eve Smart MotionBlind Upgrade with my Large Roller Shade

I have a large window in the front of my house and a roller shade was just the right window treatment for it.  But I also wanted to automate it. My MotionBlind Upgrade kit and my new roller shade I looked around to buy something that I was comfortable with, but simple non-automated roller blinds can be expensive, especially when they're larger than 6 ft x 6 ft.   This is disappointing, as a roller blind is just a tube with a small amount of synthetic cloth but can easily cost hundreds of dollars. Plus, since I wanted a smarthome blind, we're talking $500 or more from the "service oriented shops". I'm a tech guy.  I think can do better. After thinking about DIY and creative solutions, I decided to try out the Eve MotionBlinds Upgrade (MBU) kit.  This kit transforms an ordinary roller blind into a smart blind.  The MotionBlinds mechanism is basically consists of a small motor and battery in a long metal tube.  This motor tube slides into a roller blind ...

Other Posts

Show more