Friday, August 24, 2007

When I travel, I can expect ignorant/discourteous folk, long lines and some mild nausea. What I can't expect to find in airports is a good ol' power outlet. I've thought about adding a section to my site that just plots locations of power outlets in the various airports I visit — a little like geocaching I suppose. The worst is finding a perfect spot to setup, unpacking the gear and looking down at the little green light on the laptop power brick that isn't lit up. Disconnected power outlets suck.

The fine folks at Coffee People in PDX have figured it out. They've integrated power outlets into the modern bar that surrounds their business. I ordered a Depth Charge (coffee and double espresso shot) and a danish, plugged in to grab a few more bits online before I travel back in time to a land that has no cell phone signals, internet or cable TV. I'm back to the future on Tuesday!

Friday, August 24, 2007 7:53:53 AM (Pacific Standard Time, UTC-08:00)  #    Disclaimer  |  Comments [0]  | 
 Friday, August 17, 2007

About a year ago, I attended an MSDN event in my area and won the boobie prize: 12 months of free hosting from an vendor at the event. I had been hosting my site on my company's web servers, so that seemed like a good opportunity to leave the nest and test my skills in the wild. Plus, the price was right.

Man, did that suck.

On Wednesday, I signed up for 12 months of hosting with DiscountASP.Net. They advertised on www.asp.net, and had a lot of good word-of-mouth referrals that eached my ears.

In the matter of about an hour, I did the following:

  • Completed an online transaction with DiscountASP.net
  • Accessed my new site through the Control Panel provided by DiscountASP.Net
  • Downloaded the latest dasBlog bits for ASP.Net 2.0, medium trust
  • Uploaded the dasBlog bits to my new site
  • Switched the DNS servers to my new ISP
  • Moved the content folder from my old host to DiscountASP.Net
  • Minor configuration to secure and customize my blog

I'll have you know that I have not yet contacted DiscountASP.Net by phone or e-mail, nor have I had to read their online help documents. The entire process was smooth as silk. I was shocked. My previous personal and professional experiences have always left me in need of some type of resolution.

This is how it should be — DiscountASP.Net has done a great job and I'm grateful.

I was also relieved by the ease of my dasBlog upgrade. I was about a year off the head in their source code repository. The new version has several sweet skins out-of-the-box and they're easy to customize.

I highly recommend dasBlog for any type of blogging solution — it's a rock solid open source system under active development. Now that I'm 99% out-from-under of my enormous eight month project, I'd love to saunter over to that open source project and try my hand at helping the dasBlog dev team. The weekend is just starting, Le Wife is out of town, and I'm dinking around on a new laptop with Vista. Can't ask for a better set up than that!

Friday, August 17, 2007 7:13:06 PM (Pacific Standard Time, UTC-08:00)  #    Disclaimer  |  Comments [1]  | 
 Thursday, August 16, 2007

.. and you can pick your nose, but you can't pick your in-laws. By sheer luck and $299.95 for a charm school summer camp a few years back, I have some awesome in-laws.

As I understand it, Jay worked on this web commercial. Anyone wanna take a break and go get some Herbal Mist with me?

fun
Thursday, August 16, 2007 8:16:17 AM (Pacific Standard Time, UTC-08:00)  #    Disclaimer  |  Comments [0]  | 
 Friday, August 10, 2007

I bought a carafe for the office a little bit ago. At first, I kept it on my desk. Arguably, I drink more coffee than anyone here. I offered warm ups, but I didn't get a lot of takers.

After a few days, I got a couple of questions about the strange device too. Some thought it had a little pick-me-up, like Baileys. In an effort to spread some knowledge, I used a little bit of my new found free time and found a way to explain it.

fun
Friday, August 10, 2007 9:02:54 AM (Pacific Standard Time, UTC-08:00)  #    Disclaimer  |  Comments [0]  | 
 Monday, August 06, 2007

On Friday, our CFA (Chief Front-end Architect), Ryan Parr, received his brand new chair. Unfortunately, he wasn't here to sign for it. Thus, the stray mischievous folk who were in the office on Friday of last week took the following actions.

  1. Remove new chair from box
  2. Disassemble old chair
  3. Placed stained and hairy old chair in the plastic from new chair
  4. Shove old chair in box
  5. Re-tape box shut

The box waited all weekend for his arrival. This morning, I shot this video on my Treo 700w. (Quicktime version is over here.)

fun
Monday, August 06, 2007 9:02:15 AM (Pacific Standard Time, UTC-08:00)  #    Disclaimer  |  Comments [0]  | 
 Tuesday, July 24, 2007

I've been battling some crazy ASP.NET 1.1 code the past couple of days. First, I was calling some web services with entirely hand written SOAP protocol management. That's always fun. While tedious and too low of a level to be mucking around, it was the fastest means to an end with a crotchity ol' Apache/AXIS web service. Even though I'm fresh off the WCF training regimen; that new stuff wouldn't have helped me here. Perhaps just having the new stuff in my head pushed me in the right direction to tackle this challenge - a man can dream, can't he?

Then, just to rub it in a little, the HTTPWebRequest object decided to give me a swift kick in the shorts. You see, in .Net 1.1, there's a tiny little unknown (unanswered) bug.

I have two instance methods and each make a single call over HTTP with their own HTTPWebRequest object, there's no sharing here. Every time, the second request would hang and throw a "System.Net.WebException : The operation has timed-out." error. The same code runs great in .Net 2.0 so I figure its a framework bug.

I call one method and return a string which is used as an input argument for the second method. Both calls go to the same top level domain, but call to different end points on the domain.

After much thought, trial and error, as well as reading about the same problem other folks were having, I finally figured out the workaround.

