media, movies comments edit

We went out last night to see Transformers for my birthday. I had heard from some friends that they liked it, so I went in sort of interested and came out feeling like this was the coolest thing ever.

The idea is that the Transformers are robots from another planet that have come to Earth in search of an energy cube called the All Spark that gives them life.  If the evil Decepticons get ahold of it before the friendly Autobots do, the world’s in serious trouble.

Yeah, it sounds sort of lame.  But it really wasn’t.  For people even mildly interested in sci fi robot movies, I really don’t think you’ll be disappointed.  There was all of the robot battling and transforming you would expect to see - it was an effects extravaganza.  Lots of action, as expected from Michael Bay, and at no time did I feel like I was bored or losing interest.

For fans of the cartoons it’s even better.  They got Peter Cullen, the original voice of Optimus Prime, to do the voice in the movie and it’s definitely something you notice.  When he whips out the “Autobots! Roll out!” you get the shivers of positive childhood memories.  They throw in a couple of references to “More Than Meets The Eye,” too, which is cool.  (When they say it, listen to the theater crowd.  The people who snicker are the kids who grew up in the 80’s.)  And if you paid close attention to the names, you’ll even notice that the original show had characters with the last name “Witwicky” (the main character in this movie was “Sam Witwicky,” played by Shia LaBeouf).

The human actors (funny that I have to qualify that…) are also pretty good.  Shia LaBeouf is a great high school nerd character and Megan Fox plays a popular high school girl character.  Both are very entertaining to watch.  Josh Duhamel plays an Air Force captain and does a great job, too (I’ve only ever really seen him on Las Vegas).  You have to imagine Duhamel saw the script and didn’t even read it before accepting - no child of the 80’s could pass up the chance to be in a freaking Transformers movie.  No way I could.

At the end we clapped, because, you know, the actors can hear you clapping in the theater.  I think that’s actually how you know you liked the movie - you feel like clapping at the end.  Jenn claims to have been slightly disappointed because they didn’t play the original theme from the TV show at any point, but besides that, they gave us everything we wanted.

I definitely got my money’s worth and I’m hoping this hits HD DVD sooner rather than later.  Good times.

personal, tv comments edit

We celebrated my 31st birthday this weekend.

On Saturday, a small group of folks got together with me and we went to Ultrazone to play laser tag.  It was quite a bit of fun, and a slightly different setup than other places I’ve played laser tag, so it was a neat change.  I’ll definitely have to go back there again.  After that, about half the folks came back and we had a barbecue at my place.  Jenn got me a tasty mint chocolate chip ice cream cake from Cold Stone.  I don’t think I’d ever had an ice cream cake before, and it was great.

Sunday my parents came over and took us out for lunch at Buffalo Wild Wings and then to see Live Free or Die Hard.  Lunch was great, and the movie was actually a lot better than I expected.

The idea behind Live Free or Die Hard is, basically, that a hacker is trying to take down the entire country by shutting down anything run by computers.  Basically.  Now, I won’t lie and tell you that you can go in and not have to work to suspend your disbelief - you’re going to have to take some stuff on faith.  At times, you will find yourself laughing at how ridiculous some of the situations are.  That said, it’s a lot of fun, and I never once felt like I needed to look at my watch and see how much longer it was.  It’s a fluff piece, a great thrill ride, and if you go in understanding that, you’ll have a blast just like I did.  Plus, they give some little rewards to the Die Hard fans out there, what with the daughter, Lucy, showing up.  (Remember her on the first movie?)  Anyway, see it and have fun.

My dad also made me a really cool Lost Room gift box.  If you haven’t seen The Lost Room yet, definitely do - it was fantastic.  Anyway, he went to the trouble of cutting out all of this perfectly fitting foam to package up a copy of the DVD, prop replicas of the bus ticket and the pen, and an actual room key he got from a collector on eBay (so, no, it’s not a prop replica, nitpickers; it’s from a real hotel room, not the Lost Room). It’s super cool - check it out:

Lost Room gift box: DVD, bus ticket, pen, and
key

I’m stoked - it was awfully thoughtful and a lot of effort went into it.  Very cool.

So I’m 31 now, and… well, it’s not much different from 30.  A bit more experience under my belt (along with, probably, a few more pounds).  A lot of life change since 30.  I sense more change on the horizon, but I guess as a friend once told me, “life is change.”  We’ll see what the future holds.

