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)

Thursday, March 09, 2006

Orb

Over the past six months, or so, there has been a lot of talk about a device called SlingBox, which essentially allows you to stream television (live or recorded) from your home to wherever you may be over the Internet. But, it wasn't until I was reading Jamie's blog that I learned about a similar service called Orb that will allow you to do the same thing with nothing to buy.

It was priced right ($0.00), but I was skeptical (as you should be for free services where there's no obvious revenue stream). Regardless, I created a user account, and installed the client-side software. Because my machine was already running Media Center, I found that the client essentially configured itself! As a disclaimer, though, I have not used Orb with a non-Media Center PC.

The magic of Orb occurs through the piece of client software that runs on your PC at home. This is what has access to both your hardware/media and the Orb servers. So, as long as the client software is running (i.e., icon appears in the task tray) and your home PC is always connected to the Internet via broadband and you have port forwarding properly configured on your firewall, then you can stream any media from that PC to wherever you are by means of the Orb web site.

For example, here I sit at Panera Bread. I know that I recorded Mike Birbiglia on Comedy Central the other day, but that video is on my Media Center PC, not this laptop. Through the magic that is Orb, I'm able to play that video and watch it here through WMP:



In this case, I'm not simply watching the 2 GB MPEG2 stream that Media Center recorded--that's too high of a bitrate to be streamed over my cable modem's uplink. Instead, the Orb client is actually transcoding it: it takes the original video file and transforms it so that it can be streamed across the internet (i.e., changes the audio/visual resolution, changes the compression codec, etc, all the while taking in account the available upload bandwidth of my home connection and the download bandwidth of my current location).

And, I guess this is cool too (for the Europeans and other WMP-haters): it doesn't just transcode to Windows Media format, but will also generate Real Media, 3GP Media, and Winamp streams.

What's more is that you are not just limited to watching video on a PC. I have successfully watched video on a PocketPC, and Jamie reported that he was able to do the same from his EVDO cell phone!

So, the first thing that I see when I login to http://my.orb.com is a dashboard, of sorts. This shows me some of the media that is available, including my most recent recordings:



Because my Media Center has a TV Tuner card in it, I could start to stream live television. Orb helps me decide what to watch by displaying TV Guide data for what's currently playing on the various channels:



When the live television is playing, you can change the channel using WMP's previous/next track buttons. In my tests, there was a lag of about 10 seconds while the transcoding took place.

Orb also provides you with the ability to remotely schedule a television show to be recorded, just in case you forgot to do so when you left the house. This is a common feature of many of the other HTPC software titles, but it is oddly not available out-of-the-box for Media Center (seems like such an obvious feature).

In this case, it is the Orb client that is actually doing the recording, not the Media Center recording service. The resulting file is in DVR-MS format (MPEG2 with metadata saved in the file), which is also the native format of Media Center. However, in my test, no metadata (episode description, TV rating, etc) was saved in the file.

All of the same media that is available to my Media Center is also exposed through Orb, from the Television capabilities, to Audio and Video libraries, and even pictures (for when you want to show off your latest photos that are trapped on your PC at home):



Now for some of the tricky stuff. The Orb client is supposed to have UPnP functionality, which if it worked, would automatically open up the ports on your firewall that needed forwarding (assuming that your firewall/router supports UPnP). In my case, it didn't work, but I didn't really spend a lot of time troubleshooting.

Whatever the issue was, I had to change the Orb client to use port 81 for streaming (instead of Port 80, since my Media Center was also running IIS). Then, I had to manually configure port forwarding in my router:

81 TCP
554 TCP
13398 - 13401 UDP

I'm assuming that the original port 80 was in place to promote access to the streams from behind corporate firewalls and through proxy servers. If I didn't want or need my web server to be exposed as port 80, then I can actually set up my Linksys firewall for PAT (Port Address Translation), which would take any incoming port 80 traffic from the Internet and send it to the Orb client listening on port 81.

I could go on and on, but that would take the fun away from you! Give it a try.

If Carl asked me today "What's the coolest thing that you've downloaded lately?", then this would definitely be my response.

UPDATE 03/13/2006: Uh, oh. The honeymoon is over and now I'm starting to see a few issues. I scheduled my Media Center (i.e., not Orb) to record Saturday Night Live, and when I went to watch the show, it wasn't there. Turns out that Media Center had shown a dialog saying that it couldn't activate the recording service when SNL started. I'm thinking that Orb's own recording service has something to do with this (i.e., if it still had a handle to the DirectShow graph that it was using to access my tuner card, then MCE wouldn't be able to create its own graph).

Scoble at the Oscars?

