Wednesday, May 31, 2006

Listen to Me on The Where Clause

Last night, I was interviewed on Chuck Boyce's podcast called The Where Clause (along with Rushabh Mehta).

It was a technically challenging interview because we used Skype. Due to the way that his recording rig was set up, all audio from the Skype conference was sent to all participants. This means that my voice would echo back to me at about a 1/4 second delay (I had to remove my headphones whenever I spoke). So, there were some awkward pauses and times where I kept talking over Chuck when he would ask me a question.

Also, in listening to the playback this morning, I noticed that the way that Skype handles dropped UDP packets is that it keeps playing the last packet until a new one comes in. The result is kind of a stuttering effect (my Wi-Fi connection at home was a little weak last night back in the bedroom where I was located). Or, at least I don't think that I normally stutter!

It was a good time, and I look forward to being back on the show (maybe Chuck will find a different way to record Skype, or we could each record local audio and he could edit in the tracks using Audacity or something).

Monday, May 22, 2006


I just stumbled upon this:

I knew that hosted the Wayback Machine, which contains snapshots of almost every web site for different dates. What I didn't know (or didn't realize) was that there's also a huge repository of video and audio. It is an interesting place to spend a little bit of time.

In my case, I stumbled upon the Computer Chronicles collection (I remember watching this program almost every weekend on PBS):

Cedar Fair is Purchasing Paramount Parks

I live an hour's drive away from what is arguably the best theme park on the planet, especially if you are a roller coaster fan: Cedar Point.

Today, their parent company (Cedar Fair L.P.) announced the acquisition of Paramount Parks. This means that "the other" major theme park in Ohio, King's Island, will now become a sister park to Cedar Point instead of an intra-state rival.

Cool! I doubt that my season pass for CP will allow entrance to KI, though (it does not allow entrance to another nearby Cedar Fair park: Geauga Lake and Wildwater Kingdom).

Wednesday, May 17, 2006

Gas Tank Repair: Take 2

Last night, I used the 3rd stage of the fuel tank restoration kit. This is a sealant, which is probably a fancy name for "paint that gasoline doesn't destroy". The POR-15 instructions says to use latex gloves when handling this stuff, and I would strongly recommend heeding that warning: my fingers are currently stained, and NOTHING takes it off once dry (the stains just laughed at mineral spirits and acetone).

So, you pour this 8 ounce can of silver paint-like stuff into your tank, and then slowly roll it around so that it covers all surfaces. And then after 30 minutes or so, you're supposed to drain whatever excess is still in the tank. Herein lies the problem: the Connie's tank is not really designed to allow fluid to easily pool around the petcock hole or the fuel sender hole, so I was not able to get ANYTHING to come out of the tank!

My solution, after giving up, was to keep rotating the tank so that the sealant didn't pool up in any one area (i.e., every 10 minutes, turn the tank to a new position). This worked until I fell asleep in my La-Z-Boy watching TV. So, one sidewall of the tank is going to have a thicker layer of POR-15 than the rest of the tank. ;-)

The sealant is now curing for the remainder of the week, and then I'm allowed to put gas into the tank.

But, while I had the petcock (or Tap Valve, as Kawasaki refers to it) removed, I opened it up to see why fuel wouldn't flow through it when on the Prime position. Wouldn't you know it, it was made of the same cast aluminum that the fuel cap was, and the gasoline had done a number to it. I should have taken a picture before trying to clean it out, but all of the internal ports were completely blocked by some kind of crystaline precipitate.

I tried cleaning away as much of this gunk as possible, but there's too much of that cast aluminum that is damaged. I don't think that a rebuild kit would do any good, so, I'm ordering a new Tap Assembly (51023-1388) for $65 shipped from Ron Ayers Motorsports.

