« November 2005 | Main | January 2006 »

December 31, 2005

Use it wisely

As it turns out, you get one extra second to enjoy 2005. My recommendation? Use it to love, not to hate.

December 29, 2005

Catastrophe of atoms versus catastrophe of bits

Software engineering is hard, but software is hard in decidedly virtual ways. Sure, sometimes you’re limited by available people or available hardware, or you don’t have enough CAT5 or the right kind of RAM module, but software problems are generally solvable with a text editor, some caffeine, and patience.

Mechanical engineering is hard, and it is often hard in decidedly physical ways. There are usually wires and pipes and gears and pumps and things. Usually when a computer crashes, there’s a lot of cursing and angst. When something mechanical crashes, there’s also a lot of cursing and angst, but sometimes there is blood. And usually there is a mess to clean up.

Today there was quite a mess to clean up.

But first, a little background: the plastic recycling process that my dad and his partners are designing is what’s called a hydrogravity separation process. This is just a fancy way of saying that some things float and sink in solutions depending on the density of the solution, and if you can make the good stuff float and the bad stuff sink (or vice versa) you’re in pretty good shape. The whole process sounds pretty simple when you hear it explained—this stuff floats, so skim it off the top, and this stuff sinks, so scrape it off the bottom—but the devil is absolutely in the details.

One of the details is that of scale—it’s one thing to have a table-top demonstration of stuff floating and sinking, but when you go from table-top models to a 20,000 square-foot production facility, a lot of things get much, much more complicated. Take water, for instance. When you want to make a lot of stuff float or sink, you need a lot of water. Or a lot of solution. Or, in the case of the plastic recycling plant, you need a lot of both. So you get some big tanks to hold a lot of water or solution. Really big tanks.

I’d never given much thought to what 5,000 gallons of water looks like, but when you see a 5,000-gallon plastic tank, it’s an impressive sight. And when you see four such tanks standing next to each other, your first thought is usually something along the lines of “that’s a damn hell lot of water.” Because it is.

The thing about the tanks, though, is that once you’ve seen them and get over the fact that they hold a damn hell lot of water, you tend to forget about them. A lot of things can go wrong when you’re dealing with motors and pumps and driers and forklifts and propane and half-ton bags of scrap plastic and mixers and such. Things that spin and whir and grind and move are somewhat threatening, but tanks are deceptively innocuous. After all, they’re pretty passive things; they just stand there and hold water. Except when they don’t.

I mentioned that there was a mess to clean up today, right? And I’ve talked a bit about the tanks, right? So how many of you have guessed it was the tanks? Good guess. But hang on—it gets better (or worse, I suppose).

One of the things you don’t want to hear during the construction of any kind of processing or manufacturing facility is “oh, crap.” Usually this means someone has done some damn fool thing that will cause them a half hour or so of undoing and redoing it right this time. But there are worse things than “oh, crap” things. There are “oh, shit” things.

Because the hydrogravity process uses lots of water and solution and stuff, drainage is a major consideration. There are drainage toughs in the concrete floor that surround the processing stations, and they are designed to be able to handle a worst-case scenario where one of the 5,000-gallon tanks bursts and dumps its entire contents onto the floor. The troughs are drained by a series of high-capacity sump pumps—more than one, of course, to ensure mechanical redundancy in case one pump fails.

All of this sounds wonderful—a tank bursts, and dumps 5,000 gallons of liquid in to the troughs, and the sumps pump it up and out. Ah, but up and out to where? The wrinkle is that because most of the liquid involved isn’t water, but a salt solution, you can’t just go pumping and dumping the stuff into the sewers. At least, you can’t without getting a nasty visit from the EPA. So what the sumps actually do is drain the troughs into another giant tank, which is periodically filtered, treated, and then disposed.

Yes, yes, yes, I hear you say—get to the part with the mess. Okay, okay. Today, during some regular construction and maintenance, one of the workers (no, not me) accidentally backed a forklift into the main discharge valve at the bottom of one of the tanks. This is the textbook definition of an “oh, shit” moment. The thing about an “oh, shit” moment is that it’s a bit like playing a game of telephone, except that there is absolutely no chance that someone is going to get the message mixed up.

