Archive for February, 2006

* A:Hover an AJAX Mistake

Posted on February 25th, 2006 by Dave Johnson. Filed under AJAX, JavaScript.

As some will know we are currently getting into development of our latest version of EBA Grid and getting it up to snuff for our Firefox users - don’t worry we will have a Beta out very soon!

Anyhow, when we started on the new version we decided to overhaul the old IE centric architecture. With that in mind we chose to try using <A> tags for each cell such that we could take advantage of the built in cross-browser CSS support for A:hover and the other CSS pseudo classes that apply to the anchor tag. The reason for this was to simply the code so we didn’t have to explicitly set mouseover / mouseout type event handlers just to change the style of the active or mouseover’ed cell.

The result of this was disasterous. It was very slow. So to give you an idea of how slow it is I have made a screen cast - take a look. You can see in the “fast” part the mouseover highlighting works as expected - whereas when we used the intrinsic A:hover pseudo class then it was bleedin slow.

By the way - we are still looking for AJAX developers.


* Help Wanted!

Posted on February 22nd, 2006 by Dave Johnson. Filed under AJAX, Business, JavaScript, Web2.0, XML, XSLT.

Once again, we are hiring some more AJAX developers. Anyone out there with mad AJAX skills or the work ethic to rapidly get up to speed on some exciting AJAX product development?

If so please !

Here is the full job description.

With that corporate malarky out of the way I just want to mention something about who we _really_ are.

We are dedicated ajax developers who take pride in high performance and user centric products. If you want to be challenged in a startup like environment with lots of responsibility (and reward) then this is the place to be. Although we work hard, as the saying goes, we also play hard. If we are not pushing the limits of JavaScript and XSLT then we are taking in everything that Vancouver has to offer like the mountains right in our backyard, the ocean at our feet and a beer in our hands. We are trying to build a place where people can grow not only as individuals but as part of a larger team in the business and as members of the Vancouver tech, web and social communities. We operate with our core values laid plain for everyone to see and expect the same openess and honesty from every one of our team members.

If you have what it takes then really please do !


* Backpack and SJAX

Posted on February 15th, 2006 by Dave Johnson. Filed under AJAX, Web2.0.

I have finally signed up for Backpack in the last couple of days to check it out and it seems that someting strange is going on - when I add items to my task list they are being added using synchronous requests rather than asynchronous. After clicking the add to list button the trendy Mac processing animated gif appears as the item is saved to the server. Once saved to the server the user interface is finally updated with the item and I can proceed to add more items.

This is strange since it actually makes for something more like SJAX rather than AJAX. Granted they could well have a good business reason for doing so but if you look at Flickr then you will see that you can add tags to photos pretty quickly because there is no waiting for the server response.


* Cross Domain AJAX with XML

Posted on February 10th, 2006 by Dave Johnson. Filed under AJAX, JSON, XML.

On a post I made a few days back I proposed a way to do cross domain AJaX using XML rather than the commonly used JSON. It is essentially an extension of the idea of JSONP (JSON with Padding). Since I generally find myself working with XML more often than JSON I decided to create the equivalent for XML based applications. I have not extensively tested it but did try it on IE6 and FF1.5 on Win2K server.

So here it is. The idea is that we pass an id, a context and a method as querystring parameters to a server script such as and we get back some JavaScript. That JavaScript can then be injected as a script tag in your web page.

This will then return JavaScript code that creates an XML document object and loads an XML string into it. Once the XML string is loaded into the object it then calls a callback method such as myObject.onXmlLoaded() and passes it the XML object that was created.

The id querystring parameter is used to uniquely identify each XML document that is requested, the conext is the object on which the callback is called and the method parameter is the name of the callback function.

The JavaScript returned from the pervious resource is this:

if (typeof(eba_ajax_xmlp) == "undefined"){

    var eba_ajax_xmlp = {x: {}};
    eba_ajax_xmlp.loadXml = function(s, uid){
        if(document.implementation && document.implementation.createDocument) {
            var objDOMParser = new DOMParser();
            this.x[uid] = objDOMParser.parseFromString(s, “text/xml”);
        } else if (window.ActiveXObject) {
            this.x[uid] = new ActiveXObject(’MSXML2.DOMDocument.3.0′);
            this.x[uid].async = false;

eba_ajax_xmlp.loadXml(’This XML adata is from‘, ‘1002′);, eba_ajax_xmlp.x[’1002′]);

This is slightly different from the JSONP way of doing things but for the most part it’s the same sort of thing.

Try it out for your self with the sample page here - you should see an alert with contents of the loaded XML (just a root tag).

Note there is nothing on the Enterprise AJAX site but there will be soon :)


* URLs are Important

Posted on February 8th, 2006 by Dave Johnson. Filed under Business, Flex, Web2.0.

Who knew that everyone would think that URLs are so important!

James Governor has a great overview of the very informative presentation by Josh Schachter from

I would have to also agree that the Adobe Flex presentation was way out of left field - I guess they were essentially paying for the conference to get in a Flex sales presentation :)

Tom Coates from Yahoo! also had a great presentation covering similiar stuff to Josh.


* Busy Times - AJAX for the Enterprise

Posted on February 6th, 2006 by Dave Johnson. Filed under AJAX, Business, Web2.0.

Things are getting quite busy here at EBA where not only we are almost ready to launch into a new development cycle but I will finally be returning to Vancouver from London.

Also of interest is that Andre, Alexei and I are writing a book on Enterprise AJaX for Prentice Hall/Addison Wesley.

We are going to cover some topics that are of particular importance when building enterprise systems (CRM, Accounting etc) as opposed to things like Google Suggest but we will still try to keep some perspective at the same time.

Currently we are looking at the following sort of outline:

Chapter 1: Ajax and the Enterprise (RIA and how / why it is needed in today’s enterprise)
Chapter 2: Ajax Building Blocks (JavaScript, DOM, CSS - the usual suspects)
Chapter 3: Building With AJAX (Client side frameworks like Scriptaculous and Dojo as well as fundametnals for creating custom AJaX components)
Chatper 4: AJAX on the Server (Server frameworks for Java, .NET and either PHP or RoR)
Chapter 5: Design to Deployment (Looking at application design issues including UML etc, prototyping and performance analysis, unit and regression testing etc, and finally deployment issues like script size and caching etc)
Chapter 6: AJAX Architecture (Look at some of the nuts and bolts of the design decisions such as asynch messaging, caching, and security)
Chapter 7: Making Usable Web Applications (Yellow fade)
Chapter 8: Risk Management (Something to help you convince your manager you have thought it through)
Chapter 9: Business Case Studies (From our consulting and product experience with Microsoft, Fidelity and more)
Chapter 10: Life After AJAX (A look at the cool technologies that are going to influence the direction of AJAX in the coming months and years)

Stay tuned, as we move forward we will be soliciting feedback from all you out there with beta chapters and code samples. If you already know of something that other books are not offereing and you would like to see then by all means .

We will have a site up shortly at