The latest minor crisis we’re facing at home is that of storage, or the lack thereof.  We have 2300 square feet and zero closet space.  It’s stressing me out.

It turns out Jenn an I are both sentimental, organized pack rats.  We keep things because [we might need it again someday | it could be worth something | it’s been around forever and has sentimental value] (choose one).

The thing is, those arguments don’t hold water for the majority of stuff we have stored.

We have boxes of books that we keep “in case we want to read them again” but they’re such a pain to get to that we’ll never get them out - more likely we’ll just go find a different book to read.

And, honestly, I’ve got two pickaxes in my garage.  Two.  I don’t think I’ve used one since I’ve moved in, and if I somehow need a pickaxe… well, I think maybe I’ll just go to Home Depot.

Things we figure might be worth something really aren’t.  The set of plastic “Disney’s Hercules” plates from McDonald’s that I’ve been carting around for years goes for $10 - $30 on eBay.  It’s $10 worth of time and effort just to list the thing for sale and pack it up for shipping if it sells.  They’re not worth anything.

The sentimental items are harder to deal with, but there’s low-hanging fruit even in that area.  For example, I don’t think we need every random photo we’ve ever taken if we have the negatives anyway and we’re not in them.  We got rid of a two-inch stack of pictures this weekend.

Anyway, “the items you own will end up owning you” has started to become a more prevalent theme for me.  Overwhelming, too.  Whenever I think I should just deal with a box of stuff, I feel like I did in school when it was time to write an essay.  Where to begin? Is it even worth it? There are so many other jobs I could do…

Jenn, wonderful as she is, is not much help because a) she’s afflicted by the same pack rat sickness I am and b) if it involves putting up racks or shelves or moving heavy boxes of our crap around, it’s all me, baby.  To her credit, she was the one this weekend  that went through the box of photos and crap that’s been in our dining room for two years now.

Slowly but surely, we’re going to have to deal with this.  For anything that comes into the house, we need to figure out something that’s going to leave.

At a recent conference I went to, I entered a drawing to win a prize from one of the sponsors.  Other prizes being given out by other vendors (and the conference host) were things like UMPCs, Xbox 360 consoles, Xbox 360 games, and so forth.  Pretty cool stuff.

A month later I got this email from the sponsor that told me I had won something and said, quote (emphasis theirs), “If you’d like to claim your fabulous prize, please respond to this email with your mailing address.”

I was stoked.  Stoked!  I don’t really ever win anything, so to win something on this level - especially if they have to confirm my mailing address after the form of entry was to drop my business card, complete with my mailing address, into a basket for the drawing - was pretty exciting.

I psyched myself up, wondering what it could be.  A UMPC would be cool, but - no, don’t get your hopes up that high.  Maybe an Xbox 360 game.  I sure hope I don’t have it already.  I suppose I could trade it in if I do.  Maybe a gift card somewhere neat.  Even if it’s something like Amazon, hey, bonus.  What could it be?

The prize arrived today.  I saw it in my mailbox at work and walked over to it, wondering.  It was in a manila envelope, so it wasn’t anything as big or bulky as a UMPC… but it could still be an Xbox game or a gift card.  I walked over and picked it up, slightly unnerved by the… soft… feel to the envelope.  But it could be packaging!  It could just be the packaging!

I took the envelope back to my desk and tore into it, no longer able to contain the anticipation, firmly ready to blog about how freaking awesome I am with this bitchin’ prize.  I pulled it out and…

What the hell kind of happy horseshit is all this?

What is that? Golf club? Thumbs up? Speech
bubble?My “fabulous prize” is a t-shirt of dubious manufacture.  No brand I’ve ever heard of.  Far too thin to wear without - you guessed it - another t-shirt underneath.  (Hey, not even my wife wants to see my man-boobs showing through, and I certainly don’t blame her.  I wouldn’t want to see that, either.)  Oh, and it’s got this ad on the front for careers at the company that, frankly, I don’t get.  There’s this weird shape that is a cross between an upside-down speech bubble and the head of a golf club that I think is supposed to be a hand giving a “thumb’s up” sign, but I can’t be sure.  This weird image thing is intermingled with the phrase “[Vendor Name] Makes Work FUN.”  Ummmm, okay.

