Scott Hanselman

On Losing Data and a Family Backup Strategy

March 28, 2007 Comment on this post [40] Posted in Musings
Sponsored By

Picture of Hard Drive - Purchased at iStockPhoto.comI lost data today. I'm physically ill about it. I lost all my Dad's email from 2005 and 2006. Here's the worst part...I truly in my heart of hearts don't know how it happened. It's one thing to make a mistake. I make them ALL the time. It another to have something bad happen, play it back in your mind and not know WHY it happened.

As with, I'm sure, all of you Dear Readers, I am the Chief IT Dude for "Team Hanselman." That pretty much means if you have a last name of Hanselman and you're on the West Coast, I'm your IT guy. (Not really, but close.)

My dad's computer was running slowly, and I was starting to suspect he was running out of hard drive space. He had actually complete run out on his little 10 gig C: drive, and his system was thrashing. It was also 88% fragmented. I hadn't setup a scheduled defrag job - something that Windows XP kind of should have done for me, but I digress. As is the tradition, he dropped the computer off last week and I said, "come by next week to pick it up." 

I installed a 20 gig D: drive and moved all his My Documents and what-not on to that drive. He runs Thunderbird (no reason for an Outlook license on his machine) and Thunderbird stores all it's mail in some profile directories deep in Documents and Settings\Application Data blah blah. I made a backup copy of that folder on my Home Server, moved it from his C: to a folder with the new D:\Dave's Documents and told Thunderbird it was over there. No problem, right?

Run Thunderbird and get..."Welcome to Thunderbird!" Ok. Copy the backup back into the C: drive. Run Thunderbird and get..."Welcome to Thunderbird!" Oh, Crap. Rinse, repeat. Repeat until 3am. Open files in Notepad2. Open files in a Hex Editor. Stare in horror at zero byte files. Grep. Pipe. Panic.

I didn't have a good backup plan in place for my Dad's machine. My mom makes CD backups and her My Documents sync'ed to my machine via FolderShare (dangerous because of sync'ed deletes, in fact) but Dad was living footloose and fancy-free and it was my fault.

Having a Family Backup Strategy

Dad was bummed, to be clear, but the first thing he said (after being bummed) was "are the pictures OK?" This simple question hit me hard when I realized that our extended family didn't have a formal backup strategy. Mo and I do, but the Family didn't. I'd be sick if we lost pictures. (Mental note: Blog about the coming end of civilizations that store all knowledge on magnetic media...)

Here's our new strategy. It might seem silly and obvious, but what I learned from this incident is that it's only obvious to the computer guy. You have a plan, a place, I'm sure, on where to meet in case of a fire or emergency. Does your spouse know where The Data is if you don't make it home? Does your spouse have the passwords? Does your sister know what a backup is? I'm learning that drawing up a simple plan like this makes everyone's data life easier. As for my Dad's Thunderbird Email, he's backing it up to My Documents with MozBackup, and everything in My Documents gets backed up. Everything else is backed up into three places: The Home Server at my house, The Rev Drives offsite at the bank, and Mozy.com.

What's your backup strategy? Does it have family-wide visibility and understanding?

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 bluesky subscribe
About   Newsletter
Hosting By
Hosted on Linux using .NET in an Azure App Service

Blog Redesign 2007

March 27, 2007 Comment on this post [18] Posted in Musings
Sponsored By

Yep, this blog looks old. It's time for a redesign. I kind of miss the 2003 look and feel, but my current site

I didn't want to ask publicly but Jeff Atwood insisted that I should, so here is my quiet call for help. If you're a Web 2.0 designer and you can sex up my blog to be all Web 2.1 like Alex's or Phil's, then holler at me and if it works out, I'll link to you with a "Designed by YOUR NAME HERE" on every page."

