Monday, April 30, 2007

Made it back...

Sorry to disappoint, Josh, but we made it back alive from our campout. The boys seemed to have a pretty good time with the actual camping, and other than a monster sunburn for me (left the sunscreen and hat in the tent, d'oh), we made it back unscathed. The camporee activities seemed fairly unorganized, though- there was a lot of, "uh, what are we supposed to do" at several of the stations. The other problem was that the whole thing was set up as an orienteering course- good practice for young scouts (each patrol got a different starting point and path through the stations). The big problem was that the fire-building station had been moved (without notice) after the maps and directions were printed. That was our first station, so we blundered around the park for nearly an hour (with the adults questioning our own map-reading skills after awhile) before we saw the smoke. By this point, everything was jammed up, there were a whole pile of patrols waiting (with no evident sign-in or ordering system, so lots of boys milling around making trouble), and everybody was pretty well frustrated right out the gate.

I think we were actually pretty well prepared for the camping- mealtimes went quite well, and the patio firepit was a big hit for foil dinners and s'mores. Nice weather helped a lot... I'm glad I was able to borrow a friend's trailer to haul all the gear, but I'd like to work on getting the pile a little more compact next time.

Maybe I can do this... Might not matter- I think I'm going to have one scout in my 11-year-old patrol next year unless a bunch of 10 year olds move in between now and then.

Friday, April 27, 2007

Getting ready to camp...

I've mentioned in previous posts that I wasn't a very outdoorsy kid. Someone must have an odd sense of humor- awhile back, I was asked to be an Assistant Scoutmaster to a patrol of 11 year old Boy Scouts (and "Assistant" is a misnomer- I don't currently have any dedicated help). Anyway, we're going on our first campout this weekend, and I'm a little apprehensive. My family's idea of camping when I was a kid was "drag the camper out to Detroit Lake", and the last time we did that, I was probably 8. I got a one night campout during the "outdoor leader skills" training back in November, but other than that, this is my first "real" campout... Luckily, a bunch of the kids' dads are coming along (some of whom are experienced scout leaders and outdoorsmen), it's a camporee (lots of other scouts around) and the weather's supposed to be good. Still, I've been running around like a headless chicken for the past few days trying to scrape all the equipment together and figure out what I'm doing. My dad and our committee chair have been very helpful and gracious with my ineptitude, though.

Anyway, if I never post again, it's probably because I didn't come back. ;^) Wish me luck. I'll probably post some choice pictures if I do make it back.

Sunday, April 22, 2007

Reality TV at work

I'm assuming this is OK to post, since it's already been blogged about by someone with readership much higher than mine. My employer has been selected as the possible subject of a documentary/reality TV show about day-to-day life at a startup. The film crew showed up on Friday at the warehouse to do some test filming, and if they can actually sell the show, they'd probably be filming us for ten weeks sometime this summer.

I've got rather mixed feelings about this.

First- I can't imagine that we're that interesting to watch. I guess maybe with enough time compression, our work could be made to look interesting, and of course it'd be interesting to have footage to look back on if we "made it big". The CEO's certainly a character, but as far as I've seen, most of the interesting personalities in our company are the folks getting paid ten bucks an hour to scan mail. There just isn't that much conflict on the engineering side, and I really hope it stays that way (though the thought of manufacturing a little Springer-esque conflict for the cameras is intriguing).

Second- having cameras around all day seems like it'd be a big distraction. Constantly gating your words, making sure you don't say something stupid, confidential, etc. Plus there's always the worry that others might really amp up small conflicts just for the sake of good TV.

I guess I'm hoping that if the project does happen, they'll find the engineering group too boring to follow around all day. Marketing people are much more exciting. Right?

More to come- maybe...

Thursday, April 19, 2007

That ADD streak strikes again

I've said before that I must have at least some ADD tendencies, if not a full-blown case. I'm a guy with pretty varying interests. If I'm not involved in several different "extracurricular" activities, I get bored. You'd think I would learn. My life seems to follow this cycle: I'm bored, so I sign up for something to do (an activity, group, help a friend with X, etc). Then I'll get another request and sign up for something else, and so on (hm, Thursdays are free- sure, I can do that)... Everything will be humming along smoothly for awhile- the calendar's packed, but minimal conflicts. Then all at once, there will be a period where all those different activities require something from me at the same time. The stress-o-meter goes through the roof, I curse myself for taking on too much, slog through 'til everything's done (often with spikes in my grump factor along the way), then take a much needed break. Lather, rinse, repeat.

I'm right in the middle of that crest where everything is beginning to happen at once. I really enjoy most of the things on the list individually, but when the "context switching" gets out of hand, I don't really enjoy any of them. It gets to the point where I just want to pull the covers over my head and sleep (wake me up when it's over!).

Here's my current list:
  • Being married (best keep this one first)
  • Working at a startup where there's enough work to keep a small army busy (and we don't have a small army).
  • Editing my dad's book on steelheading and the accompanying DVD (the publisher's been very patient, but the clock's ticking)
  • Trying to prep my Boy Scouts for their first campout next weekend and keep them on track for their advancements
  • Playing horn in the Oregon Symphonic Band (a regular gig- one of my favorites)
  • Hacking on the Optimus Mini Three SideShow driver
  • Helping a friend with some microcontroller programming
  • Moving my bathroom remodel along its asymptotic approach to completeness
  • Singing in the choir at church
  • Working on some family history research
  • Subbing in the Oregon Sinfonietta

That's just the "active" list- then there are all those little things that I'd really like to do (that will probably one day end up on the "things I'm cursing" list), like:

  • Finishing a bachelor's degree. I've been poking at finishing one of my three majors at OIT (a class here, two classes there), but I haven't touched it for three terms now. I'm hoping I don't get hosed by credits expiring- I'm only left with courses to challenge and a few GEs that didn't transfer right from Purdue. Won't make any difference professionally, but probably a good thing to finish.
  • Learning piano. I took piano lessons for a year in college and loved it, but never put in the practice time to make it worthwhile. Dropped at the end of one of the aforementioned cycles.
  • Learning to dance. A guilty pleasure my wife and I share is watching Dancing with the Stars. I know. I'm a tool. Ballroom and swing always fascinated me, but I've never taken the time to really get beyond shuffling and mumbling counts to myself.
  • Landscaping my yard. I bought my house over six years ago and the yard was pretty lame. Every year I've been "meaning" to do something more with it than go mow the weeds every few weeks. Apologies to my neighbors (though I'm not the worst offender here in that area- maybe I'd get to it faster if I was).

That's probably about a tenth of my "someday" list. New things show up all the time. Maybe if I'm smart, I'll read my old blog entries and remind myself not to sign up for so many things next time.

In the meantime, somebody wake me up when it's over!

Saturday, April 14, 2007

On the kindness of strangers...

I got my "break" into the software industry partially due to the kindness of a couple of strangers a number of years ago. It's difficult to say where I'd be now without that break. Maybe I'd be in exactly the same place, maybe I wouldn't. But lately it's gotten me to thinking of ways I could give someone else the same kind of break.

A little background:

Like many American kids, I was a bum in the summers. No school, just sat around watching TV all day, messing with a computer, consuming mass quantities of Vitamin J (aka "junk food"- it's a wonder I'm not diabetic). As soon as I hit eighth grade, though, my dad put a stop to that. We'd just moved to a new subdivision, and many of the neighbors didn't have landscaping yet. The ol' man wasted no time farming me out to do their bidding (I can't remember how many times I heard, "Hey, my kid will put in your yard and sprinkler system!"). Even though the pay was fantastic for a 14 year old kid, as a generally sedentary geek-type, I absolutely hated the work. My raging hay fever didn't help matters, either.

