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.
General
· 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.
Sessions
· 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 are built by writing an html template, some css and overriding javascript hooks, if necessary. Looks pretty simple.
· 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.
· Also, the JavaScript-to-ActionScript bridge is working better in later versions of Flash.
· Some cool samples of using JavaScript on the page to create animated graphical effects in an embedded Flash component.
· 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.
· Java to JavaScript conversion of complicated objects is fairly automatic. To a point.
· Some applications will not need any hand-written Javascript. Widgets can be set up by writing Java code and the corresponding JavaScript glue is plugged in by DWR.
· DWR provides a java API for adding scriptaculous effects to the resultant HTML pages.
· Track 2, Session 4: JSON with Douglas Crockford
· JSON is a subset of the JavaScript language intended to express complex data for transport between two computers.
· 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.
· All of Yahoo’s APIs are exposed using JSONP. Basically, your DHTML code adds a script tag to the dom with a URL at Yahoo that includes a query string parameter telling Yahoo the Javascript variable name it should use for the data. The result is then accessible to your Javascript without requiring a signing dialog, etc.
· 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.
· Keynote: Brendan Eich, the creator of Javascript
· 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.
· The most important issue with the future of Javascript is memory management and he discussed some things that will help.
· Track 3, Session 7: GreaseMonkey and Ajax with Jason Hunter
· All review, for me.
· GreaseMonkey is a Firefox extension that lets you run Javascript on pages after they have been loaded by the browser, but before the onload event fires.
· 1 million GreaseMonkey user scripts are now available. (REALLY?)
Thoughts on the conference from other attendees can be found here.
Hi, great writeup of presentations. I gave the talk on dojo.storage and just wanted to add one thing; storage is actually fast on all the platforms targeted (Safari, Firefox, and IE). The underlying Flash bridge is slow, but we found workarounds to make the performance great for everyone when saving hundreds of K of data.
Best,
Brad