August 2005 Blog Posts

Trip To Devscovery: Day 2

We're nearing the end of day 2 of Devscovery (I'm in the last lecture of the day now) and today has been quite a bit better than yesterday.

I spent the first half of today (two lectures' worth) listening to John Robbins talk about debugging applications. That was really, really good. I learned quite a bit of useful information and some pretty keen tips and tricks that I'll be able to use to make my daily work more productive. Even better than the fact I was psyched to learn that stuff was the fact that Robbins was on top of his presentation. The slides complemented what he was saying. Any time I felt like there was something I should write down I found that on the slide in the handout. Excellent demos, great information, interesting anecdotes - it doesn't get better than that. We even got done with 15 minutes left at the end for questions.

The second half of the day has been spent in lectures about threading in applications. Some of that has been interesting, some of it has been boring. The speaker knows his stuff, but the guy just can't stick to the schedule. Also, I don't know if it's just that the material is dry, or maybe if I've reached my limit for the day, but I'm sort of tuning in and out of this one.

At the end of the day, we're going to get a chance to go buy stuff at the Microsoft company store. That'll be good. Last time I was there I was able to get a few pretty cool shirts and some bargain software. Looking forward to that.

More annoyances about the structure of this thing: There are three major events going on at the same time in the same corridor in the convention center we're at and there are enough people that, well, it's confusing as hell. Everyone is dressed identically, there are identical tables of food running up and down the hallway, and the whole thing is pretty much chaos. Stu got told off when he was trying to get food because apparently that food wasn't for us. What a load of shit. All the food is identical. I was offended.

Also, my wireless access here keeps getting dropped. I notice that it's happening to the presenters' machines, too, though Stu hasn't been afflicted. Come on, though - dicey wireless?

More for the feedback form, I guess.

I think we'll probably have dinner at Red Robin tonight. There's one sort of close to the hotel, and I'm not much for trying out new food.

Trip To Devscovery: Day 1

Got to the keynote this morning slightly early to get through registration and whatnot. They gave us binders with printouts of the slides, which is cool, and CDs with the sample code on them. They gave us 64 MB USB thumb drives, too, which made me think a few things: First, why only 64MB? I can go to Fry's and get a half gig USB drive for pennies - what am I going to do with 64MB? Second, why hand me a CD with the source code on it and a thumb drive on the side - why not put the source code on the thumb drive so I don't have all this extra crap to cart around?

Common sense aside, I guess I can't really complain so much. Maybe.

The keynote was pretty decent, but it ran like 20 minutes over, which, of course, threw off the scheduling for the whole rest of the day. That was pretty irksome because later on in the day there were lectures where we didn't get to hear everything due to the time issue and we missed stuff I'd have liked to have heard.

The first lecture I went to was on garbage collection in .NET. Most of the stuff in there I had heard, but they went through an interesting bit talking about how garbage collection is handled differently in debug builds vs. in release builds. Apparently references to objects are held longer in debug builds in the event a debugger needs to attach to the assembly. That means garbage collection can't release memory for all the objects it needs to until the end of their scope, even if they're not used anymore. That has the possibility of eating your lunch, methinks. Release builds don't have that problem since the optimizations for garbage collection are in place.

The second lecture was on what's new in ASP.NET 2.0. The majority of it was spent on DataSource and GridView/DetailsView stuff which, unfortunately, I had already seen. Toward the end they started getting into the Wizard control, some of the user profile stuff, dynamic navigation, and the things I was interested in... but because of the messed up time issue, we didn't get to see all of that before we had to go to the third lecture.

The third (and final) lecture of the day was on making dynamically extensible applications in .NET. I learned quite a bit there about how servers host applications (sort of like how IIS hosts .NET apps) and there was a lot of low-level discussion on creating AppDomains and instantiating objects from one AppDomain into another. Interesting academic discussion, but I'm still having difficulty figuring out how I might be able to apply some of that in my current work. After the AppDomain discussion we got more into the sort of app extensibility I'm used to - plugins through Reflection. Again we ran into a bit of a time crunch and didn't get to hear about as much of that as I'd have liked. Interesting stuff, though.

So far I'm a little disappointed. The planning seems to have gone a bit awry, which is unfortunate, but more than that, I haven't really gotten jazzed about anything in particular that I've heard so far. I'm also having a difficult time determining what the intended audience is for some of these lectures - some of the material is pretty beginner/intermediate stuff and some of it is really low-level advanced stuff. It'd be nice to know ahead of time which lectures were addressing which crowds so I could determine my attendance accordingly.

If/when we get feedback sheets to fill out, I'm going to put that.

After the lectures I went and bought a cheap plastic cup at Rite-Aid because I don't trust the cups they have available in my odd kitchenette here at the hotel. (They don't have disposable plastic cups like every other hotel I've ever been to.) Also got some bottled water for the drinkin'. Had dinner at Qdoba, and now I'm a-bloggin'. Stu and I will probably watch some movies and play some PS2 before retiring for the evening, ready for a new day.

CR_JoinLines - Join Lines in Visual Studio Code Editor via DXCore

UPDATE: CR_JoinLines has found a new home with the DXCore Community Plugins project. Head over there to get the latest and read more!

I use TextPad for text editing and one of the things I like a lot about TextPad is the Ctrl+J shortcut that allows you to join selected lines to each other. Visual Studio doesn't offer that line joining capability, so I decided to write it.

CR_JoinLines adds a command ("Join Lines") that you can bind to a keyboard shortcut (Ctrl+J, Enter is what I use) and will join lines in the code editor. It also allows for an optional delimiter, so if you want a pipe or comma or some other string (yes, string - you're not limited to a single character) inserted between the joined lines, you can do that.

CR_JoinLines in action

Installation is as easy as copying a DLL into a folder and adding the keyboard shortcuts you want.

DXCore Shortcuts Menu - Click for larger version

The included readme.txt outlines installation, usage, and workarounds for known issues.

Requires DXCore 1.1.58 or later (DXCore is a FREE download from Developer Express - go get it!).

UPDATE: CR_JoinLines has found a new home with the DXCore Community Plugins project. Head over there to get the latest and read more!


Download CR_JoinLines 1.1.1.0307

Version History:
1.0.0.0830: First release.
1.1.0.1012: Added ability to provide Delimiter parameter to join lines with a delimiter between each joined line.
1.1.1.0307: Fixed issue where, in later versions of DXCore, joining on selection functioned incorrectly.

Trip To Devscovery: Day 0

We call it "Day 0" because technically all I did today as far as Devscovery is concerned is travel. Tomorrow morning is when the conference actually starts.

The trip up was decent, if a bit on the wet side. Stu and I drove up together (well, Stu drove) and we beat both Portland and Bellevue/Redmond traffic, so I'd call that a success.

The Homestead where we're staying is one of those "extended stay" places so there's a little kitchenette and they offer wireless Internet (hence my ability to blog and check email, albeit on a weak 802.11b signal) for $4/stay. It's a little... dicey... though. I mean, there's sort of this mysterious stain on the carpet, and there's no shampoo in the room even though there's soap... No little disposable plastic cups, but some actual plastic...ware... cups. But no dish soap, and like I'm going to use those cups without washing them out myself.

Oh, well. I'll be here for the next couple days, so I'd best get used to it.

Luckily I brought my PS2 and went to Radio Shack to get an RF converter thing so I can hook it to the primitive video display box they have in the room. Stu and I watched far too much Strong Bad email on DVD.

And now it's bed time. I'll catch up on my email, then hit the hay. Tomorrow: .NET!

Wonka Jacket Possibility Back Open

Redballs Red Wonka CoatJust got word from Redballs - they're going to have more of the red Wonka jackets in mid-September. Perfect! I'll hang on until then (which is closer to my budgetary timeline anyway) and get the 2XL. That should save me hella time and money compared to making the thing.

UPDATE 10/02/05: The costume came out well. Here are the details.

Wonka Shirt Done

Well, for all intents and purposes it's done. I only have to make five more buttonholes (using the automatic buttonhole attachment on the sewing machine) and put on the buttons, so we'll just call it done.

I spent probably eight hours on it Sunday, fighting with the various pieces to make them line up, adjusting things as needed to make them straight and compensate for my amateur sewing abilities. In the end, it turned out pretty well, and it fits, which is really what I was hoping for. I was gonna be pissed if it was too small or something.

I used McCall's pattern M2447, a combination of views A and C so I could get the collar without the collar stays in it (so I can flip the collar up like Wonka without the stays falling out) and the French cuffs.

Let's see if I can remember how much all this cost me...

Pattern: $6.50
Fabric: $16.00
Interfacing: $4.50
Buttons: $3.75
Collar stays I'm not going to use: $2.00
TOTAL: $32.75

And, of course, about 16 hours of my time. Suddenly that $50 shirt at the store isn't looking so expensive.

I'm pretty pleased with it, though. Mom always said that when you're done sewing something it should look just as good inside as it does outside, and I'd say I'm there with it - everything inside is nicely put together, the outside looks crisp and clean. Granted, the lines aren't perfectly straight (pretty close, but if you look you'll see flaws), the buttonholes aren't perfectly spaced (making buttonholes is a pain in the ass), and there's a spot on the front band toward the bottom where it sort of takes a slight... turn... so the bottom of the front isn't perfectly straight. But that part gets tucked in anyway, so I'm not too bummed about that. All in all, not shabby.

Things I discovered during the making of the shirt:

The chair we have for sewing sucks. It's one of those foldable "director" chairs with the canvas seat and back. Far from ergonomic. By the end of the day, my back and neck were killing me.

Shirts are a bitch. I made a Neo costume last year - a long black trenchcoat thing. It was a piece of cake compared to this shirt. There was a lot of hand-stitching and crap on this shirt, and a hell of a lot more pieces. Of course, the costume I had last year was a costume, not, like, an official piece of clothing, where this shirt is from a pattern where they actually intend you to wear it regularly, so it's a much higher quality garment. Still, with the plackets and collar pieces and such... shirts are a bitch.

The worst part of the thing is cutting out and marking the pattern. It's way, way, way too boring. I like it when you get to sewing the pieces together and it starts to take shape, but there's a lot of prep work in there that I could just do without. (That's not a new realization, but I thought I'd get it out there anyway.)

Next step is to get the Wonka walking stick going and start in on the vest. I'll save the coat for last because I think it's going to cost me a frickin' arm and a leg with the velvety fabric I'm going to have to buy. It's also going to be a total pain in the ass, I'm sure, because I actually bought a real trenchcoat pattern (lined and all) and it's about an inch thick still in the envelope so I can only imagine how much work that's going to be. Good thing I got started early.

UPDATE 10/02/05: The costume came out well. Here are the details.

Wonka Shirt Progressing Slowly

Each night I work a little more on my Wonka Halloween costume. Right now I'm trying to make his shirt, a red dress shirt with a blue paisley print (a pretty decent approximation of which I found at the fabric store) and... well, I ran into a bit of a snag last night working on it.

First, it took forever to cut out all the pieces. There are like 25 pieces to this thing.

Once I got that all done, I sewed the first bit together and started wondering why it didn't look like the picture. Then I searched around and found that one of the pattern pieces had this random "cut on this line if this is the left piece, but don't cut on it if it's the right piece" crap on it. I didn't see that discussed in the instructions. Argh!

Out came the seam ripper, removing all the work I had done. Cut along the line, then re-attached everything. Now it looks like the picture.

That was just the first seam. I have the whole rest of the shirt to go. This is going to be quite the project.

Stu found a good approximation of Wonka's coat at the local Hot Topic. I went to check it out and tried on an XL. The arms were okay, but the width of the thing left something to be desired - I could barely raise my arms before the back started pulling. I emailed the company to see if they offer a 2XL. The arms might be a little long, but the rest would fit better. Plus, it might be a hell of a lot cheaper and easier than making my own.

I've also started working on the cane. I took the bottom of the finial that will serve as the handle and I have slowly started filling it with Shoe Goo to even it out (there are hollow spots in there that need to be solid so I have something to attach the pipe to). Once that's set up, I'll bond the pipe to the finial with more Shoe Goo (seems to be pretty good stuff, and it dries clear). I ordered a package of cane tips that fit a 1" diameter cane. The pipe is 1.05" in diameter, so I'm hoping I can fudge the tip on. If all else fails, I can sand down the area the tip needs to fit on until it fits - the pipe walls are pretty thick.

UPDATE 10/02/05: The costume came out well. Here are the details.

Generic List Filtering

While .NET provides the sorting of collections through things like Array.Sort and the IComparer interface, there's no real generic ability to filter elements out of a collection based on arbitrary criteria.

dasBlog implements collection-specific filtering in the various strongly-typed collections by adding static methods to the collections that allow you to pass in a collection and a filter criteria delegate and have a new, filtered version of the collection returned to you.

I thought it might be handy to have a more generic version of that ability so you could filter any collection implementing the IList interface. It would allow you to have a single way to filter lists of any type - all you'd have to do is cast the resulting collection back to the type you originally passed in.

Here's what I came up with:
using System;
using System.Collections;

namespace Paraesthesia.Collections {

  public delegate bool ListFilterCriteria(object obj);

  public sealed class ListFilter {

    private ListFilter(){}

    public static IList Filter(IList toFilter, ListFilterCriteria criteria){
      // Check parameters
      if(toFilter == null){
        throw new ArgumentNullException("toFilter", "The IList to filter must not be null.");
      }
      if(criteria == null){
        throw new ArgumentNullException("criteria", "The collection filter criteria must not be null.");
      }
      
      // Get the invocation list
      System.Delegate[] invocationList = criteria.GetInvocationList();
      if(invocationList.Length < 1){
        throw new ArgumentException("There must be at least one delegate in the invocation list of the filter criteria.", "criteria");
      }

      // Create the output collection
      IList filtered = null;
      try{
        // Get the input collection type
        Type inputType = toFilter.GetType();
        
        // Create the new object
        filtered = Activator.CreateInstance(inputType) as IList;
      }
      catch(Exception err){
        throw new NotSupportedException("Error occurred while creating new collection to contain filtered list.", err);
      }
      if(filtered == null){
        throw new NotSupportedException("Unable to create new collection to contain filtered list (constructor invocation returned null).");
      }
      
      // Perform the filtering
      foreach(object obj in toFilter){
        bool include = true;
        foreach(ListFilterCriteria individualCriteria in invocationList){
          include = include && individualCriteria(obj);
          if(!include){
            break;
          }
        }
        if(include){
          filtered.Add(obj);
        }
      }

      // Filtering complete; return the filtered collection
      return filtered;
    }
  }
}


The idea is that you create a method that takes in an object and returns a Boolean indicating if it should be included in the filtered collection or not. Then pass your collection through the filter with the criteria specified and a filtered version of the collection gets returned to you - cast it back to the appropriate type and continue on your merry way.

Your filter criteria might look like this:

using System;

namespace MyNamespace{
  public class MyCriteriaClass{
    public static bool FilterThreeChars(object obj){
      String toCheck = obj as String;
      if(toCheck == null){
        return false;
      }
      return toCheck.Length == 3;
    }
  }
}


Then your use of the filter might look like this:

using System;
using System.Collections.Specialized;
using Paraesthesia.Collections;

namespace MyNamespace{
  public class MyTestClass{
    public void TestTheFilter(){
      // Create the original collection
      StringCollection coll = new StringCollection();
      coll.Add("a");
      coll.Add("bc");
      coll.Add("def");
      coll.Add("ghij");
      coll.Add("klmno");
      
      // Set up the filter criteria delegate
      ListFilterCriteria criteria =
        new ListFilterCriteria(MyCriteriaClass.FilterThreeChars);
      
      // Filter the collection
      StringCollection filtered = ListFilter.Filter(coll, criteria) as StringCollection;
      
      // The filtered collection only contains "def"
    }
  }
}


I did some performance testing on this versus a similarly structured filtering service that is strongly-typed and the two were comparable. Your mileage may vary.

Note: Code is provided free, but also without support. If it breaks, doesn't work, isn't optimized to your liking, etc., feel free to fix it, but I'm not going to actively answer questions on it or help you figure out why it's not working for you.

Mr. and Mrs. Crash

Saturday was spent primarily trucking around from fabric store to fabric store looking for the right fabric for the shirt for my Willy Wonka costume. I discovered that generally the price of fabric is directly proportional to the size of the store. For example, at the Fabric Depot they have a huge selection, but a particular fabric was $10/yard there. At a small Jo-Ann, the same thing can be had for $2.50/yard. Now, granted, you're paying for selection and convenience at Fabric Depot, but that's a little spendy, thank-you-very-much. I bought at Jo-Ann.

Sunday was a family reunion for the people on my mom's side of the family. It took place at Rainbow Falls State Park in Washington. Nice park, not a whole lot of people, so it was a good spot.

The thing about a "family reunion" for that side of the family is that I see these people all the time. All the time. Holidays, birthdays, random times of the year... Maybe not all simultaneously (that's almost more than a person can handle, if you know what I mean), but I see them all the time. So it's not really a "reunion" so much as "another get-together."

I hadn't eaten all day, and the agenda for the event said we were supposed to get there and eat at noon. After a nice couple-hour trek into the sticks, we got there and when noon rolled around... for some reason, we weren't eating. I'm really not sure why. I think we might have been waiting for someone or something, but... well, here's my take (and if/when I run some event on my own, this is how it's gonna be): The schedule says noon. Come hell or high water, if you aren't there at noon, you just get to eat late. We're eating at damn well noon. I'm not waiting for you.

One o'clock rolls around, still waiting. The hunger has passed beyond me to other people and the finger foods started disappearing - anything you could walk past and grab without a lot of people noticing. Probably 1:30p hit and we started eating. Actually, it was more like, "we started milling around closer to the food with the intent to eat." Here's another one: I have no issues being "the first to eat." I don't care if you're the first either. The person closest to the head of where the line will eventually be had better get his/her ass in gear and get going. If we're not eating on time, I no longer have the patience to wait and see who's digging in first. We're all eating the same food here - let's get on with it.

I'm sure I ate more than my fill, but there's always a lot of food left, so even being fuller than full (as I'm sure everyone else was, too), everyone ended up taking something home.

After the feeding died down, we were all sitting around talking, which is probably the most entertaining part of any of these get-togethers since it seems random crap happens to that side of the family a lot. I'm not sure if we bring it on ourselves or if it's just luck. For example:

My aunt and her boyfriend were at the Clackamas Les Schwab getting tires or something the other day. Apparently there was nowhere to sit inside, so they went outside. Not finding any benches, my aunt's boyfriend went over to the brick-wide ledge surrounding the front window of the place and perched up on that. My aunt followed suit, wedging her ass up on the ledge until -

Crash!

The front window of the Les Schwab broke. I guess it cracked from top to bottom and side to side. She claims there were bullet holes in the window that had weakened it but... well, keep telling yourself that. Hehehehe.

They went back inside and were greeted at the front desk as "Mr. and Mrs. Crash." Rock on.

I guess if you go to that Les Schwab the window is taped up with duct tape while they wait for a replacement. (My aunt didn't have to pay; Les Schwab's covering that. Maybe they'll put a bench outside, too?)

A couple hour drive home and we were finally back by around 8:00p. It was a long day, and I think I'm still sort of recovering from it. (I'm not really a car-trip person, particularly crammed into the back seat.)

Willy Wonka for Halloween

I've always enjoyed the concept of highly detailed and accurate costumes. This crap they sell on the market for $15 that includes the shirt, hat, boot covers, and a laser gun all in one package might fly for less detail-oriented folks or people short on time, but I'm a big fan of authenticity.

The problem is, I generally end up being one of the "short on time" crowd, so I half-ass myself a costume at the last minute involving a quick trip to the military surplus store and a liberal application of creativity involving everyday household items. Halloween shows up altogether too quickly and the night before I'm cobbling something together. It kills me, too - I'd like to have something better than that. If I'm going as Dracula, I want a pair of custom fangs and a high-quality cape. I have yet to be a Ghostbuster because I need accurate props with real working electronics.

This year I'm taking the project on early, though: I'm going to be Willy Wonka (from the new movie).

Jenn and I went last night to the fabric store and I ended up picking up three patterns - one for a coat (which will need to have the collar slightly modified); one for a shirt (I'll have to find some paisley fabric); and one for a civil war jacket which, once the sleeves and collar are removed, looks just like his vest. I've also purchased some finials that can be used as the handle on his walking stick and I've ordered some clear PVC pipe for the body of it.

I'm getting a head start so I can actually make all this stuff and go for the authentic look. Now, admittedly, I'm already conceding a few of the details. I won't be able to get the "W" pin he has at his collar. I'm not a good enough tailor to make a coat that has pinstripes that match up so I'm going to go with a solid color instead. The shoes probably won't be quite right, and the bottom of the pants (if I go with a pair I have already) won't be right, either. And I can't find the actual finial that was on his cane, nor can I find quite the right tip for it, either, but we'll make due. Oh, and there's no way I'm springing for a real top hat. The point is, it'll be of a much higher quality (and will be much more fun) than the $15 kit.

Of course, the patterns already cost me $25, the finials were $15, and the PVC pipe was $30 with shipping (it only comes in 10' sections). So budget-wise, I'm way over the typical Halloween costume budget already. It'll be fun to make, though, and I think that's really what matters. Plus I'll be happier with it when it's done. I'll keep you posted.

UPDATE 10/02/05: The costume came out well. Here are the details.

Dynasty Warriors Advance Coming Soon

I'm a big fan of Koei's "dynasty" games, so to see Dynasty Warriors coming out for Game Boy Advance makes me happy. I'm going to have to pick this up.

Scooba In November

ScoobaIt appears that the latest from iRobot - the Scooba, a floor-mopping robot - will be available for purchase online in November and should be in retail stores in early 2006. I'm actually pretty stoked. I have a Roomba (their vacuuming robot) and feel like it was definitely $200 well spent.

For $399, you'll get the Scooba, some cleaning solution, a measuring cup, a battery, a battery charger, a virtual wall, and what appears to be an AC adapter of some nature (probably to charge the Scooba while the battery's still in it).

The virtual walls used by Scooba look different than the ones used by Roomba - they look more like the new scheduling walls, actually. I'm curious if the virtual walls with Scooba are compatible with the Roomba walls or if I'm going to have to buy a bunch of Scooba walls, too.

Scooba doesn't come with a "home base" the way Roomba does (or, at least, some Roomba models), and the batteries look different. One of the things I like about Roomba is that when it's done, it goes home to charge up. I can't tell if Scooba has that ability or not. It almost certainly doesn't out of the box, as it doesn't come with the requisite charging station, only manual chargers.

None of that really deters me, though - it's the $400 price tag that's got me. $200 was the perfect price for Roomba (admittedly, that was with a 20% off coupon at Bed Bath and Beyond). I'm just not sure about Scooba for double the price. I'd have to see it in action in person, or at least hear from someone who has one.

I'll have to think about it. I do have some 20% off coupons burning a hole in my pocket, and $320 is a lot better than $400...

CR_Documentor 1.5.0.0815 Released

The new version has been released and provides the following updates:

  • Added toolbar to CR_Documentor window with ability to print the current documentation view or open the CR_Documentor settings.

  • Updated settings to allow toolbar to be shown/hidden.


  • Go get it!

    Movies and Router Config

    Another busy weekend this past weekend. I always think my weekends are going to somehow be restful, but it usually turns out the "work hard, play hard" thing rears its ugly head and I end up running all over town having fun.

    Yeah, that sounds like a real complaint there, doesn't it?

    It's fun, but exhausting. I'm totally dragging this morning.

    Friday night we saw Charlie and the Chocolate Factory with my parents.

    Saturday Stu and Tif came over so Tif and Jenn could wash and wax their cars the way Stu and I did a couple weeks back.

    Stu and I took about an hour to put some edging up along the side of the house (we have some barkdust that always seems to overflow onto the sidewalk, so the edging should hold it all back). After that, the ladies washed and waxed while we played video games. It had been a while since I had played really anything but Dance Dance Revolution, so playing some cool game demos to see what's coming out and throwing down for a while in Burnout 3 was a hell of a lot of fun.

    When it started heating up (too hot for the ladies to wax anymore), we took some time and went to see The Dukes of Hazzard, which was great fun.

    We got back and the ladies went out to finish their cars while Stu and I gamed and watched some TV. Long about 11:30p they finished and we all called it a night. Stu and I were fading fast, and I'm sure Jenn and Tif had had enough for the evening.

    Sunday was chore day. Jenn and I did the vacuuming, laundry, dusting, shopping, and everything else that doesn't get done all week.

    My parents got cable Internet access so they needed me to come over and set up their wireless router for them. On the way over, we had a little issue where this guy cut across three lanes of traffic and jammed his stupid minivan nose slightly in front of me in the left hand turn lane and tried to wave it off, like, "Sorry! I realize I just cut across three lanes of traffic to try to get right in front of you, but it's okay because I'm waving!"

    It's not okay; this isn't Hawaii, there's no "Da Kine," motherfucker. You screwed up - accept responsibility for that and turn around legally, the way everyone else does, and come back from the other direction. No cutting across three lanes of traffic because you were reading to the kids in the back seat and weren't paying attention and missed your turn. Ass. I laid on the horn and gave the guy the finger. No way he was getting in on my watch. Fuck that.

    Whew.

    Okay, so, anyway, we got to my parents' house and I set up Dad's wireless router. That didn't take too long, and it was nice to sit and talk with them for a bit. After that, home, more chores, and, finally, bed.

    And, like I said, I'm dragging this morning. I may have to go get a Jamba Juice or something.

    The Dukes of Hazzard

    Jessica Simpson is Daisy DukeSaturday Stu and Tif joined Jenn and I in checking out The Dukes of Hazzard.

    I didn't go in expecting too much. I was a fan of the show even when I was a little kid, but knowing that the whole thing revolves around escaping the county sheriff by jumping your car over the local ravine didn't seem like it was going to lend itself to film too well - I mean, it's a great, fun show, but a movie?

    They rocked the house with this one.

    Again, keep in mind that a Dukes movie has to address certain points:
    • Boss Hogg is a rich, greedy asshole
    • Sheriff Coltrane is Boss Hogg's pawn and doesn't actually uphold any laws
    • Cooter fixes the General Lee
    • Fight breaks out at the Boar's Nest
    • Daisy looks hot and kicks someone's ass
    • Poorly conceived jailbreak
    • Car chases, several jumps
    • Something goes down involving Uncle Jesse
    • Random freeze-frame in the middle of a climactic moment with the narrator saying something that would lead you into commercial

    All points were addressed, and the cast did an excellent job. I particularly loved Burt Reynolds as Boss Hogg - he updated the character and really just executed it with style.

    Something I didn't get, which was funny but didn't really have bearing on the show (so far as I recall)... They really played up how Bo always drives the car and loves the General Lee but never gets a girl, and Luke gets all the girls but doesn't know how to drive. Maybe that's something they sort of inferred from the show that I guess I missed, but they really played it up like it was a major part of the series.

    I would be remiss in failing to mention how hot Jessica Simpson is in this one. She may or may not be dumb as a box of hammers, but she is fiiiiiine.

    Stu says he's going to buy it when it comes out on DVD. I'm not sure if I'll buy it or not, but it was a hell of a lot of fun. Several laughs, great excitement. If I see it on the "previously viewed" rack for a discount, I'll grab it. Do you have to see it in the theater? No - there really weren't any scenes that required a big screen. But do see it, especially if you liked the show. It's a great time.

    posted @ Monday, August 08, 2005 8:46 AM | Feedback (0) | Filed Under [ Media ]

    Charlie and the Chocolate Factory

    Charlie and the Chocolate FactoryOn Friday I went to see the latest version of Roald Dahl's Charlie and the Chocolate Factory as seen on the big screen. Huge screen, in fact, as I saw it in an IMAX theater.

    I didn't go in expecting much. The original movie holds a special place in my heart with its songs and Gene Wilder's couldn't-care-less Willy Wonka.

    I came out very pleasantly surprised.

    Tim Burton took the film in a more true-to-the-book direction (at least, so I've heard; it's been years since I read the book and don't remember too well), and did a great job at it. Plus, with the usual Tim Burton surreal thing going on, it all came together to be pretty darn entertaining.

    Johnny Depp did a great job as a pretty freaky Wonka with some pretty obvious family issues. I was worried about how he'd be able to pull off the character, but he did a fantastic job and made it his own, without a hint of the Gene Wilder influence. (That's actually what I was more afraid of - that it'd be a bad imitation of an excellent Gene Wilder performance.)

    The story was slightly updated, too, to account for more recent times. Mike Teavee, for example, was a video game addict rather than just a TV addict. Of course, once Wonka's factory was entered, all that went out the window anyway.

    Which actually brings us to Wonka's factory - excellent job on the rendition of that. In some cases, particularly the first room they enter where the chocolate waterfall is, it was just like the original movie, but in others, like the invention room, it was entirely new. A pretty good vision for what such a place should look like. And the Great Glass Elevator? Way better than the original movie.

    The Oompa Loompas were done very differently from the original movie, and each style has its merits. I'm not sure I was into the outfits the new Loompas had on - the original movie had funnier costumes that I liked. The new Loompas were more playful, though, and I think some of that was missing from the original movie. Plus the songs were more authentic in this latest version, which was cool. (No "Oompa Loompa Doompity Do" in this one.)

    I think the IMAX theater added to the surreal nature of the film. The camera angles and sets, which were already pretty crazy, were just made more crazy by the larger-than-life size of the screen combined with the curvature of the IMAX dome. (That's the only downside to seeing a regular movie in IMAX - the screen curves, which takes some getting used to and sort of makes you a little motion sick at times. Plus it's so big it's hard to figure out what to focus on at any given time. Movies that are originally filmed in IMAX don't have this problem because the filming accounts for the curvature.)

    All in all, I liked it, and recommend seeing it. Maybe at matinee prices, or rental - it wasn't $10-a-seat-in-a-regular-theater worthy, but if you get a chance to check it out on IMAX, do it. Pretty cool stuff.

    posted @ Monday, August 08, 2005 8:27 AM | Feedback (0) | Filed Under [ Media ]

    County Fair and the Beach

    This weekend was a hell of a lot of fun, but also pretty exhausting. It's Tuesday and I'm still beat.

    Friday evening, Jenn and I went down to The Bite of Salem to help out on their fireworks show. Apparently one of the previous shows we had done wouldn't qualify for our pyrotechnician license application because the show was all multi-shot boxes rather than individual mortars, so we had to get another show in that had mortars.

    Traffic was terrible, and we got there later than we hoped, but it was a good show and a lot of fun. Met a bunch of cool new people on that crew, some of whom I recognized from the pyro training course we took last year.

    Saturday we went with Tif and Stu to the Washington County Fair to check things out. Admission this year was free so they could boost attendance, and it seemed to have worked because it was pretty packed. We walked around, saw some animals, ate some fair food (the whole reason I go to the fair involves some complex logic surrounding funnel cake), and watched a very cool demonstration by the Washington County Sheriff's Office on their K-9 patrol unit. That was actually really slick - showing how highly trained the dogs are and such.

    The fair took a lot out of me. There wasn't a lot of shade, and there was a lot of walking around, so by the time we got home that night I was absolutely beat. We ate and went to bed by about 11:00p in anticipation of leaving for the beach around 10:00a the next morning from our place.

    I think I woke up around 7:00a the next morning and promptly rolled over and went back to sleep. Maybe 9:15a I woke up again and realized that Stu and Tif were supposed to be there in 45 minutes so we could go. We rolled out of bed and started getting things together when I got a message that they, too, were running late. Fine.

    Made it to Seaside by lunchtime. Walked around to the various shops (nothing new there) and visited more than our fair share of candy stores. Of course, visited the Seaside Candyman and bought some stuff there (how can you not?).

    After we did all that (and ate) we rented a four-person surrey to pedal around the town from Wheel Fun Rentals.

    Pedaling a surrey around is not as easy as you might think.

    See, on any modern bike, there's sort of a transmission, where you can start out on a low gear and spead up as needed. Not these bad boys - direct drive. That makes starting out a little hard since there's a lot of weight you have to get moving. Those smiles you see on the surrey riders? Grimaces of pain.

    Now, that said, we had a frickin' blast on the thing. Stu tried to pick up a passing volleyball player (which got him punched by the other three folks on the cart simultaneously) and we made a fantastic last-minute tour through the Shilo Inn parking lot that was more like surrey rally racing than anything else.

    We had the rental for an hour and I think we returned it after 45 minutes. We were all worn out and it was time to move on.

    We stopped on the way home at the nearby factory outlet mall, where I purchased nothing, and then took forever to get home due to some pretty terrible traffic and an accident blocking the only route. Another late night, then back to work Monday.

    Like I said, I'm exhausted today. Here's hoping I can make up some of that sleep soon.