November 2010 (1)
August 2010 (1)
July 2010 (1)
June 2010 (3)
July 2009 (3)
June 2009 (1)
May 2009 (1)
February 2009 (1)
January 2009 (1)
November 2008 (3)
October 2008 (4)
September 2008 (9)
August 2008 (6)
July 2008 (3)
June 2008 (3)
January 2008 (1)
November 2007 (2)
October 2007 (6)
September 2007 (5)
August 2007 (22)
July 2007 (6)
June 2007 (1)
May 2007 (3)
April 2007 (27)
March 2007 (8)
February 2007 (6)
September 2006 (2)
August 2006 (4)
July 2006 (9)
June 2006 (17)
May 2006 (20)
April 2006 (12)
March 2006 (9)
February 2006 (4)
January 2006 (3)
December 2005 (2)
November 2005 (4)
October 2005 (5)
September 2005 (37)
August 2005 (83)
July 2005 (6)

Active Directory / LDAP (0)
ASP.Net (19)
Blackberry Development (4)
c# (34)
c++ (3)
Code Camp (1)
Excel (1)
Exchange (3)
Front Page 2003 (6)
FTP User Editor (4)
IIS (146)
IIS - Log Parser (7)
IIS / FTP (12)
IIS / Tools / Administration (42)
IIS / Tools / Authentication (6)
IIS / Tools / Compression (8)
IIS / Tools / Crash & Hang (12)
IIS / Tools / ISAPI Filters (17)
IIS / Tools / Log Files (17)
IIS / Tools / Scripts (28)
IIS / Tools / Security (9)
IIS / Tools / SSL (6)
IIS 7 (3)
Internet Information Server (1)
Me (Chris Crowe) (6)
MIME Types (1)
Misc (72)
Oulook Express (2)
Silverlight (1)
SQL Server (27)
SQL Server CTE (1)
Vista (15)
Vista Gadgets (8)
Visual Studio (11)
Voice over BroadBand (1)
Windows (33)
Windows Powershell (3)
Windows Sharepoint Services (0)
Windows Sharepoint Services (15)
Windows Vista (14)
Wine Cellar (1)
WMI (8)
Misc (72)


Looking for some new sounds – checkout this freebee

Click to download new music, completely free, brought to you by your music loving friends at Windows. You'll see (but not hear) some ads on your screen in addition to the album's cover art, which is how we (they) keep your new tunes from costing you a cent.

Well worth a listen to checkout some new bands and artists….

Listen online, download MP3 or WMA

Free Microsoft learning courses

If you browse to you will find a number of free courses that Microsoft is offering via its inline learning centre.

Most are two hour courses and cover topics such as:

  • Microsoft Security Guidance Training
  • Getting Started with Microsoft Windows Server 2003 R2
  • Inside Look at Building and Developing Solutions with Microsoft Office SharePoint Server 2007
  • Introducing Enterprise Telephony Using Microsoft Office Communications Server 2007
  • Introduction to Developing with Windows Presentation Foundation and Visual Studio 2005
  • Understanding the Differences Between Microsoft SQL Server 2005 Standard and Enterprise Editions
  • What’s New in Windows Vista

While we are on the topic of learning - checkout the Virtual TechEd at

You can view WebCasts, Virtrual Labs, and Podcasts

Do you want to browse Active Directory or another LDAP Directory?

I have been using this product for about 10 months now and find that it is great for me to find and view object level details in our Active Directory.

I like to write my own applications to update active directory but this tool is great for just browsing and navigating around AD and other LDAP directories.

Softerra LDAP Browser is a lightweight version of Softerra LDAP Administrator with limited functionality and is absolutely FREE for all kinds of use including commercial! Unlike Softerra LDAP Administrator, the Browser does not allow its users to modify LDAP directories.

This is version 2.6 which is quite old ( 2003 ) compared to the current release of its big brother at 3.4 (2006)

The big brother supports a lot more features but if you are just wanting to browse then this is really the best tool I have found.

For more details and to download see


What platform does Microsoft want us to use to develop code on?

I am working on some Active Directory tools for work so we can automate account creation, home directories, exchange mailboxes and other things.

As part of this I needed to create Exchange Mail boxes.

Now Microsoft has this article that is titled "How to create a mailbox-enabled recipient by using Visual C#" perfect, exactly what I needed.

But the article is a bit old but in general it is OK, the requirement is that the following must be installed.

Microsoft Exchange 2000 System Management Tools on the computer on which this code runs

We can assume that this also can mean the Microsoft Exchange 2003 System Management Tools?

I am trying to develop my code on Windows Vista Ultimate 64 Bit.

So I need the Exchange Management tools, so I go and find the Exchange Server CD and pop it in the drive, but when I want to install the tools I get a message saying it is not compatible with Windows Vista and I can not install, I can't even ignore the message and continue.

So Vista has been as far as I am concerned out since November 2006 ( to the coporate community at least), it is now almost September 2007.

So I should go back to Windows XP - wasn't that released in 2002, or maybe 2003 Server or 2003 Server R2 to do my development work?

This is a stupid problem for Microsoft - how hard is it to make their own products Vista Compatible or should I just want until we install Exchange 2007 at work and tell them no go until then!

No wonder the driver support from 3rd party vendors is so terrible when Microsoft do not even make their management tools compatible with Windows Vista.

Come on Microosoft - Update my VS.NET Start Page

Well I went to TechEd in Auckland about 10 days ago and I am still getting this in my VS.NET Start Page

Maybe they just want to get some real early bird reservations.

Borders - the book store

Here is something that I have known about for ages but have not thought about posting before but since we all buy books it is a useful tip.

Borders in New Zealand has a book club, you need to sign up in store and they will then send you emails basically every week with deals for the next few days. It looks like you can now sign up at as well.

Last week there was 40% off any book, the biggest I have seen is 50% off any book.

There are limitation such as products on special are not included etc.

Now here is another tip along the same lines.

Go to and sign up there as well using a different email address.

What I have found is that you get the deals from Australia which include using the coupon in NZ. The deals are different each week to the NZ borders deals so you can often find a good deal.....


What is Xnet VFX? or Voice over BroadBand?

I have started to look into the VOIP (Voice over IP) service, well not really VOIP, well it sort of is, but it is called VoBB

Voice over Broadband (VoBB) Xnet VFX (Virtual Fone Xchange) will revolutionise the way you use your phone by merging it with your Broadband connection and putting your phone line under your control for the first time.  Removing the need to have a standard telephone provider.

Using the My VFX account management portal, you now have the power to control features such as call forwarding, voice mail notification to your email at home or work, three way calling and much more....

Xnet VFX uses part of your Broadband connection as a telephone line.  When you pick up the phone, or someone calls you, the call is sent via WorldxChange to your router and directly to the phone you have plugged in.

A normal household or small business currently with Broadband would look something like this:

VoIP Diagram: Standard Non VoIP Setup

Whereas with Xnet VFX, it would look like this (instead of the telephone line - it is using my Internet Cable Connection)

VoIP Diagram: Xnet VFX VoIP Setup

I purchased a LinkSys SPA2102 device to use as my Phone Adapter and joined the Xnet VFX service at

Basically I pay $11.00 per month NZD and for that I get a local telephone number and free local calls. National calls and calls to Australia, UK and US are 5 cents per minute, other destinations are more epensive.

I have only done a few tests with it as I still have my normal telecom connection as well. The audio quality is probably acceptable, but I would have like to have the flexability to choose a better codec. The codec that is being used is 8Kb/s so it is very lean on actual bandwidth consumed. From a simple test a one hour telephone call would not consume much more than 1 MB of data. I would be happy to double this and have the quality much higher.

This is interesting technology and I would like to see it become more flexable in regards to codecs being used.



I took a look around the IIS MVP list today and noticed that there is 23 listed now.

We come from a lot of different backgrounds and countries as broken down below:

  • USA (6)
  • Australia(3)
  • China (2)
  • Poland (2)
  • France
  • Honduras
  • Korea
  • Malaysia
  • Netherlands
  • New Zealand
  • Sweden
  • Switzerland
  • Turkey
  • Unknown

What has happened to

I have noticed lately that I am unable to connect to any more.

It just times out when making a connection.

I noticed the site owner Jeffrey Tindillier posted this comment to his MVP profile.

I recently returned to the IIS PSS Team in Dallas but was given an opportunity to work with the SharePoint Dev Team.

I assume that means he looses his MVP status as I beleive you can not be a MVP and work for Microsoft.

I have not found any other comments about his IIS site, but maybe there is no place for independant IIS sites now that covers pretty much everything that is needed by the community?

We all know that is about as dead as it could be - Brett Hill also works for Microsoft now and has not updated it in years.

Advanced Port Scanner 1.3 (FREE)

I was looking for a Port Scanner today which will run from Windows Vista.

I tried the good old F-port, but it did not work under Vista Ultimate 64Bit. It game me a message about it having to run with Administrator privileges which I was doing.

F-Port can be downloaded from

The tool I found online which worked very well, is free, it looked nice and simple to use to scan either one machine or a range of machines was called Advanced port Scanner 1.3 from

Advanced Port Scanner is a small, fast, robust and easy-to-use port scanner for Win32 platform. It uses a multithread technique, so on fast machines you can scan ports very fast. Also, it contains descriptions for common ports, and can perform scans on predefined port ranges.


General Information

  • Current Version: 1.3 - NEW!
  • Release Date: July 10, 2006
  • File Size: 426 KB
  • Operating System: Windows 95/98/ME/NT4.0/2000/XP/2003
  • License: FREE!

Even though Vista is not mentioned as a supported OS it did work for me.

Download from

Even though this looks nice it does not tell you which application has which port open which is a pain.


Something has gone wrong with my blog and the skin is not showing up any more (hence you will be seeing this tiny blue skin)

I will try to find the problem and fix it asap.


Orca - MSI File Editor

I have used the ORCA MSI File Editor a few times to remove stupid restrictions from MSI files.

