Hello, nosey people!

In the process of updating my résumé, I realized that in this increasingly Facebook-social-networking time, people might very well take the presence of a personal domain in the email address of an applicant as an invitation to look at their life.

Go ahead. Feel free. I mostly write about my cats, it seems, and I haven’t had a chance to update in over a year.

For the record, my cat is awesome. I’ll take a 5% pay cut in exchange for being able to bring him to work with me each day (not really).

(I’ve also managed to accidentally trash my theme while trying to update my WordPress installation… but really, you shouldn’t be thinking about hiring me to do visual design, anyway. You should hire Albert Lee of Yellow Devil Designs.)

Random Notes From a Random Day

  • Passing a bus on a highway is easy. Trying to pass a bus before you get to a particular exit can be more challenging.
  • The vending machine supply company has caught on. We now have two full rows of chocolate-frosted Hostess Donettes in our vending machine. The one half-row sold out every week.
  • The generic burn-aid cream in the first-aid kit in the kitchenette smells funny.
  • The largest sterile gauze pad in the first-aid kit in the kitchenette is just about the right size for the burn on my left forearm.
  • Running a 5k after only two weeks of physical therapy requires me to make an increase in the quantity of ice packs we own.
  • Watching Doctor Who lends me a weak British accent at random points throughout the day.
  • I have two lunch meetings tomorrow. I’m going to eat at the first one (with a friend), and perhaps snack at the one featuring my new boss.
  • Mandrina shaved four minutes off her 5k time in her first race on Saturday. I added four minutes to the time from my last race. The universe likes balance.
  • The single-serve “iCup” vending machine in the kitchenette provided a hot-cocoa tease today. It cycled, and then… nothing. I used the other iCup machine, and got my cup of coffee.
  • I have a lot of work to do this week.
  • I have now almost set up a photogallery so I can upload any of the oodles of pictures I’ve taken over the last five years.

Powershell Powers, Activate!

Yesterday, I had a problem to solve. I didn’t want to stay at work until 9pm, waiting for another team’s process to publish a file. (Grossly simplified, but you get the idea). I also didn’t want to log in from home at 9pm in order to wait for it to happen (I did that the night before).

So I used Powershell! Could I have used a batch file? Of course! However, I know with Powershell I can just chain commands together via a semi-colon.
I searched for “Powershell sleep”, and saw immediately that there was, in fact, a Powershell sleep command: start-sleep.

My final commandline:
start-sleep -s 7000 ; GetFileCommand ; msbuild /t:clean,build

And I could just walk away, knowing it would be waiting for me when I got into today.

(That didn’t happen, but it was unrelated to the Powershell issue.)

However, that wasn’t my only use of Powershell yesterday. The MSBuild Project system defines a build through a series of linked .XML files. I uncovered an issue where a particular task wasn’t being completed as I expected. I could, through the wonders of “Find”, locate where I EXPECTED the work to be taking place, but in a 10,000+ line XML file, scrolling upward to find the parent is not entirely pleasant.

So I used code.

I read the XML into an XML object, then found the tag I was looking for. I then got an XML Navigator object for where I was in the document, and walked back up the tree until I found something identifiable (it turned out I was screwed). All told, it took me less time to puzzle out (via get-member) how to do so under Powershell than it would have taken for me to write a real program, or to find it by hand.

