A Rant on Reuse
In the world of computer science there are always new buzzwords coming in and out of vogue. Some of you may have heard of some of these: Java, Web, E-[insert anything here], object oriented.
A really cool word right now is ‘Reuse.’ This is a natural progression after the object oriented craze swept through. The only problem, as I see it, is the misuse/misapplication of the term reuse.
First, let us talk a little bit about what reuse means outside of software. When you buy a used car, you’re reusing the car. You would expect, in reusing a car that you would be able to just hop in the driver’s seat and go without modification to how the car functions or reconstructing the car from a pile of pieces. Going down to a lower level, say you tore up your passenger seat somehow. You go to the junk yard and pick up a passenger seat you can reuse. You might have to pick up some new bolts or screws to connect the reused seat to your car, but the idea is the seat requires no modification.
The term ‘Reuse’ implies there is no modification to the thing you’re reusing. You don’t need to know how it works, only what it does.
In software, you’ll often hear people talking about reusing code. What this means is they find various blocks of code embedded in some existing application, copy it out, and paste it somewhere inside their source. They then modify the code to compile correctly and test to make sure it is functioning correctly. Using the car analogy, this is like going to the junkyard and picking up pieces of cars and piecing it together. Would you say this is reusing an old car or re-engineering one?
Code reuse does not mean you should be copying source code and stuffing it in your program. Code reuse means the logic you want to reuse was designed to be a modular component you can drop in and reference without knowledge of how it works inside. If you’re modifying the old code you’re not reusing old code, you’re rengineering old code.
The key point here is that the reused component must be designed to be reused. In the example of the passenger seat, the seat had to be designed to be a stand-alone modular component. If the car’s frame and the passenger seat were formed out of a single solid chunk of metal, the passenger seat wouldn’t be reusable. To try and ‘reuse’ the seat would require you to cut out the seat and try to weld it into your car. More likely than not you’ll end up with an ugly chair welded into your car with questionable stability. You’d also not be able to remove it without a significant engineering effort. ‘Reusing’ old code that was not designed with reuse in mind creates an unstable unmaintainable product. Writing software without reuse in mind results in duplicated code, duplicated effort, and duplicated mistakes. In the event of a bug in a piece of ‘reused’ code, it has to be fixed in each place it was copied instead of in one place that’s reused by multiple people.
A win for Bush, A big loss for the world
The senate has voted to allow drilling in the Alaska wildlife refuge. With rising oil prices and high dependency on oil from an unstable region of the world, this move can sort of be rationalized. The only catch being that it doesn’t make sense.
They expect the Alaska refuge to provide 10.4 billion barrels of crude. That sounds like a pretty big number, 10.4 billion. Putting it in perspective, the US uses 20 million barrels of crude PER DAY. A quick bit of math shows that the Alaska refuge will provide the US with oil for the equivalent of less than a year and a half of oil at current usage. This oil, however, won’t immediately be available to us. It will take 10 years before we can actually see this oil. With the current administration’s policy of ignoring conservation in favor of greator waste and consumption, by the time this oil is available it will last an even smaller period of time.
The cost of this, however, will be the destruction of one of the few relatively pristine parts of the world. Somehow the view of caribou grazing looks just a little bit less nice when the few that remain are walking between heavy oil machinery.
Pro Bono Tax Attorney
If anyone knows a Tax Attorney willing to do some pro bono work for a small non-profit, please let me know. TSG might be in serious trouble with the IRS.
TSG Friends & Family outing
I’ve been toying with this idea for some time now. I’ve discussed it with a few people and there appears to be some interest. I figure I’d mention it here and maybe get some feedback.
I think it’d be cool to have a TSG Friends & Family outing. This means if you’re in TSG, a friend of someone in TSG, or a family member, you can go. Way I figure it, if we find something a lot of people are interested in we could probably get a group discount.
The idea I’ve been thinking mostly about is a TSG Cruise. If we can get 40 people together, we should be able to get a group discount on some cabins.
If anyone have any ideas for what kind of cruise or other outing, when, suggested per-person budget, and if anyone has any resources we can draw from to arrange such a trip, please speak up.
Time frame for such an outing would likely fall around one year from now, plus or minus a few months.
Oh yeah, anyone want to volunteer for organizing this?





