XML/XSD Validator

A very useful tool for validating XML against a XSD schema.

http://tools.decisionsoft.com/schemaValidate/

Blocking IP Addresses on Linux Server

Had some suspect IP addresses trying to attempt to login via the admin user in Moodle. Best thing to do is block the IP address to the server or even better the IP range (after doing a IP lookup to see where the IP address came from).

References:

http://www.cyberciti.biz/faq/how-do-i-block-an-ip-on-my-linux-server/

Print CSS Style Sheets

Here are some links regarding Printing CSS style sheets and NZ Government standards:

References:

http://www.webcredible.co.uk/user-friendly-resources/css/print-stylesheet.shtml

http://www.webstandards.govt.nz/web-guides/

The IIS Admin Service service terminated with service-specific error 2148073478

After recovering our servers from a hard drive disk failure, we attempted to start up the IIS Admin Service on Windows Servier 2003 RC2 and got the following error:

The IIS Admin Service service terminated with service-specific error 2148073478

This was caused by having a corrupt IIS 6 Meta Database xml file.

How did we get around this? We managed to restore a backup of the IIS 6 meta database using the IIS  6 Backup/Restore Function.   Worst case is that you cannot restore a previous copy of the XML database file.   If you have a staging environment that has IIS 6 installed, you can WinMerge the IIS Meta database xml files and populate the missing parts of the XML file.   But take note the ACL encrypted strings, these need to be generated by IIS6 and Windows Server otherwise you will get the same error.

References:

http://www.microsoft.com/technet/prodtechnol/WindowsServer2003/Library/IIS/43a51d34-7c81-413b-9727-ec9a19d0b428.mspx?mfr=true

JQuery Event Delegation

Came across a awesome way of handling events using JQuery’s event delegation methods.   I have a list of A tags grouped in a table, and each A tag will call a method and pass a ID based on a value in the same column of that A tag.

jQuery(“#tableId”).click(function(event) {
var $target = jQuery(event.target), target = event.target;
if ($target.parents(“a:first”).is(“a.editNote”)) { //Make sure that we have found the right A tag
var id = parseInt($target.parents(“tr:first”).find(“td:first a”).text()); //traverse back through the parents to view the corresponding ID which is in another A tag
callFunction(id);
}
});

This is way better than doing a typical jQuery(“a[id=editNote”].click(function) as this creates a event handler for each A tag.   Using Event Delegation like above only creates one handler which has less overhead on browsers (especially IE).

CodeLab Update

Hi All,

Just to give you an update on what we are doing.   We provide support services and technical expertise to a number of open source products including Moodle and Joomla.   Our clients are education institutes including Aoraki Polytechnic and Pro+Med Medic Training.   We also contract to SPF Multimedia to help develop software products for schools (pre-school, primary, high school and tertiary institutes).

We also do custom software development for Pro+Med where they have a dynamic driven C# ASP.NET website running on our own XTS Web Engine.   This will soon be changed to use the ASP.NET MVC framework.

We are also part of the Timaru Kyokushin Karate club where we manage their http://www.timarukyokushin.co.nz website.

On the side, I’m work full-time for Verb Ltd as a Lead Developer/Project Manager.