New shop storage

For those of you that don’t know, I spend my days working for a communications firm here in Milwaukee. This company has its roots in advertising, and there are still some artifacts of that history around. One of them was a bunch of flat file cabinets which were used to store proofs, works-in-progress, presentation boards, etc. These weren’t getting much use (mostly just used as a base for a work table) and I’d had my eye on them for a while. Well, with our recent changing of offices, I thought I might be able to snag them.

Alas, it was not to be… Somehow, nobody heard me jumping up and down, saying that I wanted them, and so they ended up going to the Goodwill. That was the bad news… the good news was that there was another set of them in storage, and those are the ones that are now living in my shop:

Man, it was blurry in there when I took this picture...
Man, it was blurry in there when I took this picture...


These are actually better than the ones I’d originally wanted, as these are from the ’80s, when office furniture was made to last… It took me three trips to get these things home, and I did some damage to my back, but when I dropped one right on its corner while moving it, the floor came away dented rather than the cabinet. A drop like that would twisted a newer cabinet beyond repair, but this bad boy just shrugged it off. I also snagged an old cutting mat (shown on top of the cabinets above) and a weird old work desk/rack thing:

Seriously, super blurry that day
Seriously, super blurry that day


This is another extremely solid piece that is definitely going to see some use. The work surface is in great condition, so this guy might get brought inside, rather than staying in the garage. Not too bad, for stuff that was headed to the heap.

Book day

My Dear Wife is in the last semester of her Master’s program at UWM. This means that she has an unreasonable amount of

Any day that ends with a big stack of new books is a good day.

schoolwork to do. She’s also decided that now would be a good time to increase the level of volunteerism from a damn-lot to a friggin-lot. Then there is this freelance job we are tag-teaming. The bottom line is that in order to get all of the things done that she is obliged to do, she needed some uninterrupted, at home, fsck-off-and-work time. My solution: Book Day. Essentially, Book Day is a day where the kids and I leave the house as soon as breakfast is finished, and come home when the street lights come on. During the hours in between, we do a bunch of book related things. Ta-da! Book Day.

Primary Phase: MPL 13

The East Library was my library when I was a kid. When I say that it was my library, I mean that when I was a kid, I spent a lot of time there. When I skipped school in High School, I ended up there more often than is normal… or probably healthy. I had my first taste of flirting with a girl named “Cara” (who also gave me my first, and AFAIK only, fake phone number). This is the where “someone” left a little vial of ammonium sulfide in the breezeway, just to mess with people. This is also the place where I checked out a book on Unix 12 years ago, and never brought it back. Yup… 12 years. The entire Harry Potter series was written, published, and made into movies in the time it took me to finally get back to that library, but on Book Day, I did it. I paid for the book. I can again walk into any Milwaukee County library, including my beloved, if smelly, East (13), and borrow a book, tape, album, CD, DVD, or MP3 player. You could only get the first three of those the last time I checked out a book.

Secondary Phase: Book Graveyard

Leaving the East, we headed over to what used to be one of my favorite book stores, but is now closed and for rent. Where the Schwartz’s on Oakland used to be, we found some sort of used book sale/fund raiser. Basically, it was 30 folding tables piled with used books with only the slightest attempt at organization. Surveying the scene, I knew there was nothing for it but to look through the whole place. I set the kids loose in the small books and set to it. This was definitely a worthwhile stop. I got a handful of shop books, and Dillon discovered three Redwall books he was not even aware of! Once we had more books than we could easily carry, I figured we’d better be off.

Tertiary Phase: The Mall Bastards

Next stop: Bayshore Towne Center. I don’t love this place, with it’s fiberglass rocks and pretend neighborhood, it always creeps me out a little. Our destination here was the Barnes & Noble. We headed straight for the second floor, and spent some time in the kids books section. I wandered off to look for metalworking books (slim selection here) and came back to find that Dillon had finished the book he’d intended to buy, and Rose was off talking to strangers. That girl cannot see kids having fun without needing to join in. Dillon picked out a different book, and we headed out by way of the stationary section. I’ve been on the lookout for some nice writing paper, but was disappointed by the flowery thank you notes and invitations that B&N offered.

Quaternary Phase: The Other Library

Figuring I’d already have to explain the amount of money we’d spent (the library book being a good portion of it), I decided we’d better catch our breath our neighborhood library. The North Shore library is a respectable, small, suburban library, and this was my first real trip into the stacks. Good, but not great. If I want anything specific, I’ll almost certainly have to request it.

Rosie found more little kids to goof around with, and Dillon worked his way through a handful of age-appropriate manga before I realized that we hadn’t eaten since breakfast. We gathered up our selections (Molly and Rose had a long drive to a gymnastics meet the next day, and had requested a book-on-CD) and headed to the counter. Dillon checked out his books, and I stepped up to the counter after him with my shiny new library card. The girl behind the counter did her thing and we were off again. It was actually a little anticlimactic.

Quintessential Phase: Moto Mag

Not quite ready to go home, we popped over to the Borders, planning to get a snack and maybe start in on our new books. We didn’t make it 10 feet before we had more books added to our day’s haul. I found a Cafe Racer magazine, Rose found a book she just had to have, and Dillon selected the 1st of the Guardians of Ga’hoole books. Dillon is sort of a sucker for these books series… like his mom and dad I suppose.

We bought the last books we’d buy that day and headed downstairs to the little coffee shop. The kids sat down and started in on their books while I ordered muffins, croissants, scones, juice, and coffee (black for me, decaf latte for Rose). I joined the kids with out food, and realized that even though I made a point of bringing the camera along on our adventure, I hadn’t taken a single picture. I snapped a few in the cafe, and we spent a hour or so just hanging in the coffee shop.

We got home just as it was getting dark, and Molly was working on dinner, her home work mostly complete. This was an awesome day. I sorta like these kids, and I really dig the fact that a day spent entirely focused on books and reading is a good day for everyone involved…

Molly (as we walk in the door): So, how was Book Day?

Rose: Great.

Dillon: Great. What’s for dinner?

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.