Scott Hanselman

Hanselminutes Podcast Feed List

February 2, '07 Comments [0] Posted in Podcast
Sponsored By

Just a short note to let you know about the feed options that are available if you, or a friend, wants to subscribe to my (mostly) weekly podcast.

Here's some of your many software choices for downloading podcasts:

  • iTunes: You can subscribe with iTunes by clicking here
    Subscribe to my Podcast in iTunes
  • FireAnt: You can subscribe with FireAnt, another popular podcast downloader by clicking here:

  • Other Podcasting Clients: There's a LOT of different podcasting clients out there.

  • Your existing RSS Reader: Many Feed Readers do podcasts automatically, like my favorite FeedDemon. In fact, if you don't want to pay, you can download FeedDemon's FeedStation for FREE.

  • IE7 (with some utilities): IE7 is actually a nice Podcasting client, although it moves your podcasts to odd directories. Carl Franklin has a utility to help with that.

If you like your audio in a certain format, we've got several options for you. 

Master Feed of Every Hanselminutes Show We've Ever Done

  •  Complete Feed in MP3 Format at 96kbps

Feeds containing the last 20 shows:

  •  MP3 Format at 96kbps
  •  Apple AAC Format at 96kbps
  •  Microsoft WMA Format at 96kbps
  •  Microsoft Lo-fidelity at 32kbps WMA Format (for slower connections)

If you like BitTorrent, you can download feeds using uTorrent:

  •  MP3 Format at 96kbps via BitTorrent
  •  Microsoft WMA Format at 96kbps via BitTorrent

You can also always download the shows directly from the site. We also have a team of elves that do PDF Transcripts (with a few errors here and there) that appear a week or two after each show.

We do our best each week to not waste your time and to make your commute a little less crappy. I hope you enjoy listening to the shows as much as I enjoy doing them.

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

Hanselminutes Podcast 49 - Interview with PowerShell Language Designer Bruce Payette

February 2, '07 Comments [2] Posted in Podcast | PowerShell | Programming
Sponsored By

My forty-ninth Podcast is up. I'm not planning to turn the podcast into an interview show, certainly not as often as I've been doing them, but when I get the opportunity to talk to someone awesome, I have to take it. You already know I'm a PowerShell Fanboy, so rather than having this be another "PowerShell is awesome" show, as I was fortunate enough to talk to Bruce Payette, a Language Designer on PowerShell. Bruce has many years of history in programming languages and he answers questions like "Why doesn't PowerShell just use C#?" amongst others. I hope you enjoy it.

DOWNLOAD: Here's a free PDF of Chapter 10 "Processing Text, Files, and XML" from "PowerShell In Action".

We're listed in the iTunes Podcast Directory, so I encourage you to subscribe with a single click (two in Firefox) with the button below. For those of you on slower connections there are lo-fi and torrent-based versions as well.

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

Links from the show are also always on the show site. This particular show had no links to speak of. 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 /n software and the .NET Dev Journal.

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

Ssshh...Secrets and Betas and NDAs, oh, my

February 1, '07 Comments [19] Posted in Musings
Sponsored By

I'm testing something right now that is so cool, so simple, so obvious, so elegant, so clever, and well, just so secret, that I can't say a word to anyone.

That's what the NDA says. James Bond and his Quartermaster "Q" would be proud of me for saying nothing because I haven't said a word.

This product kindels sparks of enthusiasm in me, but I can't speak about it. I will wait though, and when I am allowed to talk about it, I'll say nice things.

It's basic, this product, but it's improving a fundamental aspect of my life the way the iPod, ReplayTV and GPS did. It's lame and it's sad to be a secret because this product deserves its praises to be sung.

I'm not sure what the point of keeping it secret is, but it's a 2.0 world and the {set of folks who are not I} make the rules.

What are you currently testing or working on that is so secret you dare not speak its name?

What have you worked on in the past that was kept secret, but by the time it finally came out, no one cared?

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

I'm totally Vista'ed now - Upgrading The Family to Vista

February 1, '07 Comments [19] Posted in Musings | Tools
Sponsored By

It's official. I'm totally Vista'ed. My main machine at home was running Vista RTM the nanosecond it released, but the Wife and the TabletPC were running RC2 until yesterday.

Here's some tips to make your Vista upgrade suck less, especially if you're upgrading the Whole Family.

  • Back stuff up. Don't skip this step.
  • Buy New Hard Drives: Upgrading to Vista is also a great opportunity to get a new Hard Drive. Go one, treat yourself. I got a 10,000RPM Raptor X and let me tell you, in the words of Atwood, the difference is not subtle. Move your C: to D: and start fresh.
  • ReadyBoost: Buy one Apacer Handy Steno HT203 for each computer. Get the 2gig. You can find them for under $50. There's literally NO reason for you to not pop this USB stick into the back of your machine, configure it for ReadyBoost and forget about it. It makes my wife's 512megs of RAM actually tolerable.
  • Plan what Vista SKUs you need. I got Ultimate for my main machine, Home Basic for the Wife's machine, and Business for my Tablet. You can always do an "Anywhere Upgrade" if you really made the wrong choice.
    • If you aren't ready to pay, you can install Vista without a Product Key and use it for 120 days by extending the grace period before ponying up.
  • Get your Drivers Ready. Everyone's releasing drivers this week. Do the work ahead of time and download the drivers you need to the USB sticks (before you use them for ReadyBoost). ATI just released their drivers today.
  • Get PowerShell for Vista. It's out, and it's using the new Vista Installer technology - basically "Windows Update Local." This is an OS add-on, not an "extra app" and its fully supported.
  • Think seriously about OneCare. Early betas I tested were poo, it's true, but Windows OneCare has come a long way, and you can't beat $49 total for 3 PCs. All our home PCs are running it now. If you can get a Beta User's key/link, it's $19 for 3 PCs for the next week or so. It's a shame OneCare isn't built into Vista.
  • Get your Home Network ready for Home Server. It's going to rock.