The sound of 5,000 gallons of liquid gushing out of a giant plastic tank is, in a rather distressing way, actually quite a fascinating sound. The thing about it is that you don’t quite know what you’re hearing at first, because it’s not the kind of noise you’re used to hearing. This makes the whole experience that much more potent, because everyone goes though the same several seconds during which their brain finishes putting the noise into context, whereupon they invariably have the same reaction: “Oh, SHIT!”

Of course, such a catastrophe had been planned for—just fire up the sump pumps and let them do their work. Ah, but there’s the rub—the sumps drain into a storage tank. And I think you’ve probably guessed which tank it was that the forklift hit, right?

Yup. The sump pump drainage tank.

Now we have a conundrum: there’s a big water leak, something on the order of 200 gallons per minute, gushing out of a four-inch hole on the bottom. The tank is about fifteen feet tall, so there’s about ten feet of head, and the weight of all that water is pushing out a stream in an arc about six or seven feet long. You can’t start the pumps, because they’ll just recycle the water back into the tank that’s been hit with a forklift. Each second that goes by gets you wetter and sticker with solution, dumps gallons of liquid all over the place, and you’ve got to make it stop, or at least slow it down. Quick—what do you do?

You sure as hell don’t call a bug triage meeting, that’s for sure. You probably do something like what my dad and his coworkers did: you improvise, and you improvise RIGHT FUCKING NOW. Now, I wasn’t privy to exactly what was going on at the time; I felt it was best to stay out of the way and let the smart people who knew something about the system fix the problem. This sort of problem is pretty much outside of my core competencies; I can get spyware off your computer no problem, but my first reaction to a geyser of salt solution coming out of a 5,000-gallon tank would probably be to scream like a girl and run away crying.

Everybody knows the story of the little boy who stuck his finger in a dam to plug a leak, but this was no ordinary dam, and what was needed was a pretty big finger. So they improvised. The end result was that my dad and some guys jammed a wooden 2-by-3 wrapped with towels into the gushing hole in the tank to slow the rate of drainage, and a couple other guys whacked the hell out of the thing to plug the hole. Meanwhile, everyone else was busy turning some of the smaller, empty tanks into temporary drainage tanks, getting the sumps running and redirected, getting boxes and computers and stuff off of the floor, and pushing water around with brooms and giant squeegees.

The “good” news is that the broken tank had “only” about 3,000 gallons of liquid in it. So now I’ve seen what happens when 3,000 gallons of liquid dumps onto the floor, with no place to drain, and it is a hell of a thing. As it turns out, I’m pretty handy with a giant squeegee, too.

December 28, 2005

Commence lip identification scan (no tongue, please)

I recently acquired a new Compaq nx6125 laptop for work. It’s a nice system; my only complaint is that the battery life could be longer, but then again, I’ve never found a laptop that had a battery that lasted as long as I really want (read: about 200 hours), so that’s not a huge problem. Interestingly, the system comes with a built-in fingerprint scanner. This wasn’t a selling point for me; for a variety of reasons I’m not a big fan of biometric authentication (and this includes anything from retina scans to fingerprints to lip identification).

Regardless, the computer has a fingerprint scanner, so I figured it would be at least worth my time to try it out. After about a week of using it, I still don’t like it. Not that I really expected it to work this way, but it would have been a big plus in my mind if the thing made a show of using a moving laser light to scan my finger and then said something like “Scan complete, commence web surfing” in Majel Barrett’s voice or whatever.

My biggest complaint is that the fingerprint scanner is, well… finicky. I could understand having to quickly swipe my finger a couple of times, but this scanner requires me to push my finger along the sensor from bottom to top, which is the opposite of the direction I’d expect. On top of that, after some fair amount of experimentation, I have come to the conclusion that the fingerprint reader is most responsive when using a finger-swipe motion that is more of a… “caress”… than it is a “swipe”. Maybe this doesn’t sound so bad, but believe me—if you had to stroke a small square sensor on your computer before it logged you on, you’d feel a little uncomfortable about it too. It’s bad enough that I’m one of those insane people who yells at their computer when I’m angry, but trying to arouse a six-pound hunk of plastic and wires before I can use it? That’s just wrong.