It turns out that calling the Abort() method on the HTTPRequest instance after completing the request is sufficient to break up the clog that is preventing subsequent calls. The following code block shows the working helper method. If I comment out the calll to Abort(), it no worky.

private string ExecuteHttpWebRequest(
   string url, RequestMethod method, string message)
{
   HttpWebRequest request = 
      (HttpWebRequest)HttpWebRequest.Create(url);

   request.Timeout = 30000;
   request.KeepAlive = false;
   request.Headers.Add("Cache-Control", "no-cache");
   request.Headers.Add("Pragma", "no-cache");

   switch( method )
   {
      case RequestMethod.Get :

         request.Method = "GET";

         break;

      case RequestMethod.Post :
         
         request.ContentType 
            = "application/x-www-form-urlencoded";
         request.Method = "POST";
         request.ContentLength = message.Length;

         StreamWriter sw = 
            new StreamWriter(request.GetRequestStream());
         sw.Write(message);
         sw.Flush();

         break;
   }

   string html = null;

   using( HttpWebResponse response 
      = (HttpWebResponse)request.GetResponse() )
   {
      Stream rs = response.GetResponseStream();
      StreamReader sr = new StreamReader(rs);
      html = sr.ReadToEnd();
      response.Close();

      // subsequent calls fail without this abort in .Net v1.1
      request.Abort();
   }

   return html;
}	
Tuesday, July 24, 2007 9:27:37 PM (Pacific Standard Time, UTC-08:00)  #    Disclaimer  |  Comments [0]  | 
 Saturday, July 21, 2007

simpsonizer

Bahahahahaa!

This site is an great buzz generator for the upcoming Simpson's film. It built by the charming folks who took over the online advertising for Burger King.

http://www.simpsonizeme.com/

This Flash app takes a photo you submit and turns you into a Simpson character.

fun | movies
Saturday, July 21, 2007 9:37:38 AM (Pacific Standard Time, UTC-08:00)  #    Disclaimer  |  Comments [0]  | 
 Wednesday, July 18, 2007

I went to the Vet the other day; we got card in the mail informing us that it was vaccination time for poochie. The Wife made an appointment and I ended up taking poochie in — go figure.

So poochie and I zip over to the Vet and wait in the busy waiting room for 20 minutes. Not too bad, they had a lot going on. The worse part was Poochie isn't a friendly dog. Poochie acts friendly to other dogs, and then goes bat-shit crazy - all 80 pounds at once. The Wife and I believe Poochie wasn't socialized very well as a pup, before we adopted Poochie from the pound.

Finally, they call us into see the Doc. The Doc comes into the little room quick enough and starts the standard evaluation procedure. About a minute later, the door opens and a tech requests the Doc's presence elsewhere. Doc makes a graceful exit and leaves me in the room with Poochie. About two minutes later, another tech comes in and explains the Doc had to attend to an emergency and asks if I would like to wait about 10 minutes or just drop off Poochie and come back later. I don't mind waiting so I flip out my Treo 700w and start listening to a podcast in the little examination room with Poochie.

About 10 minutes later, the Doc comes in, a little shaken. She explains that a kitty was really sick and had to be euthanized. That's a tough thing, no matter how objective of a Doc you try to be.

So the Doc restarts the evaluation and goes on and on about Poochie's dry skin and booger-ee eyes. Small potatoes in my book, but whatever. After a litany of product prescriptions and instructions, Doc asks if I have any final questions. It looks like Doc is getting ready to leave.

So, I ask about the vaccination shots.

Doc looks taken a-back.

After some paper shuffling in the file on the table between us, Doc exclaims that yes, Poochie does need shots and somehow that information didn't get passed along. Understandable, Doc just took out a kitty afterall.

So another tech comes in to help hold Poochie in place as two needles full of modern medicine are injected. Poochie doesn't mind too much since Daddy is there. If Daddy is cool, Poochie is cool; unless someone's at the door. Poochie's my dawg, in the literal and figurative sense of the word.

So my advice to you: when your receiving services from someone; no matter what; make casual declarations of your business there or you'll walk home with an armful of dry skin shampoo, fish oil and eye booger medicine.

Wednesday, July 18, 2007 9:21:54 PM (Pacific Standard Time, UTC-08:00)  #    Disclaimer  |  Comments [0]  | 

I've been using Google Reader for a while now and I love it. Its very quick to launch with my SlickRun shortcut of "gr" and it manages my current list of 96 RSS subscriptions very well.

In fact, I recently figured out that this application is perhaps one of the worst web applications to use with the mouse. The mouse is such an impediment to reading several posts efficiently. I launch Google Reader several times a day and its common for me to have nearly 50 unread posts from over 30 RSS subscriptions at any given perusal session.

Here are the Google Reader keyboard shortcuts I use on a regular basis.

  1. Click the "Show Updated" hyperlink in the left column to show only the RSS subscriptions with unread posts
  2. Click the first RSS subscription link of the list in the left column (getting in the mood)
  3. Click the first unread post of the list if the right column (tee it up)
  4. Press space bar to traverse multi-page posts and advance to the next unread post for a given RSS subscription
  5. When all the posts are read for a given RSS subscription, press Shift+N to advance the highlight to the next RSS subscription of the list in the left column
  6. Press Shift+O (this is my Oh face) to open the list of the new highlighted RSS subscription
  7. Press the space bar to traverse this new feed like the previous RSS subscription

 

 googlereader

To Summarize:

Space Bar Scroll through a long post, then skip to next post when the last line of current post is visible
Shift + N Highlight the next RSS subscription in the left column
Shift + O Open the list of posts for the highlighted RSS subscription

 There are a bunch of other keyboard shortcuts for Google Reader. These are the ones I use the most.

Wednesday, July 18, 2007 8:57:20 PM (Pacific Standard Time, UTC-08:00)  #    Disclaimer  |  Comments [0]  |