It is a pain to get as it is part of the Platform SDK - which is over 250MB whereas ORCA is about 1.6 MB

I found that you can download it from this URL 

Orca.exe is a database table editor for creating and editing Windows Installer packages and merge modules. The tool provides a graphical interface for validation, highlighting the particular entries where validation errors or warnings occur.


Note: If you are wanting to remove restrictions on a setup program from installing check the Launch Condition item as shown in the above image, as this is usally where all the checks are made.

This tool is only available in the Windows SDK Components for Windows Installer Developers or from the URL above

It is provided as an Orca.msi file. After installing the Windows SDK Components for Windows Installer Developers, double click Orca.msi to install the Orca.exe file.


orca [<options>][<source file>]

Command Line Options


Orca.exe uses the following case-insensitive command line options. A slash delimiter may also be used in place of a dash.

Option Description
-q Quiet mode
-s <database> Schema database ["orca.dat" - default]
-? Help dialog

Orca.exe uses the following case-insensitive command line options with merge modules. A slash delimiter may also be used in place of a dash. When performing a merge the -f, -m and <sourcefile> are all required.

Option Description
-c Commit merge to database if no errors.
-! Commit merge to a database even if there are errors.
-m <module> Merge Module to merge into database.
-f Feature[:Feature2] Feature(s) to connect to Merge Module.
-r <directory id> Directory entry for the module root redirection.
-x <directory> Extract files to an image under the directory.
-g <language> Language used to open a module.
-l <log file> File to use as a log, append if it already exists.
-i <directory> Extract files to the source image under the directory.
-cab <filename> Extract the MSM cabinet to file.
-lfn Use Long File Names during the extraction.
-configure <filename> Configure the module using data from a file.

See Also

For more details about it see


What happened to the File Menu?

I was looking for some info on command line parameters for Access 2007 when I came across this help message.

Notice the important message.

No option is currently available!

Does that mean they are thinking of putting it back?, maybe the Ribbon is getting a lot of negative feedback despite the hype?

Looking for a way to get WinForms Developer License with Subscription and Source (value $999) for free!
Telerik ( ) makers of some great controls for and WinForms have a content running now that will allow you the chance to win a 50" Plasma Television.
Telerik WinForms Contest - Part II
In order to participate you need to download RadControls for WinForms, explore the software for a while and then answer 10 easy questions.
For 5 or more correct answers, you will receive a complimentary RadControls for WinForms Developer License with Subscription and Source (value $999).
  • Grand prize: 50 inch plasma TV
  • The first 50 participants that answer all questions correctly will receive a $20 Amazon gift coupon.

Upgrading Compaq IPAQ 3870 to PPC 2003 from PPC 2002

Step by Step Instructions for upgrading a COMPAQ IPAQ 3870 from Pocket PC 2002 to Pocket PC 2003 ( English )

The following instructions should help you perform this action in under 20 minutes on Windows XP  ( see notes about Vista later )

  • Download the Upgrade/Patch files from  The file to download is called and is ~16 MB in size
  • For those who think this is not legal see this message posted on the original forum where I found the details

    Now lets continue.

  • Download UltraEdit-32 ( 30 day trial ) from here  ~ 11 MB, or use any other HEX editor
  • Unzip the contents of the NK.NB0.ZIP file to a folder such as c:\temp
    • There is two files in this zip file, host11.exe (389 KB) and nk.nb0.bak (32 MB)
    • Rename the nk.nb0.bak file to nk.nb0 ( IMPORTANT )
  • Install UltraEdit-32
  • Load UltraEdit-32 and load the file nk.nb0 as shown below


  • You will be presented with a display full of 0's like this:

  • We need to make two changes to this file to include details of your serial number from your IPAQ device.

    With the file open in UltraEdit press Ctrl-G to open the GOTO dialog and enter the address 0x01ff000a and hit enter

    You will be taken to an area that contains a number similar to your Serial Number. We need to change this number with your serial number which is on the back of the IPAQ

    To do this we must use the hex values of characters and enter them.

    For example the serial number in the image below contains the following (note: The actual file you download is different)
    Digit 4 G 2 7 D W 3 4 9 1 6 G
    Hex value 34 47 32 37 44 57 33 34 39 31 36 47

    For digits 0-9 just prefix with 3, so for example a 5 is actually 35 in hex

    For letters A-Z it is not as simple but an A is 41, B is 42, C is 43, D is 44 etc...

    When entering the values make sure the cursor is flashing the two digit values area. Also make sure you do not change any of the 00

    There is only 12 characters in your serial number and they normally look something like this 4G27DW34916G


  • We need to repeat this again exactly for a different area, this time we press Ctrl-G and enter the address 0x01ff0e0a and hit enter

    Again we change the values shown to what you have for your serial number.

  • When you have completed the two changes you need to save the file and exit Ultra Edit.
  • We now need to tell our 3870 to go to Upgrade Mode and we perform this with the following steps:

    We need to hold down a number of keys and force the device into update mode.

    We need to first press and hold button 2, then while holding button 2 also hold down button 4 (some flickering will occur on the screen), now while those two buttons are held down we need to hold down the power button. At this stage the screen will dim a little.

    We then need to press the soft reset button which is recessed into the bottom of the device. So while holding the #2, #4 and Power Buttons press the stylus into the Soft Reset button and hold for 3-5 seconds.

    You should then see a screen similar to the following:

  • At this point make sure your USB cable is plugged in to your computer.
  • We now need to make sure that the ActiveSync tool is disabled so open Task Manager and go to the processes tab and find the WCESCOMM.EXE process.
  • Select this file (if it exists process list) and select End-Task - this is to stop Active sync taking over.
  • You now need to run host11.exe which will perform the actual upgrade of the Firmware of the device.

    It will take about 5 minutes to perform the upgrade.
  • At the end of the upgrade I was told to remove the battery - I am not sure if you really need to or not but I did, not a Simple matter either. Some people have said to do the following so maybe this is to get around the remove the battery prompt.

    Perform a hard reset by holding down the #1 button + the #4 button and click on the recessed Soft Reset for a few seconds.

    Remember, I have not tried this option I removed the battery.
  • At this point when your device loads you should see on the main startup screen that it is running 4.0 and if you go to Start - Settings - System - About you should see the following screen.A

  • I performed the steps above on a Windows XP laptop since I was a bit unsure about these weird files HOST11.EXE and NK.NB0    They appear to be fine and my virus scanner did not wing and they do appear to do what they are suppose to.

The only reason I actually went through this process was to be able to use Synchronization on Windows Vista which does not support Pocket PC 2002.

So after I upgraded an plugged in my IPAQ 3870 Pocket PC 2002 and went to the Windows Mobile Device Center all I got was this:

I then went to and downloaded the latest version of the Windows Mobile Device Centre and installed it. When I rebooted I found that when I went to Windows Mobile Device Centre I got the nice version of it as shown below and it does synchronise properly.

If you want to go back to Pocket PC 2002 then there is a firmware available here

I found the details of how to do this in the following forum.


The 'Microsoft.Jet.OLEDB.4.0' provider is not registered on the local machine

I recieved the following error The 'Microsoft.Jet.OLEDB.4.0' provider is not registered on the local machine on my Vista 64 bit machine today. I made no code changes since I run it on a 32 bit OS.

Aparantly there is not a 64bit Microsoft.Jet.OLEDB.4.0' provider  and you have to force your build to 32 bit.

In the settings for the project under the Build Tab you must set Platform target to x86 instead of Any CPU

Windows Vista Clock with smooth scrolling seconds

I saw a post on the  MSDN Forums for  Sidebar Gadget Development forum.

The post is available at this url:

The user asked this question:

"Looking at the standard Microsoft Clock Sidebar Gadget, I was wondering whether it would be possible to change the jumping second-hand into a sweep second-hand, i.e. one that moves smoothly like an old mechanical clock or mechanical wrist watch. I looked into the code but had to give up after about two hours of trying. Anyone knoews hoe to do that? Thanks! "

You can download my re-write of the default Clock to support smooth scrolling seconds.

Download Now

Vista Sidebar Gadget - Calling a function in the flyout from the main gadget page

I have been trying to get my main gadget Javascript page to be able to call a function in the flyout page.

Note: You will want to put a try/catch around the code in case the flyout is actually not available since it was closed and would cause an exception

On the main gadget Javascript page I have a function which will call the function resetMarginLeft() in the flyout

function renderFlyout()
   // Other Stuff

So that function above will call a method called resetMarginLeft() which belongs to the document object model (DOM) in the flyout.  

Now the document object model (DOM) does not have such as method so we create it in the onLoad event in the javascript function. To trigger this onload we add the following code to the flyout.html page

<body onload="onLoad()"

In the flyout Javascript page I have this code

function onLoad()
    document.resetMarginLeft = resetMarginLeft;

This bit of code looks odd but basically we are creating a method reference in the document object model (DOM). This method can then be called from our main Gadget page.

Basically we are saying

document.MyFunctionNameForTheDOM = SomeOtherFunctionOnThisPage;

Note: Do not include () in the function reference above!

Here is the source to the actual resetMarginLeft() function - but it could do anything you wanted, in my case I just wanted to reset a few variables.

function resetMarginLeft()
  marginLeft = 0;
  increment = 1;

Free PInvoke Visual Studio Add-in

