Most Indemnad Skills for 2007

Web development is number 2 of the most indemand skills for 2007:

http://www.hotgigs.com/pdf/contractworkforce2007_d.pdf?src=cwremailconsultantb

When they break down the web development category, I have extensive experience in almost but 1 of the top 10 sub categories, with my main area of expertise being the top item: ASP.NET development.

Good to know that I made a good decision to not focus on Fortran! 🙂

Renewing the SSL Certificate on a Network Load Balanced system

We had a problem last night as we attempted to update our site certificate on our NLB website.

We have 2 machines in the cluster, and after updating the certificate on both of them, the site stopped responding over https.

We spent a LOT of time trying to figure out what was wrong with our new certificate, or the way we had set it up.

In the end, it turned out that that when we updated the certificate, it AUTOMATICALLY removed the NLB IP address from the IPs that are listening for port 443. 

So the result was that each server would respond over SSL on it’s own, but when you tried to access the cluster by it’s IP address over SSL, there would be no response.

It was really easy to fix, but a real pain to find. 

Upgrading to ASP.NET AJAX, xhtmlConformance, and JavaScript Errors

I recently migrated one of the web applications I work on frequently to make use of the newly released ASP.NET AJAX toolkit.

In order to make this work, a bunch of changes were needed in the web.config.  So many in fact that I decided to merge my web.config file into theirs, rather than vice versa.

After all was done and working, we started getting a few javascript errors in stuff unrelated to any ajax controls.

After some investigation I relized that the naming convention for controls had changed.

Controls that used to be named ASDF:ZXCV were now named ASDF_ZXCV.

So in some instances we had javascript looking for elements where the element name was hard coded as “ASDF:ZXCV”.  Of course the correct way to get the element name is to use the ClientId property of the control, but that was not used 100% of the time on our site. 

The problem is that when I upgraded the application from .Net 1.1 to a .Net 2.0 web application project, the upgrade tool included an item in the web.config file that was intended to ease the transition.

<xhtmlConformance mode="Legacy"/>

In ASP.NET 2.0, by default all rendered content is well formed XHTML.  This was different from ASP.NET 1.1.  By setting the xhtmlConformance mode to Legacy, it would not force the output to be XHTML compliant.

Another effect that this has, is the naming of controls.  When Legacy is turned on, control hierarchies are separated by a colon “:”.  In standard mode, they are separated by a dollar sign “$” in the name property, and an underscore “_” in the ID property.

This can be seen if you use reflector on the control class, you can see this:

internal char IdSeparatorFromConfig
{
    get
    {
        if (!this.EnableLegacyRendering)
        {
            return '$';
        }
        return ':';
    }
}

In 99% of the places where we reference asp.net generated code, we relied on the ClientId property, so we had no problems.  But in that 1% of places where we took the shortcut of hard coding in the element, we got JS errors.

 

String-Net Liquid

Some researchers belive they have found a new type of matter, called String-Net Liquid.

The suggestion is that electrons are not elementary particles, but rather are the end points of strings of other particles, similar to quantium entanglement.

The mesh of strings behaves according to Maxwell’s equations, which deal with the propagation of light. 

They think that the vacuum of space might be filled with these strings.

Very interesting.

Use Google To Find Open Directories

This is a really neat example of how to use the advanced search abilities of Google to narrow down your search to specific files.

From the article:

The following is a Google search string for searching open web directories containing downloadable Nirvana music files.  Substitute the term Nirvana in the search string for any other band of your liking.  You can always bookmark the search result for future use.

-inurl:(htm|html|php) intitle:”index of” +”last modified” +”parent directory” +description +size +(wma|mp3) “Nirvana”

With some very slight modifications the same search string can easily be used to search for ebooks in DOC and PDF format:

-inurl:(htm|html|php) intitle:”index of” +”last modified” +”parent directory” +description +size +(pdf|doc) “george orwell 1984″

Or perhaps your looking for some specific video file:

-inurl:(htm|html|php) intitle:”index of” +”last modified” +”parent directory” +description +size +(mpg|wmv) “towelie”