Creepy anthropomorphism aside, the authentication mechanism that works in conjunction with the fingerprint reader has some issues as well. First off, the default authentication mode uses only a single-factor sign-on. This means that I can use either my password or my fingerprint caress to logon. I’d prefer a two-factor authentication that would require both. Maybe I just haven’t spent enough time fiddling with the options or reading the help files, but the software doesn’t seem to like it if two different user accounts want to share fingerprints. I guess most people don’t have this problem, but I like to have a normal user account for most of my work, so I only login with a separate administrator account to install software or patches or stuff like that.

One other notable feature is that the fingerprint software requires you to register at least two different fingers before you can use it to login. This is actually a good idea, although it’s a little disconcerting to have a piece of software whose threat model includes a mitigation like “Must require two fingers to be registered in case user encounters Jimmy ‘Tin Snips’ Gianetti in a dark alley”.

Bottom line? I give the fingerprint scanner two thumbs down.

December 27, 2005

P implies Q

Things my sister said at dinner tonight:

  • "No, they were legitimate friends--not rugby players."
  • "Do you think they sell plastic lizards at K-Mart?"
  • "Someone pay attention to me!"

December 21, 2005

Capote

Speaking of "lose"... I saw Capote last night with Jef and Rach. I was completely engrossed by the story. The film is quite beautifully shot, and Philip Seymour Hoffman gives an amazing performance. (I can now entirely forgive him for being involved in Patch Adams.) The ending left me thinking of this verse: "For what shall it profit a man, if he shall gain the whole world, and lose his own soul?" (Mark 8:36) I highly recommend the movie. Go see it. 

(As an aside, I discovered that Google will also help you buy movie tickets if you search for just a movie title. Dear Google: When will you be able to find my wallet and keys when I misplace them?)

It's a mute point anyhow

File this under "things that make me want to quit the computer industry and become a florist":

iis loose-lose

"Loose"? Come on, people. Let's show a little hustle with the grammar, huh?

December 19, 2005

Obscure TV quotes as surreal insults

My sister: "You're being an ass."

Me: "Oh yeah? Well, you're being a pretentious atonal nightmare."

December 18, 2005

Terrible pickup lines that we came up with over brunch

  • Are those space pants you’re wearing? Because I want to take a rocket to Uranus.
  • Are you wearing shoes? Because I’d like to have sex with you.
  • Do you have a kid? Because you’d totally be a MILF.
  • <After walking up to a woman and making a show of looking at the tag on her shirt> Just what I thought: cotton-poly blend. Want to screw?

December 13, 2005

'Til it rang 29 times

Well, I made it back to Cleveland in one piece, and with all my luggage intact. I flew there from Seattle through Charlotte, which might seem odd to some people, but it avoids Denver, Chicago, and Detroit (the 3 most common connecting points for SEA->CLE) which I feel is always wise to do in the winter. Plus, the Charlotte airport has these awesome rocking chairs scattered throughout the terminal. Best layover chairs ever.

My flight out into Cleveland was on a little Embraer EMB-145, which is a little 3-across jet. The attendants at the gate first announced that the flight was overbooked, so I volunteered to give up my seat in exchange for a seat on the next flight 4 hours later, plus a free lunch and a free round-trip ticket anywhere the airline flew. But (un)fortunately, they had several no-shows for the flight so I was able to get into Cleveland as scheduled. Not that I minded avoiding a 4-hour extension to my layover, but a free ticket would have been pretty nice. Maybe next time I'll have the fortune of being more unlucky.

Today was my first day of work and they let me drive a forklift. I even managed to pick up palettes of stuff without causing too much destruction. Assuming that they can patch up the roof and that the lift still works after they put the fire out, I might get some more practice soon.

December 11, 2005

Now I'll have time to scarf down some terrible airport food

From an email I just received:

"Dear Expedia.com customer,

US Airways has notified us of an update to your flight itinerary for your trip. Your flight will now depart 5 minutes later than previously scheduled."