Things that are important to me:

  • Work in IE7 and FireFox
  • Have a Printer-specific CSS so stuff prints easily
  • You have to use the CSS classes that DasBlog creates
  • Little touches like making my comments look different than everyone else's
  • Nice touches like XFN, little graphics next to external hrefs, etc...
  • Pleasant, with room for some of the advertisements without making the site look like Las Vegas (it's heading in that direction)

Thanks...now back to your regular scheduled programming.

UPDATE: To be clear, in the weeks leading up to this post I've interviewed six paid designers. This post isn't an attempt to be mingy or miserly - I'm happy to pay if the designer would prefer. I just thought that many designers are looking for work and that some search engine optimization (SEO) in the form of 4500 links to their design site might be more valuable.

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 bluesky subscribe
About   Newsletter
Hosting By
Hosted on Linux using .NET in an Azure App Service

Adobe Acrobat 8 on Vista - The Temp Folder is on a Drive that is Full or is inaccessible and what is LocalLow

March 26, 2007 Comment on this post [17] Posted in Musings
Sponsored By

If you're going to put up an error message, try to make it one that the user can DO something about, and try to make it unambiguous. A good error message takes work, and error handling seems to be one of those things that gets worked on last.

A few weeks back I installed Tim Heuer's excellent Foxit PDF Preview Handler for Outlook 2007. Worked great. I had (fervently) lamented the slowness of Acrobat, and folks in the comments - including an Adobe employee - commented that Acrobat 8 was way better and way faster than before. I figured today I'd give Acrobat 8 a try on Vista since Ryan Gregg just released a PDF Preview Handler that uses Adobe's ActiveX SDK.

Acrobat 8 on Vista is supposed to be nice because you get Thumbnail support and Search-ability for PDFs. I fired up the installer and was greeted with this error:

The Temp Folder is a on Drive that is Full or is inaccessible

Certainly they could have figured out if the drive was full by asking the drive if it was full. Instead, this error says (basically) "something went wrong writing to a file, and I'm not sure what. Go ahead and see what you can do about it, user."

So what does user do? Well...

  • "Gosh! Is my hard drive full? How do I figure that out? Maybe My Computer:

    Nope, it's not full.
  • Permissions? Well, this is where Mom stops. How does she know where the Temp folder is? Heck, how does any user? I went to a command line and typed ECHO %TEMP% and was told C:\Users\Scott\AppData\Local\Temp, but it turns out that's not true! Acrobat (actually Netopsystem's Feed Squisher Installation Stuff) writes to C:\Users\Scott\AppData\LocalLow\Temp.
    LocalLow? What's that?
    Certainly I can either check the properties and permissions on that folder, or I can use icacls which tells me I do have permission:

    C:\>icacls \Users\scott\AppData\LocalLow
     \Users\scott\AppData\LocalLow ScottPC\Scott:(I)(OI)(CI)(F)
     NT AUTHORITY\SYSTEM:(I)(OI)(CI)(F)
     BUILTIN\Administrators:(I)(OI)(CI)(F)
     Mandatory Label\Low Mandatory Level:(OI)(CI)(NW)

    As an aside, there's a great blog post on Vista and IL (Integrity Levels) over on Joanna's Invisible Things.

Adobe's installer is trying to be clever and it's first squishy installer unpacks the real MSI installed into a folder that installers that will be elevated don't have access to. This happens on machines, like mine, that have UAC (User Access Control) turned off. Then, after the unpack/install files the temporary files are deleted.

Solutions

  1. I can certainly try to grab the files by copying them out before I dismiss the dialog.
  2. I can turn UAC back on. Nah.
  3. I can also unpack the Setup Files from the Netopsystem's package myself manually via (someone remind me what Netopsystems is good for again? Are their files so small that they are worth this pain over ZIP? Or just the MSI itself? I've only ever seen their stuff in Acrobat.):

    AdbeRdr80_en_US.exe -nos_s -nos_ne -nos_oC:\Users\Scott\Desktop\AdobeReader8
  4. I can wait until this is fixed.

Adobe's known about this, surely, at least since December. Why isn't #4 an option here in late March?

Either way, I got Acrobat 8 install eventually and it IS faster and it works great with Ryan's Preview Handler. Now we can choose between either Acrobat or Foxit and have Preview Handlers for both. Huzzah!

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 bluesky subscribe
About   Newsletter
Hosting By
Hosted on Linux using .NET in an Azure App Service

Hanselminutes Podcast 56 - The Old New Thing with Raymond Chen

March 24, 2007 Comment on this post [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 bluesky subscribe
About   Newsletter
Hosting By
Hosted on Linux using .NET in an Azure App Service

A Better Way for ClickOnce and FireFox

March 22, 2007 Comment on this post [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 bluesky subscribe
About   Newsletter
Hosting By
Hosted on Linux using .NET in an Azure App Service

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