Find and contribute PInvoke signatures, meaning Platform Invoke, is a wiki used by around 50,000 .NET developers a month to find and contribute PInvoke signatures (also known as Declare statements in VB), type definitions, and any other information related to calling Win32, or other unmanaged APIs in managed code (languages such as C# or VB.NET).

As a wiki, it is user driven and acts as a repository where developers can contribute or retrieve information as they wish.

Copy and paste your way to productivity

Certain things just can't be done in pure .NET, and the developer has to drill down to the Windows API. This is achieved through .NET's Platform Invoke (PInvoke) functionality, which requires declarations to be supplied by the developer. Manually defining and using PInvoke signatures is an error-prone process that can introduce extremely subtle bugs. supplies you with tried and tested signatures and type definitions, so that you don't have to spend time writing them from scratch.

Visual Studio integration for the quick and easy insertion of PInvoke signatures

Download the add-in for Visual Studio 2003 and 2005, and save yourself the effort of having to open up a web browser to search for the website. You can now insert a PInvoke signature with the click of a button while you're working on your application in Visual Studio.

PInvoke VS Add-in

Screenshot illustrating the PInvoke Visual Studio add-in

Download for free from

Download the Best Of SQL Server Central vol 3

Download the Best Of SQL Server Central vol 3 which contains information about:

  • Security - both an overview and a detailed approach to securing your SQL Server.
  • Performance - key concepts and detailed explanations about how to improve the performance of your SQL Server.
  • Administration - tips and tricks for making the administration of SQL Server work for you, including some strong information about clustering. 

You must register wth Red Gate Software who by the way make some great tools for managing your SQL Server Databases.

You can also download volume 1 & 2 after you register and some of their trial software which I again recommend.

Windows Vista and CHM Issues

You may find that on occasion you can not view the content of CHM files on Windows Vista. You can see the table of contents but the actual details are not displayed.

This can occur if the file has come from another computer, and the OS now blocks these from running. CHM is not the only file that can be affected I have seen this issue with Javascript files that are used in Vista Gadgets.

You can click the Unblock button and it will allow the single file to be trusted.

In addition, check that the path to the .CHM file doesn't have any # characters in it anywhere. Otherwise, the help viewer gets confused (# means something specific in HTML). If it does, you'll have to move the file somewhere else.

Google Analytics - Track page views and analyze the flow of visitors

Google Analytics provides powerful tracking for anyone with a web presence, whether it be a small hobby website or a giant online enterprise. It's one of the most powerful web analytics solutions on the market - and it's free for anyone to use!

Google Analytics provides in-depth reports for everyone involved in the running of a website, from the developers and designers to the marketing and management teams. Find out where people leave your site, and what content catches their attention. Compare marketing campaigns and see your return on investment for all of your AdWords spend. The ways that you can use Google Analytics are endless.

This free version is limited to 5 million pageviews a month - however, users with an active Google AdWords account are given unlimited pageview tracking. In addition, Google Analytics is completely integrated into the AdWords front-end and with your AdWords campaign, making it easy to track your AdWords ROI.

You can awatch a simple video here about how it works:

Refactor!™ for ASP.NET free download from

For those that do not know Developer Express make some really great tools and controls for .NET. They have made their Refactor tool for ASP.NET available for free.

Refactor! is freely available to all ASP.NET 2.0 developers and offers a comprehensive suite of tools that enable you and your team to simplify and shape complex code and HTML markup - making your web applications easier to read and less costly to maintain.

Below is a simple example where you can refactor the source file the .APSX file into a code behind file.

If you want to watch a small 12 minute video about it see this:

You can download it from:

They also have two other free Refactor products:

  • Refactor for Visual Basic
  • Refactor for C++

Blog Comments Enabled Again

I originally disabled comments on this site by hacking around with the SQL. The reason SPAM

I have now enabled comments again - hopefully SPAMMERS will just stay away!

Well within 15 minutes of opening up the comments - 5 SPAM Comments!

New Blog Engine

I found today that there was a new Blog Engine based on .TEXT called SubText.

Subtext is a personal blog publishing platform that focuses on usability, elegance, and simplicity. If you’ve ever caught yourself throwing your hands in the air and declaring that you’re going to write your own blogging engine, then Subtext is for you

I decided to give it a go and you are seeing the result right now.   I like the changes in this product especially the SPAM filtering for comments.

I have reproduced the skin that I was using (well some of it ) and I am very happy. There was even a tool to import my .TEXT site details

There is even a SubText site for skins at

This is a breakdown of the features supported (and not supported) by Subtext useful in deciding whether or not Subtext is for you.


Current Version 1.9.2
Home URL
License BSD
Cost Free (as in beer!)
Minimum Server Requirements ASP.NET 2.0, Windows Server 2000, SQL Server 2000
Localization Not Yet
Multilingual Not Yet
Data Storage Database
Max Weblogs Unlimited (or depends on how much disk space you have)
Post Ordering Descending
Categories Multiple
Subcategories No
Tags Not Yet
Keyword Expansion Yes
Post Editor Plugin-Based (FCKEditor and FreeTextBox)
Draft Mode Yes
Post API Support MetaWeblog (supports newMediaObject method)
Post Moderation No
RSS Output 2.0
ATOM Output 1.0
Comments Yes
Comment Spam captcha, invisible captcha, filtering, duplicate, delay, shutoff, nofollow, linkcount, massedit, moderation, akismet
CommentRSS Yes
Skins Yes (ascx files)
Open Registration None
User Security Single account per blog and one account for installation (soon to change)
Trackback Yes
Pingback Yes
RSS Aggregator No
Forum No
CSS Editor Simple
Plugins/Extension None yet, but slated for Subtext 2.0
Visitor Logs None
Referrer Logs Yes (per site and per post)
Import/Export BlogML
Search Engine Friendly URLs Yes
Auto Thumbnails Yes (in the Gallery)
Category Images No
Skin Switch Yes
Cross-post No
Linkroll Yes
Password Protected Posts No
Blog By Email Not yet
User Community SourceForge
Sample Sites

Windows Vista Drivers for Fuji Xerox Docuprint 203a A4 Mono Laser Printer

 I have been using an old OKIPage 8Z for a while since I do not do a lot of pritning from home. I originally has problems with drivers for that for 2003 server. No new drivers were ever released for 2003 Server.


I decided to splash out and buy a Fuji Xerox Docuprint 203a A4 Mono Laser Printer for the sum of $99+GST

This little printer looks nice and doesn't have a huge footprint but a lot more than the OKI, but then this is a laser printer.

Well I now only run VISTA, no more XP around here. I went to their web site and quickly found my printer and the drivers they offered.


No Windows Vista Drivers.

I decided to phone the support number and after a long time got put through to an answering machine asking me to leave my name and they will return my call. Cool...

I did that and about 3 minutes later they rang back. I said to the man from Sydney that I just purchased the printer and I could not find a VISTA driver. He said well that is because there is no VISTA driver for that printer. It was made before Vista was around and officially there has not been any word of a driver being released for VISTA.


The man then said he has heard on the grape vine that a driver may be released at the end of May? he did not mention the year!

He also said he heard that a Brother driver may work, and he had heard that someone who installed the XP driver found that when they printed from Outlook 2007 it would bluescreen the box.


Well I decided to have a bit of a look and see what I could do to get the thing working from my VISTA 64Bit machine at work ( I havn't even got it home yet )

Well after installing about 10 drivers I found a solution ( well it looks like a solution )

I installed the “SHARP  AR-160 PCL 5e“ driver and it worked. I tried it from Outlook 2007 and it worked, no BSOD!

I will let you know if I have any problems with this driver but if you are like me running VISTA and have one of these printers that driver appears to be working for me.

Reproducable bugs in Windows Vista Sidebar RTM

I came across a forum that has a special topic on reproducable bugs in the Windows Vista Sidebar.

Most of the bugs have a work around so well worth a look if you are experiencing some strange issues with Vista Gadget development.

Here is a current list of bugs

Bug# 1: The bottom and right are incorrectly cropped when rotation is applied to <g:background>
Bug# 2: <g:background> and addImageObject incorrectly place the image, by (originalImageWidth-scaledImageWidth)/2, (originalImageHeight-scaledImageHeight)/2
Bug# 3: Image exploded beyond belief. Sidebar cannot resize an image smaller than 50% of it's original size
Bug# 4: Gadgets will not install if they contain blank directories in the Gadget package.
Bug# 5: Changing <g:text>.value doesn't update <g:text>.width or <g:text>.height - the text is stretched, or you get an invalid result when trying to reference it.
Bug# 6: Settings page is limited to 300x400. The Settings page on this gadget should be 1000x1000
Bug# 7: Sidebar crashes when trying to use addImageObject or addTextObject in the BODY section.
Bug# 8: Aliased surround is incorrectly placed if image is rotated and body margin is not 0.
Bug# 9: The three (or two if you have no settings) icons that appear when you hover over a Gadget are incorrectly placed for detached Gadgets after Sidebar is reloaded. They're shifted left 6 pixels.
Bug# 10: If you manually Exit Sidebar, the X position of all detached Gadgets is decreased by 6.
Bug# 11: System.* namespace goes missing after "window.location.reload(true);"
Bug# 12: Focus is lost on the Flyout if you change System.Gadget.Flyout.file whilst a Flyout is open
Bug# 13: Setting "System.Gadget.Flyout.onShow = null;" generates an error. This goes for all other Gadget settings that are set to a function.
Bug# 14: Partially transparent surround is scaled incorrectly when setting System.Gadget.background, if the image is larger than the Gadget
Bug# 15: Background image doesn't change if it's changed through a stylesheet
Bug# 16: addImageObject holds the image open. If you're developing a Gadget and want to change one of the images, you can't overwrite it.
Bug# 17: Images are cached. If you remove all instances of a Gadget, change the images within it and then re-add it to Sidebar, the old images still show.
Bug# 18: If a Gadget is partially off screen, Sidebar shifts it so it's completely on screen on loading.
Bug# 19: <g:background>.blur / <g:background>.softEdge effect is positioned incorrectly. It doesn't take account of the top and left parameters.
Bug# 20: When digitally signing a Gadget, if the filename is long the signature is corrupt:
Bug# 21: The GPO Policy setting ""Turn Off User Installed Windows Sidebar Gadgets"", also stops users from adding Gadgets in the "Shared Gagets" folder:
Bug# 22: <BODY onunload> doesn't fire during logout and shutdown.
Bug# 23: Flyout background colour cannot be set from a stylesheet.
Bug# 24: Gadget may never appear on the sidebar if you have overlayed RGB transparent images and are updating the screen too often.
Bug #25: Flyout will only show if Sidebar has focus. If you show the Flyout via " = true" and Sidebar doesn't have focus, the "System.Gadget.Flyout.onHide" event immediately fires.
Bug #26 System.Shell.saveFileDialog(strPath, strFilter) filter string doesn't work as expected
Bug #27 System.Gadget.begin/endTransition corrupts g:background. It happens regardless of what transition type you use, or if you use an image or not. In the following Repro, Left click to see the problem. Right click to see, with the workaround.
Bug #28 g:background becomes corrupt if you change In the following Repro, Left click to see the problem. Right click to turn on the workaround.
Bug #29 If the g:background image is set to a percentage of the Gadget size, it's not rescaled when the Gadget body size changes. In the following Repro, Left click to see the problem. Right click to turn on the workaround.
Bug #30 begin/endTransition can hang a Gadget, if the body size isn't changed. In the following Repro, the image should toggle between two images. Right click to toggle with the workaround, Left click to recreate the problem.
Bug #31 System.Gadget.background="..." will corrupt the image if it's height is less than 57 pixels. If you set a Gadget background via System.Gadget.Background = "..." to an image that is less than 57 pixels in height that has partially transparent pixels, the background becomes corrupt. Sidebar stretches the transparent pixels to 57 pixels in height, but leaves the opaque pixels their original size.
Bug #32 g:background "blur" and "softEdge" cause the partially transparent background pixels to overlay the Gadget when focus is lost. In the Repro, move the Gadget to reproduce the problem.


How to play a .ASX stream from a gadget

Here is a very simple gadget that shows how to play a stream from an ASX file that is in the Gadget folder for the current gadget.

It is very basic

CSS File

    font-family: Segoe UI, Tahoma, Sans-Serif;
    background-color: white;
    border: ridge 2px
    font-size: 8pt;


<title>ASX Playertitle>\
<link href="css/Radio.css" rel="stylesheet" type="text/css" />
<script language="javascript" src="js/Radio.js" type="text/javascript">script>

This is a simple sample of how to play an ASX file
<a href="javascript:void" onclick="startStream()">click here to start streama>

<OBJECT id="mediaPlayer" width="0" height="0" style="position:absolute; left:0;top:0;" CLASSID="CLSID:6BF52A52-394A-11d3-B153-00C04F79FAA6"
<PARAM NAME="SendPlayStateChangeEvents" VALUE="True">
<PARAM NAME="AutoStart" VALUE="False">
<PARAM name="uiMode" value="invisible">


Javascript File

function startStream()
    mediaPlayer.url = System.Gadget.path+


<asx version="3.0">
ref href="" />

Basically this gadget just loads Windows Media Player and when you click on the link in the html file it will start streaming.

The reason this was written was to help answer a forum question

Click here to download this as a gadget

Another Windows Vista Gadget - Air New Zealand - Grab a seat


AIR NEW ZEALAND have made their RSS feed unusable as it contains no details any more of the prices, flights etc and hence this gadgetno longer has any value unless you want to see the source code!


I have written another Windows Vista Gadget, this time at the request of Darryl Burling who works for Microsoft New Zealand. He asked if I could turn the RSS feed on the Grab A Seat site into a gadget. The gadget I have written requests the feed every 5 minutes and just displays what is available, never actually storing the feed but just consuming it. The items in the list are removed when no seats remain for that promotion.

You need to be quick as there have been some fares from Auckland to Los Angeles for $498 return and the also Auckland - Shanghai return for $498.

Domestic fares don't run out as fast as the international, but I did notice the other day that the fares had changed by 2am so the early bird will get the seat in this case.

So what is Grab A Seat?, well as far as Air New Zealand is concerned it is this “Ludicrously low fares up for grabs“

To learn more about the Air New Zealand promotion see

What the gadget looks like:

With the flyout open it looks like this:

You can download it from my Windows Live Gallery profile:

What you need to know: These fares are only available online for one day only or until sold out. Seats are strictly limited - see the online 'counter' for the number of seats left. Travel periods are strictly limited and fares may not be available on all flights or days during stated travel period. Flight restrictions and routing restrictions apply. Prices are per person, child discounts do not apply. General terms and conditions and Smart Saver and/or Global Saver Max terms and conditions apply.

Running NTBackup on Windows VISTA

I came across an interesting message in a forum and tried it out and it works.

I was very annoyed that NTBackup was removed from Vista. The new backup solution just does not give me flexibility I want. So I went and figured what files you need from XP to run NTBackup on Vista. Turns out that you need the following files which all exist in c:\windows\system32


You do get a popup when starting it still, but it all works. You can then also associate BKF files with ntbackup.exe to give them the NTBackup icon and there you go!

On your vista machine create a folder and place all files in there.

Note: When you use the NTBackup to schedule a task it just called NTBACKUP.EXE so if it is not part of your path you will need to edit the scheduled job otherwise it won't run.


Windows Vista Gagdet - Example of talking to SQL Server

I have created a simple example of a Windows Vista Gadget that will talk to SQL Server using OLEDB with ADO.

This code is very similar to code that one would have used in the past with writing code for ASP pages.

The code is written in Javascript and DHTML.

Basicall the code works like this:

The gadget has an HTML body tag and we assign an onload event to it to trigger our Javascript code which will talk to SQL Server and render all the categories from the Northwind database.

<body scroll="no" onload="loadMain()">

Our simple code in the loadMain event is as follows:

function loadMain()
serverName = "server";
var database = "northwind";
var username = "sa";
var password = "-";

if (password == "-")
data =
"this is a sample - please configure the servername, database, username and password variables in \\js\\sql.js";
    var oSqlConnection = new ActiveXObject("adodb.connection");
"Provider=sqloledb;Data Source=" + serverName + ";Initial Catalog="+database+";User Id="+username+";Password="+password+";");
   var oRecordSet = oSqlConnection.Execute("SELECT CategoryID, CategoryName from Categories");  
   var data = "";
   while (oRecordSet.eof == false)
        data = data + oRecordSet(1) +
"data").innerHTML = data;|