Whew! I'm so glad they told me. Of course, since a 5-minute itinerary change is essentially noise lost in the margin of error for flight scheduling, they might have well just said, "Your flight departure time has changed, but it doesn't matter. Just show up. Things will probably be fine." Of course, they also helpfully tell me that my arrival time will be later as well, by one minute.

Maybe Expedia needs to be a little more thoughtful about the difference between precision and accuracy.

"An insolent approach"

If you haven't already, do yourself a favor and go see Good Night, and Good Luck (also, the official site). George Clooney is an excellent storyteller.

Not too surprisingly, even President Truman thought that McCarthy was a dick:

My.Dear.Senator.jpg

(from the Truman Presidential Library: The Cold War Turns Hot)

December 10, 2005

Movie quotes, the daily double

I'm happy to see that people were able to identify 12 out of the 15 movie quotes I posted earlier. The only quotes not identified were #11, #12, and #15. In case you're still curious, here are the answers:

  • "There's someone out there for everyone - even if you need a pickaxe, a compass, and night goggles to find them." -- L.A. Story
  • "It's the truth that you should never trust anybody who wears a bow tie. Cravat's supposed to point down to accentuate the genitals. Why'd you wanna trust somebody whose tie points out to accentuate his ears?" -- State and Main
  • "I think I have it. A man talking sense to himself is no madder than a man talking nonsense not to himself." -- Rosencrantz and Guildenstern Are Dead

If you haven't seen any of those movies yet, I highly recommend them. They were written by Steve Martin, David Mamet, and Tom Stoppard, respectively.

GOSUB Cleveland

This weekend will be my last in Seattle for a while. On Sunday night I'll be flying back to Cleveland for Christmas, New Years, and a new job doing some independent consulting work. Since leaving Microsoft, I've decided on following a course of action in two parts: One, to find a job--preferably at a small company--that is very different from the one I had at MS but where my skills are still applicable. Two, pursue a graduate degree in a field unrelated to Computer Science.

The first part is important to me because I really believe that variety is the spice of life. The only way I can find new and interesting things to learn is by trying something I've never done before. The beginning of a new project where I am at the bottom of a new learning curve is the most intimidating time, but also the most exhilarating time. The prospect of learning new skills and gaining new knowledge is almost as motivating as the prospect of successfully delivering a finished product.

As for part two, well, the biggest regret I have from all the time I spent in school is that I didn't take the opportunity to really immerse myself in the study of anything outside of the CompSci curriculum. (Some might argue that I didn't take the opportunity to immerse myself in the study of CompSci either, but those people suffer from a peculiar kind of delusion.) I'm not sure what it is I'd like to study, but for the sake of throwing out a crazy idea, I'll just say that the field of environmental economics looks rather appealing. And importantly, that subject possesses a sufficient geek quotient so as to ensure that I remain forever and tragically unhip.

I haven't yet been able to satisfactorily fulfill Part One here in Seattle, so for the time being I am casting a wider net and heading Midwest-ward to take up work that will involve computers, hardhats, and (possibly) forklift-driving.

So off to Cleveland I go.

I've never been one to denounce a healthy amount of nepotism, which is good because my father is a partner in the company I am going to work for. Now, lest you think that this means I'll simply be able to slide by without doing any work, let me assure you that the opposite is more likely true: I will probably have to work harder, since my father not only has at his disposal the standard managerial motivational levers, but he also knows embarrassing stories about me when I was growing up. Some people might say that kind of motivational tool borders on blackmail, but that's unfair to my father. He would never call it blackmail. He would call it Building Character. (I, however, would call it blackmail.)

Oh, yeah, and my father's name is also Joe, but I'm sure that's not going to lead to any kind of comedic hijinx like where someone yells for one of us and we both answer and then we look at each other and laugh at how funny it is that we both answered because we both have the same name and then everyone starts laughing and then we throw pies. Things like that only happen in terrible, terrible, movies.

