Scott Hanselman

Hanselminutes Podcast 56 - The Old New Thing with Raymond Chen

March 24, '07 Comments [1] Posted in Podcast | Programming
Sponsored By

My fifty-sixth podcast is up. In this episode I got to hang out with Raymond Chen, a Win32 Programmer on the Shell Team at Microsoft. He blogs at The Old New Thing, and recently turned the best of his blog posts into a really quite excellent book that I purchased with my own money and very much enjoyed, even though my name appears in the quotes section. I said that Raymond was the original raconteur of Windows, and meeting him in person just cemented the obvious. He's a fantastically funny and deeply technical person - two of my favorite qualities - and this podcast is the result of our meeting last week.

ACTION: Please vote for us on Podcast Alley! Digg us at Digg Podcasts!

Links from the Show

Raymond's The Old New Thing (mw4)
Raymond Chen's column in TechNet Magazine (mw5)
Amazon: The Old New Thing (mw6)

Subscribe: Feed-icon-16x16 Subscribe to my Podcast in iTunes

Do also remember the archives are always up and they have PDF Transcripts, a little known feature that show up a few weeks after each show.

Our sponsors are Telerik and /n software.

Telerik is a new sponsor. Check out their UI Suite of controls for ASP.NET. It's very hardcore stuff. One of the things I appreciate about Telerik is their commitment to completeness. For example, they have a page about their Right-to-Left support while some vendors have zero support, or don't bother testing. They also are committed to XHTML compliance and publish their roadmap. It's nice when your controls vendor is very transparent.

