April 2006 Blog Posts

Coffee and Picture Frames

I ordered a copy of Tomb Raider: Legend a while ago and it came in the mail last night. It also came with a lithograph (reads: picture printed on cardstock) of the image from the cover of the box, which is pretty cool.

While Jenn and I were out last night I picked up the "el cheapo" frame at Jo-Ann for $2 so I could put it up in my cube and have something to hang it by (I'm not a big fan of poking holes in my pictures, so the frame basically serves as a picture hanging device).

I got it all the way to work and started getting out of the car with it this morning when I realized my hands were pretty full - coffee, computer bag, name badge, picture... Should I put something down or make a couple of trips? Nah...

...at which point my coffee decided to spill out the travel mug and all over the picture.

I'm not sure if you've ever had coffee inside a picture frame (like between the picture and the glass), but that's a bitch to clean up. Sticky, greasy... ugh. Nightmare.

Everything came out fine in the end (no big deal if it hadn't, but it's nice when there's no loss). Maybe next time I'll put stuff down or make two trips.

Or maybe I'll just keep on doin' what I'm doin' and screw it up again. Which is more likely?

24: Season 1

I hadn't seen the first season of 24, so this past Saturday my dad brought it over, Stu showed up, and we had another 24 marathon.

Once again, well worth the time spent. I can see totally why the show took off. Great cast, great writing... it doesn't get much better.

It also showed me how they reward long-time viewers: if you watch carefully, you can see peripheral characters from previous seasons show up in later seasons with larger parts, tying things in together nicely.

My dad ended up loaning Stu the second season so he can catch up, which is cool. That's where I started. Stu also apparently had the weird 24 surreal after-effect I had after my first marathon where he just had to call Jack and tell him about the bomb on the plane at 3:00a. Funny, but understandable. Heh.

Dad says the fifth season is the best yet, so I'm excited for this fall when it comes out on DVD.

IIS 7 Has Great Features Coming

Scott Guthrie has a great article about some of the IIS 7 features coming in Windows Vista and Longhorn. Included:
  • HttpHandlers and HttpModules can participate in any server request, not just for .NET apps.
  • ASP.NET configuration system integrated into IIS (web.config for all apps!).
  • Admin GUI that combines administration of IIS and ASP.NET settings.
  • Better error auditing/debugging through a new system called "Failed Request Event Buffering."
  • Vastly improved APIs (check out the example of the simplest program ever that can enumerate the worker processes and current requests). Check this out for more on the API updates. Bye bye, WMI!

I'm stoked. Seriously. All of this stuff is going to make the ASP.NET world so much easier to work in. I've already started shooting emails off to folks around work about ways we can leverage these things.

Zuma!

ZumaMade my first purchase on the Xbox Live Marketplace last night. Bought the game Zuma, which is sort of an addictive little puzzle game.

I'd only played it a couple of times before - once on the computer, once on the demo version for Xbox 360 - but I fired it up after buying it for 800 "Microsoft Points" ($10) and ran at it for a little over an hour. Thought I was seriously kicking ass until I saw that I ranked like 20,000th or something. Hmmm.

Jenn played after me. Jenn is a Zuma whore. Her Zuma addiction is not unlike that of a heroin junkie. She did pretty well, better than I did (ranking like 13,000th or something).

So glad I paid $600 for a Zuma 360 - a very expensive, high-definition, Zuma-playing device. I anticipate she'll be on that when I get home, her very soul lost to the chanting demons of the game, eyes blurry, hands aching, just needing one more game.

Xbox Live Joined

I joined Xbox Live since the Silver membership is free and they give you a free month of the Gold membership, just to try it out. Added my gamercard to the site over in the navigation section, and I even already have a Friend. I realize I'm like a week late and several dollars short on this, but I have to hand it to Microsoft - they did a pretty snazzy job getting the network thing set up. I don't anticipate I'll be entering into any online tournaments, but just so I can play against folks I know I'll probably chip in the $50 a year for the Gold.

I noticed that Xbox 360 shows your wireless controller battery level on the dashboard and mine's already getting low. It's looking like you can get about 12 hours or so of play from a set of double-A batteries. (I haven't actually run out of juice yet, but given the rate it's going, that's the amount of time I'm guessing I have.) As such, I cashed in some gift certificates that have been piling up and got the quick charge kit, a second rechargeable battery (the charge kit comes with one), and, while I was at it, Tomb Raider: Legend. That should be here shortly. In the meantime, I'll probably have to pop some new batteries in so I can continue riding the walls around the track in Project Gotham Racing 3. (I totally suck at that game. I think I might have beaten one or two things on "normal" mode, but the rest? Easy mode, baby.)

I joined Jenn up to Xbox Live, too, at the Silver level, so she can go buy little games and stuff from the Xbox Live Marketplace. She's addicted to those damn Pop Cap games, and what better way to play them than in high definition, right?

Easter 2006

Easter's come and gone in a massive storm of nonevent. Not that I was really expecting much to happen, so I suppose my expectations were entirely valid.

Stu's last day at Corillian was Friday, so a small group of us went to Newport Bay for happy hour where we got cheap food and crappy service for an hour or so to celebrate Stu's liberation. Jenn and Tif got together for a girls' movie night, so Stu and I played some Paper Mario.

Saturday was a clean-up-around-the-house day where Jenn and I finally got to a lot of the errands and things we'd been putting on "the list" for the last couple of weeks. Random stuff - shopping, cleaning things, putting things away, etc. Nothing too exciting there, but it was good closure on things that needed to be done. After we finished with the chores, Jenn and I spent some time playing Project Gotham Racing 3, where I thoroughly determined that I'm pretty much no good at it but still have fun playing.

Sunday was a pretty lazy day, and I suppose that's how it should be on Easter. Jenn and I went to breakfast at Biscuits Cafe, which is really good. I had sweet potato pancakes, heavy on the "cake," light on the "pan." So tasty, yet heavy - like eating a gold brick baked in spice. Also had some eggs, hashbrowns, and bacon. Just doesn't get better than that. Fell into a food coma about 10 minutes after leaving.

I spent a couple of hours reading comic books that I'd purchased but never quite got around to reading, then Stu came over and we finally finished Paper Mario (clocking in at about 40 full hours of play). Jenn whipped up some Indian food - chicken in a spicy ginger sauce - and we all sat and watched SNL: The Best of Phil Hartman, where Stu was given a lot of US pop culture reference in one big dose.

Now it's Monday, and frankly, I'm bored. Stu's no longer over the cube wall from me, and while it's not a showstopper or anything, he did sort of keep me sane around here.

Amazon Associate DHTML Image Tooltips 2.0 Released

The new version has some pretty major restructuring and does lots of stuff better to allow for a more peaceful coexistence with other scripts:

  • Converted to "object oriented" JavaScript to avoid name clashes.

  • Fixed minor bug with positioning in newer browsers.

  • Safely attaching to all events (thanks to Phil Haack for this).

  • Updated so script is placed in HEAD of document.


  • Go get it!

    Convert Chars to Unicode Hex

    A minor follow-up to my JavaScript and Unicode Character Validation entry (and sort of a reminder to myself):

    Sometimes when working with characters in regular expressions it's nice to be able to dump one or more characters as a line of Unicode hex escape sequences. For example, abc becomes \u0061\u0062\u0063.

    Here's a quick snippet for a console app that will let you input a series of characters and will dump out the list of characters entered as Unicode hex:

    using System;
    public class DumpHexChars{
      public static void Main(){
        Console.Write("Enter chars to convert to Unicode hex: ");
        string chars = Console.ReadLine();
        string output = "";
        for(int i = 0; i < chars.Length; i++){
          output += String.Format("\\u{0:x4}", Convert.ToInt16(chars[i]));
        }
        Console.WriteLine(output);
        Console.ReadLine();
      }
    }

    Xbox 360

    Went to Target at lunch yesterday and saw they had, not one, but three of the Xbox 360 premium boxes in stock. Decided to wait until the next Tomb Raider came out before I picked it up.

    Promptly returned after work and purchased it. Also got a second controller and Project Gotham Racing 3.

    Hooked that bad boy up to the ol' LCD TV when I got home and fired it up.

    It's awesome.

    Jenn and I raced for quite some time and determined that it's hella fun, but neither of us are really any good at that game. It doesn't make it less fun, we're just used to games like Burnout where the driving is vastly more arcade-oriented. It'll just take a bit of practice, is all. The cool thing is that the two player [on the same screen] is so clear - it's not like the other times we're playing where you struggle to see where you're going. The benefits of higher resolution, eh?

    I didn't join Xbox Live yet because I need to get the wireless network adapter (no network drop in that room), but once that happens, I'll be in business.

    I'm also looking forward to checking out some of the media capabilities. I've heard a lot about it; time to try it out firsthand.

    Now I need to convince Stu and my dad to get one and we can all play together.

    Cable Phone

    Got the cable phone hooked up on Saturday. Decided that we were tired of shelling out to Verizon for what has thus been sub-par service and that we'd go with the ol' Comcast phone because we've always had good luck with their service and it's actually cheaper for what we end up getting, all told.

    While the guy was there he put in three new cable outlets (because not all of the rooms in the house had them... still not all of them have one, but I think there's only one room that doesn't that really might need one). That was cool. Plus, due to the new outlets, I can now put the cable modem right down next to the computer and connect directly to the network. Previously I was having to connect through wireless because, well, no cable drop was in the office. I'm movin' up in the world, people!

    Sunday I spent the day playing Paper Mario with Stu, which was hella fun since it'd been a couple of weeks since last we played. Made some good progress there and also tried the Papa John's "Kong-Sized Pizza," which was pretty ridiculously giant and filled us up nicely.

    I would probably be remiss in not saying that there are a couple of friends of mine that are going through some hard times right now, so time was spent with them during the weekend as well. I won't say more than that, since it's not my place, but I hope they're doing well and will continue to support them as needed.

    Less serious: just found the Red Dwarf 8 DVD is coming out soon, and there's a limited edition with a motorized scutter toy on it. Preordered!

    Finding Duplicates in RESX Using XSLT

    Hanselman pointed out to me yesterday that Dan Suceava posted a VS add-in that finds duplicate RESX items by ID and prints out the duplicate names in a report.

    Now, I'm all over VS add-ins and adding cool functionality to the development environment, but this feels a lot like overkill to me. I admit I didn't go download the thing because, as neat as it sounds, it occurs to me that you could just jam a 10 minute XSLT together and find out the answer that way. (And who knows - the add-in may be doing just that.)

    So, for those interested, here's a quick-and-dirty XSLT that will go through a RESX file and print out a list of duplicate resources by ID along with a count of how many were found:

    <?xml version="1.0" encoding="utf-8"?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
      <xsl:template match="/root">
        <xsl:for-each select="data">
          <xsl:variable name="dataName" select="@name" />
          <xsl:variable name="currPosition" select="position()" />
          <xsl:variable name="numDups" select="count(/root/data[@name = $dataName])" />
          <xsl:variable name="numBefore" select="count(/root/data[@name = $dataName and position() < $currPosition]/@name)" />
          <xsl:if test="$numDups > 1 and $numBefore = 0"><xsl:value-of select="$dataName" /> (<xsl:value-of select="$numDups" />)&#0013;</xsl:if>
        </xsl:for-each>
      </xsl:template>
    </xsl:stylesheet>


    A sample report might look like this:
    ResourceID1 (3)
    ResourceID4 (2)
    ResourceID7 (4)


    Used in conjunction with a command-line tool like nxslt, you're set - specify your RESX file as the input XML, and the above as the style sheet. Done!

    Anatomy of a Good Question

    Another thing we learned in my peer mentoring class was that there are such things as stupid questions.

    That sounds bad, but let's look at that: what constitutes a stupid question? Well, if you flip it around, what constitutes a good question? A good question is one in which the person asking the question has really thought the question through, they've tried to answer it themselves, and they have a good grasp on what they're asking - they've put some effort into the formulation of the question. So, then, a stupid question is when the person asking doesn't think at all about the question, they just blast it out there.

    What shows me that you've thought about a question? That's different for different people, but when you ask me a question, especially if it involves me having to stop what I'm doing to answer, here's what I want to know:
    • Priority: Is this super-urgent, or are you just asking out of curiosity? If it's not crisis level and I'm busy, maybe you should save it for later.
    • Time To Answer: How long do you think it's going to take me to answer? More than two or three minutes (from the time you start asking the question to the time I finish answering) and you might want to block off some time in Outlook.
    • Concise Description of Problem: Can you ask the question in one or two sentences (including enough context to make the problem understandable)? If not, stop and think through what you're asking.
    • What You Expect: What are you looking for from me? Advice? A technical direction? Just someone to vent to?
    • Who Else You Asked: If you asked other people the question first, are they still working on it? Did they give you any additional information?
    • What You've Done: What have you done already to try to answer the question yourself?
    • When You Need It: Do I have to answer right now or can I get back to you?

    Much of this goes hand in hand with the use of correct communication protocol. If you bug a person too much and/or in the wrong fashion, you're not going to get a great response.

    I'll also throw out two more tips, specifically for people asking me questions:
    • Do not start your question with "I have a quick question." I'll determine if it's quick or not based on the amount of time you think you need. Instead, try "I have a one-minute question" or "I have a two-minute question." Make sure your time estimate is accurate - don't say you have a two-minute question if it's a fifteen-minute question. Don't tell me you need one minute when you really need five.
    • Do not show up and drop your laptop on my desk. I know you may want me to review some code or look at something. The fact that you had to bring your laptop over already tells me you're over the one-or-two-minute limit on drop-in questions and you need to schedule some time in Outlook. Nothing is more frustrating than "*bam* Hey, can you look at this?" Seriously.

    I think I'm going to try this out on a larger scale. If folks at work have questions, I'm happy to answer them, as long as they're good questions.

    Continuing Gaming: Alhambra, Give Me the Brain!

    Continuing our foray into new board games (and following some recommendations from readers/friends), we went to the game store on Saturday and picked up a copy of Alhambra.

    The four of us (Stu, Tif, Jenn and I) had a pretty good time with it. The object is to buy tiles that you place in a city. Each tile is of a different type ("tower" or "garden" or whatever) and scoring is based on who has the most of any given tile type ("I have the most towers, so I get X points; you have the most gardens, so you get Y points"). The mechanics were pretty easy to learn and after the first couple of turns folks seemed to get it pretty well. I liked the way turns were broken down and the way you lay the tiles to build your city, but I wasn't too thrilled with the expense of rearranging the tiles in your city. For example, I can either remove a tile from my city, add a tile to my city, or swap a tile in my city for one in my reserve board (sort of a "holding area" for tiles). But I can't take a tile from one place in my city and move it to another place - I'd actually have to remove the tile and place it in my reserve on one turn, then spend the next turn placing it elsewhere. I think there should be a "move tile" option.

    Other than that, like I said, it went over pretty well and I look forward to playing it again. We only got one round in that night.

    Tiff also picked up a couple of games, both by Cheapass. The first was Kill Doctor Lucky, which we didn't have a chance to play, and the other was Give Me the Brain!, which we did play.

    Give Me the Brain! is a card game that takes about 15 minutes to play through. The idea is that you're all zombies working in a fast food joint and there's only one brain (represented by a six-sided die) amongst you. The object is to get rid of all the cards in your hand, but certain cards require that you have the brain in order to play, so there's a round of bidding to see who gets the brain followed by a round of card play where each person tries to complete "jobs" by playing cards. Each "job" causes some sort of consequence to occur (like someone else will have to draw a card). What makes things interesting is that there are a lot of "perpetual cards" (with things on them like "give this card to the person on your right" that will never actually go out of play).

    It took a while to figure this one out because the rules are written in a sort of confusing fashion (plus it was getting late), but once we played a game through we figured it out and were able to play a second pretty easily.

    It's an okay game, and I'd like to give it another shot because I don't think it got a fair shake that late at night, but it is fairly quick and not too deep, so if you're looking for something to while away a rainy afternoon, this probably isn't it... but if you've got a group of friends who maybe aren't entirely sober, this could be pretty fun.

    Cake Tasting and Dress Trials

    Saturday was cake tasting (and decision making) day, so Jenn, Stu, Tif, and I all went down to JaCiva's to decide what kind of wedding cake we're going to have.

    Pretty much anything JaCiva's makes is awesome (which is why we went with them), and after some tough decision making, we're getting a four-tier cake that serves 125 and breaks down like this:
    • First tier (bottom) - 14" - Chocolate Fudge cake with Bavarian Custard filling
    • Second tier - 10" - Pink Champagne cake with Strawberry Preserves filling
    • Third tier - 8" - Poppy Seed Pudding cake with Raspberry Preserves filling
    • Fourth tier (top) - 6" - Pina Colada cake with Pina Colada (pineapple, coconut, and rum) filling

    The style is called "Chocolate Flow." Each tier is iced in white and then dark chocolate is poured on top and allowed to run slightly down the sides, creating a nice flowing effect. It has red icing roses with silver leaf petals on each tier that accent nicely against the dark brown and white cake. Beautiful (and, in fact, reasonably affordable).

    Sunday Jenn and Tiff met up with Jenn's mom and sister and they picked out bridesmaid dresses. I haven't seen the dresses, but Jenn assures me that they look great. I have seen the shoulder wrap portion of the dresses, and the red that Jenn chose is gorgeous. It's going to be great.

    That said... Jenn went back with Tiff to see how things would match up with her dress, and looking at the dress it turns out there are some holes in it that Jenn didn't see when she first purchased it. She got it from a charity event for a steal, so it's not like there's a whole load of money out the door, but she really loves the dress and now she sees that someone must have torn some of it when they tried it on or something, which sucks. Now she's going to talk to a bridal shop and see if it can be fixed. If not... well, looks like she'll be dress shopping again. That would suck because, like I said, she loves the dress, but she's like me: just "repairing it" may not be enough - you know it wasn't perfect at one point, so it's going to bug you.

    I told her we should call her dress "Distort-o-Dress" after the TV incident that ended up causing me to get a new big-screen TV ("you only see it if you're looking for it, but since you know it's there, you always see it..."). That got a smile, which I'm glad for. It'll all work out. At least we caught it early, right?

    Diary of a New Coffee Addict

    Stu kills me. It's always all-or-nothing with everything he does.

    Like, every three months or so, he decides he's not drinking soda anymore, he's just going to drink water. So he'll do this cold turkey thing for a week or so, then slide into just having some juice or lemonade or something every once in a while. That lasts a couple of days until he moves to diet soda of some nature... which also only lasts a couple of days until he skips directly to the Mountain Dew. If they had Jolt at work, he'd probably have hit that long ago.

    That cracks me up - he can't just stick on the diet soda or maybe something a little lighter, he goes right from water to the Mountain Dew. If the guy was a poker player, he'd have a pair of twos and go all in.

    The latest Stu craze is coffee. Up until about a week ago, Stu had never had a single cup of coffee. When you offered him one or urged him to try it, he'd politely decline. Not sure why, whether it was that he didn't think it'd taste good, or that it didn't sound good, or something else. He just wasn't interested.

    Somehow last week Sara broke him down and got him into a Starbucks. Hoo boy. Here's kind of how it went last week:

    Tuesday: Went to Starbucks, had first coffee. Pretty good! Going to have to try this again.
    Thursday: Went back to Starbucks after work, this time with Trav and Jenn. Had a mocha. Fantastic!
    Friday: Went to Starbucks at lunch. Decided I need to try one of everything on the menu. Started at the top with the standard "cup of coffee." Will work through all specialty items.
    Saturday: Stopped in at Bed Bath and Beyond as well as Fred Meyer to look at coffee machines. Did you know you can brew this in your own home? Brilliance! I must have one. Found one that appealed to me, but decided to do a little research before committing.
    Sunday: Went back to Bed Bath and Beyond and picked up a nice coffee machine. Trekked past Starbucks for an "official" travel mug because the ones at Bed Bath and Beyond, well, they don't quite profess my newfound love of coffee the way it needs to be broadcast. Also stopped by Fred Meyer and ground me up a couple different types of coffee (roughly two pounds worth - I anticipate tearing through this like it's going out of style). Can't wait to get this stuff home and set up my shrine to the coffee god. I have a tatami mat that will sit perfectly in front of it, and I can face the whole thing to the east so I can see the rising sun as my fragrant new coffee brews to perfection. Next stop, self-actualization!

    I won't lie - I can't say I didn't egg him on just a little bit. It's kind of fun to get swept up in Stu's waves. I mean, it did lead to bongos before, so I'm curious to see where this one will go. Sara, you've created a monster.