Here’s the entirety of what I wrote:
$xmldoc = [xml] [string]::join(“`n”, (gc -read 10kb Native.Build.targets))
$xmldoc | get-member
$xmldoc.GetElementsByTagName(‘Internal_LinkOutputFile’)
$xmldoc.GetElementsByTagName(‘Internal_LinkOutputFile’) | get-member
$xmldoc.GetElementsByTagName(‘Internal_LinkOutputFile’).Item(0)
$xmldoc.GetElementsByTagName(‘Internal_LinkOutputFile’).Item(0) | get-member
$nav = $xmldoc.GetElementsByTagName(‘Internal_LinkOutputFile’).Item(0).CreateNavigator()
$nav
$nav | get-member
$nav.MoveToParent()
$nav
$nav.MoveToParent()
$nav

There was an awful lot of get-member calls, but I didn’t need to know ANYTHING else.

Yay Powershell!

Everyone makes mistakes

I had a problem with a piece of code last night. An apparent infinite loop without apparent cause. Because I’m working on in-development tools, though, I couldn’t even go to disassembly.

I sat and stared this morning at the offending code, knowing I must be missing something.

I finally went down the hall to grab Nathan (I like Nathan. He’s bright and hard working, and he laughs at my jokes. Good man.). He isn’t as experienced with C++ as I am, but my experience wasn’t helping me. Besides, it was a problem with a bloody for-loop.

Nathan sat down, complained about what I named the function, and then point out the error. Less than two minutes.

Can you see the error?

for (GenericParam* Param = StartOfListOfParams; Param; Param->GetNext())

I feel a little dumb, but vindicated for my position on code reviews, especially for my own code.

Edit 08/11/07 11:28am: Added a space.

Patience is a virtue and other lies

So after a coworker came in today to tell me how dreadful this year’s budget for raises and bonuses is, my lead followed me out of the standup meeting where I had just given him a hard time to tell me he wanted to finish one review before the end of the day.

Mind you, it’s 4:10pm when he talks to me. So since then, I’ve been “working,” all looking forward to my suddenly forthcoming review.

I know I did some rather good work in the last year, but the rumors I have heard have indicated that I should expect little, if any, financial reward — and no, I’m not in it for the money, but it doesn’t hurt. =]

He told me he would be ready around 4:45. Well, it’s now almost 5:30. He came by around 4:45 to tell me he wasn’t quite done. Which was fine, as I had had Mandrina ask me for a bit of assistance via voicemail while I was in the meeting, and then received a phone call from the police regarding the aforementioned PayPal spot of bother.

And I’m still sitting here. Still waiting. I have to leave here at 6:30 to make my bus. No stress. No sirree. In the back of my head, though, I remember people being fired at the end of the day on Friday, as they’re less likely to make a fuss. Fortunately, it’s Wednesday…

What do you want your Server do?

Partially as a learning exercise, and partially because I’m a money grubbing greedy bastard, I’m trying to come up with a clever extension to Microsoft Windows Home Server.

Unfortunately, I already had pretty much everything I needed on the base installation; I had originally installed it purely to have a system I could hook up my parallel printer to. It already supports remote desktop to systems within your local network, as well as remote access to files on the server via secured login. Heck, it even provides dynamic DNS service, complete with chained certificates for secured access. Nice, huh?

I figure most people out there do NOT have WHS installed. Probably have no need for it. So, why don’t you let me know what would make you want a Windows Home Server? If you have one, what feature do you wish it had? If you could have your own personal secured web server, what do you really wish you could do on it?

Last time, on Star Trek: The Next Generation

(Hey, Abigail, shouldn’t that be lower-case-t-the?)

I am slowly losing my mind. For all of you who were previously convinced that I had lost my mind long ago, I am sorry to be the bearer of bad news.

First, the happy stuff:
For our one year wedding anniversary, Mandrina and I had chaos with a side order of fun. She had auditions both the day of our anniversary, and the next afternoon. The plans I had made for doing something ON our anniversary were therefore curtailed. Instead we had dinner at the Hunt Club in the Sorrento Hotel, and spent the night there. It was charmingly updated — the rooms had obviously not been originally designed to have the modern accoutrements of hotel living, such as a television, or electricity. Wire ran in visible metal conduits along the walls. Please don’t misunderstand, they were subtle. It was just a reminder that we were in a century-old hotel. Dinner was lovely; compared to the usual “cuisine” Mandrina likes to subject me to, I was in fact able to make a complete meal from the menu options. The wine was wonderful, but the port was just too much alcohol. The free chocolates were nice, though.

Since Mandrina had been busy right around our anniversary (she was cast, of course — “Oliver” at Shoreline Community College), we went to Vancouver the following weekend. There isn’t much to tell — more food was eaten, the hotel room was rather nice. We didn’t get to do much in the city — just lazing around was plenty eventful, although I did start going stir crazy. The one neat thing is that the hotel has two dogs “for rent.” Mandrina and I signed up on Saturday to take Beau for a walk on Sunday afternoon right before we left. Mandrina was surprised that I could hold a lead on a dog appropriately, but then I made Beau hate me because I made him run with me. Just a brief sprint back and forth, but he’s a dog, golly darn it! He repaid me by pointing out why dogs are taken for a walk.

Let’s see, other good stuff… Mandrina and I were invited (along with some others) to our most recent newlywed friends. Food and company were likewise good. Jonathan introduced me to Powershell. I had bumped into it before, but Jonathan showed off for a while, and I was impressed. I’ll probably write about it at length at some later juncture (currently, it’s installed on the two machines I use most — it’ll probably end up on the rest of them as well). Mandrina and I are watching all of the Lord of the Rings (Director’s Cuts). I got to see a bunch of people when I helped Xaandria move (sorry, too lazy to link to everyone. See my Vegas post, at least the girls get mentioned there). I get to go home every night to love and affection. Well, okay, I get to go home every night, and my wife is happy to see me, at least. The cats, well, are cats.

The bad stuff can wait until later.

I’m alive!

Promise. I’m just… busy? After two months (three?), I’m pretty sure that “I’ve been busy” loses something of its validity. However, I’ve been too busy to look that up.

I do have some neat stories to relate; most of them (judging by the fact that I still haven’t said anything about our honeymoon, and we’re now nearing the one-year mark) will probably never be told. The important highlights… Mandrina and I both won National Novel Writing Month (again); Mandrina’s birthday gift involved French food cuisine and bottle feeding 6-month old tigers at Cougar Mountain Zoo (we now go back almost every week — the tigers remember us, and come to sniff at us and “chuff.” It makes me smile like an idiot, and we’re on a first name basis with half the keepers. There are pictures, don’t worry.); Mandrina and I celebrated our first married Christmas snuggled up together in Everett — and were beseiged by cats who were fascinated by curling ribbon; and other stuff. A lot of other stuff.

I don’t have much time (obviously, see “busy,” above), but I figured it was better to quit stalling and put up a status before much longer. Otherwise, I’d become as bad as Mandrina.

SO! I’m working on something I can’t tell you about at work. It’s very hush-hush, but high visibility, so that’s good… except I’m going out of town for a week (on work-stuff).

To that end! I’ll be in Boston!!!! For three nights, admittedly, but still. I contacted everyone who I’m sure would want to see me AND that still lives in the Boston area — if I don’t know you’re in those categories (or I lost your phone number/email address when my computer died and I reformatted my phone — no joke, bad timing), send me a note! I still have some slots open in my schedule.

Immediately following that trip, I’ll be headed to San Jose, California, for the Office Developer Conference. It’s rather a nice privilege (I’m the only non-customer facing rank-and-file employee going from my team), but there’s a bit of pressure. Dress code, talk to customers for hours every day, be surrounded by my new managers (Did I mention the re-org at work?), miss wife, miss cat. Apparently there’s heavy drinking involved — fortunately, I only do sophisticated drinks that don’t make me drunk (if I can manage to expense a Johnnie Walker Blue… Ooooh… that’ll be a good night!).

So, that’s my life. Work. Wife. Cats. More cats. Some trips. Some more blog posts so I can link to adorable pictures and videos of Taj chuffing at me.