As I've said before this show comes to you with the audio expertise and stewardship of Carl Franklin. The name comes from Travis Illig, but the goal of the show is simple. Avoid wasting the listener's time. (and make the commute less boring)

  • The basic MP3 feed is here, and the iPod friendly one is here. There's a number of other ways you can get it (streaming, straight download, etc) that are all up on the site just below the fold. I use iTunes, myself, to listen to most podcasts, but I also use FeedDemon and it's built in support.
  • Note that for now, because of bandwidth constraints, the feeds always have just the current show. If you want to get an old show (and because many Podcasting Clients aren't smart enough to not download the file more than once) you can always find them at http://www.hanselminutes.com.
  • I have, and will, also include the enclosures to this feed you're reading, so if you're already subscribed to ComputerZen and you're not interested in cluttering your life with another feed, you have the choice to get the 'cast as well.
  • If there's a topic you'd like to hear, perhaps one that is better spoken than presented on a blog, or a great tool you can't live without, contact me and I'll get it in the queue!

Enjoy. Who knows what'll happen in the next show?

About Scott

Scott Hanselman is a former professor, former Chief Architect in finance, now speaker, consultant, father, diabetic, and Microsoft employee. He is a failed stand-up comic, a cornrower, and a book author.

facebook twitter subscribe
About   Newsletter
Sponsored By
Hosting By
Dedicated Windows Server Hosting by SherWeb

A Better Way for ClickOnce and FireFox

March 22, '07 Comments [6] Posted in ASP.NET
Sponsored By

I blogged a few years back about how I was disappointed that ClickOnce didn't work in FireFox, and about a year ago Saurabh (MSFT) wrote a response.

"There have been Plugins written by the FireFox community
[e.g.
http://www.softwarepunk.com/cohelper/] where they parse the application after it has been downloaded and read the deploymentProvider Url from it. They then use the undocumented Apis for invoking ClickOnce with the URL as a parameter [rundll32 dfshim.dll,ShOpenVerbApplication URL ]. I have never tried the approach above, but would believe it works.
From the ClickOnce teams perspective we would advise users against parsing the ClickOnce manifest and relying on its format for we could inadvertently break you in future manifest updates. Also since the <deploymentProvider> tag is only needed in Shell Visible installed ClickOnce applications this solution does not work for Online ClickOnce Apps.

For out next release we are looking into what we can do to provide a simple public way for the FireFox community to build plugins for ClickOnce support. Stay tuned ..."

I'm still waiting for direct XBrowser support, but I can report that FFClickOnce (James Dobson's Blog) totally works, with both online and offline apps. It makes ClickOnce work in your FireFox browser. There are a few other small add-ins that were attempts at making ClickOnce work, but James' is the most elegant and best tested, by far.

His documentation is impeccable and includes a testing section. It also scans automatically for .NET CLRs on your system and adds them to your FireFox UserAgent - a brilliant touch.

Here's what you see with Firefox 2.0.0.1:

Here's what you see in earlier versions of Firefox:

You can also turn this dialog off in the options for the Add-in and just run the ClickOnce apps directly without the interstitial.

I would encourage everyone who loves both FireFox and .NET to go get the FFClickOnce Extension now.

If you're working on a web application that has a ClickOnce component, I recommend that you include this extension as part of your strategy, and change your web page's flow to something like this:

  • User clicks the "Download Client" link...
  • If .NET CLR exists in the HTTP User-Agent header and it's version is greater than 2.0, issue an HTTP 302 redirect directly to your .application ClickOnce file. Done.
  • If the .NET CLR doesn't exist, redirect the user to a requirements page where they can download the .NET 2.0 runtime directly and then relaunch the application. Done.
    • On this page, if you detect they are running FireFox, link them to FFClickOnce as a prerequisite.

A flow like this will ensure that the user can click Download Client and it will Just Work. It works great for us.

You could also make a new publish.htm page (the static page that is generated when you publish a ClickOnce application, and write Firefox-specific JavaScript to list the installed extensions. This solution seems yucky to me, but would catch the obscure edge-case where the user has FFClickOnce install, but has modified their User-Agent string.

Thanks to James Dobson and Adam Greene for their (direct and indirect) help!

About Scott

Scott Hanselman is a former professor, former Chief Architect in finance, now speaker, consultant, father, diabetic, and Microsoft employee. He is a failed stand-up comic, a cornrower, and a book author.

facebook twitter subscribe
About   Newsletter
Sponsored By
Hosting By
Dedicated Windows Server Hosting by SherWeb

Google Internet Calendars and Outlook 2007 - The DST Fun Continues

March 21, '07 Comments [17] Posted in Musings
Sponsored By

OK, this isn't fun or funny any more.  I use the Outlook 2007 extensively. My whole life is in there.

My wife uses Google Calendar, and she has shared her calendar to me as an ICS file. I subscribe her her calendar in Outlook, and it appears as an additional calendar. In the screenshot at right, her calendar appears under Other Calendars. This has really helped us keep our life more organized.

Tomorrow we're going to look at a School for Z at 11am. In the ICS file from Google it says:

DTSTART;TZID=
America/Los_Angeles:20070322T110000
DTEND;TZID=
America/Los_Angeles:20070322T120000

That's pretty unambiguous. 11am to Noon. However, Outlook displays that appointment - seen at right - as occurring from Noon to 1pm. I would have missed it if I didn't know this.

I don't know if this is a Google thing, but I do know I'm not alone as others are reporting this problem and Google has updated some servers, but not others but is trying to fix something as reported on their Calendar Google Group.

This totally sucks. Even though we have updated all our Outlooks and all our Servers here at work, we're still seeing sporadic meeting problems, and most of us have just recreated all recurring meetings. I hope this gets fixed soon, either in Outlook, or on Google's side.

About Scott

Scott Hanselman is a former professor, former Chief Architect in finance, now speaker, consultant, father, diabetic, and Microsoft employee. He is a failed stand-up comic, a cornrower, and a book author.

facebook twitter subscribe
About   Newsletter
Sponsored By
Hosting By
Dedicated Windows Server Hosting by SherWeb

SweetSpot - Web-Based Diabetes Management and ClickOnce

March 21, '07 Comments [13] Posted in Diabetes
Sponsored By

Here's a little teaser for those of you who are diabetic or who have diabetic family members. I've been chatting with a friend about his Rails-based venture, so I took a few hours this weekend and we got this working, round-trip and for real.

Here's a few choice keywords for you as a tease...ClickOnce, Mac Client also, any Glucose Meter (pluggable), Team-based Management of what's important to diabetics. Coming soon. Spread the word to your diabetic friends.

About Scott

Scott Hanselman is a former professor, former Chief Architect in finance, now speaker, consultant, father, diabetic, and Microsoft employee. He is a failed stand-up comic, a cornrower, and a book author.

facebook twitter subscribe
About   Newsletter
Sponsored By
Hosting By
Dedicated Windows Server Hosting by SherWeb

Some Trouble with Wildcard SSL Certificates, FireFox and RFC2818

March 20, '07 Comments [11] Posted in ASP.NET
Sponsored By

When working on a non-finance website recently, the client wanted to include the username as the subdomain, to give the user more of a sense of "my site." So, Fred gets https://fred.foo.com as his address.

The client purchased a very expensive (US$500) "Wildcard SSL Certificate" for https://*.foo.com and it works fine.

Some trouble happened when a staging site was introduced. Now we're looking at https://fred.staging.foo.com for the URL.

This works fine in FireFox 2 as seen in this screenshot:

But IE7 really doesn't like it. Your first reaction might be to get mad at IE7, "those jerks! They never follow the spec."

However, according to RFC2818 with emphasis mine (Thanks Eric Lawrence!):

Matching is performed using the matching rules specified by [RFC2459]. If more than one identity of a given type is present in the certificate (e.g., more than one dNSName name, a match in any one of the set is considered acceptable.) Names may contain the wildcard character * which is considered to match any single domain name component or component fragment. E.g., *.a.com matches foo.a.com but not bar.foo.a.com. f*.com matches foo.com but not bar.com.

When I visit *.foo.com with IE7, it works fine, per spec.

My conclusion here is that FireFox 2 is out of spec with RFC2818. I wonder if this is known by the FireFox team? Am I missing something?

In our case, we'll need to either have wildcard certificate that covers both *.foo.com and *.staging.foo.com (the latter in the SubjectAltName field).  If a CA won’t issue us such a certificate for whatever reason, we'll need to buy two different wildcard certificates ($$), and also host staging.foo.com on a different port or IP address, since the Server Name Indicator TLS extension is not broadly available at this point, and hence you cannot reliably use two different certificates for the same endpoint. Again, thanks to EricL for helping explain this.

About Scott

Scott Hanselman is a former professor, former Chief Architect in finance, now speaker, consultant, father, diabetic, and Microsoft employee. He is a failed stand-up comic, a cornrower, and a book author.

facebook twitter subscribe
About   Newsletter
Sponsored By
Hosting By
Dedicated Windows Server Hosting by SherWeb

Disclaimer: The opinions expressed herein are my own personal opinions and do not represent my employer's view in any way.