I feel a little like Ralphie in A Christmas Story when he decoded Little Orphan Annie’s secret message: “Drink Your Ovaltine.”  Ovaltine?!

Message to vendors at all future conferences I go to:  Rather than give out crappy prizes, just… don’t.  Don’t give this junk away.  You’re ruining the environment by consuming resources, and I don’t need any more rags to wax my car with.  Instead, give away one good prize that you won’t award to me because I’m a loser and save me the effort of another blog entry.

downloads, aspnet, dotnet comments edit

I posted before about an ASP.NET 1.1 way to deploy in a close-to-binary-only format, embedding ASPX files as resources in your assemblies.  That way doesn’t work in .NET 2.0… but it turns out they added something better in .NET 2.0 that lets you create a more complete solution - System.Web.Hosting.VirtualPathProvider.

The basic idea is that rather than talk directly to the filesystem, ASP.NET provides a “hosting environment” and asks for files from there. VirtualPathProviders can register and respond to these requests.  By default, ASP.NET has a file system based provider registered, so everything works out like it always did.  While you can’t virtualize everything (web.config, App_Code, and so forth all actually have to exist in the filesystem), other ASP.NET files (*.aspx, *.ascx) can exist in a virtual file store.

There’s a great article on MSDN about how to serve your site from a ZIP file, but I wanted to take it one step further and serve from embedded resources. Enter Paraesthesia.Web.Hosting.EmbeddedResourcePathProvider.

This VirtualPathProvider implementation allows you to register assemblies that are allowed to serve embedded files and specify on those assemblies which embedded resources are allowed to be served.  After you register the provider (programmatically at app startup), when ASP.NET asks for a specific page it will ask the provider.  If the provider finds that file in embedded resources, it’s served from there; if not, it falls back to the filesystem as usual.

Detailed usage is included in the API documentation and an implementation can be seen in the included demo site.  On a high level, you need to:

  1. Set each page, control, or file in your web project that you wish to serve embedded as embedded resource.  (Normally these are “Content” files - switch to “Embedded Resource” in your project to embed them.)
  2. Add a Paraesthesia.Web.Hosting.EmbeddedResourceFileAttribute to your web project assembly for each embedded page.  This lets the VirtualPathProvider know which resources are allowed to be served (and allows you to differentiate files that get served from resources that are used for other purposes).
  3. In your Global.asax, at application startup, add a registration for the EmbeddedResourcePathProvider: HostingEnvironment.RegisterVirtualPathProvider(new EmbeddedResourcePathProvider());
  4. In your web.config, add a configSection called embeddedFileAssemblies that gets parsed by Paraesthesia.Configuration.StringCollectionSectionHandler. This section will contain the list of assemblies that the VirtualPathProvider should query for EmbeddedResourceFileAttributes.
  5. Optionally specify the ability to override embedded files with files in the filesystem by adding an appSettings key called Paraesthesia.Web.Hosting.EmbeddedResourcePathProvider.AllowOverrides and setting it to “true”.

A demo web site with an installer is included to show the provider in action.  It will also help you see what the code/config/attribute declarations are so you can follow that pattern in your own usage.

This sort of thing, in combination with things like the WebResourceAttribute and WebResource.axd can get you ever closer to serving an entirely binary web site.

Caveats:

  • This won’t work for sites that rely on file system security. I primarily work with forms authentication, so this isn’t a problem for me. It may be for you.
  • Cache dependencies on embedded resource files are actually set on the assemblies that contain the files.
  • It doesn’t support “directories” so if you use the HostingEnvironment to go directory browsing, you won’t see the embedded files.
  • There’s some weirdness with IIS where you can’t set the “default page” for a directory to be an embedded file.  IIS detects it’s not there and pre-emptively returns a 404.
  • Your site has to run in High trust mode for this to work. This is a requirement of the VirtualPathProvider framework.
  • This is going to be a one-shot deal. I’m not going to be posting updates or actively supporting it or anything. Take it at your own risk, your mileage may vary, etc.
  • The source bundle includes the source for the VirtualPathProvider, related attributes, support classes, a readme, and a demo web site illustrating the project in action. The compiled bundle is the compiled assembly, the XML API doc, the installer for the demo site, and a readme.
  • It’s totally free and open-source. Do whatcha like.

Download EmbeddedResourcePathProvider Compiled Package

Download EmbeddedResourcePathProvider Source