VMware ESXi hypervisor is now freee, gratis, and for nothing!

Interesting thing, VMware have just announced that they will be offering their bare-metal (OS independent) server virtualisation system – ESXi hypervisor, for free.  It used to cost about 500$.


It can be downloaded from here, but as usual in these type of situations you have go to to the bother of registering first.  Still, on balance it will probably be worth bothering, and we are certainly looking forward to giving it a twirl!

Deploying Microsoft Report Viewer with ASP on a Hosted Site

The Microsoft Report Viewer is a handy way of producing reports without having to enter the Crystal Reports Quagmire, however deploying it within an ASP application to a Hosted environment can be quite involved as it may not be installed on your host system and it will usually not be possible to run the installer.


Instead doing the following worked for us:


Copy the following dlls to your project’s bin directory:








The first three will be easy to find on your development system – do a search, the last might only exist in you development system’s GAC, to get easy access to this use the subst command as follows to map it to a virtual drive:


Subst b: %windir%\assembly


This will map it to b:


Once the dlls have been copied into the bin folder, delete the existing GAC reference from your project to ‘Microsoft.ReportViewer.WebForms’, and add it again, this time by browsing to ‘Microsoft.ReportViewer.WebForms.dll’ in your bin folder.


Now when you publish… your app to your hosted site, the report viewer should work OK.

XPath with Adobe ActionScript 3

While working on a custom XML data-driven content management system in ActionScript 3, we wanted to have our XML content meta-data reference the actual XML content data by means of XPath expressions – hence we needed some half decent XPath support within AS3.


AS3 has quite good XML support, however its support for XPath expressions and queries is not much to write home about at all!  So instead, we have been using memorphic’s open source XPath implementation with much success.  It is easy to install & use, and it does a good job at implementing the majority of the XPath standard.


To use it, first download it and extract the src\memorphic folder to somewhere on your path.  Then import the XPath support to your AS3 code as follows:


 import memorphic.xpath.parser.*;
 import memorphic.xpath.XPathQuery;


To execute a query just declare an XPathQuery object and call the exec() method which returns an ‘XMLList’ of matches:


// Get a list of the 'News' Items..
var myQuery:XPathQuery =
new XPathQuery("/Content/ContentData/ContentItemList[@name='news']");
// execute the statement on the XML object and get the result
var result:XMLList = myQuery.exec(_xml);


Quite refreshingly straightforward really.


One thing to look out for, and which caused a lot of head-scratching for a while is that memorphic executes the XPath expression against a _copy_ of the provided XML tree, and the returned nodes belong to that tree and not the original – hence if you later modify any of these nodes, it is the copy that is modified and not the original XML tree, this was not really spelled out in any of the documentation.


For us, it was very important that this was not the case, so we got around the problem by just modifying the query code as follows:


within the definition of the function execRoot() in the file:




we changed:





With no ill effects (yet!).

Evaluating Trac for light-weight Issue Tracking

We are evaluating Trac for a client who wants a lightweight web-based issue tracking system for one of their projects.  Trac is an open source system.  We are using the Trac hosting service provided by svnrepository.com, who as their name suggests also host subversion (which we also use).


By default Trac integrates with subversion and indeed their tag line is – “Integrated SCM and project management”, which is a bit of a misnomer as it certainly does not provide anything near a functional web interface to subversion. But, happily, we are mostly interested in its issue tracking functionality so that’s not a problem!


Trac manages ‘tickets’ which represent  bugs or feature enhancement requests etc. Tickets can be added, edited and viewed etc.  It also models a road-map, onto which milestones can be added.  Tickets can be associated with milestones, product versions or components.  It has a Wiki aspect too, but we’re not really bothered about that.  It seems that it might do nicely as a light-weight issue tracking system, it certainly appears to take care of most of the core required bits, and it has a certain elegance and efficiency that is often missing in some of its over engineered and complex alternatives. 


It is not without its quirks however – especially during setup, but hopefully these quirks won’t prove to be too problematic so as to rule out its use.  Some of its admin functions still need to be accessed by command-line or by editing the Trac.ini file.  For example although you can use the web interface to add a ticket, you have to use the admin command to delete it.


One of its most problematic quirks though is its use of Basic Authentication for login authorisation which can lead to all sorts of very confusing login/logout situations, for example, you can’t easily logout and then login as another user…


By default the anonymous user has all sorts of permissions, so make sure to remove them by issuing an admin command like:


trac-admin <your-path> permission remove anonymous ‘*’


Also to arrange things so that you can pick the ‘owning’ user from a combo-box on the new ticket form (rather than having to type the user name out), edit Trac.ini and in the [Ticket] section, set


restrict_owner = true


Anyway, now that it’s all setup we will evaluate it on a real project and let you know how we got on!

Reading and Writing Excel Files from ASP

A project that we’re currently working on requires that we read from and write to Excel files from our ASP application. As the application will be hosted in an environment that will not have Office installed (as most will not) we can’t use automation, and anyway it seems that using this kind of automation from ASP is not recommended for all sorts of reasons (among other possible problems, it can not be guaranteed that Excel won’t at some stage look for some user interaction and pop up some ‘random’ window).

We needed another method of working with the Excel data from ASP. I tried using the MS ADO Excel drivers with very mixed results, these drivers seem to have been hobbled together with the express aim of annoying and hindering anybody that uses them, and I really can’t recommend their use unless you’re just reading from an excel chart with very consistent data types. Their abilty to write to Excel files is very very limited.

Looking at the commercial offerings, most seemed very much on the pricey side ~1,500USD, although when purchasing from Ireland the current Dollar/Euro exchange rate certainly helps! However I am now evaluating Syncfusions XLsIO component which seems to do the job quite nicely, although it does seem quite slow when reading medium to large worksheets. It is a much more reasonable ~500USD. It has a very similar API to Excel’s native API.

Anyway here are some links to pages that I found useful while on my journey of discovery:

ADO Read EXCEL files


Write Excel File

http://www.beansoftware.com/NET-Tutorials/Excel-ADO.NET-Database.aspx [Create sheet]
http://www.sql-server-helper.com/tips/read-import-excel-file-p03.aspx [Importing to SQL Server]
http://www.thescarms.com/dotnet/Schema.aspx [ Read Schema ]

New Website

Well here we are, on the road – the new website is being born.  It has started off looking a little ‘catty’ but that will change!  WordPress is the engine, and so far I am very happy with what can be achieved with a minimum of fuss!  Although be very careful not to copy & paste from MS word if you want an easy time of it!