Speaking of that, here's a neat exploded diagram of everything that I've had completely apart at one time or another (there's probably only 2 of you still reading to this point that might care):

While my Dad probably didn't anticipate that the bike would sit for so long, this definitely shows why you need to use a gasoline stabilizer when you overwinter a bike. Sometimes, that winter might last 8 years!

MyHeritage Face Recognition

Something neat to play with. MyHeritage has facial recognition software. You can upload a picture, and it will show you close celebrity matches.

My picture (the one from this blog) matched on these celebs:

(btw--this is funny because my wife has a thing for Matthew McConaughey).

RGVAC: What It's All About

One hobby of mine, which I don't have much time for these days, is restoring coin-op video games. When I realize my first million dollars of disposable income, I'll likely have an arcade in my basement (well, actually, building that house comes first, but it will be constructed with the basement arcade in mind).

This guy's living the dream:

Tuesday, May 16, 2006

IE7 Printing

I installed IE7 for the first time today. The most exciting new feature for me: Printing.

Yes, they finally fixed printing from a browser. No more right-edge clipping! Plus, the Print Preview makes it a snap to make sure that the printed results are exactly what you need before wasting any paper.

Monday, May 15, 2006

Mass Producing PocketMods For 200+ People

I first heard of a PocketMod from Scott Hanselman. You know, he's the guy who only has to mention the name of a product or idea in brief passing, and suddenly there's 1000's of people doing it.

But, I saw it really put to use when Jim Holmes used them as handouts for the Dayton-Cincinnati Code Camp. Inside, he included the schedules for the different tracks that they held, and it worked great!

Well, while planning Day of .NET, we decided that we HAD to do the same thing. So, Josh got the template from Jim, along with instructions for using PDF2POCKETMOD to produce the final result. Nothing is ever easy, and producing our PocketMod was no exception.

Long story made short: I gave up trying to get PDF2POCKETMOD working, and decided just to make my own Microsoft Publisher template. For the upside-down pages, just create everything normal, group all of the objects, and then flip them by using the rotate grab handle at the top (the green ball).

In the interest of giving back to the community, I've provided a blank template (except for the individual page numbers) and the actual Publisher file that was used to print our event's PocketMod:

Now, a tip for folding hundreds of these:

I won't go into the actual instructions--those are available on the PocketMod site. However, being the amateur industrial engineer that I am, I'm always looking at ways to make tedious tasks more efficient.

When folding these things, get yourself a good straightedge. I found my office paper cutter very useful, because it has a flat surface, but a raised straightedge at the top. Also, don't prepare each PocketMod individually. Instead, set up an assembly line and do each step on all of them before proceeding to the next step.

Use the straightedge to help you line up the paper without necessarily spending a lot of time looking at it. Put both edges against the straightedge, hold it there with your fingers, and then use your thumbs to make the crease.

With all of the first folds done, you can then proceed to make the next two folds on the entire set. Repeat the straightedge trick for both sides of the paper (end result is that you'll have a fanfold).

I was able to get the first 3 folds of 200 PocketMods completed all by myself in about 30-40 minutes. After that, it was just a matter of making the cut, and then the final fold (which you can do without the straightedge).

Full Moon Does Not Always Look The Same

This kind of goes along with my SQLCLR presentation:

While demonstrating scalar functions, I create a function to determine whether a given date is during a full moon or not (and then use that function to determine the average sales in the Adventureworks database for full moons versus all other days of the month).

Due to orbital mechanics, we don't see the exact same full moon every month. That is, the moon appears to wobble, and instead of being able to see 50% of the moon, we can actually see 59% over the course of a year.

Sound confusing? Well, just check out this animation:

Shoutz Out

I've got a few Narcissism feeds on Bloglines. I'm sure that other people do, too. These are simply links to RSS versions of Google searches, etc, for my name or URL. That way, if someone posts something about me, I can find it (usually within hours of their post).

I've created comments before to someone's blog post, and they were like, "Wow, I can't believe that you read my blog!" And I'm like, "Well, I only read it when you write about me...." Sorry!

So, using this fact, a blog could be used as a simple (and public) way to convey a message to someone instead of using email.

For instance, if I want Chuck Boyce to read any post, all that I need to do is include the words "SQL Server" and he'll find it. (Hi Chuck).

I'm sure Bill Wagner (Effective C#) does the same, though I'm pretty sure that he subscribes to my blog anyways.

Rory Blyth, Scott Hanselman, Carl Franklin (Pwop Productions), Robert Scoble, Miguel Castro: How's it going, guys?

Now all I have to do is watch my statcounter to see who finds this post based on their names (Yeah, I certainly lead a fun-filled life)... We now return to our regular programming...

Sunday, May 14, 2006

Connected Systems Developer Competition Winners

Last fall, I was fortunate enough to be a finalist in the Connected Systems Developer Competition. As part of that, I was flown to San Francisco and attended a fancy dinner for the 15 (or was that changed to 17? I forget) finalists, plus I got to attend the Joint Launch Event for VS2005/SQL2005/Biztalk2006, plus I was awarded a MSDN subscription. That's a lot of benefit for just writing some code (that I now show off as part of my SQLCLR talk).

The point of the finalist dinner, though, was to announce the actual winners of the contest. The June 2006 issue of MSDN Magazine has a sponsored insert starting on page 60 that highlights those winners, who walked away with at least $15,000 (the grand-prize winner took home a cool $50,000).

So, where did these people sit in relation to me at the table? John Arnold was across the table to my left. Marc-Donald Gagne was beside me to my left. Hans-Peter Haberlandner was across the table from me. Wolfgang Portugaller was across the table to my right. Michael Voigt was sitting beside me to my right. So, if you're following along at home, everyone on my end of the table who was sitting around me took some cash home (but I did not)! I'm apparently the opposite of The Cooler!

Of interesting note: Wolfgang Portugaller and Hans-Peter Haberlandner, who submitted Persistor.NET (serializes object graphs to SQL Server), were also the MCP category winners, which means that they were awarded a session at TechEd. I'll probably stop by this one:

SQL Server 2005: Storing Complex Managed Objects
Day/Time: Monday, June 12 1:30 PM - 2:45 PM
Room: 259 AB
Speaker(s): Hans-Peter Haberlandner, Wolfgang Portugaller

Object-oriented programming is state-of-the-art in software development today. When it comes to persistence, developers are often confronted with RDBMS lacking some of the rich features of the object-oriented paradigm. This session explains significant characteristics of persistence solutions and compares existing options. A specific category of persistence solutions which fully supports the object-oriented paradigm based on the mandatory features as specified in the "Object Oriented Database Management System Manifesto" is highlighted. To demonstrate these features Persistor.NET ( is used together with SQL Server 2005.

Track(s): Database Development and Administration
Session Type(s): Breakout Session
Session Level(s): 300

Day of .NET in Ann Arbor 2006 is Over!

The day has come and gone, and now I can resume normal programming (literally, and pun also intended).

Amazingly, we really had little to no hiccups! It went almost exactly as planned (to quote Dustin Campbell: "That's AWESOME!"). We heard from many attendees that the quality of the conference was on par with, if not exceeding, the quality of many conferences that you have to actually pay for (our event was absolutely free to the attendees). That does a lot to justify the amount of time that it took us to organize the day.

I think that one reason for the success was that Josh Holmes, John Hopkins, and myself (the primary organizers) have a lot of strong skills that compliment the abilities of the other two folks. That, when combined with the help of other event planners like Todd Bohlen, David Redding, Bill Wagner, and Darrell Hawley, led to a totally awsome event.

We'll definitely be having a spring event next year, and have already thought of a few things that can be done to make it even better.

Saturday, May 13, 2006

[Day of .NET] It Started!

People are checked in, and the sessions are currently underway!

View my Flickr Set Here:

Thursday, May 11, 2006

Shrinkster and Spam Firewalls

I made an interesting discovery today. As I was drafting the announcement email that was sent to all of the Day of .NET attendees, I sent a copy to a few of my email addresses, including my work address. To my surprise, our spam firewall (Baraccuda) blocked it!

I did several tests to try to identify why, and finally I found the culprit: Shrinkster URLs.

You see, we were sending a really long link into Windows Live Local (mapping web site). I thought that it looked bad, so I used Shrinkster to shorten it. The resulting URL was:

Wouldn't you know it? Baraccuda flags this as "Intent" (whatever that means), and denies it by default.

So, unless Barracuda changes their global policy, you will not be able to send an email containing Shrinkster links to someone behind one of their Spam firewalls.

Day of .NET Announcements

A couple of announcements:


Windows Live Local (map) link for WCC:

Notice the pushpin (number 1) on this map: it has been placed on the Liberal Arts building where the event will now be taking place. Right click on the pushpin, and then you can select "Drive To..." (in order to create custom driving directions).

Good News: So many people have registered for this conference that we had to change buildings! The new building (Liberal Arts) has much larger rooms. The event will take place on the second floor.

Liberal Arts Building 2nd Floor diagram:

You should park in Parking Lot 7, which is South/Southwest of the Liberal Arts building (it will be the first parking lot when you enter the campus from Clark Rd.)


8:00 AM
Registration Check-in begins between rooms 275 (Lecture Hall 2) and 276.
Continental Breakfast

9:00 AM to 11:45 AM
Sessions in rooms 261, 274, 275 (Lecture Hall 2), and 276.

11:45 AM to 1:00 PM
Lunch in the adjacent Student Center building
(Pizza supplied by Domino's Pizza)

1:00 PM to 5:15 PM
Sessions in rooms 261, 274, 275 (Lecture Hall 2), and 276.

5:20 PM to 5:45 PM
Wrap-up and prize raffle


The session schedule that has been posted on the Day of .NET homepage ( will change. You will receive an updated schedule when you check-in on Saturday. We will also update the Day of .NET homepage periodically before Saturday, so please check there for for up-to-date information and announcements.

One definite session change that we can relay: Due to a family emergency, Alex Lowe's session "Lessons Learned From Community Server" had to be cancelled. In its place, Dustin Campbell from Developer Express will present on using Generics in the 2.0 Framework. This session will go beyond the usual Generic Collections that we're all familiar with by now, and will demonstrate other ways that Generics can be used.

Monday, May 08, 2006

Day of .NET: Name Badges

What's a conference without credentials? When you check in, you will receive a name badge and a lanyard. This will serve as your ticket to lunch, so don't lose it! ;-)

Front of Name Badge Back of Name Badge
(Front and Back of badge)

Sunday, May 07, 2006

Day of .NET T-Shirts

Great news! There was enough money in the budget to print T-Shirts for all of the attendees!

Less Than A Week!

Day of .NET in Ann Arbor is THIS SATURDAY (May 13th)!

We have an outstanding number of partners helping to support this event (both financially, and by means of providing products to be given away to attendees). This event certainly wouldn't be possible without these sponsors, so please check out their product offerings:

Also, at this time, it appears that we might have outgrown the original venue (Business Education building)! This is certainly exciting! Be sure to check the Day of .NET homepage and this blog throughout the week, but the event will likely be held in the Liberal Arts building now.

We will also be sending an email to all of the registrants sometime around the middle of this week as both a reminder of the event and to provide the latest information about the venue location.

Saturday, May 06, 2006

Gas Tank Repair: Take 1

When I picked up the Concours, we couldn't open the tank's gas cap (is that what you call them on a bike?). The key would turn to the point of engaging the cam, or whatever's inside one of those locks that retracts the arm that hold the cap in place, and then stop.

After transporting the bike back to Ohio, I first stopped at a local locksmith before heading home. They were able to pick the lock for me, and turn it using a screwdriver (i.e., applying so much torque that would normally have snapped the key). It worked, and the cap opened up to reveal what 8-years of gasoline vapors will do to whatever type of metal that is made of (aluminum, I think).

I don't have pictures of immediately after, but it seriously looked like someone had smeared a thick layer of silver Anti-Seize Compound all around the filler hole. In retrospect (after cleaning it up), I don't think that the vapors necessarily consumed the metal, because it doesn't look like it needs replaced now. But, the vapors definitely precipitated into some kind of sludge.

Here's what the filler cap looked like this morning (imagine being covered by so much sludge that you couldn't make out any features, and that's pretty much what it looked like when I brought her home):

Josh had warned me a while ago that the tank would likely be rusted, and will need cleaned/coated. He was right. Last week, I siphoned out all of the remaining gasoline (3.5 gallons) and with it came a bunch of rust. I'm not sure how you properly dispose of old gasoline, but I've been using a 1:3 ratio of that stuff (filtered) and new gasoline in my lawnmower. ;-)

Luckily, the Concours has a vacuum-operated petcock valve, so the tank was not emptying into the carbs over the past 8-years. I did pull the carbs, though, just to make sure. They looked pretty clean (albeit, I did not use a microscope to examine jets or anything). A little carb cleaner will likely be required once the bike is running again.

As for cleaning and restoring the tank: I browsed around the COG forums and found a few suggestions. One that really interested me was a Motorcycle Fuel Tank Repair Kit from POR-15. $40 later, and the UPS man delivered the box to my house.

Inside was a cleaner, a rust remover/metal preparer, and a sealant:

I did the first step of the tank restoration this morning: Cleaning using a hot solution of the Marine Clean product (1 qt Marine Clean to 1 qt hot water).

One little challenge is how to seal the tank off. The Connie has holes for both the petcock valve and a fuel-level sender. The POR-15 instructions say to just use duct tape. I did, but I also re-enforced with some aluminum (from a pop can). The larger of the holes (fuel sender) leaked during the process, so I might need to use some RTV sealant for subsequent steps.

The Marine Clean dissolves varnish and sludge, and is really just a prep for the next step that does the heavy lifting of eliminating rust. I've got to say that I'm impressed. Marine Clean is clear going in, but look at a sample of what came out:

I'm going to let the tank dry out in the sun, and will probably do the next step tomorrow. There might be some flash rusting, but the Metal Ready will take care of it. The other purpose of Metal Ready is to change the pH of the metal from basic, which Marine Clean (being alkaline) left it, to acidic, which the sealer requires in order to adhere.

Thursday, May 04, 2006

ABC Videos

There's been a lot of buzz lately about ABC releasing popular shows after the original airdate for viewing on the internet. Since I missed LOST last night (and didn't record it at home), I'm happy that they offer this service (for free, even!).

There are a couple of commercials that you must watch. They are 30 second spots, and once the 30 seconds have elapsed, then the next segment of the show becomes "unlocked" and you can continue watching. This is actually A LOT less intrusive than normal television (assuming that you're watching a live broadcast, and not timeshifting). Plus, there's pause and seek functionality.

Having said that, though, there are still bugs that ABC has to work out. More than once, the video just stopped, and I ended up closing the browser and restarting (after waiting a few minutes to see if the video would resume on its own).

Is this a glimpse into the future of how "television" might be delivered? Quite possibly (as long as it remains free to the viewer).

Tuesday, May 02, 2006

I've Been Published!

A few weeks ago, Bill Wagner IM's me and asks if I was interested in writing an article on SQLCLR for Fawcette Technical Publishing's online site ( It sounded fun, and I already had a few presentations on the subject under my belt (and also have one coming up at Day of .NET), so I agreed. Bill introduces me to our editor at Fawcette (Nina), and I was underway!

A few revisions later (using both Bill and Nina as editors), and we had something that I felt comfortable with delivering.

Bill also had an article in the same SQL Server 2005 Special Report on the topic of LINQ: