Amazon.com Widgets

Working Smart Versus Working Smarter

28 04 2008

We recently decided that we were going to rip out our 4 foot high picket fence and replace it with a 6 foot privacy fence. The biggest challenge through the whole process lay in removing the concrete encased fence posts for the existing fence. If you have ever tried to remove an irregularly poured chunk of cement from the ground, you’ll be able to attest to the backbreaking difficulty in doing this with only a shovel and muscle. I really wasn’t looking forward to hours of arduous work so I decided to work smart instead of hard.

I decided to build a contraption to help me out and remove much of the physical exertion from the process.  The basic design (not fully depicted below) was using pressure treated 4×4′s so that I could reuse them for the new fence. The uprights are 8 feet tall, each foot is 4 feet long, and the top cross beam is 2 feet wide and the whole structure is held together with 1/2 inch lag bolts. I then placed a 1/2 inch eye bolt through the cross beam so that I could attach a come-along. Add a matching eye bolt in the fence post and I had a great way to wench the posts right out of the ground. I simply rocked the posts a bit to loosen them up then used the contraption to rip them out of the ground.

 untitled.jpg
My contraption. I forgot to take the picture…

Turns out I was working smart, but not as smart as I could have been. I neglected to take the weight of the contraption into account and how I was going to move it from post to post. So I had this great mechanism that would save my back from the exertion of ripping out posts, only to strain my back by having to move it. I estimate it at around 100 pounds, which isn’t too bad in itself, however the unwieldy nature of such a large structure posed balance problems in addition to weight problems. Had I thought the entire process through, instead of focusing on just the main problem, I would have come up with a better design. Perhaps casters, handles, or even a bottom cross support so that I could use a dolly were in order.

The same paradigm rings true for business in general but it resonates especially loud in the software industry. We often design features, applications, and bug fixes with the intention of solving the problem at hand. While our approach may be smart in that it solves a large problem, keeps the problem from coming back, or takes into account the possible future needs, it isn’t always the smartest solution.

A great example comes from a small contracting business I once ran. Many of my clients wanted much of the same functionality as each other. So instead of rewriting or even copy and pasting code from one client to the next I decided to write a modular based system. This system was ant based and simply took a properties file as a build argument. The properties file would list the images to be generated for the site, the style sheets to use, the modules to be built, and even the scripts to run against the database during deployment. This system allowed me to write modules that were self referencing with respect to their dependencies. So I could drop in the users module and the client site would now have full support for user management, complete with authentication code. This users module would understand that it was dependent upon the security module and the security module was dependent upon the core module. All would then be included in the final build simply by including the users module.

The solution was smart. It kept me from duplicating a lot of work, but it wasn’t smarter. I finally realized a problem in that the system allowed no room for conflicting options. If client A and client B wanted different and conflicting things from the same module, which eventually happened, I was back to square one. In order to accommodate such disparities I would either need to copy and paste modules or build in very complex configuration functionality. Had I worked smarter from the beginning I could have foreseen some of these problems and taken steps to circumvent them. I won’t go into details on how, as most of them would require a deep understanding of the module based system’s inner workings. Instead, it is sufficient to note that there were other design options that would have yielded the same scalability without the technical nightmare of conflicting demands.

Always work smart. Strive to work smarter.



Grails Redirect

24 04 2008

I am admittedly still a newbie at Grails and am self learning without aid of a book, hence the simplicity of this post. After I finished the current application I am working on the last step was to get the root index.gsp page to redirect to something more useful. So I went through the user guide to find the directive for a redirect, only to find there was none, at least at a glance.

Grails gsp pages are an extension of a jsp page, meaning they are servlet backed. The grails API exposes the session, servletContext, request, and response to all gsp pages. This means that redirecting is as simple as using the sendRedirect method on the response.

${response.sendRedirect("myController/myAction")}


Thinking Green

23 04 2008

I’ve got a decent commute each day – roughly 40 minutes to an hour for 16 miles, twice a day. While sitting in traffic and thinking about the ever-skyrocketing gas costs I can’t help but wonder why we haven’t begun to harness more of the potential energy pent up within everyday objects. Some people are already doing this, such as this seesaw power generator in Africa. This is a start but there are a ton of other places we could trap potential energy.

Here are a few:

1. Our pipes
Every time you use water from pipes there is a chance to harness the energy. When the water flows out of the pipe, or into the building through the water main, energy could be harnessed through small turbines fitted within the pipes. Make the turbines low resistance and they would likely not even cause a noticeable shift in our experienced water pressure. Add the fact that most of our water usage will also be drained back out of the house through pipes and we can harness this energy a second time through the same mechanism.

2. Our heating and cooling
The energy wasted from heating and cooling is enormous. Take a refrigerator for example. The inside gets cool while the back gets warm. Instead of allowing the warmth to vent into the house a slight modification could be made to enclose the heating elements and capture the rising air as it escapes through a small pipe. The then escaping air would then cause a small turbine to spin within the pipe, harnessing energy. The same concept can be applied to the flu for heating and any other place where there is air movement due to temperature differentials. Even the oven could be modified to vent through a pipe fitted with a turbine while it cools off.

3. Our doors
How many times a day do you open a door? Why not generate energy from it? Modified hinges could be used to transfer the force of the spinning hinges into reusable energy.

4. Our human powered appliances
We expend a lot of energy each day that is totally lost. When you push your lawn mower, vacuum the floor, or even sleep in your bed you are just giving away energy. Items like lawn mowers and vacuums could be modified to trap the energy of their turning wheels in a small internal battery, which can then be transferred back to the house through a plug. Beds could be fitted with a small generator that eeks out a small amount of power each time the bed moves up and down. While sleeping you would be able to harness the energy of turning over or getting comfortable. During other activities, a considerably greater amount could be captured.
The basic idea behind all of these ideas comes from one of two places: human generated and gravity generated. Both are systems that are omnipresent and generally result in wasted energy. I realize that some of these will not be cost effective yet as the cost of the generator will be more than the savings, however as our technology progresses these ideas become more and more feasible. In the end, to get out of our current energy crisis, we all have to think outside of the proverbial box.

P.S. I would be interested in hearing (either through a comment here or an email to me) from physicists or engineers regarding the viability of these ideas.