This code shows a simple way to to talk to SQL Server, run a query and then render the results to an HTML tag.

You can download this code from here

For you to run this code there are a few things you will need to do first.

  1. Have a SQL Server available which has the Northwind database ( you can change the connection string and query )
  2. Change the server variable to the server that is running SQL Server
  3. Change the database if required
  4. Chnage the username if required
  5. Change the password

This is just an example and is really up to you how you may use it. I hope it helps with your gadget development.

A great colour wheel for those of us who must deal with colours and combinations of colours.

I came across a great tool for looking at colours and their complimentary colours, infact six types of compilimentary colours.

Place this HTML Color Code tool on your website free. | Professional Turnkey Websites


As you can see you can use the colour wheel live on this site, but you may also want to check out the site owners site at

This is a great tool and I hope people will find it usefull.

Windows Vista Gadgets

I have been playing aroung with Windows Vista Gagets lately and have currently written about 10. Some are for my work - simple things like who is on Helpdesk duty today, and another for our IS Severity system that will show up planned outages and unplanned outages, colour coded based on the rating of the problem. This is similar to an RSS feed except the data is always live and not cached so that when a job is closed it is removed from the list.

Another is the Weather Gadget for, a collegue at works owns the site and I have written the Web Site UI and a few tools. This has become quite popular in the last few days since it was uploaded to

Another 5 are simple radio station gadgets for New Zealand radio stations News Talk ZB, Radio Pacific, MoreFM, ZM, and RDU.

 The weather and the radio station gadgets are all available from and clicking on my profile link will take you to a page where they all are.

My Gadgets

For those looking into writing your own gadgets see these resources

Hint: If you want to see the source for any gadget, download it, and then rename from .gadget to .zip and you have all the source code.

Complimentary* copy of Visual Studio 2005 Standard Edition Software ( not express )

For a limited time, attend Visual Basic 2005 Labcasts and you will be eligible for one or more of the following incentives:

  • Complimentary* copy of Visual Studio 2005 Standard Edition Software (estimated retail price of $299.00)
  • Excerpts from Francesco Balena's Book Programming Microsoft Visual Basic 2005: The Language
  • 35% off estimated retail price of select Visual Studio 2005 books
  • Visual Basic 2005 Keyboard Shortcut Reference Poster

* Nominal fee and shipping and handling charges apply. Offer good in the United States only through June 30, 2007, while supplies last. This offer is available only to professionals employed in the area of software development who attend any two Visual Basic 2005 Labcasts and submit the evaluation form for each session. Limit one per customer. This offer is non-transferable. Please allow 6-8 weeks for delivery. Microsoft is not responsible for non-delivery of the complimentary copy of Visual Studio 2005 Standard Edition due to incorrect mailing information provided by recipient. Taxes, if any, are the sole responsibility of the recipient.


Just a small update on the IISxpress 2.1 beta....

I have been running the IISxpress 2.1 beta for 4 days now with no problems at all. The live stats are displayed in the top right of this web site, but in 4 days it has accumilated the follows stats.

Compression Statistics




146,085 KB


31,712 KB


78.3 %

That is great news for me since the blog site was taking about 80% of my monthly allocation of bandwidth, it will be interesting at the end of the month to see the savings.

Free download: "Visual Studio 2005: A Guided Tour"

This 92-page issue contains the best MSDN Magazine Visual Studio 2005 coverage from the past two years, updated for the final release. Find out what's new in C#, C++, Visual Basic, Windows Forms, ASP.NET, Team System, security, and C++generic types -- download your copy now!

My Vista Issues - #2 - Mobile Device Support (Response from Microsoft)

Well not the best outcome - so I wonder how many people are going to have this issue?

I found this little page on Microsoft's site

I highlighted the interesting section!

Keep it longer but for what reason when I need to throw it away since it won't play with Vista!


My Vista Issues - #2 - Mobile Device Support

So I now have my fully activated Windows Vista Ultimate and I have my old Compaq IPAQ 3870 Pocket PC running Pocket PC 2002 Operating System.

I download Active Sync 4.2 from and proceed to install it.

When I first run it I get this dialog.

