Posted on Leave a comment

Crunch Week

As I stare at my monitors listening to the hvac’s compressor, the whine of my case fan (please be the case fan and not the cpu fan!), the dog chasing the cat, and the otherwise still quiet of the night, my stomach knots in anticipation of a horrid week ahead. I have allowed projects to run overdue. Being late on a project is the world’s worst feeling for me. I want to beat myself up hard for the reasons that they may be behind but that self-deprecating behavior only serves to reducing my productivity so I avoid the would have, should have, could haves and push on optimistically reminding myself that a project ends when it meets all the client’s requirements and not when it is the perfect piece of artwork. Coding is art. And artists can easily find their pieces needing "just one more change" endlessly. Time to close these projects out.

Posted on 2 Comments

University of Scoutings was awesome

Yesterday I had the pleasure of spending the day at Pellissippi State for the Boy Scouts of America’s University of Scouting. I had some classes in the Order of the Arrow which I found very enlightening in regard to this organization within the BSA. I also took a class on lightweight backpacking which was terrific. They highlighted some of the fancy equipment that we like to buy like nalgene water bottles which may weight 6oz and cost $7 whereas an empty Gatorade bottle is "free" (came with the drink) and weights less than an ounce. So what’s 6 ounces? Two nalgene bottles weight almost a pound without water. That’s significant when you are trying to keep a pack under 25 pounds. A pack should weight 25% of a person’s weight so a 100 pound person/child should be carrying no more than 25 pounds. The outdoor cooking class was fascinating. And the class on the Cumberland Trail was enlightening. It never occurred to me that established trails like the Appalachian Trail change over time due to land rights, mining, etc. Made me want to get out and do more frequent hiking.

Posted on Leave a comment

The Earth is growing

In today’s science, a video purports that the Pangaea theory is wrong and that the continents are not being pushed around by the tectonic plates. The video claims the world is growing and it gives a pretty decent argument. There are still questions about how the Earth can grow but keep the same density. Is there any real evidence to support the growing theory? Today the ScienceDaily reported that the Earth’s crust is missing in the middle of the Atlantic.

Scientists have discovered a large area thousands of square kilometres in extent in the middle of the Atlantic where the Earth’s crust appears to be missing. Instead, the mantle – the deep interior of the Earth, normally covered by crust many kilometres thick – is exposed on the seafloor, 3000m below the surface. [Source]

Could this gaping wound be where the Earth has grown and simply not yet reformed the crust? Of course, if the Earth is growing, seems like with today’s technology it would be fairly simple to measure.

Posted on 1 Comment

Reduce laundry by half! Environmentally sound.

My wife disagrees with my latest efforts to save the world. I figured bathing once a week instead of once a day would save on water and electricity. Then it occurred to me that our real water usage is in laundry! So if I wore every outfit 2 or 3 days in a row instead of just once a day we could really cut down on water consumption and electrical usage! Imagine the savings! And we could do even better if we used one pair of underwear a week instead of per day! We could cut the heating down a degree or two if I could get my wife to start sharing the bed with me again. I really miss her hugs.

Posted on Leave a comment

What is legacy code anyway?

Legacy code is software that was written previously by yourself or another developer, left to rot probably undocumented, then after a time brought back to the table as a project to be improved upon.

Code ages. And quickly! Low budget projects tend to be created with little documentation and lots of hacks or workarounds. "This will do for now. We’ll fix it in the next version." Only the developer saying that does not document the need for a fix or revision. This is called firefighting or bandaiding. As time passes techniques or functions that were once hot and vogue become passé and deprecated and sometimes altogether unsupported. One of my recent projects left me scratching my head for a week because the php function session_register() is deprecated and excluded from version php 6.

These legacy apps are also known as evolutionary prototypes. Evolutionary prototypes build features and changes upon the existing functioning application. They have a limited life. After a number of revisions, the application starts to fail miserably. It is like adding more and more plumbing to the house. Eventually you forget what that one pipe does but it exists therefore it must be important. Unfortunately, most clients just see the number of dollars spent building up to the current revision of their application and have trouble justifying the expense of a total rewrite.

Legacy code can be extremely painful to troubleshoot and down right painful to modify since the modifications might mean having to work in the awful practices the previous developer employed rather than using good, professional coding techniques even when the previous developer was yourself. However, most applications will fall into the category of legacy code so a good developer should treat all projects, even the small and under budgeted, as ongoing large scale applications with appropriate documentation of assumptions, explanations of hacks and workarounds, suggestions for future updates, test documents, and so forth. Clients should plan on a total rewrite after 3-7 evolutions.