The “shop”

Draft created: 12/17/2010

One of the things I struggle with in my home shop (calling it that is a bit of a stretch, I suppose) is organization. The place always seems to be a mess, and while I can usually lay my hands on the specific tools or parts I need, it takes a lot more digging through boxes and crates than I’d like. The challenges, as I see them, are as follows:

Space
In short, there’s not enough. Our garage is under our house, taking up 1/2 of the basement. My bench and workspace take up about 1/4 of the garage. In this space I need work surfaces, including ones that will allow me to leave work to dry, ferment, grow, or dissolve. I also need storage for tools and materials. “Materials,” in this case refer not only to nice clean 8′ x 4′ sheet goods, and perfectly true 2x4s, but also the cast-off bits of the last hundred projects, broken devices that contain some useful bit inside, and all of the household stuff we accumulate. This last includes 1/2 roll of rope caulking, a pipe snake, 1 gazillion o-rings (non of which actually fit anything), and the burner from a natural gas space heater.
Variety
The second issue is that there is a lot of variety among the “stuff.” I’ve tried a number of different way to catalog and organize everything: by project (what about raw materials and things that might be part of multiple projects?), by material type ( works for materials, but not for parts; I wouldn’t put the extra motocycle handlebars in with the steel pipe), by season (this doesn’t even make sense, but i thought about it), by recency (i.e. newest stuff on the top of the pile). In addition to the variety “now,” the relative composition is apt to change at any time (like the day I suddenly found that I had 10 sealed 6v batteries, or the day I used up half of my scrap wood on a project).
Access
The third challenge is access. I could just put it all in nicely labelled boxes and stack them somewhere, but then it becomes a PITA to actually get at them. It also makes it far less likely that I will put things back in an orderly fashion. If I have to open 6 different boxes from 6 different areas, it’ll mean that much more time to put it all back at the end of the day. I know myself well enough to know that those 6 boxes will sit on my bench until the end of forever, despite the stern lecture I gave Dillon about keeping a tidy work space.

I’ve thought it through, and I think I have a solution…

[You’ll just have to wait, as that’s as far as I got with this post.]

First post… again

rm -rf license plate
yeah... it always seems like a good idea...

Ok, so here’s what happened…

My sweet, sweet WordPress blog got hacked, which is bad. I’m not sure that it was actually my blog that caused the issue, but it was certainly affected. To my dismay, every visitor to my blog was getting prompted to download the lastest and greatest in 7 year old viruses. Rather than just being pissed about it, I decided to take it as an opportunity to clean house. I’d needed to clean out some old, aborted projects anyway, so I did what anyone with a passable knowledge of *nix system administration does… I broke out my trusty sledgehammer:

rm -rf

…and I went to work. I deleted temp files, and download directories, and “_old” directories. I killed all of the crap that was left over from trying to get RoR working. It was exhilarating! As I approached the /blog directory in an rm induced haze, I did that thing which we all dream of getting some n00b to do:

Hands: cd ~/blog

Brain: La, la, la…

Hands: rm -r

Brain: La, la l… er?

Hands: f *

Brain: ummm… maybe we should stop with the f?

Hands: [evil laugh] [ENTER]

Brain: Shit.

And that was that. The blog was gone, and the worst part was I still had that whole “my website is handing out viruses like Typhoid Mary in 1915 New York” thing to deal with!

Solving that was actually kinda fun. It turns out a bunch of nasty had been added to the beginning of a bunch of PHP files in a bunch of directories. Removing this crap one at a time would have been a serious PITA, so I did some research and came up with this little bugger:

find . -iname '*.php' | xargs grep -l -R -E "<\?php \/\*\*\/ eval\(base64_decode\(\"aWYoZnVuY3Rpb25fZX(.*)\)\);\?>" | xargs sed -i  's/<?php \/\*\*\/ eval(base64_decode(.*);?>//'

Sweet, right? You figure it out… I’m citing the following from Real Programmers Don’t Write Specs:

Real Programmers don’t comment their code. If it was hard to write, it should be hard to understand.

Thanks, and good day.