The AJAX Experience, Day 3

Today was a much different day than those prior. I ended up doing a lot more talking about things than attending presentations.

Today started with Brian Dillard‘s presentation called Making Friends with the Browser which covered the reasons for the need of JavaScript history managers and what the current state of the art is. Being my point of expertise, being friends with Brian, and having written a history manager myself, I was obviously interested. Brian did a wonderful job covering the basics and discussing the reasons as to why this need exists. He then gave an example of how it all works in RSH (Really Simple History) and also a brief discussion of dsHistory and JSSM (JavaScript State Manager). At the end of the presentation he started discussing where we go from here. The most important thing to take away from that is that he and I will be working together to create a unified history management library to simply solve the problem once and for all. What that means is that by the time JSSM and RSH reach 1.0, they will be the same library. That decision came out of conversations I’ve had with Brian before his presentation and we think it is the correct direction to move in. In an environment where there is a proliferation of everything—JavaScript frameworks, licenses, and even specification bodies—we cannot afford to divide the market more. Our main goal is to reduce the amount of work for everybody involved and create a solid library that “just works” in all setups and provides a unified API across all browsers.

After the presentation Brad Neuberg (of Google, the originator of RSH), Brian, and I had a meeting to discuss how we move forward with this. Having Brad involved again (even temporarily) will provide an incredible amount of resources because of his relationships and we’re incredibly excited about that. Over the next few weeks the three of us are going to closely review the HTML5 history specification and make sure that it will be able to meet the needs of developers as well as be safe for users.

After this presentation I went to Brad’s presentation, “Creating a Client Side search Engine With Gears” to see some of this mechanisms that Gears provides and how they can affect my development today. It is incredibly exciting and I can’t wait to play more with it.

Over lunch I had a chance meeting with Dylan Schiemann of SitePen and the Dojo Toolkit over lunch and had a conversation with him about foam, of all things. That was what his graduate school research was into, the curious properties of foam. We eventually got to discussing a few things about code, but it was fun to get to know him. Of course, after this point, he and I ended up talking a few more times just due to coincidental same place same time type of things. He is a lot of fun to talk to and it was great to get a chance to hear stories of the web from somebody who has been around this world for a number of years. He did also kind of give me permission to put on up an XSS attack triggered by the Konami Code that will change the text of the site. If I get bored one day, I might try. Besides, it’d be fun to switch all of their syntax to be something ridiculous a la Classy Query.

Next on the list was a session with Douglas Crockford titled “JavaScript: The Good Parts” after his recently released book. Most of the content of the talk was review, but he brought up some very good topics in regards to code formatting and security. He is a very smart and talented man, but he still isn’t fixing the two line Opera bug in json2.js which necessitates me to release a patched version. Oh well.

Anne Van Kesteren had a discussion of HTML5 and the new elements and how they will work. He covered in detail some of the multimedia interface, but didn’t really cover the one I’m most interested in: history. I’ll probably be getting in touch with him to see what Opera is doing with that. I sat beside Bri Lance who I’d gone to dinner with the night before, she has her detailed takeaway comments from this discussion here.

That was the last of my sessions. For dinner I disappeared with the entire jQuery team (it seems) to Midwest Grill. It turns out this was actually all the way across town and a bit of a hike, but it was a blast. There was an amusing argument about accessibility, progressive enhancements, and degradation sparked by Cody Lindley which I missed the beginning of and may have taken a different tack during the conversation had I caught the original question. It was fun to have a nerdy argument though, I won’t lie—I don’t get that nearly enough. John Resig picked up the tab for the entire meal and so I’m grateful for that.

After we got back I ended up showing Cody how JSSM works and showed off a little bit of Lord Peacock as a counterpoint to the discussion we were having. This is about the point where I realized that I might agree with Cody more than I was set up to during the conversation at dinner. It is also when it started becoming apparent that everyone who has seen the syntax and use cases for JSSM really likes how simple it is and what it can accomplish for you so easily. I hope this becomes widely adopted because it really would make my life so much more pleasant on the web—no longer having to wonder if the back button is going to work as a I expect.

I had a chance to chat with Kris Zyp, also of SitePen, who is their full time JavaScript R&D person. His job description sounds awesome and he is doing some great work with window.name hacks that might be able to be turned into a shim for postMessage. I’ll be talking about that more later once I get a chance to look into it. I’m also really excited about some of the work he is doing with Persevere and think that it is a very unique approach to REST.

After that we all pretty much called it a night and went our own ways. Another wonderful day at the AJAX Experience.