Are you upgrading or waiting?

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

Conditionally Serve Files Statically or Dynamically with HttpHandlers

February 1, '07 Comments [3] Posted in ASP.NET | HttpHandler
Sponsored By

I have some static files - RSS XML in fact - that have been served by IIS as static files for a while. I consider them permalinks, and I don't want to change that for now, but I wanted to do some testing with FeedBurner (similar do what I did before with FeedBurner in DasBlog) letting them serve the RSS for a while, gathering statistics. If it went well, I'd go with FeedBurner full time for those files - but not all.

So, given a directory with: foo.xml, bar.xml, bat.xml and others all served statically by IIS, I wanted a quick and dirty way to maintain the permalinks while handling a few of the files dynamically, and a few as redirects to FeedBurner.

There's a number of ways to solved this depending on your version of IIS and ASP.NET; here's an easy way, and the way I'm doing it now.

By default IIS will serve XML files as static files with the text/xml mime type and ASP.NET will never hear about it. As XML files aren't handled by ASP.NET, first I need to configure IIS to pass all requests for XML files for this VDIR to ASP.NET. Do this from the Configuration button under Home Directory in the Properties pages of the app/vdir. I've pointed ".xml" to aspnet_isapi.dll as seen in the figure at right.

Note that you need to be explicit if you want IIS to check if the file exists. For example, if foo.xml is a real static file on disk, but bar.xml is going to be dynamically created, don't select "Verify that file exists." Setting this checkbox wrong is the #1 developer-error that you'll hit when creating HttpHandlers to handle custom extensions.

Next I'll add a handler in web.config for *.xml (or just foo.xml, etc, if I want to be more restrictive).

   1:  <httpHandlers>
   2:  <add verb="GET" 
   3:  path="*.xml"
   4:  type="Foo.Redirector,FooAssembly"
   5:  />
   6:  </httpHandlers>

Now I'll create a VERY simple HttpHandler that will fire for all .xml files (or just the ones you want, if you only associated a few files in your web.config.

This is your chance to:

  • Redirect elsewhere
  • Dynamically generate the file they asked for
  • Pick up the file off disk and serve it statically

The example below checks to see if the UserAgent requesting the files foo.xml or bar.xml is FeedBurner. (You could check other things of course, like IP subnet, etc.) If it isn't FeedBurner's bot, we currently redirect them temporarily with an HTTP 302. There's commented code for a permanent redirect, which RSS Readers respect, that would cause the client to update their bookmarks and never return. For now, I'll do a temporary one.

   1:  using System;
   2:   
   3:  namespace Foo
   4:  {
   5:      public class  Redirector : System.Web.IHttpHandler
   6:      {
   7:          void System.Web.IHttpHandler.ProcessRequest(System.Web.HttpContext context)
   8:          {
   9:              string userAgent = context.Request.UserAgent;
  10:              if (userAgent != null && userAgent.Length > 0)
  11:              {
  12:                  // If they aren't FeedBurner (optional example check)
  13:                  if (userAgent.StartsWith("FeedBurner") == false)
  14:                  {
  15:                      string redirect = String.Empty;
  16:                      string physicalpath = System.IO.Path.GetFileName( 
context.Request.PhysicalPath).ToUpperInvariant();
  17:                      switch (physicalpath)
  18:                      {
  19:                          case "BAR.XML":
  20:                              redirect = "http://feeds.feedburner.com/Bar";
  21:                              break;
  22:                          case "FOO.XML":
  23:                              redirect = "http://feeds.feedburner.com/Foo";
  24:                              break;
  25:                      }
  26:                      if (redirect != String.Empty)
  27:                      {
  28:                          context.Response.Redirect(redirect); //temporary redirect
  29:   
  30:                          //context.Response.StatusCode = 
(int) System.Net.HttpStatusCode.MovedPermanently; //permanent HTTP 301
  31:                          //context.Response.Status = "301 Moved Permanently";
  32:                          //context.Response.RedirectLocation = redirect;
  33:                          return;
  34:                      }
  35:                  }
  36:              }
  37:              context.Response.ContentType = "application/xml";
  38:              context.Response.TransmitFile(context.Request.PhysicalPath);
  39:          }
  40:   
  41:          bool System.Web.IHttpHandler.IsReusable
  42:          {
  43:              get { return true; }
  44:          }
  45:      }
  46:  }

If they ARE FeedBurner, that means their bot is returning to get fresh data from the foo.xml or bar.xml files. If so, we call the new ASP.NET 2.0 TransmitFile API, that supplements/improves on the earlier WriteFile. Transmit file doesn't buffer to memory and solved a number of problems seen when writing out files and buffering.

We also fall to this default code path if any other XML file has been requested, if that file is hooked into ASP.NET via the web.config. In my example, *.xml is hooked up, so all other requests end up in the TransmitFile API.

TransmitFile doesn't pass the request back to IIS, as some folks believe, nor does it handle caching for you. If you need that support you'll need to write it by following the HTTP spec and handling the headers yourself.

To recap:

  • Tell IIS to pass handling of your extension to ASPNET_ISAPI
  • Map files or extensions to Assembly Qualified Names in the web.config httpHandlers section - i.e. What class handles what files dynamically?
  • Create, redirect or serve your files

I'll try to writeup some other ways to solve the same problem, depending on what version of ASP.NET and IIS you're using. If you've got clever ways (there are many) leave them in the comments.

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.