Saturday, February 27, 2010

Finding bugs ...

Looks as if I have a talent for finding software bugs, especially in other people's software. I find bugs in mine, and I fix them. Other people's software I just have to report it and wait until those who know that particular implementation inside out can fix it. In the past year I've found a bug in Sun Microsystems GlassFish application server. The server was stable, it just didn't do what the specification said it should. The bug was rather esoteric and had to do with default values when both annotations as well as deployment descriptors are used to configure multiple instances of an enterprise bean class. When we reported that bug it turns out our team at work were the first developers who came across that particular error. Today I just happened to come across an error that causes a segmentation fault in an Apache webserver child process. Still not sure if the error is caused by a misconfiguration or if it is a intrinsic error that must be corrected in the source code. We'll have to see later, right now I need sleep

Wednesday, February 24, 2010

All Quiet

No progress on the conversion, had too little time to get anywhere after updating some software on my workstation. Need some extra sleep anyway

Tuesday, February 23, 2010

Conversion and Backporting

Well the steps I'm taking now will finally upgrade some of that ancient software. A trial run through the steps should give me a decent idea of how long this will take. Reading through the install and upgrade section in the documentation of the new version does leave me a bit worried. The conversion itself seems a bit lackadaisical and requires a fair bit of human intervention. The best approach might be to go through the whole upgrade on the workstation, take very detailed notes, carefully and methodically add those extensions that I had added to the original. After that attempt is successful, a conversion for a demo version of the site on the server is the next step. Once that is satisfactory, run the conversion for the production version of the site on the server. Of course, disciplined backups, careful and appropriate use of source control as well as viable rollback plan are all absolutely necessary should things somehow go awry.

Monday, February 22, 2010

Inevitable Changes in the Seasons

As the days get longer it is easy to notice subtle changes that mark the inexorable cycling of the seasons. Soon enough spring will be here with the inevitable spring cleaning. Can't say I'll miss this winter much, a few more weeks I will have had my fill. There will be plenty of work ahead. The gardens will need a fair amount of work to ready for the next growing season. Don't know much yet about what we'll grow this year other than a lot of it will be pretty and some of it will be edible. There's still a bit of time to make up our minds but we shouldn't tarry too long.

Speaking of tarrying, a few days respite from my side project let me breathe easy for a bit. But now I'm anxious to get more done. Did a bit today, a test database conversion, a quick function test of the tagged production copy. All is working well and the situation seems to be fairly well under control. The scheduled backups chug along like clockwork. The production server is stable, has plenty of storage, bandwidth, and cpu capacity left for now, so when the side project goes to beta I should be alright. Next step to finish the prep work is to get the latest version of the shopping cart and back port the custom edits as well as test the migration path. That will start tomorrow. By the time spring comes I hope to have a beta version of the site up and running, even if it is a stripped down rudimentary beginning.

Wednesday, February 17, 2010

Found long lost modified files

Well they weren't really lost, I just wasn't sure which of the current 5812 files were ones that changed from the original software that I customized for a friend about three years ago. For the past three weeks or so I've been doing some forensics trying to recreate the sequence of changes, more or less, that I had gone through to customize the package involved. Turns out that just a bit more than one percent of the files we changed, more specifically it was 59 out of 5812. It took about an hour of poking around and some creative convoluted BASH one-liners to identify, isolate, correct and verify those files. Without the shell and without those one-liners the job would have been far more difficult. Now even the changes to those original files are captured in source control. Now I can safely proceed with the upgrading of the package for my friends site and the back-porting of my customizations.

Take this BASH, brother, may it serve you well ... or some other similar silliness

Tuesday, February 16, 2010

Cleaning out the rubbish

Just finished clearing out some rubbish from a code repository. Duplicate files in slightly mangled and misnamed directories. Slightly off-topic, when scripting remember that names with spaces in them require careful handling, otherwise the shell will misinterpret your intent. ('doh, facepalm) Now the directory trees in source control and in production match both in shape and in content. Next step, migrate the local copy to latest release, back-porting the customizations I made in the original.

Monday, February 15, 2010

Decisions

We've had some snowy weather in the past week. I all looks beautiful, until of course you have to shovel it or drive in it. Then it's not so much fun. The younger boys had almost a whole week off from school due to the weather. Even Misce's classes were canceled last Wednesday and Friday. Work is busy, and going fairly well. This is all well and good, but this is not what is most on my mind. In my current side project, I'm still upgrading the server and upgrading some long out of date software that runs on it. All this prep work is preventing me from working on the core problem that I want to solve and working on the main part of the project that I want to implement. The stuff I'm doing is tedious and it is taking me too long. Some of that is due to low motivation. Some of these tasks I really don't want to do but they can't be ignored or side-tracked any longer they need to be done. The update of the relatively ancient shopping cart running in production on the server is the most glaring example. Another part of it is I'm not really sure what approach I should be following during this upgrade and what particular step to take next. The indecision and lack of enthusiasm is slowing me down and costing time. I need to make serious headway on this by the end of the week. The upgrade must happen at the very least on my local development system. That way I can then relatively easily and painlessly upgrade the server and the production copy. The worst part of this is doing this a couple of hours at a time at night. Once again, that's where my trusty project notebook helps with the technical details. Also, this blog helps, even if it is just a way to vent a bit of my frustrations to get them out of my system and get going on the necessary work. By the end of February, I need to be once again be working on the project directly and not on ancillary tasks. It's been too long.

Tuesday, February 2, 2010

Pacing

The past three weeks or so kept me busy both at work and on my personal projects. One of the less pleasant tasks I've had to do is update and upgrade the system that I help host. Normally this would be done on an ongoing basis, but I've neglected it for so long that some of the software is now past end of life and is no longer being actively maintained. All this effort is part of my pet project, a modern website for posting events. As I have only have an hour or two each day it is important to accomplish at least a little bit each time I find the opportunity. In the past I've had trouble with doing things this way. I preferred to work in long uninterrupted sessions sometimes long into the night. That's the way I got through my programming projects while at university, but that is difficult to keep up for long periods of time. One of the problems with relatively short sessions of work is the context switch at the beginning. Sometimes it takes as long as half an hour to get organized and get into the flow of things. To help me with this, I've been keeping a work log, so that even if I'm away from my project for several days when I read over the log it gives me a very good idea where I was at the last time. That way I can begin where I left off. Of course the log is very high tech, well not really, it's a simple paper notebook ...