New Website

My new author website is up and running. Right now, it does pretty much the minimum required for it to be considered a halfway decent website. I'm still working my way through several books on Web-site design (currently reading Creating a Website: The Missing Manual, and CSS: The Missing Manual at the same time). I will most likely be making some minor changes to the new site as I learn more about website design. Once those two books are done, my next major project will be to learn JavaScript.

Learning JavaScript is going to take some time but is a necessary requirement for me to move on to the next phase of my website project--putting my science fiction calculator on the web. Ever since I started writing science fiction, I've relied on an Excel spreadsheet to perform calculations so I can keep the known science real. Some of these calculations can become quite complex and doing them by hand over and over again was simply not an option. I share this spreadsheet with anyone (author or not) who is interested in using it. Once it's on my website, anyone can use it.

When not reading up on website construction or web-based languages, I have been working on my current book. Right now, the word count sits at 35,698 and it's moving along well. I still have no idea how this one is going to end but I do have several possibilities. The story itself will usually point towards a satisfactory ending as I continue to add to it.

If you've been reading my blog or know me personally, you know that I'm a Microsoft Access developer. For the past couple of years, I've had a very stable system of programs that perform my automatic updates. This system needed some changes to make it easier to maintain as well as to improve the response time for changes made in the monitored data sources. Adding new automatic reports was especially difficult. I created a new set of programs using most of the original code and rolled them out last week. Unfortunately, I failed to perform the multi-day testing I said I would.

The code tested fine in development and seemed to run okay in production. I never put a new program into production on a Friday and I'm very lucky I did not. There was a tiny little bug in a single line of code that caused a bit of an embarrassing flurry of emails to upper management. One of my reports is scheduled to run at 0445 in the morning. The report generator used to check for reports to run every 3 minutes. Immediately after midnight, the code noted that the 0445 report had not run for the day. The check to see if it was actually scheduled to run was not correct and the report began sending itself out once every 3 minutes until 0445.

I saw it when I came into work at 0530 and I also stopped another report that would have run until 0600. The bug is one that is known to many programmers and is called a day-crossing error. I failed to test it properly. The corrected version has been running without error for more than a week now and I've also set the timers to check for a new report every 10 minutes instead of every three. The timer logic was copied from the database updater which continues to run every 3 minutes.

Luckily, nobody seemed to be too upset and I sent out an apology later in the day after I gave people enough time to clear out the email storm I caused. I also got a call from corporate IT and had to explain to them what had happened. When you write complex programs like these, errors are bound to happen. The key is to respond to them quickly. The entire system is built to alert me to errors when they happen. I also now ensure I get every single email that is sent out and I get it sent to my home address so I'm always in the loop.

Time to get back to preparing for a family picnic we are hosting.