Tuesday, July 04, 2006

ISS and STS-121: Visible from North America

About 5 minutes after the local fireworks show concluded this evening, we watched STS-121 (Space Shuttle Discovery) make a flyover. It is currently racing to catch up with ISS, which passed over almost an hour beforehand.

At least in my neck of the woods, Discovery and ISS will both be visible in the evening sky over the next few days. Check out Heavens Above for your local times and flight paths. Be aware that the orbit for STS-121 will change as the shuttle makes maneuvers to intercept the space station, so any passes listed today can and will change as new orbital data is published. It's best to check the site in the early evening before dusk in order to get the most accurate flyover estimations.

Maybe you'll get lucky and see both satellites fly in tandem just before they dock--it's quite a sight to see.

Tuesday, June 27, 2006

Sam Gentile Tonight at NWNUG!

Tonight at the Northwest Ohio .NET User Group, we're hosting Sam Gentile, an internationally-known speaker and architect in the Microsoft space:

http://www.nwnug.com/PermaLink,guid,4f57c890-e64a-4c96-b8eb-418dfe8f0b57.aspx

That's 6:00 PM at the HCR Manorcare building, if you're in the area. We're planning on going out to Tony Packo's (new stadium location) afterwards, and anyone interested in talking SOA/Agile/Groove/Life/Etc with Sam is invited to join us.

Friday, June 23, 2006

Look What Elder Won

While at TechEd, I was introduced to Keith Elder, who as it turns out, actually was one of my blog readers (small world). Not only did he have a good time every night, but he also came home to find that he won a mobility package from Cingular that includes an 8125 Pocket PC Phone, 2125 WM5 Smartphone, and a Sierra Aircard 860!

http://dotnetpimps.net/blogs/theelder/archive/2006/06/21/26.aspx

Maybe I should have signed up at the various vendor booths at TechEd instead of just walking past them...

Happy Birthday Greg

Greg Huber, Chairman of the Northwest Ohio .NET User Group, Microsoft MVP (ASP.NET), and all-around nice guy turns the big 30 in style:

Friday, June 16, 2006

TechEd 2006: See Ya!

It's over. There will never be another TechEd 2006. Did you make the most of it?

For me, it was all about getting exposed to things that I've only read about, but didn't have a chance to play with. Ok, it was really about the networking and conversations that take place at events like this, but we'll tell my boss that it was about the sessions. ;-)

I think that Sharepoint 2007 wins my vote for best product coming out of this event. Not only does it appear that they finally got the architecture right, but it appears that MS products will use Sharepoint whenever they need a server-based presence (i.e., I was in a session that talked about publishing InfoPath forms to the web, and Sharepoint came up as a requirement). So, whether you realize it or not, you'll likely be running Sharepoint services from here on out.

The other exciting thing about Sharepoint Portal Server was that they combined Content Management Server into the same SKU. This strategy falls inline with what the other portals out there do (Vignette, WebSphere/WCM, etc).

Thanks anyone and everyone that I had conversations with, whether you knew me or not, or whether you'll remember me or not (I swear that every time that Mark Miller sees me, he says "You look familiar. Do I know you?"). It's been a blast!

TechEd 2007: New Orleans

I just found this posted on the msteched.com site (has it been there all of the time???)

Save the Date for Tech·Ed 2007 in New Orleans

Join us next year in New Orleans, June 3–8! Tech·Ed 2007 will be held at
the Ernest N. Morial Convention Center in the Big Easy. Sign up to receive e-mail related to next year's conference.



TechEd in New Orleans after the start of hurricane season. Could be interesting! Lightning never strikes twice at the same place, right?

TechEd Party: Train

Microsoft rented Finway Park last night for the Attendee Party. The main event was a concert put on by Train (you know, Drops of Jupiter, etc).

At one point, the lead singer (Patrick Monahan) invited women from the crowd to dance on the First Base dugout where the stage was set up. Two things were particularly interesting about this:

First, Josh's wife was one of the dancers (he promises that the dancing video will show up on his blog, which is probably a welcomed break for Drew Robbins, who usually gets that honor).

Secondly, towards the end of the song, two girls fell off of the side of the dugout and they had to stop the concert while medics attended to them! As Keith Elder and I were walking to a T-Stop last night, we stopped at a McDonalds and ran into some folks from Florida (Air Force) who had it on video. One of the guys emailed it to me this morning, so I'll take a look to see what exactly you can see, because I missed it myself.

(I've asked him to post the video to YouTube.com so that everyone can see it--if anyone else has video from last night, please do the same).

It was during that break in the concert that I ran into Keith while getting more to drink. Before that, I was sitting pretty far up in the stands. He invited me back to his section where everyone was standing anyways. It was on the center-left part of the stage, and only about 10-rows back, so I got a much better view of the show from that point forward. (So, in some kind of twisted way, I'd like to thank those girls for falling off of the stage... I certainly hope that they are okay, though).

UPDATE: ChavisC uploaded it to youtube!

http://www.youtube.com/watch?v=dnCLCCC8bPQ

Thursday, June 15, 2006

Intellisense in VSTS for Data Professionals

I heard it brought up several times that there is no intellisense in VSTS for Data Professionals. One explanation from the product team was the complexity of writing SQL statements, and how you would efficiently gather and present the intellisense information.

This didn't seem right to me. I mean, only weeks ago, Red Gate released SQL Prompt, which gives you intellisense capabilities in Management Studio (and, I believe in Query Analyzer too). So, the problem's obviously been solved, so why can't MS just include in in VSTS?

I saw Matt Nunn in the TLC area, so I sat down to ask him. Matt was on the SQL team for the longest time, and then went to the VSTS team either late last year or early this year (which I now know was for this product).

Matt's official marketing-speak response was that the capability exists, and even was in Management Studio at one time. But, it can't be released to the public because it needs far more QA/regression testing first. This is actually a satisfactory answer to me, because saying that "we have a quirky version in the lab" is more logical than "we're still thinking about how to do it".

I would have to think that the regression testing for VSTS is several multitudes harder than what Red Gate had to do, so I'll just wait for further word.

TechEd Day 3 Update

The days are actually starting to blend together. Despite my every intention to blog often, it just doesn't work that way when you are here.

So, I'm writing this on Thursday morning, trying to remember what I did yesterday or even the day before that I didn't blog about yet.

One thing that stands out in my mind was Scott Hanselman and Patrick Cauldwell's presentation on Dirty SOAP. It rocked! Scott added the perfect amount of humor, which totally rounded out the whole session. There are only a couple of sessions that I watched all the way through, and this was one of them (the others, I'll catch on the DVD).

Speaking of Scott, one other thing that stands out was watching him and Clemens Vasters hash out some new architecture details for DasBlog on a whiteboard in the TLC area. (Where else besides TechEd could a commoner like myself have a chance to see Scott and Clemens bouncing ideas off one another and a small audience). Totally fascinating. A flash mob started to form, but I didn't think to take a picture. [Disclaimer, whether it is appropriate or not: DasBlog is what we use for nwnug.com]

I was also fortunate to attend the Influencer Party last night, and met quite a few of the other influencers/bloggers/rock stars who I've only known by name: ActiveNick, Sahil, Julie, Michele, and others who I can't recall this very second.

To add to my NetFX 3.0 surveying, I found out from Tim Landgrave (RD out of Louisville, KY) that the WinFX stuff does do some magic under the hood to redirect calls into the 2.0 assemblies to elsewhere, so in his mind, the 3.0 version number might be justified because it's not the exact same 2.0 framework that we're used to using. While I followed what he was saying last night, I have yet to verify it personally in order to totally grok how it works, so I'll leave it at that.

Oh, and the obligatory mention of talking to Carl for more than 1 minute (10-15 actually) goes here... ;-)