What the hell am I going to be doing? Well, a lot of different things. I'll be a geek-in-residence, so I'm sure there will be the odd virus or spyware removal, and things of that nature. But the main project I'll be involved with is the construction and operation of a new 100,000 square-foot plastics recycling and reclamation facility. The facility will be processing primarily polyethylene (PE) and polyvinyl chloride (PVC) types of plastics, but also some copper and some teflon as well. The recycling of these compounds places some fairly stringent quality requirements on the finished product, and that raises some very interesting quality control challenges. I've had some experience, prior to Microsoft, in developing automated quality control hardware and software (if you really want to know, ask me about the Ford Focus project sometime), and I'm sure that there will be similarly fascinating problems to solve this time around as well.

Oh yes, and there might be some forklift driving involved. In fact, there had better be some forklift driving involved, because I'm pretty sure I made it clear that my acceptance of their employment offer was contingent on me getting a hardhat and forklift driving lessons. And I'm sure that I'll probably learn a lot about the design, operation, and maintenance for the systems in the facility along the way. All in all, it sounds like a very interesting challenge.

But what of Seattle?

Well, I've lived in Washington long enough to qualify for resident tuition rates for schools here, and given the quality of education available, I'd be a fool to ignore that opportunity. Plus, I love Seattle. I have friends here, and I feel comfortable and at hom here. So I'm going to continue my search for a sufficiently challenging and interesting job here, and I am keeping my apartment (and the vast majority of my crap) here as well. I'm not sure how long I'll be in Cleveland, but it will be some months at least. Never leave a job half-done, and never do a half-assed job, you know. (Well, not unless you don't care about getting fired and burning bridges, at least.)

I'm going to miss Seattle, and my very good friends here. But I have some good friends back in Ohio as well, so I guess the two factions will just have to duke it out for my undying affection. (I hope they duke it out too, because I'll probably score some pretty sweet swag in the process. READY? FIGHT!)

So, for now, it's GOSUB Cleveland--although it's bad form, of course, to have a GOSUB without a RETURN.

December 09, 2005

But there's milk and cream and sugar, too

I mentioned to someone that I was making eggnog ice cream for a friend's housewarming potluck this weekend, but that I'm leaving out the bourbon--because, you know, some people don't like bourbon. I'm not one of those people, and I don't understand those people, but I respect their insane life choices anyhow.

This person pointed out that eggnog ice cream without the bourbon is basically just egg ice cream.

Now I remember how I felt when I learned the truth about Santa Claus.

December 08, 2005

"Ocean's Eleven" and "Cash Eye"

In the episode "Cash Eye" from the second season of Ghost in the Shell Stand Alone Complex, there's a sequence that I think is a clear homage to Steven Soderbergh's 2001 remake of "Ocean's Eleven." The scenes may be in a different order in "Cash Eye," but I think the similarities are too numerous to be coincidental--the composition of the shots, and in many cases, even the mise en scene.

Here's a comparison between the two.

Maya has mystical monkey powers

Maya is in India. India has monkeys. Maya has taken pictures of monkeys. See monkeys, see!

mellow monkey   monkey of mystery

December 06, 2005

A little housecleaning

I took a look at my server access logs for the first time in ages today, and as a result I've patched up a few minor weblog-related things...

I noticed that there are still a bunch of people whose aggregators point to feeds from my old weblog that no longer exist. Those requests should now get properly redirected (via a 302) to the correct feed. I apologize for leaving that problem uncorrected for so long.

Also, there are a handful of entries from my old weblog that seem to be still fairly popular (based on the number of requests for them that go 404). I've re-instated six of the most requested entries. Here's a list, in chronological order:

Any incoming requests for these entries at the old URLs will also get the 302 treatment; the links above are the current ones.