Ok, so Active Sync doesn't work but they have a nice message about connecting my device and then going to Windows Update to get the new product called Windows Mobile Device Centre. I do what I am told to do and connect my device and then go to Windows Update but I am told that there is nothing to update.

No software called Windows Mobile Device Centre for me to install?

I then decide to click the Check for solutions online button which takes me to the Windows Mobile Device Centre web site.

I see this as my introduction to the Windows Mobile Device Centre - Beta 3 for Vista RC1

Where is the full version?, well it has not been released yet!

I then scroll down the page and it all sounds rather good until I reach the Supported Devices section


There is no mention of my Pocket PC 2002 OS... Well I suppose they forgot to include it in the web site.

I click to download and notice that the package it is going to install Beta 3 for RC1 is dated 4 months ago!

4 Months ago - That is a long time especially since Vista was released to Businesses in Late November and to everyone a few days ago. But what can I do it is the latest version that is available on their site.

Opps! Well I guess they did not actually forget to include Pocket PC 2002 - they don't support it.

So I now have my trusty old Compaq IPAQ 3870 - I suppose I can use it as a Paper Weight!

Why do Microsoft do this?, there is nothing wrong with my device. How many more people are going to go through this stupid process to find out that their device is not going to be supported.

I do not want to buy a new device the old one works fine to sync my appointments and notes.

Please add support back for Pocket PC 2002 in your new tool. How many 1000's of these devices are out there today?

I suppose I could just go back to XP where my device is fully supported!

Do you use a download manager for IE?

Well I now use a great tool called Free Download Manager (FDM) infacxt I have been using it for about 2 years.

This is a full-featured download accelerator and manager. It is absolutely free! Using this software product you can easily download a list of files and whole web sites from any remote server via HTTP, HTTPS and FTP. With FDM the downloading process will be as easy as never before!

FDM is an indispensable tool for download acceleration. It splits files into several sections and then downloads them simultaneously allowing you to increase your download speed up to 600%.

FDM is available in 30 languages so there is bound to be a language for you.

See to download this great tool.

Weather. We all are interested right?

Well I have always had a small interest and since my colleague at work purchased his own weather station for home I have been keen to explore this area a bit more.

His weather site is available at

He has purchased a weather station called a Davis Vantage Pro2 Wireless unit which is supposed to be a very good product and very accurate.

The product generates a file about every 10 second called ClientRaw.txt and another called ClientRawExtra.txt

These files are space delimited and overall have no known schema but I found a site that explained most of the fields - see

With the information gleamed from their site I created an XSD schema and then wrote a simple web service to expose a subset of this data.

I also wrote a simple aspx page to return just a subset of the fields as XML, you can then apply an XSL transformation to render something of interest.

For more details on how to use these pages see

An example of using this XML data can be seen in the above live image.

Another tool I created is a MesoMap coordinate generator for Google Maps and Microsoft Live Maps. It will allow you to move around the world, zoom in & out and display the coodinates for the MesoMap tool - see

For more details see:

Microsoft Name Changes and Withdrawal of Support for Windows XP Service Pack 1

Product Name Changes

Effective immediately the following product family names have  been changed:


Old Product Family name

New Product Family name


Office SharePoint Designer

SharePoint Portal Server

Office SharePoint Server

SharePoint Portal CAL

Office SharePoint CAL

SPS External Connector Non Employee

SharePoint Internet

Office Professional

Office Professional Plus

Office Small Business Edition

Office Small Business


End of Support for Windows XP SP1

Additionally effective October 10, 2006, assisted support for Windows XP Service Pack 1 (SP1) will end.  After this date, Microsoft will no longer provide any incident support or security updates. To enhance the security of your computer, maintain eligibility for continued support and to continue receiving updates, customers need to move to a supported OS level. Microsoft recommends upgrading to Windows XP Service Pack 2 (SP2) to provide a higher level of security to their systems. To learn more about upgrade to Windows XP SP2 and the technical support provided at no-charge for issues related to downloading and installing the service pack, visit


To review all the publicly disclosed End of Support dates as part of the Microsoft Support Lifecycle Policy, visit

VBScript - Check if multiple version of the .NET framework are assigned to an application pool

This code will allow you to check if there are IIS applications which are configured to use multiple version of the .NET framework.

The code enumerates all the Application Pools and then find all of the applications in that pool. It then checks for the version of the .NET framework which handles the .ASPX file extension.

It saves the unique versions of the .NET Framework found and if it finds multiple versions installed will list all of the applications using that Application Poll and display the path and the version being used. This will allow you to find a potential problem which could be hard to track down normally.

Calling Usage 

cscript CheckForMultipleVersionsOfDotNetFramework.vbs

Example Output

AppPool #1
No applications using this pool!


 Warning multiple version of the .NET framework detected!

 Found references to v1.1.4322
 Found references to v2.0.50727

 //localhost/W3SVC/1/ROO                                           - v1.1.4322
 //localhost/W3SVC/1198258389/ROO                         - v1.1.4322
 //localhost/W3SVC/1280263431/ROO                         - v1.1.4322
 //localhost/W3SVC/1388032739/ROO                         - v1.1.4322
 //localhost/W3SVC/1849151055/ROO                         - v1.1.4322
 //localhost/W3SVC/1957176745/ROO                         - v1.1.4322
 //localhost/W3SVC/4/ROO                                           - v1.1.4322
 //localhost/W3SVC/415889539/ROO                           - v1.1.4322
 //localhost/W3SVC/1/ROOT/Monito                            - v2.0.50727
 //localhost/W3SVC/1/ROOT/Monitorin                        - v1.1.4322
 //localhost/W3SVC/1/ROOT/NetTracke                       - v1.1.4322

Found references to v1.1.4322

Found references to v1.1.4322

Found references to v1.1.4322

No applications using this pool!

Source Code

You can download the source code here.