Wednesday, June 14, 2006

Teamsters Could Make Riding the Bus at TechEd Interesting

Hmm, seems that the Teamsters who drove our shuttle busses for the first few days of the conference walked out at midnight last night in protest of "a terrible contract". They have been using managers and other non-union employees to keep the lines going.

My hotel is about 10 miles out of the city (Quincy Marriott), so I kind of need the bus to get to and from the convention center. Luckily, there's a T-Stop nearby, so in the worst case, I can take the train.

But, I wonder if a contingency plan exists???

NetFX 3.0 Kool-Aid

It's funny what kind of reactions you get when you casually bring up the whole "WinFX is now combined with the .NET Framework, and now it's going to be version 3.0" thing.

Now, this is in no way scientific, but in all of the conversations that I've had with people on this subject, it's overwhelmingly obvious that the blue badges are drinking the company's Kool-Aid, while the folks in the field that I've talked to (MVPs, RDs, fellow developers) are not as convinced about the merits of this move.

Bill Evjen (which I learned is pronounced EH-vee-on, like the water Evian) said last night that he doesn't support the move of the WinFX APIs into the Framework at all. Jeff Julian is thinking more like me in that the major version number change is inappropriate, regardless of what level of additional functionality that the new APIs add to the BCL. There were other opinions from the floor, but to my point, I haven't found a non-MS developer that has said that this was a great idea (but I'll continue to ask people today).

I'm not 21 Any More

Long story made short:

1-2 beers: a good thing.
Whatever number that I had last night: most definitely a BAD thing.....

Tuesday, June 13, 2006

TechEd Day 2 Update

Just a handful of updates:

  • Last evening, there was a reception in the Exhibit area. Microsoft planted food and beverages all throughout the event sponsors, so you had to walk through the maze of booths in order to get food.

  • Something that is particularly funny is that Mark Miller of Developer Express had lost his voice, yet was still at the DevEx booth giving the CodeRush/Refactor! demo. His booth babe was providing the voice while Mark provided the keystrokes. But, Mark would always want the presentation to go a certain way, so he was constantly whispering commands to the other guy. It was HALARIOUS! (Might not be funny if you don't know who Mark Miller is, but just be aware that he likes to talk).
    This morning, I hit a Sharepoint session that Ted Pattison gave. Wow, what an excellent presenter. It also made me a little more excited about the new features of 3.0 (Sharepoint 2007).

  • I'm doing a lot of walking around the convention, popping in and out of different sessions and chalk-talks. For the second day in a row, I caught the tail end of Scott Hanselman's powershell talk (what a powerful shell that thing is!).

  • I met up with Chuck Boyce today, and we talked for a bit and then ate lunch together (the food here is not all that great, for those playing along at home).

  • I have a few sessions this afternoon that I'm going to hit, not so much for the content as for the opportunity to see certain presenters.

Monday, June 12, 2006

TechEd Update

This is the first chance that I've gotten to actually blog. My laptop battery was completely drained this morning, and I haven't had a chance to park myself near a power outlet until now...

First off, Boston: Tell me why people live here? The traffic on a good day is like the worst construction traffic in Ohio. Stop and go for miles on end. For instance, this morning, it took my shuttle bus an hour to travel from the hotel to the conference (a 10-mile trip). It definitely explains why public transportation, like subways, is an important idea here (and why we just don't need it in Toledo, OH).

Anyways, last night's keynote was pretty so-so. Chloe from 24 (Mary Lynn Rajskub - a Detroit native) was the highlight IMHO. Then there was also a bunch of stuff about people being the reason behind software, or something like that... ;-) All that I could think about, though, as 20,000 people were crammed into the conference hall, was that there were 4x as many people there than were in the town that I grew up in.

Today (Monday), I attended an Infopath 2007 session (takeaway: there's a neat import tool that can generate Infopath forms from a Word document), Richard Campbell's Querying presentation (takeaway: I cover the right amount of information in my SQL Server 2005 T-SQL Enhancements talk), and the live taping of .NET Rocks! (takeaway: VSTS for Data Professionals is the first VSTS SKU that I see value in).

After DNR, I talked with Richard for a minute, and also shook Carl's hand, but I have the feeling that he either didn't recognize me (and didn't read my badge), or still thinks that I'm a little obsessed: He was kind of stand-off'ish, like he wanted to get away. ;-)

At the moment, I'm in Hans-Peter Haberlandner and Wolfgang Portugaller's session on storing complex object graphs in SQL Server. These are the folks from Austria that I met in San Francisco last November as part of the Connected Systems Developer Competition. I spoke to them briefly before the talk, and so far, they're doing pretty good (for German being their native language).

More later when I get a chance.

Oh, I've set up a Flickr tag for my photos:

http://www.flickr.com/photos/81259708@N00/sets/72157594163762723/

Sunday, June 11, 2006



Leaving for Boston this morning!

Saturday, June 10, 2006

Ooops, They Did It Again: WinFX Confusion

Now the story coming out of Redmond is that having WinFX as a separate brand was confusing people who thought that it was totally unrelated to .NET.

In reality, the WinFX is a set APIs that currently bolt onto the .NET 2.0 framework to enhance the Windows platform (things like communications/web services, workflow, presentation, XAML, etc). That is, the architects and developers who actually put systems together knew what WinFX was, and we also knew what was in the .NET Framework 2.0.

Well, in their infinite wisdom, the folks in Washington decided to drop the WinFX brand, and bring everything into the .NET Framework itself. That, by the way, is fine by me. But, then they decided to version this new framework as 3.0.

What's the problem with this? Well, included in the 3.0 framework will be all of the 2.0 APIs, like CLR 2.0, C# 2.0, VB.NET 2.0, ADO.NET 2.0, etc., plus the new WinFX stuff. They have just broken the continuity that we knew to expect in framework version numbers.

Now, when Orcas (next version of Visual Studio) comes out, they'll probably version the new framework as 4.0. What would be included? CLR 3.0, C# 3.0, VB.NET 3.0, ADO.NET 3.0, and WinFX 2.0 (speculating). Where's the 4's in this list?

Versioning the new framework as 2.5 would have been far more appropriate than a whole new version number. I know it's semantics, but their whole reasoning behind doing this was to eliminate confusion, but I think it caused more problems than it fixed.

References:

http://blogs.msdn.com/somasegar/archive/2006/06/09/624300.aspx
http://blogs.msdn.com/jasonz/archive/2006/06/09/624629.aspx

Tuesday, June 06, 2006

Grid Computing Next Week on DNR

The .NET Rocks homepage currently shows next week's (6/13/2006 UPDATE: Now 6/27/2006) show topic as:

Dan Ciruli shows us Grid Computing with .NET!

Cool! Dan, I believe, still reads this blog (and I'm still trying to figure out why...).

Of course, I was interviewed by Carl and Richard once:

http://jasonf-blog.blogspot.com/2005/11/sfo-post-event-party.html

(look at the dramatic recreation about 80% through this long post). :-)

Monday, June 05, 2006

My Carberator Synchronizer

Ok, I didn't invent this--the design comes from:

http://forums.ninja250.org/viewtopic.php?p=267907

In my case, I took a couple of baby bottles (we've got plenty laying around) that had screw on caps (not nipples, but caps that seal the bottle for transport, etc).

Cut two 3/16" holes in each cap. 1/4" vinyl tubing will be fed through each hole (the slightly larger but pliable tubing will seal the hole).

Tape the bottles together. Feed a length of tubing from one cap to another, but make sure that when the caps are on the bottles, that the tubing inside is long enough to go to the bottom of each bottle.

Feed two more lengths of tubing into each of the remaining holes. These only need to penetrate about 1/2 to 1 inch into the bottle. The other ends of this tubing is what will be connected to the vacuum ports of your carberator.

Fill each bottle about 1/3 full of liquid. I used 5w30 motor oil because it was onhand. Other people have tried water, ATF, or 2-stroke oil. I think any liquid will work, but you have to consider the "what if" scenario of having the liquid sucked into the carb.

Screw the caps onto the bottles (you'll have to twist the tubings to keep everything straight).

Now, equalize the bottles. Blow into one side to force the liquid through the linking tube until all of the air is forced out. Then blow into the other side until the liquid in both bottles are level.

At this point, you can connect the tubes to your carberator and start the engine. If the carbs are not in sync, then the liquid level in one bottle will go higher than another. Make your adjustments, and see what happens to the levels.



This picture shows my #1 and #2 carbs in sync after adjustments were performed.

It's cheap, but a little bit of a hassle for 4 carbs. I had to do #1 and #2 (left screw), and then #3 and #4 (right screw), and then #1 and #4 (center screw), which required unhooking the tubes each time.

Bike

One word: VROOOM!

Friday, June 02, 2006

Connie Parts: Check Murphs First!

While tearing into my carbs to free up the stuck float needle valves, I ripped one of the rubber tips. In calling around for this part (16030-1007), I was getting prices in the neighborhood of $30! (If you can see this part, you might guess that it's worth $0.50, but never $30!).

Well, I was just about to hit Submit on an order with RonAyers.com, when I decided to see if MurphsKit.com would have it. As it turns out, they sell this part along with other parts in a Carb Rebuild kit. The price of an individual kit: $20 shipped! I opted for the 4-kit option, so that I can just replace parts in all 4 carbs. This was $65 shipped.

Unbelievable how the dealerships (or rather, their distributors) can screw you on this pricing. Thanks Murph!

http://www.murphskits.com/zgcarbs/zgcarbs.htm

Thursday, June 01, 2006

Concours Update

For those of you following along at home:

  • The rear end is finished, including new rubber, lube, and a caliper rebuild (which involves replacing all of the rubber parts and cleaning the piston down to just brass). For what it's worth, the mufflers are extremely easy to remove, and this is almost necessary in order to gain access to the rear wheel. Plus, it's a lot easier to shine up the mufflers off the bike!
  • A new battery has been installed. This led to the discovery that the fuel sender suffered the same fate as the petcock valve: it has to be replaced because the insides are basically gone! That part is on order, but I still haven't received the new petcock from Ron Ayers yet, which is disappointing because I could have had the part in hand by now if I went through my local Kaw dealer (Honda East in Maumee, OH).
  • Oil has been changed. Now, this one was interesting. I had never drained used synthetic oil before, so I was expecting some dirty sludge resembling pitch to slowly drain out. But, this 8-year old stuff was still very "watery", and almost reminded me of Automatic Transmission Fluid. I had to check twice to make sure that I opened the right drain!
  • The front end is finished, including new rubber and two rebuilt calipers. When I took my tire in to the dealer to have it mounted, they informed me that I had a 17" tire, but an 18" rim. Blah! So, I had to buy another front tire--no big deal... Except that 120/70R18 is not a common tire size, and it was 4:30 PM on a Friday before the Memorial Day weekend. Luckily, they did have a 130/70R18 onhand (Goldwing front tire), so I agreed to purchase that. Other people on the COG forums use this size, so I think I'll be okay.
  • Valve clearance was adjusted. The biggest pain about doing this is that you have to remove so much plastic to get to the valves. I used a 0.006" feeler for intake, 0.008" for exhaust, and every valve was tight. The books just tell you to adjust the clearance, but don't really describe what this means. What you're trying to do is allow the feeler to fit in between the valve adjuster stud (rocker arm) and the valve stem itself, and when it's there, there should be no play in the adjuster (i.e., you're setting the total play to the thickness of your feeler gauge). I also noticed that sometimes, when I would torque the locknut, that the adjuster stud would tighten a little (this only happened for a few of the valves, but still made me work a little bit for the proper adjustment). So, be sure to check the clearance after the locknut has been torqued.
  • The Fuel Tank IS FINISHED!!! This includes restoring the tank with the POR-15 kit, and replacing both the petcock valve and the fuel gauge sending unit. I'm a little peeved, though, because one time when I had the tank upside down, it slid off of the towel that it was sitting on and took some nice scratches from the concrete. >(

So, I went to start it up today. It just cranked, but never fired. Tested spark, and it was good. Squirted a little starting fluid into the airbox, and the engine ran on it, but stalled when the ether was used up. That means that it's a fuel problem, and that also means that I have to do something that I now dread: pull the carbs again.

Well, off came all of the plastic, and just before nightfall, the carbs were freed. The only carb that had gas in it's float bowl was #4, so this should be an easy fix: I just need to free up the stuck needle valves. While I'm in there, I'll make sure that all of the jets are open and that there's no residual varnish anywhere... Sigh... I knew I should have done this when the carbs were off before (putting them back on is a little challenging).


IMG_4575
Fairings removed

IMG_4576
Under the valve cover

IMG_4579
Everything put back together

IMG_4583
Allie on the bike

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

Archive.Org

I just stumbled upon this:

I knew that archive.org 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):

http://www.archive.org/search.php?query=collection%3Acomputerchronicles...

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):

http://www.ronayers.com/fiche/400_0370/fuel_tank/fuel_tank.bmp

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:

http://www.peterhirschberg.com/arcade/gameroom.htm

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:

http://www.nwnug.com/public/PocketMod_blank.pub
http://www.nwnug.com/public/PocketMod_DoDN.pub


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:

http://www.photoastronomique.net/geant/0505-0604wb_800.html

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 (www.persitor.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:

http://www.flickr.com/photos/81259708@N00/sets/72057594133524394/

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:

http://shrinkster.com/er6

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:

----------------------------------------------------
VENUE LOCATION
----------------------------------------------------

Windows Live Local (map) link for WCC:

http://shrinkster.com/er6

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:

http://shrinkster.com/exz


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.)




----------------------------------------------------
SCHEDULE
----------------------------------------------------

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




----------------------------------------------------
SESSION CHANGES
----------------------------------------------------

The session schedule that has been posted on the Day of .NET homepage (http://dayofdotnet.org) 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:

http://dayofdotnet.org/#partners

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 (http://www.ftponline.com). 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.

http://www.ftponline.com/special/sqlserver/jfollas

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

http://www.ftponline.com/special/sqlserver/bwagner

Wednesday, April 26, 2006

NWNUG Redesign Launches

I spent a good portion of my evenings last week working on a redesign of the website for the Northwest Ohio .NET User Group (NWNUG). It officially launches today! I can't claim credit for everything, though, because there was a committee of members that helped to identify important content and redesign the logo, despite their own incredibly busy schedules.

Over a month ago, I had some ideas of how to take our web presence to the next level. Besides a new look and feel, we also needed a content management platform that would support categorization, permanent links to content, and syndication (i.e., publishing content to RSS).

For the record, our old platform used DotNetNuke. It's not a bad tool, and allows for quick assembly of a portal. But, in some areas, it was too much tool for our needs, while in other areas, it was insufficient.

The new platform is currently a mix between static HTML and newtelligent's DasBlog Community Edition. I modified the "Portal/Compass" theme that was designed by Johnny Hughes, and configured DasBlog to use that theme exclusively. At this time, DasBlog is used for the "Events and Announcements" portion of the site.

One reason behind my choice of using DasBlog is because it is open source. I have some ideas of tapping into DasBlog's template and data model in order to bring some more dynamic functionality to what is currently static HTML. I have also identified some behaviors (macros and otherwise) that I would like changed.

Kudos to Scott and the other DasBlog contributors! It's a fantastic piece of software.

Friday, April 21, 2006

EOLAS is teh sux0rz

Companies should not be able to patent an idea for implementing something in software, especially if they do not produce software themselves. The End.

Wednesday, April 19, 2006

AACS: Day of .NET GrokTalks

Leading up to the Day of .NET in Ann Arbor event, the Ann Arbor Computer Society (AACS) is hosting an evening of GrokTalks as part of their regular meeting on May 3, 2006 featuring a lot of the same speakers that will be presenting at DoDN.

What's a GrokTalk, you ask? It's a short (~10 minute) presentation on a single topic ("All Stuff and No Fluff" is the format). The Regional Directors gave a series of GrokTalks at last year's TechEd (http://www.groktalk.com/).

The May 3 evening will feature 8 or 9 talks in 90 minutes. At this time, speakers include Aydin Akcasu, Jason Follas, Darrell Hawley, Jim Holmes, Josh Holmes, John Hopkins, Martin Shoemaker, Bill Wagner, and a very special disembodied guest presenter: Carl Franklin (.NET Wonk, MVP for Visual Basic, Regional Director, Hunter/Gatherer... oh yeah, and host of a little podcast called .NET Rocks! ).

(The final list of confirmed speakers will be posted to the AACS site prior to the event).

AACS meetings are free and open to the public. Supporting membership is $20 per year.

Time: 6:00 pm
Location: Spark Central. 330 E. Liberty, Ann Arbor MI

Tuesday, April 11, 2006

Concours


Connie Arrives! I initially doubted it, but using a ratchet strap on each side of the handlebar really does hold a bike secure in the bed of a pickup truck. I had some webbing also tied around the rear of the bike, just in case it fell to one side or the other, but it didn't budge.


Know your knots! There's a clove hitch around the hand grip. One end also tied around the handlebar (couple half hitches) just to keep the clove hitch from working loose, and the other end had a bowline. The ratchet strap's hook connected to the bowline. For security, I also tied a rope through the bowline and the webbing of the ratchet strap (in case the hook somehow magically slipped off).


I had to take a 2-step process to get it off of the truck. The first step went from the truck to my front porch. The second step went from the porch to the driveway. (Notice the 2-year old supervisor watching through the window).


Finally got 'er on the ground! One of the front brakes was seized, so I actually removed the caliper, tie-wrapped the pads into place, and pumped the brake to push the pistons out. Then I tie-wrapped the caliper to the front fork. The Connie has 2 calipers for the front wheel, so I still had a front brake (which is good, since I used it exclusively as I rode down the ramps).


I even managed to figure out how the saddle bags are mounted.

Monday, April 10, 2006

Day of .NET in Ann Arbor

 Registration for the Day of .NET in Ann Arbor is now open!

Day of .NET is a one-day conference on all things .NET organized by developers for developers. This event is being offered at no cost to anyone interested in .NET development, and features speakers from across the Heartland Region, as well a special guest speaker: Mark Miller from Developer Express and Mondays.

The Day of .NET in Ann Arbor is a collaborative effort between the following INETA member groups:

This rare event takes place Saturday, May 13, 2006 on the campus of Washtenaw Community College (Business Education Building) in Ann Arbor, Michigan from 9:00 am to 5:15 pm.

Further details and event registration at: http://dayofdotnet.org

Sunday, April 09, 2006

YALAL (Yet Another Look At Linux)

Linux is interesting to play with, I'll give it that. There's something awe inspiring about seeing the console screen scroll through all of that information when it runs for the first time, and starts firing up different device drivers. And the fact that this operating system has been compiled for just about every device in pretty cool.

Even usability has come a long way. KDE has some pretty cool little widgets, yet things seem strangely familiar to the old Sun SPARCs that I used to use back in college. I also like the behavior when you run as a regular user (not root) and you access something that requires administrative access: it simply prompts you for the root password, and then runs that one application as root. Sure, Windows has Runas just like *nix has su, but the autodetection makes this is a step beyond simple user switching.

The trip down Linux Lane this time started with a New World G3 iMac that I happen to have acquired. I don't have a MacOS CD, and there's no way that I'm going to buy one just for this old thing. So, what's the next best thing? Yellow Dog Linux.

I upgraded the iMac to 256MB of RAM, and dropped in a 20GB Hard Drive. Then, I downloaded and burned the YDL 4.1 CDs. Installation was pretty easy with the exception of partitioning the drive.

To make a long story short, in order to have OpenFirmware load yaboot, your drive will need an Apple_Partition_Map partition, and YDL's installer does not seem to be able to create one. Normally, after dropping in a new hard drive, you would use the MacOS CD to create the Mac partitions, including the all-important Partition Map, and then install YDL. Without a MacOS CD, I had to find a PowerPC LiveCD (Gentoo project has one), and then use mac-fdisk to initialize the disk (i), which creates the Partition Map partition. Once that was done, the YDL installer did everything else for me.

So, now that I have Linux running on a PowerPC, is it usable? Yes, as far as everything that comes on the CDs. However, if you want to install something else, you need to look for a source-code distribution and build it yourself. That pretty much rules out commercial software.

You see, it's almost guaranteed that any company that distributes a binary Linux version of their product will only have x86 available (not PPC). That makes it kind of tough to download things that you take for granted in the Windows environment that only runs on x86.

Case in point: almost every web site out there that my daughter would want to visit seems to use Flash, but Macromedia does not have a PPC Linux version of the Flash player (they do have a Linux x86 version, though). So, this means that this new machine, even with it's very standards compliant FireFox 1.5, is almost worthless in the eyes of an 8-year old.

I'll give it another 6-12 months, and then I'll get the urge to see what's new in Linux. Next time, I'll likely install on x86 so that I can get a true representative experience.

Thursday, April 06, 2006

Congratulations Jim!

When you become involved in user groups to the point that you're either helping to lead a group, or actually leading, it becomes inevitable that you'll form acquaintances (if not friendships) with leaders from other groups in your region. As such, I've gotten to know [at some level, at least] John Hopkins, Bill Wagner, James Avery, Dave Donaldson, Brian Prince, Patrick Steele, and the Holmes Brothers (Josh and Jim).

Congratulations to the latter: Jim was awarded the Microsoft MVP Award for Visual C#!

Wednesday, April 05, 2006

CableCards and the DIY HTPC

It's been widely discussed, including on this blog, that because of certification requirements, only the big system builders will be able to put together a HTPC (Home Theater PC, like Media Center) that includes CableCard technology.

As a refresher, a CableCard is an addressable device that you would register with your local cable company, and is essentially a whole digital cable converter box on a little card. The point is that with a CableCard, you don't need the converter box in order to tune in the digital-only channels (including premium channels).

I have always said that this would be a PCI form factor. But, I went over to my friend Mokee's house over the weekend, and he showed me his new HDTV. Among other things, it had CableCard support built into the TV (and they, in fact, are renting a CableCard from Adelphia). To my surprise, a CableCard actually uses the PC Card (PCMCIA) form factor. I didn't get to fully examine it, but I'm assuming/guessing that the tuner itself is built into the TV and the CableCard is just a decryption device.

Given the fact that the cable companies will rent you one of these for your TV, I don't see why you wouldn't be able to just move one from the TV into a PC after the cable guy leaves your house. This is assuming that you'll have drivers for it, and can somehow integrate with your existing ATSC tuner card, but I'm sure that the gray market folks and/or Open Source crowd will ensure that those are available.

Bottom line: At this time, I think that the Do It Yourself'ers will be very likely to build a Media Center PC with CableCard support (renting the card from the cable company).

Ghost Hunters were in Louisville, KY

Last week kicked off Season 3 of Ghost Hunters on SciFi. That episode took place at an old Sanitorium (Waverly Hills) in Louisville, KY, and they captured a couple of neat pieces of evidence.

The Where Clause

I've been listening to some of Chuck Boyce's interviews from DevConnections. Chuck has a podcast called The Where Clause that is hosted on SSWUG Radio, and my blog has been linked to on a couple of his shows.

In particular, the Matt Nunn interview is interesting because it contains some enlightening information about SQL Server Express (I met Matt last year at the CSD Competition dinner. At the time, he was a Program Manager for SQL Server, but now has moved on to a VSTS role).

Carl Franklin interview is next...

Friday, March 31, 2006

It's Coming!

Year: 1995 (?)
Make: Kawasaki
Model: Concours 1000cc
Class: Sport-Touring
Current Location: LaGrange, KY

A regular reader of this blog has generously donated his mid-1990's Connie for my riding enjoyment! (Disclaimer: I also call this reader "Dad").

It's been in storage ever since he picked up a Drifter.




I'm heading down on or about April 10 to pick it up.

Sunday, March 26, 2006

Rotavirus

Tina and I had the joy over the past week of watching our 2-yr old son suffer the effects of Rotavirus. This is a virus that almost everyone has experienced by 3 years of age, and is dangerous because of the dehydration that it brings on.

This morning, he was suffering the full symptoms (vomiting and diarrhea). We put him down for his afternoon nap, and as suddenly as the symptoms came on a week ago, they totally disappeared after he woke up. He appears to be fine now!

But, his twin sister woke up from her nap and started vomiting... Here's to another week of this fun!

One big problem with a toddler that has Rotavirus is that the child likely does not want to drink anything. Below are some tips that our Pediatrician recommended for keeping a child hydrated (the alternative is IV therapy in a hospital).

1. Give 2 fluid ounces of liquid at a time. Wait 15-30 minutes to see the results.

2. No fats: For milk, serve only skim milk. In Evan's case, he had absolutely no interest in drinking anything other than milk. Even though it came back up more often than not, he still got some hydration benefits from it (we just had to do MANY loads of laundry). BTW: Rotavirus is known to cause temporary lactose intolerance.

3. You can give Gatoraide if they'll take it. Yeah, yeah, it has loads of sugars, etc, but with this game, getting them to drink liquids is what's important, not healthy habits. Plus, the electrolytes will help.

4. Try small amounts of applesauce, if they are up for eating.

5. Try popsicles if they don't want to drink anything (this didn't even work for Evan).

6. Try ice chips.

7. Be persistant, but not forceful.

Saturday, March 25, 2006

Mesothelioma Lawyer, Consolidate Loans, and DUI

I found this particularly disturbing. Since placing Google AdSense spots on this blog, I've accumulated a grand total of $7.50 to date (that's probably a total of 30 clicks for 10,000 page impressions). Payout is not until $100.

But, there are some AdSense keywords where the advertiser will pay $20 - $50 PER CLICK! And if you look through the list below, it's obvious that these advertisers are looking for people who are suffering in one way or another (i.e., ambulance chasing).

I guess I just need to start a blog all about Mesothelioma or finding personal injury lawyers in California, or fighting DUI charges in Toledo. Oh, and if you happened to find this page by searching for any of these types of terms, please look for the link to a qualified lawyer in the Advertisements at both the top and in the sidebar. ;-)

Source: http://www.cwire.org/2006/03/23/updated-highest-paying-adsense-keywords/

$54.33 mesothelioma lawyers
$47.79 what is mesothelioma
$47.72 peritoneal mesothelioma
$47.25 consolidate loans
$47.16 refinancing mortgage
$45.55 tax attorney
$41.22 mesothelioma
$38.86 car accident lawyer
$38.68 ameriquest mortgage
$38.03 mortgage refinance
$37.55 refinancing
$35.99 auto accident attorney
$35.52 equity mortgage
$34.34 mesothelioma texas
$34.05 mortgages
$33.80 criminal defense attorney
$33.54 epocrates
$32.95 mesothelioma
$32.08 car accident attorney
$31.60 mortgage refinance rate
$31.38 loan refinance
$31.29 personal injury attorney
$31.24 best refinance
$30.14 register domain names
$29.86 medical malpractice lawyer
$29.68 incorporate
$29.68 malignant mesothelioma
$29.49 mortgage refinance
$29.45 freecreditreport
$29.41 fargo refinance
$28.53 mortgage loans
$28.15 125 refinance
$28.05 los angeles lawyer
$27.96 re mortgage
$27.38 how to register a domain name
$27.31 mortgage refinance rate
$26.86 personal injury
$26.48 refinance
$26.17 refinance
$25.43 mortgage loan
$25.35 texas refinance
$25.33 medical malpractice attorneys
$25.33 mortgage application
$24.46 mortgage companies
$24.33 countrywide
$23.92 low mortgage rate
$23.26 va refinance
$22.83 gmac mortgage
$22.17 california mortgage rates
$21.86 ameriquest
$21.68 florida lawyer
$21.41 dui
$21.29 refinance leads
$21.16 domain register
$21.07 refinance new york
$20.62 refinance rental property
$20.46 utah mortgage
$20.38 mortgage lenders
$20.35 find a lawyer
$20.20 mortgage note
$20.17 wrongful death

PwopCatcher Alpha is Released To Public

Carl Franklin has had this vision for about a year now (maybe more) of what a podcast client should be. His program, dubbed PwopCatcher, is a podcast management application that will discover new podcast episodes (by polling RSS feeds that you subscribe to), download content (direct and BitTorrent supported), and automatically prune old episodes.

It has been vaporware for, oh, about a year now. ;-) The Pwop Ambassadors have had the opportunity to view bits and pieces as Carl worked on them, but today, he released an Alpha version to the greater public.

Better details here:

http://www.intellectualhedonism.com/2006/03/25/PwopcatcherAlpha.aspx

Friday, March 24, 2006

End of the Tour

Last night, Greg Huber and I gave the final installment of a 4-city tour of our joint Media Center presentation:

  • Dayton-Cincinnati Code Camp
  • Detroit, MI
  • Toledo, OH
  • Columbus, OH
Each time that we did it, the presentation got better and better. Unless my ears deceived me, the crowd last night actually applauded when the demo (that I wrote from scratch) worked. That's a big change from the first presentation where we had to keep rebooting the MCE machine!

Greg's going to start working on his Atlas presentation, and I'm going to start looking for something new to play with (but most likely something from WinFX). That's not to say that one or both of us couldn't pull this presentation back out if someone really wants to see it.

Wednesday, March 22, 2006

NWNUG Meeting 3/28/2006: Dustin Campbell

I've got to be honest to my three readers: Greg and I had no clue who was going to present at our next meeting until yesterday. We had a couple of ideas, but no firm commitments.

Then, as Josh Holmes was talking to Mark Miller (Developer Express) the other night, an interesting fact came to our attention: One of the developers who actually works on the CodeRush and Refactor! products lives and works in my town!

After a quick email introduction, and a few other emails virtually begging him, Dustin Campbell agreed to be our speaker on Tuesday evening, March 28th (6:00 PM, HCR Manor Care building, downtown Toledo, Ohio, USA, planet Earth, Sol System, Milky Way Galaxy, etc).

He agreed to show off two of my favorite Visual Studio add-ins: CodeRush and Refactor! Pro. He will also show the group how they can hit the ground running by building their own DXCore plugin (you don't necessarily need CodeRush or Refactor! to use DXCore).

Dustin will have some time constraints due to his pre-existing schedule, so we will start the meeting promptly at 6PM (and he may have to leave at the Pizza break).

To encourage a good turn out, Greg Huber will be offering one of his Silver Tickets for the prize raffle. This ticket is good for a full MSDN Premium subscription, and I believe that this is the big subscription too with the full Team System Suite. Basically, you can buy a car with the retail value of this prize (but this is a not-for-resale subscription, so you are not permitted to profit from it in any way).

One caveat: We must have 25 people in attendance before the MSDN subscription will be offered up. We encourage you to bring a friend and spread the word!

Also, please be kind and pass on this prize if you already have a MSDN subscription--the goal is to put this software into the hands of developers who otherwise would not have this opportunity.

The current meeting topic is always available at:

http://www.nwnug.com/dotnetnuke/Default.aspx?tabid=31

Monday, March 20, 2006

Team Hanselman: Diabetes Fund Raiser

Most readers here probably already know who Scott Hanselman is. He's a Microsoft Regional Director and MVP who resides in Portland, OR. Maybe more importantly, he is also the Chief Architect for a company whose software might be running your bank's internet banking website. (Why that is relevant to the topic of this post is beyond me; it's just a fun fact).

Scott is just an all-around great guy: fun to listen to, smart as anyone I've ever ran into, and even takes time out to answer emails from the little people. Besides blogging on technical topics, he also occasionally throws out a post on Diabetic topics.

When he was 21, he lost a considerable amount of weight over a short period of time, and was finally diagnosed as a Type I Diabetic. According to his story, there is no family history, so the likely cause in his case was a virus that he contracted.

That last piece of information is what should give you something to think about: You could just have the flu on one day, and then a short time later, have to start giving yourself 8 shots of insulin a day (not to mention the countless pricking of your finger to measure blood sugar levels).

Team Hanselman will be participating in this year's America's Walk for Diabetes on May 6th. He and his wife have set a pretty ambitious goal of raising $10,000 for the American Diabetes Association. If anything is worthy of charitable donations, I think this is it.

But don't just take it from me--check out Scott's blog post for yourself:

http://www.hanselman.com/blog/TeamHanselmanAndDiabetesWalk2006.aspx

Friday, March 17, 2006

New Strings: Martin Acoustic SP

I've been playing on the same set of Elixir Nanoweb strings for quite a few months now, and it was only recently that I noticed the tone changing. Those Elixirs are nice, and the coating really keeps the squeaking down, but they're $15 a set.

I went to Guitar Center tonight and played with a few of the guitars that I could never afford (case in point: I really liked this Martin that they had, but it was $2500). I was mainly looking for a set of strings that I liked the feel of.

I went to the counter and asked what those Martins were strung with, and they said that they were Martin Acoustic SP's: $6. I'll give them a shot!

The first thing that I noticed was that I'm now squeaking a lot. I must have really took those Nanowebs for granted and got lazy on my fret transitioning. But, the bright tone is back into the guitar's sound, so I'm happy. We'll see how long this set lasts.

And Jiko: We still need to talk guitars sometime. ;-)

Media Center and Digital Cable

I've been asked by quite a few people lately about how Media Center works with Digital Cable (particularly in respect to High Definition). While I don't at all mind fielding these questions, I don't think that I'm the best subject matter expert, since I don't have HDTV at home, and don't use Media Center in conjunction with my cable converter box.

But, I'll attempt to capture my responses here (hopefully it will be more concise than my off-the-cuff babbling that some of you had to suffer through).

First off, let's understand what's coming into your house on that coax cable. Unless your local cable company does something radically different than mine, then you should have a range of channels that are analog. That is, you can plug the coax into a regular television, and be able to tune to these channels. Note that the channel numbers might be different from what you would use on your converter box, but the point is that these lower channel numbers are not digital.

Your local network television affiliates are included in this range of analog channels, as is the Weather Channel, several home shopping networks, and the usual "Basic Cable" stations. For Media Center, a regular television tuner card, like the Hauppauge PVR-150MCE, works nicely, and can tune in these channels directly from the coax without needing your converter box.

Now, what if your local network affiliate simulcasts both analog and digital (ATSC) signals, as most stations in the USA are doing? This is outside of my domain of expertise, but I would guess that the digital portion of the broadcast might be included along with the analog signal, the same as it is over the airwaves. So, for instance, if your local CBS is channel 11, then perhaps you would be able to plug your coax right into your television (or separate tuner), change to channel 11, and then get the 16x9 ATSC picture instead of the old 4x3 NTSC picture. I welcome comments on this.

At the moment, Media Center only supports Terrestrial (off-the-air) HDTV. That is, you can buy a ATSC capture card, like the DVICO FusionHDTV5, that will tune in the same local digital signals that you can normally tune in on your television. If these signals are indeed available right off of the coax, then you again don't need the cable converter to record shows using Media Center.

So, where does that digital cable box come into the picture? Well, all of the digital cable channels that you cannot receive on the coax using a standard television are actually being "broadcast" on the coax as encrypted MPEG-2 streams. You can fit so many more digital streams into the same bandwidth as an analog channel, so this is what makes it possible to cram hundreds of channels into the same bandwidth as maybe 20 regular channels would occupy.

Let's say that you want to watch the Science Channel. Your cable box will actually receive the decryption keys from the head-end (assuming that you are authorized to receive the channel), and then will decrypt the signal and reassemble the video. Where it goes from here depends on your setup, but somehow, the video comes out of the converter box as a signal that your television can use.

In order to record these "digital only" channels on Media Center, you need to receive the signals coming out of the converter box (in effect, your Media Center becomes the television in the above description).

Using a cable converter introduces a few issues:

1. How does Media Center change the channel in order to record a show? This is usually done using an IR blaster. Your Media Center remote control probably has a blaster built into the USB device that you thought was just a receiver. What you have to do is RTFM and figure out how to program the blaster. Then, Media Center will have the ability to emulate your converter box's remote control, and change the channel. The caveat here: Media Center has no idea about the state of your converter box; it is just blindly trying to change the channel. If the converter is powered off, then you're not going to record your show.

2. What about different TV Guides for direct-cable versus through-the-converter-box (since the channel numbers might be different between the two)? At this time, the standard response is that Media Center only supports one Electronic Programming Guide (EPG) at a time. You need to choose to use Media Center only with your cable box, or only with direct coax, but not a combination. However, for the homebrew PVR builders: Other PVR software, like GBPVR, etc, will allow you to have different EPGs tied to each tuner card, if you need it.

3. Can I tune in the digital-only channels without a converter box? Nope. Remember that these MPEG-2 streams are encrypted, so the tuner needs to communicate with the headend in order to get the decryption keys. However, there will be a type of tuner coming out in the near future called a Cable Card. This is essentially a converter box built into a PCI card. However, the homebrew PVR builder will not be able to use these, because the DRM folks are requiring that a converter card be certified for use with a complete system, and the certification process costs $10,000 per attempt. The end result is that you'll have to buy a complete Media Center PC from one of the big system builders (Dell, HP, Gateway, etc) if you need Cable Card support.

That just about sums up what I've been telling people lately. Please feel free to comment on your own experiences to support or refute anything that I've stated here.

Diff'rent [key]Strokes

I found one disadvantage to writing code on a laptop:

I added some functionality to a web app that filters keystrokes using client script so that only numbers could be entered into textboxes. I also had to allow for Delete, Backspace, Enter, decimal point, and Arrow Keys. But, all other keystrokes were just simply ignored.

And, then comes demo day. I go to the client's location, and we pull up the web application in her browser. Everything looks great. I tell her, "Go ahead and enter numbers. Try some letters and symbols, too."

What does she do? Immediately tries to type numbers using the numeric keypad on her full-size keyboard.

What does my script do? Filter out those keypresses because it did not recognize them as being numeric. Blah!

It seems that the number keys across the top of your keyboard and the number keys in the keypad have different keycodes, which actually makes a lot of sense. But, since I developed the site using a laptop, it didn't even occur to me to test the 10-key functionality.

For reference the keyCodes for 0-9 are:

"regular" numbers: 0x30 - 0x39
"number pad" numbers: 0x60 - 0x69

The decimal point (period) also has different keyCodes. 0xbe for the "regular", and 0x6e for the "number pad".

Thursday, March 16, 2006

Ann Arbor Day of .NET: Call for Speaker Abstracts

There's an exciting event coming to the Ann Arbor, MI area on May 13, 2006: A Day of .NET organized by the following area User Groups (all INETA Members):

  • Great Lakes Area .NET User Group (GANG)

  • Northwest Ohio .NET User Group (NWNUG)

  • Ann Arbor .NET Developer Group (AADND)

A user registration site will go live around the beginning of April, so you'll have to wait until then before you can sign up for this FREE event.

But, there is currently an open call for speaker abstracts. If you are interested in giving a presentation on a .NET-related topic, then please see the following page on the event's website:

http://dayofdotnet.org/blogs/homepageblog/archive/2006/03/03/9.aspx

The cutoff date is Wednesday, March 22, 2006, so please hurry!

Updated 3/16/2006: Deadline extended by a week.

rgvac

A couple of people have asked what the letters in one of my email addresses means: RGVAC

It stands for rec.games.video.arcade.collecting, and is a Usenet newsgroup that I used to spend quite a bit of time on. Coin-op video game repair and restoration used to be a hobby of mine (I say "used to" because I just haven't had the time or money in the past year to do anything at all with it).

It's a fascinating hobby, actually. Restoring a video game is very much like restoring an old car. You spending months tracking down original artwork, painstakingly restoring a damaged wooden cabinet, bringing a dead monitor back to life, and doing a 4116-to-4164 conversion to get rid of that old RAM that runs too hot and requires three different voltages.

And, after all that, there's nothing like the feeling of turning the completed game on for the first time. All of your hard work is finally realized in that one moment.

Then, you load it into the back of your pickup truck, take it to an auction, and sell it to the highest bidder because your house payment for that month went into artwork, monitor parts, and new 4164 RAM. ;-)

Meeting Miguel Castro

Tonight, I officially met Miguel Castro at the GANG user group meeting. He's an INETA speaker, and was presenting on WebControls. I say "officially", because it just so happens that a few weeks ago, I was introduced to Miguel via email through Josh Holmes when I had some related questions.

As part of that email conversation, I naturally had to show him a couple frames that I captured last fall when Carl, Richard, and Geoff was on the DNR Roadtrip:



Miguel's response in email was "How in the world did you ever capture that? I was chatting with Carl at the time, and said that Geoff looked like a cross between Yanni and the Unabomber". Hence, the reason for the second picture:



Well, tonight, we were at dinner together after the meeting. I bring up the story about the "Geoff looks like a cross between...", and Miguel asks me for my email address, because he has a "friend" that built an application to capture all of the DNR webcam frames.

I simply stuck out my hand, and said "Hi! I'm your friend. Glad to meet you." Suddenly, he put two-and-two together and realized which Jason I was! ;-)

Tuesday, March 14, 2006

Writing a DXCore Plugin

As part of evaluating the CodeRush and Refactor! Pro products from Developer Express, I decided that I wanted to write my own plugin. Both of these products are based on the DXCore API, which is the layer that allows access to Visual Studio and the source code that you are editing. DXCore is freely available, and any plugin that you write will always work (i.e., no timeout/expiration periods).

I use copy/paste A LOT when writing code. Often, I will create something outside of Visual Studio, like a XML document or a piece of JavaScript code, that I then need to use within my code as a string. So, I would find myself pasting the text into my code, and then manually wrapping each line with some sort of string-building syntax:

<xml>
<element1 />
<element1 />
</xml>
would become:
string xml = "<xml> \n" 
+ "<element1 /> \n"
+ "<element1 /> \n"
+ "</xml>";

What I wanted to do for my first DXCore plugin was to be able to highlight a range of text in Visual Studio, hit some key sequence, and then have the string-building code automatically added for me. Instead of using string concatenation, I wanted to wrap everything in StringBuilder code. Sounded simple enough.

Following Mark Miller's example on dnrTV, I came up with the following action:
StringBuilder code = new StringBuilder();

TextSelection selection = CodeRush.Selection.Active;

code.AppendLine("System.Text.StringBuilder ___sb = new System.Text.StringBuilder();");

foreach (string s in selection.Lines)
{
code.AppendLine("___sb.AppendLine(\"" + s.Replace("\"", "\\\"") + "\");");
}

selection.Replace(code.ToString(), true);
This worked nicely, except the output was restricted to C#, and it didn't have all of the nice touchy-feely stuff that CodeRush and Refactor! gives you.

Trying to figure out the DXCore API was a little overwhelming, so, I approached Mark via email for some pointers of how to use DXCore to generate output in whatever language you're using (VB.NET or C#). A couple of emails later, and he finally understood what this plugin was trying to do. Note to self: always provide clear examples when talking to Miller.

Much to my surprise, instead of just pointing me to a couple of classes or methods, he returned a fully functional piece of source code to me that I could then study, complete with Undo functionality, language-independent code generation, and the cool caret and linking stuff that you come to expect when working with DXCore products:
private string CreateTextCommand(string command)
{
return CodeRush.Constants.TextCommandBegin + command + CodeRush.Constants.TextCommandEnd;
}

private string CreateLink(string linkName)
{
return CreateTextCommand(String.Format("Link({0})", linkName));
}

private string Caret
{
get
{
return CreateTextCommand("Caret");
}
}

private string BlockAnchor
{
get
{
return CreateTextCommand("BlockAnchor");
}
}



private void actWrapText_SB_Execute(ExecuteEventArgs ea)
{
WrapSelectionInStringBuilder();
}

public string GenerateStringBuilderWrapper(string text)
{
ElementBuilder eb = new ElementBuilder();

string variableName = CreateLink("__sb");

eb.AddInitializedVariable(null, "StringBuilder", Caret + variableName + BlockAnchor,
new ObjectCreationExpression(new TypeReferenceExpression("StringBuilder")));

string[] lines = text.Split('\r');

foreach (string lineToAdd in lines)
{
string trimmedLine = lineToAdd.Trim();

ExpressionCollection expressionCollection = new ExpressionCollection();

expressionCollection.Add(new PrimitiveExpression("\"" + trimmedLine + "\""));

eb.TopLevelElements.Add(eb.BuildMethodCall("Append", expressionCollection, variableName));
}
return eb.GenerateCode();
}

private void WrapSelectionInStringBuilder()
{
TextDocument activeDoc = CodeRush.Documents.ActiveTextDocument;

if (activeDoc == null)
return;

TextView activeView = activeDoc.ActiveView;

if (activeView == null)
return;

TextViewSelection activeSelection = activeView.Selection;

if (activeSelection == null)
return;

string replaceCode = GenerateStringBuilderWrapper(activeSelection.Text);

DevExpress.CodeRush.Interop.OLE.Helpers.ParentUndoUnit lParentUnit =
CodeRush.UndoStack.OpenParentUnit("Text to StringBuilder", true);

try
{
activeDoc.Selection.Delete();

SourceRange rangeExpanded = activeDoc.ExpandText(CodeRush.Caret.SourcePoint, replaceCode);

activeDoc.Format(rangeExpanded);

CodeRush.Source.DeclareReference("System.Text");
}

finally
{
CodeRush.UndoStack.CommitParentUnit(lParentUnit);
}
}

Miguel Castro at GANG on March 15, 2006

SOUTHFIELD, MI - GANG (The Michigan Great Lakes Area .NET Users Group) is proud to have Miguel A. Castro presenting this Wednesday, March 15th at 6:00 PM. Miguel will be doing "Hitting the Ground Running with Custom Webcontrols – Parts 1 and 2". Should be a great presentation. And don't forget -- free pizza and pop!

(from Patrick Steele's blog)