And just out of curiosity, does anyone other than me use the Crooked Links sidebar? I put it there basically so I could have a searchable history of my bookmarks (and don't bother telling me about del.icio.us; I am not enamored with that service). If you like it, hate it, or ignore it completely, I'd like to know.

December 05, 2005

Yak attack

Nate's put up some of his latest photographs, finally.

He's got a good eye--which makes sense, really. All that insanity has got to be useful for something. I mean, just look at that shirt. (Hey, Nate, I think I was there when you bought that shirt, right? It was one of the really ugly ones?) Anyhow, also check out: Views of London, Friends (and Wedding), and Birds of Canary Wharf.

American Film Institute's top 100 movie quotes

As a nice (and coincidental) follow-up to my entry about movie quotes, here's the AFI'S 100 Years...100 Movie Quotes: America's Greatest Quips, Comebacks and Catchphrases. Sadly, none of my favorite quotes made the list. Obviously the AFI is comprised solely of curmudgeonly cinema aesthetes who lack sufficient appreciation for more modern films.

Ah, well. (Thanks to Division of Labour for the link.)

December 04, 2005

Not even 3,000 words in

Last year, I took part in the NaNoWriMo project whose goal is to get people to write 50,000 words or more of original fiction during the month of November. I reached the word count last year, although the result was about 2,500 words of readable fiction lost in a sea of 47,500 words of utter nonsense.

My second attempt this year proved a dismal failure; I barely eked out 2,500 words. There are plenty of excuses I could offer, but my heart just wasn't in it this time around. Maybe next year. I had a grand scheme for a story based on the premise that there are three things, three levers, that determine how people live and interact: money, politics, and religion. The problem is that I never really figured out what kind of story it was supposed to be. Since I never sorted out the overall shape of the story in my head, I couldn't get it down on paper.

I've posted the unfinished start of the story, for whatever reason: The Lever of Faith.

NaNoWriMo is a really amazing project, though--I strongly encourage people to sign up come next October and give it a try. I'm sure I'll be back again.

December 03, 2005

Gazing into the heavens

The ESA homepage for the Hubble Space Telescope has some truly breathtaking images:

Be sure to check out their galleries other than the Hall of Fame. It's definitely worth the time.

December 02, 2005

Movie quotes for $800, Alex.

Some movies I like, after one level of indirection. Use IMDb if you must, but that's the easy way out 1.

  1. Maybe I'm spending too much of my time starting up clubs and putting on plays. I should probably be trying harder to score chicks.
  2. Down here, it's our time. It's our time down here!
  3. Yes, it's true. This man has no dick.
  4. Remind me to make you an honorary blind person.
  5. Would you qualify that as a launch problem or a design problem?
  6. Look, we all go way back and uh, I owe you from the thing with the guy in the place and I'll never forget it.
  7. No, it is not dangerous to confuse children with angels.
  8. I can't fire them. I hired these guys for three days a week and they just started showing up every day. That was four years ago.
  9. Communism was just a red herring.
  10. Hey Albert? Good luck exploring the infinite abyss.
  11. There's someone out there for everyone - even if you need a pickaxe, a compass, and night goggles to find them.
  12. It's the truth that you should never trust anybody who wears a bow tie. Cravat's supposed to point down to accentuate the genitals. Why'd you wanna trust somebody whose tie points out to accentuate his ears?
  13. Goddammit, I'd piss on a spark plug if I thought it'd do any good!
  14. Hey, careful, man, there's a beverage here!
  15. I think I have it. A man talking sense to himself is no madder than a man talking nonsense not to himself.

1 Yes, I used IMDb but I wanted to make sure I got all the quotes right word-for-word. What are you going to do about it?

[Update, 4 Dec: I've struck out the quotes that have been correctly identified in the comments. Keep up the good work!]

[Update, 5 Dec: Only 3 left! They're the tricky ones, too.]

[Update, 10 Dec: Remaining answers are posted.]

Fly me home, Google

This is pretty neat... Check out the Google results from a search for "Seattle Cleveland":

goog-sea-cle.png

December 01, 2005

Obligatory pictures of snow in Seattle

or, "OMFG! There's snow in Seattle! WTF?!"

snow on the railing

(more here)

Words of software wisdom

If you're using malloc to instantiate a C++ class, I'd like to throw you in a sack and toss the sack in a river and hurl the river into space1.

Not knowing what an assertion is shouldn't dissuade you from being a developer, but not caring what an assertion is should.

Casting everything to Object is not the right way to fix compiler type warnings.

Comments can be used for purposes other than skipping over code that won't compile.

1 with apologies to Futurama 2ACV12, The Deep South.