The Ajax Experience, 2006, San Francisco
Here’s an email I sent my team with notes about the conference. About the formatting issues – I blame Word and Outlook!
Here are some of my thoughts on “The Ajax Experience”. It was a great conference with a very technical audience and SERIOUSLY knowledgeable speakers.
· The speakers all had great attitudes. I was impressed by both their technical and speaking ability. Additionally, most of them were influential members of the Ajax/DHTML community.
· At registration, we were given a CD with the slides for almost all of the presentations. This was very helpful in deciding which sessions to attend. There were 5 parallel tracks with 7 sessions each, so choosing was tough. The slides made it possible to avoid any session that would just be review for me.
· The WIFI was OK. Several times, I had trouble connecting, but it worked most of the time.
· Power outlets were limited to the sides and rear of the rooms. Some rooms only had 4 outlets. That was a bummer.
· Opening Keynote – Dion and Ben, the Ajaxians – Very good. The humor and polish they bring to their podcasts was here, too. A fun introduction to the conference.
· Expert Panel Discussion 1,2,3 –
· Immediately following the Keynotes, 6 or 7 experts took the stage and answered questions. They did this with a different group of people each day.
· The topics ranged from the future of browsers to where is Ajax headed to what developers can do to convince IE to catch up to FF.
· Without exception, these discussions were excellent. The questions asked demonstrated the range of technical ability of the attendees and most of the questions were intelligent. 🙂
· Important messages, broadcast by the panels:
· Accessibility is hard, but Ajax doesn’t make it harder.
· Ajax now means DHTML applications with an asynchronous feature or two. Ajax is no longer spoken of as just XMLHttpRequest and Iframe tricks. “Get over it”.
· Don’t build DHTML/Ajax apps without using a cross-browser toolkit. There is a good selection now, you can get precisely what you want. Big toolkits, small toolkits, toolkits highly integrated with your server language (DWR for Java, etc), toolkits that are independent of your server language (dojo, mochikit, etc)…
· Message to toolkits: The toolkits that are well integrated with specific server languages should find a way to bind to other languages as well. RoR and PHP users should be able to use DWR for instance.
· Message to browsers: Adopt a standard for storing large amounts of data on the client. Adopt a standard for cross browser XML and JSON to facilitate mashups.
· Never trust the client.
· Track 2, Session 1: Intro to Dojo with Alex Russell, Track 2, Session 2: Dojo in Depth with Alex Russell
· Based on panel discussions and conversations with attendees, Dojo seems to be the most mature / most powerful toolkit available.
· The latest version, .3, has a lot of cool features including lfx. lfx is a system for chaining animations to create very smooth, custom animations.
· Dojo is huge, but the build system creates small js files by only including the functionality that your code uses and also by obfuscating/shrinking the result.
· The build system also manages dependencies correctly.
· Yahoo is using Dojo heavily and has been giving a lot back.
· You can use cross site scripting to overcome the 2-download-thread-per-server limitation. Dojo will be using this technique soon to reduce the download time associated with their toolkit.
· Tons of widgets.
· Custom widgets can inherit functionality from other widgets – I don’t know how easy/hard/maintainable this is.
· Dojo’s drag and drop system knows how to set up drop targets to filter what draggable object types they allow. Dojo claims to have the best drag and drop system of all the toolkits.
· KeyNote: Ajax and Flex – Adobe
· Basically, later versions of Flash allow ActionScript better access to graphical functionality.
· Google Finance is an example of these techniques.
· Track 2, Session 3: Writing Advanced Ajax Applications with DWR with Joe Walker
· DWR has a Comet / Reverse Ajax implementation. The server can trigger events on the client. 2 ways: the client can keep a connection open to the server OR the client can poll the server for commands to execute.
· DWR is tightly integrated with Java on the server. It cannot be used without Java on the server.
· DWR provides a java API for adding scriptaculous effects to the resultant HTML pages.
· Track 2, Session 4: JSON with Douglas Crockford
· JSON parsers are available for TONS of languages.
· JSON is lighter weight than XML. The parser is less code and the data has less overhead.
· JSON is also requires an agreement between the parties involved related to the format of data types. Data types are not standardized in JSON. Data types are standardized in SOAP.
· Both JSON and XML/SOAP have pros and cons.
· JSONP is a cross-site scripting technique.
· The JSON proponents are trying to get browsers to agree to allow for cross-site JSON in a more standardized way.
· [I’ve heard that Zimbra chooses JSON over XML for their email app because of the lower overhead.]
· Keynote: Lessons and Tips from the Ajax Frontline with Scott Dietzen (founder, CTO, Zimbra)
· Zimbra’s toolkit is being adopted by the Apache foundation as their official DHTML/Ajax toolkit.
· Mashups are the future.
· Zimbra’s DHTML libraries are based on SWT conventions, so Java people should be comfortable.
· Track 2, Session 5: Google APIs
· Lots of Mashup examples. This presentation was not technical enough.
· Track 5, Session 6: Beyond Cookies: Persistent Storage for Ajax/DHTML Apps using Dojo.Storage with Brad Neuberg
· A set of functions related to storing information offline.
· There will be many storage implementations. The first is Flash. Others will include cookies, form saving, ActiveX, Firefox’s offline storage API (coming soon).
· Flash lets you store 100KB of data on the client without asking the user.
· The user is asked when you go past 100K, then again when you go past 1MB, etc.
· Flash 6 is the minimum for the Flash storage implementation. Flash 8 is required for Safari.
· Cross platform, cross browser was really hard, but it works now. Flash has a lot of gotchas in various browsers – especially Flash 6.
· Flash 6 install base is 97.1.
· Takes advantage of Dojo’s existing io library for serialization of objects.
· Some browser/Flash version combinations: storage is slow.
· DO NOT DO THIS ON YOUR OWN. USE DOJO.STORAGE. TONS OF CORNER CASES THAT ARE FIXED ALREADY IN THE LIBRARY.
· Very, very dense presentation involving the future of the LANGUAGE, not it’s integration with DOM, etc.
· A lot of what was discussed is still being decided.
· Track 3, Session 7: GreaseMonkey and Ajax with Jason Hunter
· All review, for me.
· 1 million GreaseMonkey user scripts are now available. (REALLY?)
Thoughts on the conference from other attendees can be found here.