When I first saw a picture of Scoble, I thought that he reminded me of somebody famous (an actor) but I really couldn't put my finger on it.

Then I watched the Oscars last weekend.

Is it just me, or does Robert look a lot like Philip Seymour Hoffman?

Exhibit A: Click Here
Exhibit B: Click Here

Wednesday, March 08, 2006

ASP.NET Forms Authentication - Problem Solved

ASP.NET is not my forte. Having disclosed that, I'm currently working on a ASP.NET application that takes advantage of the Membership Provider in ASP.NET 2.0 and uses Forms Authentication.

This application worked great from the development web server (you know, that Cassini web server that comes with Visual Studio 2005). But, when I tried to deploy this to a real IIS6 web server, I ran into problems.

When I hit the site, the web server would correctly redirect my browser to the login page. However, upon logging in, my browser would keep getting sent back to the login page (with no error message, like "Bad User name or Password").

I was just about ready to throw my server across the room, and was even drafting a "please help" letter to Josh, when I decided to take another look at my web.config.

And that's when I saw it:

<authentication mode="Forms">
<forms name="AppNameCookie"
loginUrl="~/membership/Login.aspx"
path="/web"
cookieless="UseCookies" />
</authentication>

You see, in my Visual Studio solution, the web project was simply named "web". But, I was trying to deploy it to a more meaningful virtual directory name (i.e., "myapp").

So, I changed the above "/web" to "/myapp", and it started working. I hope that this saves someone the hours of frustration that I experienced today.

µTorrent 1.5 is Out

The latest release of µTorrent is now available from http://www.utorrent.com.

In case you don't know by now, µTorrent (the funny "u" is the symbol for "micro", so I guess it's pronounced MicroTorrent) is a fully featured BitTorrent client that is completely contained in a 150 kB exe. This means that you don't install anything; just download the program and run it. I don't even think that I can get Hello World to compile to under 150 kB with .NET or Java!

The best part, though, is that it only uses around 2-3 MB of RAM as it runs (and maybe another 5 MB of Virtual Memory). Azureus, on the other hand, would sometimes eat 60 MB of physical RAM (according to Task Manager).

Saturday, March 04, 2006

1 << 5

Person Jason = new Person();
Jason.DateCreated = ScottHanselman.DateCreated.Add(TimeSpan.FromTicks(35424000000000));

Thursday, March 02, 2006

What My Readership Looks Like

Interesting to see readership accumulate over time.

14 month graph
The two larger spikes are from when Rory linked to a post I wrote, and when I posted something about brrreeeport.

Comet Now Visible in Pre-Dawn Sky

There is a comet (Comet Pojmanski, designated C/2006 A1) just visible to the naked eye in the pre-dawn sky (i.e., 90 minutes before sunrise). It is located slightly northward of Venus, which will be the brightest "star" in the eastern sky.

http://skyandtelescope.com/observing/objects/comets/article_1684_1.asp

Wednesday, March 01, 2006

Television on Your Car's Radio

I discovered this by chance while driving in Columbus, OH, and rediscovered it the other day while driving in Ann Arbor, MI:

The frequencies used for VHF television channel 6 are:

CH  BAND     VIDEO   CHROMA    AUDIO
6 82- 88 83.25 86.8295 87.75


If you noticed, the audio is 87.75 MHz, and is modulated using Frequency Modulation. Guess what that means? If you are in an area of the country that can receive VHF Channel 6 on rabbit ears, then you can also listen to the programming on a FM radio, since the FM band starts at 87.7 MHz.

For Ann Arbor, I was receiving WLNS (CBS affiliate out of Lansing), while in Columbus, I was listening to WSYX (ABC affiliate).

Interesting Asteroid

On 22-Feb-2006, an interesting 16 meter "asteroid" named "2006 DQ14" passed by the Earth with a miss distance of about 5.2 Lunar Distances (about 2 million km, or 1.2 million miles).

What's the big deal about this? Well, the orbit of this "asteroid" was calculated, and it's roughly equivalent to the Earth's own orbit around the sun. Working backwards in time, they figured out that the last time we had close approaches with this object was in the 1977-1979 timeframe.

The interplanetary spacecraft Voyager 2 launched on 5-Sep-1977. It just so happens that a "near miss" of this "asteroid" occurred on 8-Sep-1977. Coincidence? Or is this object actually a piece of space junk from the Voyager 2 mission, like a rocket body stage or something else?

It's scary to think that a huge part of a rocket launched in 1977 could actually slam back into the Earth decades (or centuries) later with no warning at all.

Here's NASA JPL's asteroid orbit applet:
http://neo.jpl.nasa.gov/cgi-bin/db?name=2006+DQ14