CodePrairie .NET

South Dakota .NET User Group

I Hate Linux

November 2007 - Posts

  • If I were a smart man...

    If I were a smart man... I'd stop using my Windows Home Server.

    The PC I've built to act as my WHS is one monster of a frankenpc.

    Inside it is an old Asus A7N8X Deluxe motherboard that was retired from normal use a few years back after it was no longer stable enough to run certain 3d games despite a great deal of driver work.

    The CPU for some reason (when plugged into this board (despite large amounts of tweaking) insists on running at only 1.1 Ghz, despite being clocked by the factory for 2.2 Ghz.

    The SATA controller was the cheapest I could find whose drivers I later found officially only support 2000 and XP and with some jury rigging seem to work in 2003/WHS.

    Not the best combination... but it seems to work, mostly.

    If I were a smart (and rich) man I'd buy some better supported hardware, or even an official Windows Home Server box.

    This evening I my Home Server greeted me with this warning:

    Health Warning

    Believe it or not, this is something I've seen before and is usually the precursor to the drive extender blowing up on me and eventually leading to data loss.

    As yet I've been unable to diagnose exactly why this happens or what piece of hardware or software (likely driver) is to blame.

    That ends.

    So much of what I've done with Windows Home Server has been about making tools that work well for me, that make it an even better product for me, and if other people have benefit of my add-ins, so much the better.

    This latest volume error has lead me to sit down and start work on yet another tool, in the hopes of better diagnosing this kind of error. Not just informing the user that an issue exists, but helping them identify which disk drive, connected to which controller, something that is of vital importance to people like me with multiple identical drives:

    Unknown Failing Disk

    Sure, the Console says one is failing, but IDiskInfo.Status doesn't.

    If I were a smart man, I'd just quit working with Windows Home Server, quit writing code that hurts my hands, quit investing so much time and energy into itty bitty cases that Windows Home Server can encounter, cases that Microsoft didn't deem important enough (or have sufficient time) to include in a v1 product, things that while possible to do manually require a fair bit of behind the scenes work and knowledge, functionality that should be a single button in the Home Server Console.</rant>

    ... if I were a smart man.

  • ISP: Grrr

    For the last 2 hours my ISP has been having some wonderful DNS related problems which kept me from accessing ~95% of the Internet that I care about, a rather important thing for uploading a new build of Web Folders 4 WHS and related documentation, but now those issues are corrected it seems.


  • Updated: Web Folders 4 WHS

    Today I am making available the latest build of Web Folders 4 WHS (version 0.6.2) which is largely a cosmetic upgrade from the previous version (version 0.6.0) and includes some new eye candy for more easily identifying folders and whether they are web enabled or not:

    WebFolders4WHS 0.6.2

    In addition, an updated Instructions document has been created with removal guidance as well as some information on how to manually remove everything configured by the add-in in the unlikely event (something that has not been encountered yet) that the add-in and it's configuration cannot be removed using the suggested method.

    The Dreaded Warning

    After being greeted with this warning in the previous version:

    WebFolders4WHS Warning

    some became worried about the stability of my add-in and what it could do to their system.

    I want to make clear that as yet I have received no reports of data loss, reduction of system stability or performance, famine, flood or death as a result of the use of this add-in. Despite that, this add-in still relies on a number of unsupported Windows Home Server sub-systems (but supported portions of the Windows Small Business Server which serves as the basis for WHS) and simply exists as a warning of that.

    At a later date I will replace the current warning with a less intrusive one.

    Upgrading from Previous Version

    Any users using the initial release of this add-in are advised to uninstall the previous version, download the new one and install it.

    You are NOT required to remove the previous configuration prior to this upgrade.

    Without further delay, the files:

    Note that Software Update for Web Folders (KB907306) is still required on client machines if not already installed.

  • WHS Question: Resizing the Home Server Console

    In response to a recent blog comment/question on if it is possible to resize the Home Server Console... the answer is yes... but it's almost worthless.

    With a little bit of hackery (ie not through the normal interface) it is possible to resize the Home Server Console form to a smaller size, say 800x600, only it becomes clear that the form most of the add-ins out there were never written to do so:


    The above picture is the Console running on the server itself, if you actually run it from the client you can easily resize the console, but not the parent window with out some hacking on both the client and server where you end up with this:


    So still no real benefit.

    Some add-ins (like Web Folders 4 WHS) actually do resizing, however they are rare, largely because such functionality is basically worthless at this time because the larger application doesn't support it.


    So to answer your question Ryan... it is possible, however there is no advantage to doing it today, maybe in V2.

  • Mayo: Damn it!

    At long last we heard something from the Mayo Clinic about the problem 8 or so MD's I'd already seen in 3 states couldn't figure out.

    They agreed with one quack who I saw (and later fired) for far longer than I should of who thought that my problems were likely of type of somatoform disorder. Translation: mostly in my head.

    His only suggestion was to perhaps see a doctor out in Boston (because an airplane ticket is so affordable when you are on the verge of bankruptcy due to 9+ months of being unemployed) who happens to specializes in somatoform disorder.

    Oddly enough, this the same one it seems that was suggested by HD#4, but for different reasons.

    Given the time it took to even get this from the Mayo, as well as approval from my insurance company for a trip (which now seems extremely unlikely), any suck trip to Boston would be 100% out of pocket as it is more than likely that by the time I would be able to get there, it'd be after January 1st.

    What's so special about that day? Because of the cost of my initial surgery and a few other expensive tests (EMG, spinal MRI, and bone scan), my out of pocket costs for my insurance has been met... for this year, so come January 1st it all becomes out of pocket again.

    Damn it.

    If you'll excuse me, I need to go buy some lottery tickets as that now seems to be my one remaining hope.

    Posted Nov 28 2007, 03:11 PM by I Hate Linux
    Filed under:
  • Huzzah! Lower Back Support!

    If you can believe it, with all of the weight I've lost (~165lbs so far) over the last year and a half I've actually encountered more problems then benefits (something I really need to blog about) and one of those problems is that I no longer fit well in my car seat due to my previous size bending and shaping it in ways that the factory never intended.

    For the last year or so I've been hunting for a replacement that matched my interior and was in as good, if not better condition than my old one and at last I found one at Johns Auto Parts, a wee little place in the DPRM that had not one, but two seats to choose from, something my local bone yard which is ~4x larger didn't have, but wanted even 4x as much to ship one in that was in even worse condition than what I had (upholstery wise).

    Christmas came early for me this year, thanks dad!

    To give you an idea of just how bad the old seat with ~125,000 miles on it:

    Old seat

    Frame tearing through

    Frame tearing through

    Midway through I realized that I should have done this when I had a shop vac around to clean a bit:

    I should have cleaned

    And when all done, a new (to me) seat with *only* 80,000 miles:

    New (to me) seat

    No longer will my back hurt or have the seat frame tear through the fabric and cause damage to belts and shirts.


    One little problem has already been discovered (aside from this new seat needing a visit with a shop vac) is that I forgot another reason why my seat had been so horribly altered over the 4 years and 106,000 miles I've had it... I'm tall enough that I've either got to lean back in the seat or crank it up to a good position for my lower back and slouch.

  • New Home Server Add-in: Tab Scroller

    Do you use a lot of Home Server add-ins?

    Do you have so many Home Server Console tabs that you hand begins to hurt as you click through them all?

    Do you wish that the list was scrollable?

    Well now it is!

    As hinted at yesterday...


    Tab Scroller hooks into some of the undocumented bowels of the Home Server Console to allow you to scroll through your tab list (when selected) with your mouse wheel and even removes itself from view moments after being loaded so as to stay out of the way.

    Download Here

    Intended Audience

    Any Windows Home Server user with 7 or more Home Server Console tabs.

    Note: This add-in can be installed on machines with less than 7, however on such systems it can cause some visual artifacts (non-functional scrolling buttons, an empty space where this add-in used to be) only so long as the add-in is installed and there are less than 7 tabs.


    1. Download the installer
    2. Copy installer to your \\servername\Software\Add-ins\ directory
    3. Install through the Home Server Console Settings dialog
    4. Re-launch the Home Server Console


    After launching the Home Server Console, use the mouse wheel to scroll up or down through the list.

    If nothing happens, click on one of the tabs (so as to give the container holding them focus) and try scrolling again.


    This add-in came about yesterday due to the frustration that I expect many add-in developers and users have experienced, of having to manually scroll through a long list to find just the one they are looking for, and despite the tab list in the Settings dialog being scrollable, the one on the main form is not, so I decided to change that.

    A while back I wrote an experimental add-in named Form Hacker which used reflection to navigate through the relationships between the Home Server Console forms and the controls they contained, through which I learned enough to be dangerous and pull things off like this and my as yet unblogged about add-in Tab Reorderer.

    Final Word

    It must be said that this add-in uses numerous bits of undocumented functionality of the Windows Home Server Console and can be rendered non-functional at any time with a future Home Server update.

  • Windows Home Server Development: Grrr

    As much as I love Windows Home Server, I find myself hating it at times when I keep running into issues which prevent me from so fully exploiting it as easily as I would like and wouldn't you know... today was one of those days.

    Today I finally had enough of a... tax I have to deal with almost every time I test changes in an add-in (currently Web Folders 4 WHS) and decided to write yet another add-in to solve my problem... only problem was that what I was trying to do isn't exactly supported (surprise surprise)... hence the following boredom and angry inspired relief:












    Stop back tomorrow for the link to this add-in where the following will be said by various groups:

    • Average WHS User - "Eh? What's the point?"
    • WHS Developers - "How the hell did you do that?"
    • Microsoft - "We need to stop this guy, consider what he's trying to do in V2, or hire him."
  • Spam from Dozier Internet Law worse than previously thought

    Late last week I broke the story about the willful violation of Google's policies with their spamming of Google's index with worthless doorway pages, I've since uncovered even more domain they use for this purpose:

    That's right, in addition to the previously discussed 8433 words of Google spamming fun, these new 5 domain names add another 9962 words to the mix.

    Believe it or not... the news doesn't end here. Oh no, Dozier Internet Law gives us yet another reason to respect and think highly of them.

    Not only is Dozier risking penalization or delisting by Google... they are also associating with some of the lowest scum of the web... domain squatters and those who register domains with the sole purpose of serving up ads.

    After just a few minutes with Google and only searching for "Dozier Internet Law" I was easily able to find these spam listings, all appearing to be sponsored by Dozier or one of their agents:

    Google View #1:

    Google Link - 1

    Spam Page #1:

    Spam Page - 1

    Google Page #2:

    Google Link - 2

    Spam Page #2:

    Spam Page - 2

    Google Page #3:

    Google Link - 3

    Spam Page #3:

    Spam Page - 3

    Google Page #4:

    Google Link - 4

    Spam Page #4:

    Spam Page - 4

    Google Page #5:

    Google Link - 5

    Spam Page #5:

    Spam Page - 5

    Like my previous post, all links to sites owned or run by Dozier Internet Law links contain the rel="nofollow" tag so as to keep this post from benefiting them in anyway.

    Don't forget about the Google Report A Spam Result page.

  • WHS Developer Tip #7: Testing without deployment

    Q: Is there any way to more rapidly test my add-in than copying it over to my WHS and restarting the console every single time I want to view a minor change?

    A: There are a few different ways (some of which I'll be covering in later tips) to test your add-in without manually copying it over to the server.

    UserControl Test Container

    If you are doing your development in VB.NET (2005 or 2008), are using UserControls (such as from the add-in template), and hit the F5 key to debug your work... then you've likely seen the UserControl TestContainer which is a simple application that lets you quickly test out a user control on a form.

    It works great... but is limited, especially considering it's not automatically wired up for C# projects, something that is tricky to do with C# Express.

    Stand-alone application

    Another quick and easy option that works equally well with any language is to add a new Windows Forms project to your solution that your add-in.

    This method enabled you to add your user controls to a form or two that you control and test them out in a similar manor to what the UserControl Test Container gives you.

    This too works great... but there is a better way.

    WHS Test Loader

    My preference has been for a tool I created called WHS Test Loader tool (previously discussed) which uses similar rules (from what I can discern) to the Home Server Console for loading an add-in and displays both it and the settings to the screen.

    While it doesn't give you everything that the real console does, it at least lets you test your add-in a bit on your own PC in more ways than just visually.


    In addition to providing a couple of tabs which hold the actual main and settings tab controls, those tabs can also be accessed by clicking on one of the GroupBoxes which give a very loose idea of what your tab's buttons will look like in the Console.

    If you are planning on using some form of localization in your add-in, one of the most useful features to you will be the CurrentUICulture ListBox which lets you change the culture of the application's UI thread. Using this, you can easily test your add-in in English, German, Croatian or any other language or culture you want, it's just up to you to define the languages that you'll support.

    The Additional Tools tab is intended to be a home for other general troubleshooting and testing bits... for now it simply displays the contents of the CommonImages class.

    Another specialized feature offered by the Test Loader is a custom class that implements the IConsoleServices interface, an instance of which is passed into the constructor of your tab objects enabling you to still be able to call OpenSettings() and OpenUrl() without additional changes to your code to check if it is running in a test environment.


    Start by downloading a copy of this tool to the same directory where you keep the files from your Home Server (due to all of the assemblies that it references).

    Once there you can either launch it manually and use the Load Assembly button to select your assembly... or have Visual Studio launch it for you.

    In order to configure Visual Studio...

    1. Open your project in your non-Express version Visual Studio (Express specific instructions can be found in the last section)

    2. Right click on your project in Solution Explorer and select Properties

    3. Select the Debug tab

    4. Change the start action to 'Start external program' and set the specified path to the location of WhsTestLoader.exe

    5. Set the 'Command line arguments' option to the name of your assembly (available under the Application tab) with the trailing .dll

    When all said and done you should end up with something that looks like this:

    Configured Debug Tab

    Once properly setup, when you next hit F5 (or what ever other method you use to start debugging) the Test Loader will launch with your tab inside, giving you a quick and easy method to test out some of the functionality of your add-in.

    For curious readers, the C# source code for this application is available.

    Sorry VB lovers, this app is C# only... but that doesn't mean you can't use the pre-built version to load and test add-ins written in the .NET language of your choice.


    A number of the controls and other less than documented features of the Home Server code that we can use requires elevated (administrative) permission... something that we as good programmers shouldn't be running as by default.

    That being said, unfortunately in order to fully test an add-in it is often necessary to run the Test Loader as Administrator, the easiest way to achieve is simply to run your instance of Visual Studio as Administrator (when running Vista) so that each time you attempt to debug, you are not greeted with a UAC prompt.

    Express Editions

    The Express Editions of Visual Studio (both 2005 and 2008) are purposely limited so as to encourage you to eventually by the higher (and pricey) versions of Visual Studio... the little secret is that most of those limitations are implemented in the user interface... which means that will a little knowledge of how the back-end files works, you can take advantage of a few less than well known features.

    One of the wonderful things about the Express Editions is that they use the exact same project and solution file format as the higher versions, enabling you to easily move code back and forth when needed.

    Another advantage of this is that the Express Editions will act on settings in a project file, even if it is incapable of setting it and such is the case with setting the Start Action.

    In order to make your project in Express launch the Test Loader, you'll need to break out your favorite text editor (ie notepad) and create a new file with these contents:

    <Project xmlns="">
    <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
    <StartProgram>E:\WHS Dev\WHS - Server\WhsTestLoader.exe</StartProgram>

    You will likely have to change the StartProgram tag to specify the path to where you put WhsTestLoader.exe, as well as StartArguments to reflect your assembly name.

    Next, save this file in the same directory as your project's project file (.csproj or .vbproj) and name it depending on your language:




    where ProjectFileName is the name of your project file.

    Because the text editor you are using probably doesn't default to using the .user extension, you'll need to wrap the entire filename in double quotes to force it to use that name, instead of letting it append it's own default extension to the end.

    Please note that the file name must be exact, so if your project's name is "Home Server Add-In1.vbproj", then your new file must be named "Home Server Add-In1.vbproj.user".

    Once you've created this file, load your project up in Express and hit F5 to begin debugging to launch the Test Loader with your add-in in it much like the folks with the expensive versions of Visual Studio.

    Note: The information in this post is based on undocumented and at times deduced information on Windows Home Server and is not officially supported or endorsed by Microsoft and could very easily be wrong or subject to change in future, so please take it and everything else said on this blog with a grain of salt and use with caution.

  • Missing Certificate with WebFolders4WHS


    A user remotely connecting to a Windows Home Server computer configured with WebFolders4WHS may receive the following error:

    The folder you entered does not appear to be valid. Please choose another

    or a dialog titled "Select the certificate you want to use" that allows the user to select from an empty list the certificate they want to use to secure the connection.


    This error is caused by when a user connects using a domain name other than their configured name that the server's certificate is configured for.


    Connect to the Home Server using the domain name instead of another one unless a certificate has been generated for that name as well.

  • More unethical behavior from Dozier Internet Law

    Sadly my attention has been drawn away from the Dozier Internet Law vs The Free World battle online, and as a result seeing my Google ranking drop a bit over the last 5 weeks (weeks 1, 2, 3, 4, 5) for related queries I decided I needed to check the status of things... and boy did I find another whopper.

    I've discovered that our friends over at Dozier Internet Law continue to engage in unethical behavior... this time attempting to pollute the Google search results with garbage domain names.

    Despite doing all of their business at, they own a number of other domain names including:

    Up until a few weeks ago some of those domains simply pointed to their main web site... now though all are doorway pages with a combined 8433 words of Google deceiving text between three different web pages ( redirects to with largely similar, but reorganized content to what is found on their main site.

    It has become well known that Dozier Internet Law engages in behavior that is on questionable ethical and legal ground and rather than apologizing and/or stopping... they just ramp it up even more.

    What better way to show what a group of professionals they are to potential clients than by polluting Google in a manor that they frown upon while simultaneously giving even more ammunition to the very people they are trying to beat through these actions.


    Perhaps it would be in the best interest of Dozier Internet Law to read the Google's Webmaster Guidelines page before news of this unethical behavior gets out and those critical of it report it's actions to Google via it's Report a Spam Result page.

  • Why am I suddenly an expert on online polygraphs?

    A couple of years ago I blogged on a bit of spam I received that was advertising online polygraphs... a post that largely went unread until late last week when ~50% of my traffic suddenly was as a result of people doing (mostly) Google searches for 'online polygraph' and similar queries... mostly out of Canada.

    While I can understand why I show up so high on the Google listings... I'm forced to wonder why so many people are suddenly interested in the subject of online polygraphing, something I cannot imagine would be accurate without some fairly expensive USB devices for monitoring the test subject and a tester watching everything the test subject does via a camera.

  • New Home Server Add-in: Web Folders 4 WHS

    Windows Home Server provides an easy to use remote access mechanism that enables a user to upload and download files to/from ones Windows Home Server when they are not on their local network.

    One big problem... it's web browser based and one of the key paradigms users are used to does not exist... file and folder drag and dropping.

    My new add-in, WebFolders4WHS gives users a new browser based way to access their files, as well as letting them do it through the Windows Explorer shell and any other WebDav client that supports HTTPS.

    What it looks like

    This add-in adds a new Home Server Console tab which lets you choose which shares you want to allow access to via Web Folders:

    Main view of WebFolders4WHS

    A small settings tab is also added which provides basic information on the state of the add-in and allow you to set it up or remove it's configuration.

    Settings page of WebFolders4WHS

    When you move to the client side, a user can simply create a folder in My Computer (under Vista) or My Network Places (under XP), and in Vista an actual mapped network drive (complete with letter) can be created and used much like a local directory or share.

    My Computer in Vista

    What you need

    In addition to a simple installer as is required for most Windows Home Server add-ins, a Microsoft provided client-side update is required to enable secure access to the server.

    These files are available here:

    How it works

    This add-in is nothing more than a bit of glue that wires up a few Windows sub-systems such as: Windows UNC Shares, an IIS Virtual Directory, WebDav and the Windows Distributed File System. Because this add-in uses existing functionality, all existing user accounts and share permissions are maintained and remain in full effect when a user accesses files via a Web Folder.

    Also see: Windows Home Server Forums Discussion

  • WHS Developer Tip #6: Faster referencing

    Q: Is there a faster way to add a reference to a Windows Home Server assembly instead of manually navigating to where the actual files reside?

    A: The easiest way is to have the desired assemblies show up under the .NET tab of the Add References dialog:

    Add Reference Dialog

    Two things are required to achieve this, a local copy of the assemblies and a registry tweak.


    If you haven't already, it's a good idea to just grab the entire C:\Program Files\Windows Home Server\ directory from your Home Server and copy it to your development machine for easier referencing and reflection.


    To add the necessary registry key:

    1. Launch regedit

    2. Navigate to the following registry key:

    3. Create a new key (folder) named 'Windows Home Server'
    Note: You can name this key anything you want.

    4. Change the default value to the path where the Windows Home Server assemblies exist on your development machine

    When all done you should have something that looks like this (the actual path will depend on where you have the files located):

    AssemblyFoldersEx\Windows Home Server key

    For more info on displaying assemblies in the Add References dialog, see this MSDN article.

    Configuration Alternative

    A slightly quicker alternative is to download, modify (and use) this registry file to point to the directory on your development machine where the assemblies live.

    Note: When you change the path to match the location on your machine, make sure that drives and directories are separated by two backslash characters instead of one as is normally seen in Windows (ie '\\' vs '\'). This is only required when modifying a registry file, not when using regedit.


    Once the key has been added, re-launch Visual Studio, open or create a new project and launch the Add Reference dialog to be greeted with your new additions.


    Perhaps the greatest advantage of adding this key is that when you create a new project from a template that references a number different assemblies that you would ordinarily have to reference yourself (such as a Home Server Add-in) is that Visual Studio will automatically find the references assemblies for you based on this and other registry keys.


    One drawback of pointing the created registry key to a directory that contains all of the files from the server... is that all of the .NET assemblies show up in your Add References list. As nifty as it is to have ready access to the official files such as HomeServerExt.dll and Microsoft.HomeServer.SDK.Interop.v1.dll, we really don't need ready access to the Xceed libraries that you and are not licensed to use.


    Despite the fact that Visual Studio 2008 targets the new 3.5 Framework as well as the year old 3.0, this registry tweak still works as both 3.0 and 3.5 uses the 2.0 Common Language Runtime which this tweak targets, meaning it works just as well under 2008 as it does under 2005... as well as the Express edition and version of your choice.

    Note: The information in this post is based on undocumented and at times deduced information on Windows Home Server and is not officially supported or endorsed by Microsoft and could very easily be wrong or subject to change in future, so please take it and everything else said on this blog with a grain of salt and use with caution.

More Posts Next page »
Powered by Community Server (Commercial Edition), by Telligent Systems