2009
09.22

One thing that often frustrates me to no end is to see the declaration of a variable whose name is meaningless. More often than not, this is caused by laziness. For example, if a variable could be named “delegate” but is instead named “delg,” my blood pressure is likely to rise.

What the hell is delg? anm? lm? I’m trying to read through your code, I shouldn’t have to stop and look for clues as to what you might be doing! In a loosely typed language, this is particularly painful, as there’s not even such a clue from the object’s type to indicate what something is.

Now, I should take a step back. I say lazy like it’s a bad thing. As a programmer, laziness can be a valuable asset. Laziness entices you to find the most efficient way to accomplish a task. Laziness may also entice you take shortcuts; but an experienced programmer should have the discipline and foresight to know whether or not a shortcut is appropriate.

To illustrate my point, a programmer might think to himself, “I really don’t want to type out delegate. That’s a lot of typing.” The good programmer would then ask himself, “How can I avoid typing that much without making my code worthless?” The bad programmer would jump to the conclusion that abbreviating the word would save him time.

Fortunately, for either programmer, there are elegant solutions. Namely, word completion.

Have you ever known someone well enough that you frequently knew what it was that they were saying long before they finished speaking? This is precisely what a good text editor should do. A well made text editor should be able to examine what it is you’re typing and infer what word(s) you might intend to type.

There are many such text editors, but my favorite is vim. In vim, if you begin typing a word, you can (by default) hit ctl + p to bring up a list of words which match what you’ve typed. Typically these might be found in the current file, but might be found in other locations in your source tree, dictionary, and so on. So If I wanted to include “delegate” as a variable name, but didn’t want to type the whole thing out, I can type “del” and let my editor complete it for me.

When I see “delg,” I can only assume one of two things. (1) The programmer who typed that was being robbed by his poor choice of text editors, or (2) the programmer was robbing himself by not knowing his text editor well.

2009
09.21

I’ve been using a very small immersion chiller that was designed for stove-top 2.5 gallon batches. Since I’ve been doing 10-15 gallon batches, it’s needless to say that this was very ineffective. Initially I wanted to design acounterflow chiller (you’ll find no shortage of designs for these on your favorite search engine). However, a local homebrewer raised a good point which dissuaded me.

While a counterflow chiller may chill very effectively, it will only chill a small amount of wort at a time, leaving the rest unchilled. This becomes increasingly deficient as batch size increases. By contrast, an immersion chiller will cool the entire batch evenly.

I set off to the hardware store and ended up getting fifty feet of 5/8″ O.D. copper. I also grabbed a couple copper elbows, expecting that I’d take the opportunity to brush up on my soldering skills. I decided to make a coil diameter slightly larger than the conventional ~7″ made from utilizing a corney keg to wrap the coil around. I had a turkey fryer basket laying around which was suitable diameter and began wrapping the copper around it.

img_4322

This turned out to be a mistake, as the basket was not tall enough and put up a real fight when I tried to compensate. I might also add that having a second helper is extremely advantageous; I would not recommend coiling such large diameter copper by oneself. In the end, I managed to induce a couple kinks that I couldn’t work with.

Not wanting to uncoil what I’d done, and optimizing around the kinked locations, I decided to cut the copper in half and join two separate coils. The second coil I wrapped around a corney keg and set inside the other coil. I returned to the hardware store for two more elbows and joined these together. At the other end, I used the other elbows to join the end pieces at a sharp angle. I fitted 5/8″ I.D. hose on top of these ends and secured with hose clamps. In one end, I inserted a 3/4″ garden hose to 5/8″ barb.

img_4337

coils

img_4335

img_4336

img_4338

The result was not my most attractive work, but is very effective. In my most recent brew, I was able to watch the dial drop from boiling (211 F here in Texas) to about 120 in around ten minutes. The same temperature drop would have taken nearly an hour with my previous chiller.

I see two potential advantages to my design. First, the two series of coil may help distribute the surface area of the copper which comes in contact with the wort. Second, this relieves the need for a long vertical return piece from the bottom to the top. I recommend sticking with simpler designs though.

2009
08.13

To anyone who hasn’t considered it, it may seem counter-intuitive that smaller fans are noisier than larger fans (at least when producing the same airflow). This is simply because a larger fan can run much slower than a smaller fan and produce the same airflow. When designing computer cases, it is better to opt for larger (120 mm) fans than smaller (80 mm) fans.

One of my machines is stacked with 5 PCI devices (3 TV tuners for MythTV, a raid card, and a video card.) The battery backup unit on the 3Ware 9650SE raid card had begun complaining about overheating, and I wanted to see if I could run the video card without the fan (this tiny little fan was generating more noise than the rest of the fans combined!) So I basically needed to introduce some extra airflow to the expansion slot area of my machine.

The Antec P180 has an exhaust duct with an area for an 80 mm fan designed to cool the video card.  Unfortunately, it is a small, noisy fan and did not provide increased airflow to the entire array of my PCI devices. Furthermore, the very top interfered with my large CPU fan, so I decided to give my new Dremel a run and modify the duct to accept a 120 mm fan.

img_4124

The operation was pretty simple. I just needed to cut out a larger hole and make sure there was still a good air tight seal, and that the duct remained structurally sound. I wasn’t sure whether to “push” or “pull” the air, so I wanted to make sure the fan could be easily removed and turned around.

img_4125

img_4126

img_4135

img_4138

img_4139

img_4145

img_4146

Super glue was used to reattach the missing top piece. I used some black electrical tape to seal the holes. I wanted to use super glue, but didn’t have any available. The electrical tape has been adequate though.

So far, the battery’s temperature has been significantly reduced, and the video card has been able to run without a fan. In order to achieve this last trick, I had to take the heatsink off the card and turn it 90 degrees such that the fins ran parallell with the airflow.

Between this mod, and replacing the stock CPU cooler with a ZeroTHERM FZ120 (which I’m very pleased with), my machine is virtually silent.

Search engine optimization by SEO Design Solutions