During one of those loathsome work sessions, my neighbor Jake was toiling alongside me in his yard. I think I was bellyaching about how much I hated working outside when he asked what kinds of things I did enjoy doing. Obviously, the computer stuff came up. "Hmm...", he said. "My brother-in-law owns a software company. Maybe you should talk to him- there might be something you two could work out."

A few phone calls later, I was sitting in a room talking with Bob Rasmussen of
Rasmussen Software. I don't recall the exact content of that conversation, but it ended with him offering me a job. As is the case at many small companies, my actual role had a pretty fuzzy definition that's difficult to slap a label on. While I was there, I had varying responsibilities for bookkeeping, QA, production script maintenance, janitorial, debugging, feature development, system admininistration, shipping, and so on.

At that first job, I learned a lot of great lessons about the software business by being invited to look over Bob's shoulder. The importance of customer service; developing a sense of "code smell" (he would often refer to hacky code as "not kosher," a phrase I continue to use today); formal design and debugging techniques, and so on. It was my first experience being around someone who truly loved their work- a feeling I've strived (and mostly succeeded) to replicate. I even got my first experience with being fired after a stupid mishandling of a batch of customer inquiries. All valuable lessons indeed- they have contributed to my success in this industry on a daily basis, and I'm sure the experience was a contributing factor to my landing an internship with Intel soon after, which was again a jumping off point for many other adventures. A heartfelt thanks, Bob.


The question I struggle with now is: how can I "pay it forward" and give someone else the same kind of opportunity? I've always enjoyed enabling my colleagues on difficult technologies, but that's not really the same kind of "break" that I got. Maybe I'll have a chat with computer instructors at some of the local high schools- it seems like there's always some star-in-the-making that outshines even the instructor and is always "bored" in those classes.

So, dear readers, how did you get your start? Can you pin early success in your field to the actions of a small group of people? And do you have any ideas for me on how I could give someone else the same chance?

Monday, April 2, 2007

Managed UMDF breathes!

It's alive! After a long night of stupid user errors, I have a do-nothing UMDF driver up and running that's completely managed. There's a tiny C shim that loads .NET and my driver assembly, and everything else is managed from that point. I was hoping to get the automatic COM activation support working (for a completely unmanaged-code-free experience), but alas, 'twas not so.

Having crashed the driver several hundred times getting to this point, I'm pretty impressed with the robustness of the UMDF reflector. There's a scary display flash sometimes when a user-mode driver fails, but the system stays up and everything is happy. I only BSOD'd once during the whole ordeal, and given the iffy hardware I'm running on, I can't necessarily attribute it to the UMDF reflector crashing.

Turned out the stack corruption I was experiencing was just a missing QueryInterface call right after I started the framework. I've been used to things just returning the right interface- casting that IUnknown* to an IAppDomainSetup* was, in retrospect, a bad idea. What's weird is that the DDK build environment won't seem to build me a PDB with everything for my stuff- I can't see a number of my locals while debugging (including the HRESULT I'm using all over the place). I'm sure it's one of the hundreds of makefile options, but I don't feel like tracking it down.

Anyway, the Optimus Sideshow driver is progressing well. If I get really bored, I might try and release the managed UMDF framework I'm building on its own. I don't know how useful building drivers in managed code really is, but we've found at least one case for it. I'm trying to keep this stuff generic enough that it could be reused without much hassle.

Oy- it's late. Gonna be a bleary-eyed day at the office tomorrow.