option explicit
dim AppsInPool, objAppPool, index, IISObj, IISPath, Version, pos
Dim Versions(), objAppPools
function FindASPXScriptMapVersion(ScriptMaps)
 Dim pos, ScriptMap
 for pos = lbound(ScriptMaps) to UBOund(ScriptMaps)
   ScriptMap = lcase(ScriptMaps(POS))
   if (left(ScriptMap, 5) = ".aspx") then
    FindASPXScriptMapVersion = mid(ScriptMap, 42)
    FindASPXScriptMapVersion = left(FindASPXScriptMapVersion, _
     instr(FindASPXScriptMapVersion, "\")-1)
    exit function
   end if
 FindASPXScriptMapVersion = ""
end function
function AddVersion(Version, Path)
 dim Found, pos
 Found = false
 for pos = lbound(Versions) to UBound(Versions)-1
  if (Versions(pos) = Version) then
   Found = true
  end if
 if (Found = false) then
  redim preserve Versions(ubound(Versions)+1)
  Versions(ubound(Versions)-1)= Version
 end if
end function
Set objAppPools = GetObject("IIS://localhost/W3SVC/AppPools")
for each objAppPool in objAppPools
 Redim Versions(0)
 Set objAppPool = GetObject("IIS://localhost/W3SVC/AppPools/" & objAppPool.Name )
 WScript.echo objAppPool.Name 
 AppsInPool= objAppPool.EnumAppsInPool()
 if (ubound(AppsInPool) = -1) then
  WScript.echo vbtab  & "No applications using this pool!"
  for index = lbound(AppsInPool) to UBound(AppsInPool)
   IISPath = AppsInPool(index)
   IISPath = "IIS://localhost/" & mid(IISPath,5, len(IISPath)-5)
   set IISObj = GetObject(IISPath)
   Version = FindASPXScriptMapVersion(IISObj.ScriptMaps)
   call AddVersion(Version, mid(IISPath,5, len(IISPath)-5))
  if (ubound(Versions)> 1) then
   WScript.Echo vbcrlf & vbtab & _
    "Warning multiple version of the .NET framework detected!" & vbcrlf
   for pos = lbound(Versions) to ubound(Versions)-1
    WScript.echo vbtab & "Found references to " &  Versions(pos) 
   WScript.echo ""
   for index = lbound(AppsInPool) to UBound(AppsInPool)
    IISPath = AppsInPool(index)
    IISPath = "IIS://localhost/" & mid(IISPath,5, len(IISPath)-5)
    set IISObj = GetObject(IISPath)
    Version = FindASPXScriptMapVersion(IISObj.ScriptMaps)
    WScript.echo vbtab & mid(IISPath,5, len(IISPath)-5) & _
     space(70 - len(IISpath)) & " - " & Version
   for pos = lbound(Versions) to ubound(Versions)-1
    WScript.echo vbtab & "Found references to " &  Versions(pos) 
  end if
 end if
 WScript.echo ""

Retrieving the COM class factory for component with CLSID {3FA7DEB3-6438-101B-ACC1-00AA00423326} failed due to the following error: 80010106.
While trying to upgrade a .NET application from VS.NET 2003 to VS.NET 2005 I found I was getting a problem with creating a MAPI.Session object.

I was getting the following exception:

Searching around in and everywhere else I was finding nothing on this error.

I decided that I would simply create a new application and see if it failed.

  • I opened VS.NET 2003
  • I created a new console application
  • I added a reference to "Microsoft CDO 1.21 Library"
  • I added one line of code MAPI.Session sess = new MAPI.Session(); to my Main() routine

I then run the code and it worked fine.

So I repeated the code in VS.NET 2005

using System;
using System.Collections.Generic;
using System.Text;

namespace ConsoleApplication1
   class Program
static void Main(string[] args)
Session sess = new MAPI.Session();

I was still getting the exception. I decided to post to the New Zealand .NET User group list that I belong to - see

I got the following response from Alex James

" I don’t know the answer, but one thing I would check is whether different thread types have an effect. I.e. is you app [MTAThread] or [STAThread]

You never know that might be the answer, the default between 2003/2005 maybe different? "


I had a look at the code that VS.NET 2003 produced and indeed it has the following attribute above the Main() procedure


using System;
using System.Collections.Generic;
using System.Text;

namespace ConsoleApplication1
   class Program
      static void Main(string[] args)
Session sess = new MAPI.Session();

I added the attribute to my code and the problem was gone. So obviously the CDO 1.21 library is compiled for STAThreading and not the VS.NET 2005 default which must be MTAThread.

The following is from

The STAThreadAttribute marks a thread to use the Single-Threaded COM Apartment if COM is needed. By default, .NET won't initialize COM at all. It's only when COM is needed, like when a COM object or COM Control is created or when drag 'n' drop is needed, that COM is initialized. When that happens, .NET calls the underlying CoInitializeEx function, which takes a flag indicating whether to join the thread to a multi-threaded or single-threaded apartment.

A multi-threaded apartment (MTA) in COM is more efficient, since any of a number of RPC threads from a pool can be used to handle a request. However, an object on the MTA thread needs to protect itself from multiple threads accessing it at the same time, so that efficiency comes at a cost.

The single-thread apartment (STA) in COM is inherently single-threaded and therefore no additional thread synchronization is needed. The STA is implemented using the thread's Windows message queue, which is how requests to objects on an STA are serialized. Because of how the STA thread is implemented, calls to objects on that thread are serialized with Windows message handling on that thread, making sure that everything, both the COM objects and the underlying windowing objects, e.g. HWNDs, are all synchronized. This is necessary for UI-oriented COM objects, like controls and drag 'n' drop, which must also be synchronized together with the UI.

When COM is needed .NET will call CoInitializeEx, picking the MTA by default because it's more efficient. However, to get the synchronization needed for controls, windows and drag 'n' drop, you need to mark a thread's entry point with the STAThreadAttribute to let .NET know to initialize the UI thread on the STA. All of the VS.NET project templates put that attribute in to make sure you don't forget:



MSDN Library May 2006 Edition - Normally only available with a MSDN Subscription but now freely downloadable...
MSDN Library provides access to essential programming information, including technical white papers, software development kits and code samples necessary to develop web services and applications.
Size : 450.9 MB - 1729.1 MB depending on the components selected

Microsoft Virtual PC 2004 - is now a free product...

Virtual PC 2004 Service Pack 1 (SP1) is a powerful software virtualization solution that allows you to run multiple PC-based operating systems simultaneously on one workstation, providing a safety net to maintain compatibility with legacy applications while you migrate to a new operating system. It also saves reconfiguration time, so your support, development, and training staff can work more efficiently.

This product used to be approx $129 USD but Microsoft has just released it as a free download, it also recently released its Virtual Server product as a free download.

For more details:

Virtual PC

Virtual Server

CurrPorts v1.09 - View Opened TCP/IP ports / connections
CurrPorts displays the list of all currently opened TCP/IP and UDP ports on your local computer. For each port in the list, information about the process that opened the port is also displayed, including the process name, full path of the process, version information of the process (product name, file description, and so on), the time that the process was created, and the user that created it.

In addition, CurrPorts allows you to close unwanted TCP connections, kill the process that opened the ports, and save the TCP/UDP ports information to HTML file , XML file, or to tab-delimited text file.

CurrPorts also automatically mark with pink color suspicious TCP/UDP ports owned by unidentified applications (Applications without version information and icons)

For more details and to download (in multiple languages) see

Belkin - F5D7010 - version 3000uk - FCC ID: PD5LMWB800RA - IC ID: 3970A-LMWB800A

I was recently installed an older laptop with Windows XP SP2 - and the Belkin F5D7010 PCMCIA Wireless G Network Card. I could not find the original driver CD so I went to the Belkin web site to find the latest drivers.

I  naturally went to the support area of and typed in my model of the PCMCIA card.


There web site came back with a list of different cards.

I choose the first item on the list since I assumed this card was what I had. The picture indicated was correct where was the F5D7010_V2 had a different look to it and the _V3, _V4 and _V5 had no images.

Now I thought that I should download the Australia driver as I live in New Zealand.

Windows XP  F5D7010 802.11g - Compliant Drivers - Australia  7/17/2003  18.3 Mbytes 

18.3 MB is quite a download but ok...

Apon clicking the link I am told it is actually only 9.15 MB so I go and download and install it.

This driver did not work for me as Windows could not find any drivers for my card after installing the software.

In the end I searched around in some forums and found that there is a sticker on the back of the card.

This sticker had the following in my case.

version 3000uk

This sticker means a lot more than it says. It is basically telling me that this is in fact a F5D7010_V3 card. It sort of makes sence when you know...

So I go to download the driver and get this line of detail

Windows XP  F5D7010_v3 Wireless Notebook Network Card  3000  3/11/2005  133.03 Mbytes 

133 MB for a driver download for a Wireless card?

Again Belkins web site is really just lying to me - it is only a 22.17 MB Download.

I then download this file and install onto my Laptop and it is all happy and I have my wireless connection working.

Wouldn't you think they would update their web site to say that depending on the version sticker you will need different drivers. If there are different versions with different drivers one would also expect to see a different model number a well.

Oh well hapy again. and only a few hours wasted!

Webcast: Exploring the Future of Web Development and Management with Internet Information Services (IIS) 7.0
Bill Staples, Product Unit Manager on the IIS team, will be hosting an upcoming TechNet Webcast titled Exploring the Future of Web Development and Management with Internet Information Services (IIS) 7.0.  Join the WebCast and see cool IIS 7.0 demos for many of the new features.

Date/Time: 6/20/2006 1:00 PM Pacific
Duration: 90 minutes
Attendee Registration URL:

Mix 06 - All 52 sessions are online and free!
Back a few months ago Microsoft went to Las Vegas to put on a share called Mix06. If you do business on the Web today, it's likely that more than 90% of your customers reach you via Microsoft® Internet Explorer and/or Microsoft Windows®. Come to MIX and learn how the next versions of these products, due later this year, are going to dramatically improve your customers' experience. Explore a wide range of new Web technologies that Microsoft is delivering to help you unlock new revenue opportunities and lower development costs. Learn about the future of Internet Explorer and join us in a discussion about how we can build the ideal Web surfing platform to meet your needs and those of your customers.
  • Be the first to get the latest preview build of IE7
  • Work with the members of the Internet Explorer team in the Compatibility Lab to get your site ready for IE7
  • Test drive "Atlas," Microsoft's powerful new framework for building cross–browser, cross–platform AJAX applications
  • Explore Windows Live!, Microsoft's new consumer services strategy
  • Learn how to deliver revolutionary, media–rich Web content with the new Windows Presentation Foundation
  • Find out how to extend your content, media and services into the living room with Windows Media Center and Xbox 360™
  • More than 50 separate sessions and discussions for Web developers, designers and business professionals

All 52 sessions are now online and free

2007 Microsoft Office system – free elearning courses

With the launch last week of Beta 2 of the 2007 Office system, Microsoft has made available a wide array of end user elearning courses at

The courses are divided across three key audiences, namely home and office users, IT professionals and developers, as per the details below.

Home and Office users

  • Introduction to the New Microsoft® User Interface
  • What’s New in Microsoft® Office Access 2007
  • What’s New in Microsoft® Office InfoPath® 2007
  • What’s New in Microsoft® Office Outlook® 2007
  • What’s New in Microsoft® Office PowerPoint® 2007
  • What’s New in Microsoft® Office Word 2007
  • What’s New in Microsoft® Office OneNote® 2007
  • What’s New in Microsoft® Office Visio® 2007
  • What’s New in Microsoft® Office Excel® 2007
  • What’s New in Microsoft® Office Groove 2007


  • Inside Look at Building and Developing Solutions with Microsoft® Office SharePoint Servers 2007
  • Inside Look at Developing with Microsoft® Windows SharePoint Services 3.0

IT Professionals

  • Getting Started with Microsoft® Office SharePoint Server 2007 (Beta)
  • Getting Started with Microsoft® Office SharePoint Server 2007 (Beta) e-Hands-on-Lab
  • Introduction to Windows SharePoint Services 3.0 Virtual Lab
  • Implementing and Administering Windows SharePoint Services 3.0 Virtual Lab
  • Getting Started with the 2007 Microsoft® Office System (Beta)
  • Getting Started with the 2007 Microsoft® Office System (Beta) e-Hands-on Lab
  • Benefits of Deploying the 2007 Office System Virtual Lab
  • Overview of the 2007 Microsoft® Office System Components Virtual Lab
  • Getting Started with Windows SharePoint Services 3.0 (Beta)
  • Getting Started with Windows SharePoint Services 3.0 (Beta) e-Hands-on Lab
  • Office SharePoint Server 2007 Functional and Architectural Overview Virtual Lab
  • Enterprise Content Management with Office SharePoint Server 2007 Virtual Lab
  • Organizing and Finding Resources with Office SharePoint Server 2007 Virtual Lab
  • Business Solutions Using Office SharePoint Server 2007 Virtual Lab
  • Deploying Microsoft® Windows Vista and the 2007 Office System Client Products (Beta)

More details and the courses are available at

Microsoft Virtual Labs

These labs give you time as a full admin using a product on an OS fully configured for a period of 90 minutes in your web browser. You can do what you want including trashing the system completely. This is your time to try the product. Do you have the system at home or work to install these products? who carees, try the labs you can really put the product though its paces.

IIS 7.0 Virtual Labs

SQL Server 2005 Virtual Labs

+ heaps of others on Security, Sharepoint, MOM, Windows Server, ISA, SMS, Live Communication Server....

SQL Prompt - Intellisense and Code Completion for SQL Server, VS.NET 2003+2005, Query Analyzer and others...
Intellisense for SQL Server

SQL Prompt provides Intellisense® style auto-completion for Microsoft SQL Server editors. It will tell you the exact formatting you should use for your SQL commands, while you are writing them and will therefore help you write fast, perfectly formatted SQL statements. SQL Prompt improves the productivity of all SQL script creation.

SQL Prompt simply sits behind the scenes and provides unobtrusive help when you press Ctrl-Space or when you type "." after a table/view/alias name.

Features include :

  • Table/View name completion
  • Column name completion
  • Stored procedure name completion
  • USE completion
  • JOIN/JOIN ON completion
  • Auto-uppercasing of keywords
  • Auto-popup after keywords

SQL Prompt works with the following products:

  • UltraEdit32
  • Visual Studio 2005
  • Visual Studio .NET 2003
  • Microsoft Query Analyzer
  • SQL Server 2005 Management Studio
  • SQL Server 2000 Enterprise Manager

This software has no time-bombs, no restrictions, except you must download it prior to 1st September 2006 for it to be free!

For more details and to download (requires registration)

More free books.....

While searching for some free books I came across these two good sites.

Microsoft and .NET books for free download


Free computer science books and lecture notes


Dissecting a C# Application: Inside SharpDevelop

Learn advanced .NET programming techniques by getting an insider's look at a complete application!

The developers who created SharpDevelop give you the inside track on application development with a guided tour of the source code for SharpDevelop. They show you the most important code features and explain how you can use these techniques in your own projects. You will gain valuable experience of building an application on this scale, learning from the decisions, mistakes, problems, and solutions that led to the current version of SharpDevelop.

You will need to register to download the PDF but it is well worth it. Total Pages 538..

Free Book - Introducing Microsoft Visual Basic 2005 for Developers

Microsoft is giving away this book either as a single download (15MB) or chapter by chapter.

Get a focused, first look at the features and capabilities in Microsoft Visual Basic 2005, Visual Studio 2005, and the .NET Framework 2.0.

If you currently work with Visual Basic 6, these authors fully understand the adoption and code migration issues you'll encounter. They'll step you through a quick primer on .NET Framework programming, offering guidance for a productive transition.

If you already work with .NET, you'll jump directly into what's new, learning how to extend your existing skills.

From the innovations in rapid application development, debugging, and deployment, to new data access, desktop, and Web programming capabilities, you get the insights and code walkthroughs you need to be productive right away.

For more details see

Team this up with Express Version of Visual Basic 2005 and you have a complete free system.

Note: The express version of Visual Basic is now free forever....

Windows PowerShell - WMI and IIS

A simple example to return all the fields in the IISWebService object on an IIS 6 computer using Windows PowerShell and the get-wmiobject cmdlet.

A simple example to return just the name fields from the IISWebServer object on an IIS 6 computer.


Windows PowerShell

Windows PowerShell is a new command-line shell and task-based scripting technology that provides comprehensive control and automation of system administration tasks.

Windows PowerShell allows Windows administrators to be more productive by providing numerous system administration utilities, consistent syntax, and improved navigation of common management data such as the registry or Windows Management Instrumentation (WMI).

Windows PowerShell also includes a scripting language which enables comprehensive automation of Windows system administration tasks. The Windows PowerShell language is intuitive and supports existing scripting investments. Exchange Server 2007 and System Center Operations Manager 2007 will be built on Windows PowerShell.

Windows Powershell has also been known under the code name Monad and is currently in Release Candiate.

Mondad is built on top of the .NET Framework version 2 and basically allows you to create scripts called cmdlets that you register with the system and then can reuse at any time.

A cmdlet is referred to by a verb and noun pair, separated by a "-":


These cmdlets can be piped together using the pipe character (same as the old DOS pipe command) |   But unlike the simple DOS pipe command you can concatinate any monad cmdlets to product interesting and very powerful results.

For the download url go to

The download is 2.2 MB for RC1 and requires that you register prior to downloading.

side note: I had problems with the Microsoft Passport logging into this site so I logged into another Microsoft Passport site and then went back to the Powershell registration url and it worked fine.

An example to find all services that are stopped on your machine

  • get-service | where-object {$_.status -eq "stopped"}

To find all services where their name contains the name “SQL“

  • get-service | where-object {$_.status -like "*SQL*"}

Now this may be very nice but how about something complex such as doing a DIR on the registry from within your script?

What about using IPConfig.exe a standard console application to display an IP Address?

Typing IPCONFIG into the Powershell returns the standard data you woud expect (something like this)

Windows IP Configuration

Ethernet adapter Wireless Network Connection:

        Connection-specific DNS Suffix  . :
        IP Address. . . . . . . . . . . . :
        Subnet Mask . . . . . . . . . . . :
        Default Gateway . . . . . . . . . :

Using a Powershell filter you can get the IP Address very simply by itself without the other details.

This is just touching the surface of this powerful tool. You can create functions with looping, variables, regular expressions and so much more..

A good site that has quite a few scripts is at and also the Microsoft Script Center web site has a category for Powershell Scripts at

Remember to download go to

Ever wanted to find a font just like the one used by certain publications, corporations, or ad campaigns?

Ever wanted to find a font just like the one used by certain publications, corporations, or ad campaigns?

This amazing system at can help you by allowing you to upload or to link to an image on the web and it will attempt to find you the actual font that was used to create the text.

For example I used the new IIS 7 font used on the logo for the new IIS 7 web site

Here is my example font.

The site then decoded the image into each individual letter as shown below and allowed me to specify the actual letter (it got it right so I did not need to specify anything).

I then clicked on Search and it searched it database for matching fonts.

It did not find the font used but did come up with 23 very close fonts. In the case when the system can not locate the exact font you can submit your image to their forum where very willing helpers will try to identify the font for you.

Here is an example of the first 9 that it did find.

If on the other hand the font is identified you can view your own sample text and in a font size just to make sure and will then help you to buy the font.

This is a great service and very quick and often helpful.

For more details see

Parser Error Message: Unrecognized configuration section 'connectionStrings'
If you receive the error below then it means that your web site or virtual directory is configured to run with the wrong version of  the .NET Framework.

Server Error in '/MSDN' Application.

Configuration Error

Description: An error occurred during the processing of a configuration file required to service this request. Please review the specific error details below and modify your configuration file appropriately.

Parser Error Message: Unrecognized configuration section 'connectionStrings'

Source Error:

Line 12: 		<add key="ConnectionString" value="User ID=MSDN;Password=$MSDN$;Initial Catalog=MSDN;Data"/>
Line 13: 	</appSettings>
Line 14: 	<connectionStrings/>
Line 15: 	<system.web>
Line 16:     <pages theme="MSDN"></pages>

Source File: D:\Inetpub\websites\IS\MSDN\web.config    Line: 14

Version Information: Microsoft .NET Framework Version:1.1.4322.2300; ASP.NET Version:1.1.4322.2300

Update for HTTP Issues for Microsoft® Internet Security and Acceleration (ISA) Server 2004 Standard Edition with Service Pack 2 (KB 916106)
This update addresses the following HTTP issues for ISA Server 2004 Standard and Enterprise Editions with Service Pack 2 (SP2):

• KB 915045: Error 502 "The HTTP request includes a non-supported Header" when accessing certain web servers. This occurs when accessing certain Web servers that return headers that are incompatible with each other.

• KB 915421: Errors 11001 or 400 when accessing certain web servers. This is caused by a misinterpretation of spaces in headers provided by ISA Server, and results in a corrupted URL and failure to load the Web page.

• KB 915422: Event ID 23004 when accessing web sites that respond with compressed content. Some Web servers always return compressed content, which is denied by ISA Server when it did not request compressed content.

• KB 916573: Error 500 (Internal Server Error. Not implemented (-2147467263)) when trying to download zip attachments from an Outlook Web Access server. The header returned by Outlook Web Access causes ISA Server to deny the response.

• KB 917134: Grayed out checkbox “Enable caching of content received through the BITS service”

Visual Studio Express now a free product permanently
Effective April 19th, 2006, all Visual Studio 2005 Express Editions including Visual Basic, Visual C#, Visual J#, Visual C++, and Visual Web Developer Express will be free permanently! 

Prior to this pricing announcement, Visual Studio Express Editions were promotionally discounted to be free for one year, starting on November 7th, 2005. With this announcement, the promotional discount for Visual Studio Express is now permanent and Express will continue to be free.

Also there is a number of starter kits released...

Microsoft .NET Interface for Lego Mindstorms Starter Kit
The Microsoft .NET interface for Lego Mindstorms enables you to programmatically control Lego Mindstorms directly from Visual Basic, Visual C#, Visual J#, or Visual C++ Express. We also have a dedicated sub-page on Coding4Fun on programming Lego Mindstorms with Express.

Beta: Skype Wrapper for .NET Starter Kit
The Beta of the Skype Wrapper for .NET Starter Kit is a managed code wrapper with samples that enables to programmatically connect and consume Skype services from Visual Basic, Visual C#, Visual J#, or Visual C++ Express.

MediaShare Messenger Starter Kit
The Media Share Messenger Starter Kit is a fully functioning Visual C++ Express custom chat client that enables you to send instant messages to your friends and even share your music collection with them over a local area network (LAN).

Annotated Travel Log Starter Kit
The Annotated Travel Log Starter Kit is a fully functioning Visual C++ Express travel planning and tracking application you can use to manage your travel plans & routes, as well as track and record your progress.

Beta: Classifieds Site Starter Kit
The Classifieds Site Starter Kit Beta provides a complete, ready to run, fully customizable, Web site for listing and managing classified advertisements with Visual Web Developer Express and SQL Server Express.

Teacher Starter Kit
The Teacher Starter Kit is a rich client application for keeping track of students, course rosters, and assessments or grades using Visual Basic or Visual C# Express.

Maker Faire Demo: Dancing4Fun
The Dancing4Fun demo is a homemade version of the popular Dance, Dance, Revolution arcade game using Phidgets touchpad sensors to time your dancing just right.

Maker Faire Demo: MSN Spaces Photo Booth
The MSN Spaces Photo Booth demo shows how you can integrate a pan-and-tilt web cam, and an Xbox 360 controller to dynamically upload pictures to your MSN Spaces Web site.

Maker Faire Demo: Skype Home Automation
The Skype Home Automation extends the Skype Starter Kit to show how you can use an instant messaging application to communicate with a home server for the purposes of automation and monitoring, like checking if the lights are on, or even play your favorite music.

How-To Videos: Windows Forms Controls
These bite-sized 5-15 minute videos that show how to use common Windows Forms controls including the SoundPlayer, FlowLayout, NotifyIcon, Button, and other controls using Visual Basic or Visual C# Express.

Video Series: SQL Server 2005 Express for Beginners
This four-hour video series is designed for beginners who are interested in learning the basics of how to create and manage data using SQL Server 2005 Express.

Video Series: Learn how to create Rocket Commander
Watch and learn how to create professional looking 3D games like RocketCommander using Managed DirectX and Visual C# Express in this 10-part instructional video series. 

Webcast Series: Tools for the Hobbyist Developer
The Tools for the Hobbyist Developer webcast series covers the spectrum of Express content including game development, programming for hardware, database development and more.

More details :

VS2005 Plugin - CSS Properties Window

Visual Studio 2005 provides some capabilities for visually editing the styles for elements in an HTML or ASP.NET page. For example, in Design view, you can right-click a control or element, and then choose Style to display the Style Builder dialog box. Although the style builder enables you to create and edit in-line styles, there's no way to edit the styles that are inherited from a linked style sheet.  The new CSS Properties window provides this capability — it enables you to edit both in-line styles and styles in linked style sheets.

The CSS Properties window is an add-in package to Visual Studio 2005. It does not change the behavior of any feature in Visual Studio 2005; it simply adds additional functionality specific to editing CSS in Design view.


Using the CSS Properties window, you can do the following:

  • Display in-line styles and styles inherited from <style> blocks and linked style sheets.
  • Edit in-line styles and styles in linked style sheets. (The CSS Properties window displays styles from <style> blocks, but does not enable you to edit them.)
  • Display drop-down lists of styles and values to help you create valid style definitions.
  • Drag style settings between different elements and to and from a style sheet.
  • Edit styles for multiple elements.

For more details see - View images of your website from multiple browsers and operating systems.

Basically the site will allow you to submit your web site and have its clients render your site using a number of different browsers and you can then see how your site looks on different operation systems and browsers and browser versions.

The day I visited the following browsers were supported.

  • Epiphany 1.4.8
  • Firefox 1.0.4
  • Firefox 1.5.0
  • Galeon 1.3.20
  • Konqueror 3.3
  • Mozilla 1.7.8
  • MSIE 6.0
  • MSIE 7.0 Beta
  • Opera 8.50
  • Safari 2.0

There is a limit in the size of the queue to around 60 minutes which means that only the browsers that are available within the 60 minutes will take your job when you submit it.

This service is free for you to use because of the way the site works.

Basically they have a server sitting around with a big pipe to the Internet and clients ( nice people who will do the automated screen captures) will accept a job and the client will then use their browser to browse to the site in question and produce a PNG graphic. The client will then submit the image to the central server which stores it so you can view it later.

You can see my site in the following browsers below:


Firefox 1.5.0

Screenshot of Firefox 1.5.0

Konqueror 3.3

Screenshot of Konqueror 3.3

Mozilla 1.7.8

Screenshot of Mozilla 1.7.8

ClustrMaps - Show a map of where you get your web site visitors....

I came across an interesting site today

See at a glance where your site's visitors are located: instantaneously, even when the numbers are enormous! Visitors don't need to click on anything: just viewing your page is sufficient.

One thumbnail map on your site shows it all: We provide (free) the HTML that gives you a thumbnail map, like the one on the left. When it loads, it increments a counter and shows the locations of all the visitors to your page, cumulatively (even for huge numbers). Clicking on it zooms in to a big world map, and (optionally) lets you zoom in to the continents, as in the example below.

No hidden extras: For light users (under 2500 visitors daily - that is me) the service is free, forever, and stores cumulative totals up to many hundreds of thousands of visitors. Paying users get extra features.

Interesting Active Directory Attribute : drink

I tried to edit this attribute for my AD Account at work but it didn't want to play! Pity I was going to populate it with Gin, Wine, Single Malt....

VMWare Player - Free tool to run a virtual machine image (any image)

VMware Player is free software that enables PC users to easily run any virtual machine on a Windows or Linux PC. VMware Player runs virtual machines created by VMware Workstation, GSX Server or ESX Server and also supports Microsoft virtual machines and Symantec LiveState Recovery disk formats.

VMware Player can be used by anyone to run virtual machines on a Windows or Linux PC. VMware Player makes it quick and easy to take advantage of the security, flexibility, and portability of virtual machines. 


  • Free
  • Run any virtual machine. Run virtual machines created by VMware Workstation, GSX Server or ESX Server. VMware Player also supports Microsoft virtual machines and Symantec LiveState Recovery disk formats.
  • Revert to previous state. Revert virtual machines to a previous 'clean' state within seconds.
  • Access host PC devices. Use host CD/DVD drives, network adapters, and plug-and-play USB devices.
  • Copy and paste. Copy text and files between the virtual machine and the host PC.
  • Drag and drop. Drag and drop files between a Windows host PC and a Windows virtual machine.
  • Shared folders. Use shared folders to easily share files between virtual machine and the host PC.
  • Multiple networking options.  Virtual machines can share or obtain new IP addresses or be isolated from the network and host.
  • 32- and 64-bit host and guest operating system support. Run a wide variety of virtual machines containing 32- and 64-bit operating systems simultaneously on the same physical PC. Compatible 64-bit guest operating systems include select Microsoft Windows, Red Hat, SUSE, and FreeBSD distributions.
  • Adjustable memory. Tune virtual machine memory for optimal performance.
  • Configurable shutdown. Power down or suspend the virtual machine when closing VMware Player.

    For more details see :

  • IP Lookup: Find the owner of an IP address

    IP Lookup is a small free Windows software tool for finding the owner of an IP block. Specify an IP Number and IP Lookup will retrieve all available information including the name and address of the ISP or the organization that owns the IP block. The software can also resolve a host name into the corresponding IP and then lookup the IP. Is your firewall software reporting too many access attempts from a specific IP address? IP Lookup will help you track down his ISP. Once you gather enough data you should be able to file a report with the ISP.


    For more details see:

    Google Blog Search [Beta]

    Looking for results from just Blogs - seem I do these days - better than most web site content!

    To go to the default blog search page to find blogs on your favourite topics see

    Google also has an Advanced Blog Search at:

    For blog entries refering to “Chris Crowe“ see:

    My New Blog Site -

    I have just started a new blog about me setting up and maintaining a new Tropical Fish Tank. I have not had one for about 10 years and I am getting quite excited about getting it.

    For details see

    HTML - How to popup a DIV tag over a SELECT tag

    The following code will allow you to popup a DIV tag so that even if the DIV tag is displayed over a SELECT tag the DIV will not show any of the select tag. The way it does this is by placing an IFRAME over the top of the DIV tag.

    Examples in both IE and Mozzila below.

    IE 6
    Mozilla Firefox 1.04

    The code also uses a free 3rd party Javascript library called Anchor Position by Matt Kruse - 

    This library allows you to get the location of an element on the page. It will return the XY coordinates of the element. It is used to handle the placement of the DIV tag in the example below.

    I also use a blank.htm file for the src parameter of the IFRAME - you may be able to get rid of this by using a javascript function instead.

    The following code works in both IE 6 and also Mozilla Firefox 1.04 - I have not tested on other browsers at this time.

    For a live demo see

    <meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
    <title>How to popup a DIV over a SELECT Tag</title>
    <body bgcolor=#FFFFCC>
    <script language="javascript" src="AnchorPosition.js"></script> <!-- This is our DIV Tag that will popup over the current content, when we popup our div tag, we place
    an IFRAME over the top of the div tag. This is so we can hide the Select tag. We then place a table after the IFRAME and force it to be positioned starting at the top left
    of our div tag.
    --> When you click the link below the popup will show over the top of the div <div id="floatingdiv" style="position:absolute;display:none;left=30;top=20;width=300;height=150"> <iframe id="selectblocker" style="position:relative;" frameBorder="0" scrolling="no" src="blank.htm"></iframe> <table border=1 cellspacing=5 id="contents" style="position:absolute; background-color: #CCFF99"> <tr> <td valign='top'>This is the actual contents that we want to display within the DIV tag area.</td> </tr> </table> </div>
    <form method="POST" action="">
    <table border=1 cellspacing=2 cellpadding=2>
    <tr><td>Enter your name</td><td><input type="text" name="name" id="name" size=10 style="width:200px">
    </td></tr> <tr><td>Please select your occupation</td><td><select size="1" name="D1" id="D1" style="width:200px"> <option>Programmer</option> </select> </td></tr></table> </form> <!-- move our hide and show links away from the div tag --> <a href="Javascript:Show();">Show</a>   <a href="Javascript:Hide();">Hide</a>

    script language="javascript"> function Show(){ var divTag = document.getElementById("floatingdiv"); var iFrameTag = document.getElementById("selectblocker"); var tableTag = document.getElementById("contents"); var AnchorPos = getAnchorPosition("name");;;; = 0; = 0; =; =; =; = 0; = 0; =; =; =; = "block"; } function Hide(){ var divTag = document.getElementById("floatingdiv"); = "none"; } </script>

    Regular Expressions - [ Freeware ] Expresso 2.1

    Expresso is useful for learning how to use regular expressions and for developing and debugging regular expressions prior to incorporating them into C# or Visual Basic code.

    • Build complex regular expressions by selecting components from a palette
    • Test expressions against real or sample input data
    • Display all matches in a tree structure, showing captured groups, and all captures within a group
    • Build replacement strings and test the match and replace functionality
    • Highlight matched text in the input data
    • Test automatically for syntax errors
    • Generate Visual Basic or C# code
    • Save and restore data in a project file
    • Maintain and expand a library of frequently used regular expressions

    For more details see -

    For more details on Regular Expressions try:

    Don't use "&id=" as a parameter in your URLs if you want Google to index your pages!

    I came across in interesting observation while looking at the Webmaster Guidelines page on google today.

    • Don't use "&id=" as a parameter in your URLs, as we don't include these pages in our index.

    For more Google guidelines see