m

Session Descriptions

This year's agenda features a combination of Ajax tutorials, breakout sessions, expert panels, tech briefs, lightening round sessions - and NEW this year - our first ever Ajaxian Framework Summit!

To view the agenda at-a-glance, click here.

Ajax Tutorials:

Ajaxian Framework Summit:

Running concurrently with Ajax tutorials, the three most popular open source Ajax frameworks are holding half-day developer events - giving you an exclusive opportunity to dive deep into jQuery, Prototype and Dojo. Stay tuned for more details.

  • Engage with the jQuery, Prototype and Dojo communities
  • Learn the very latest in developments and advancements
  • Ask in-depth questions to those who truly know the answer
  • Network with others using the frameworks
  • Have an opportunity to influence the future of these frameworks

Keynotes:

The Ajax Universe with Ajaxian.com co-founders, Ben Galbraith and Dion Almaer

The Ajax revolution is complete: Sophisticated JavaScript user interfaces are nearly ubiquitous. Yet, the innovations in the Ajax community continue. Dion and Ben set the stage for the Ajax Experience by discussing the latest developments, including multithreaded JavaScript technology-powered UIs, robust offline storage, choosing the right Ajax/JavaScript technology framework, Ajax outside of the browser, and more.

 

Top 10 Cross Browser Issues with Peter-Paul Koch of Quirksmode.org
With representatives of all of the major Ajax frameworks on stage, Peter-Paul Koch leads a panel on the Top 10 Cross Browser Issues and how each framework addresses them. This is a unique opportunity to learn the sweet spots of each framework, straight from framework creators.

 

Ask the Experts Panel moderated by Ajaxian.com co-founders, Ben Galbraith and Dion Almaer

Panelists include Brendan Eich and Douglas Crockford. We are currently formulating the perfect panel, stay tuned!

 

40+ Breakout Sessions:


Read all Session Descriptions:

Advanced jQuery with John Resig, Creator/Lead Developer, jQuery

This session picks up where the Intro to jQuery session leaves off. Join us and look at some complex situations that are made easy with the jQuery framework.

In this session, we use jQuery and a number of jQuery plugins to create an advanced wizard. We implement complex form, navigation, and Ajax interactions, which provide the user with a seamless experience.

In this session, you will learn:

  • How jQuery plugins work;
  • How to build a jQuery plugin;
  • How to develop a complex piece of interaction using jQuery and jQuery plugins.

 

 

Advanced Web Application Security with Joe Walker, Creator, Direct Web Remoting (DWR); Director, Support & Development, SitePen

The security landscape is changing dramatically from month to month. Unless you are aware of CSRF, Anti-DNS Pinning, Javascript highjacking, and the many ways to fool an XSS filter, it's likely that your Web application is not secure. Attackers used to concentrate on ActiveX, but now Javascript, CSS and even simple HTML elements have are used against Web sites.

In this session, you will learn:

  • Security challenges particular to a Web 2.0 world;
  • How you can protect yourself, from both the point of view of site owners and users.

 

 

Ajax on Struts: Coding an Ajax Application with Struts 2 with Ted Husted, Apache Struts group; Author, Struts in Action

Ajax libraries like Yahoo User Interface (YUI) and Dojo provide great support for writing user interfaces, but a UI still needs to interact with a business logic and data access layer. Rich applications need a rich business layer.

In this session, we look at writing a new Struts 2 application from square one, using the YUI Library on the front end, and Struts 2 on the backend. YUI provides the glitz and the glamour, and Struts 2 provides the dreary business logic, input validation, and text formatting.

In this session, you will learn:

  • Basics of the Yahoo User Interface (YUI) Library;
  • Business services Struts can provide to an Ajax UI;
  • How to integrate an Ajax UI framework with a Struts 2 busines framework.

 

 

Ajax Testing Tool Review with Ted Husted, Apache Struts group; Author, Struts in Action

Not long ago, testing Ajax components meant play-testing a page by hand. Today, there are a growing number of tools we can use to simplify and automate Ajax testing.

In this session we will cover when to test, what to test and how to test Ajax components. You learn how to create automatic tests with various tools, including YUI Test, OpenQA Selenium and TIBCO Test Automation Kit, and how to use Ajax testing tools with IDEs and Continuous Integration systems.

In this session, you will learn:

  • When, where and how to test Ajax components;
  • How to create automatic tests with various tools;
  • How to use Ajax testing tools with IDEs and Continuous Integration systems.

 

 

Applied JSON: HTTP REST, Ajax Databases and Beyond with Kris Zyp, Research and Development, SitePen

JSON has proven to be a very easy to use, yet immensely powerful data interchange protocol. However, by itself JSON lacks a number of important expressibility capabilities and efficient client/server data interaction must usually be customized. This session looks at how we can use various open specifications built on JSON to standardize and automate this interaction.

We examine REST JSON, JSPON, and JSONPath. We also explore the capabilities of Ajax-accessible REST databases. The dynamic nature of non-relational databases can provide significant benefits for rapidly developing applications and providing JavaScript object persistence. Client-side code can directly participate in database interaction, simplifying the typical Web application stack. CouchDB, Persevere, and ActiveResource utilize a JSON REST interface. In this session, we learn how to interact with these simple interfaces and how to use JSONPath as a query language for JSON data stores. We see how these dynamic databases utilize JavaScript on the server for a consistent client/server JavaScript environment. We look at how Ajax databases affect security and provide an infrastructure for more secure Web applications. Finally, we cover JSON Referencing conventions as a mechanism for further expressing duplicate, circular, and cross-site referencing. Via a live demonstration, see how to use the Persevere open source tools to utilize these extensions to provide RESTful storage and server-side JavaScript.

In this session, you will learn:

  • How to query JSON data with JSONPath;
  • How to use Persevere to provide a powerful persistence object store for JavaScript;
  • How JSON with the JSPON browser interacts with the Persevere object server;
  • How with JSON extensions and tools, open communication formats can be used for rich and robust serialized object interaction between clients and servers with full object graph descriptiveness.

 

 

Beyond the Standards - Advanced Animation and Physics in JavaScript with Paul Bakaus, Creator and Lead Developer, jQuery UI

Forget about Web standards and go way beyond the usual capabilities of Web scripting languages. Learn how to create stunning effects using canvas/svg/vml, how to control animated graphics in JavaScript, and how to merge all kinds of standards and technologies to create a whole new world of possibilities. Using Paul's latest project as an example, he shows you how to create a whole physics and isometric engine in JavaScript - a whole scrollable isometric world.

Paul demonstrates how to control animated graphics in the browser, how to scale elements smoothly, and how to combine canvas with CSS to create a very dynamic kind of behavior. See how to move physics from the real world to the Web browser.

In this session, you will learn how to:

  • Create a walking animated character;
  • Create a physics engine featuring collision, gravitation and more;
  • Use the backend to help you pre-render components;
  • Create a scrolling, isometric map.

 

 

Comet Overview with Greg Wilkins, CTO, Webtide; Creator, Jetty Web container; Co-founder, Apache Geronimo; Contributor, Dojo cometd

This lightening talk on Comet provides an introduction to this technique for Ajax push asynchronous message delivery from the server to the client. The current state-of-the art is discussed with regards to available implementations and efforts to standardize transports, APIs and browser support.

 

 

Connection Patterns with Oliver Steele, Principal, Oliver Steele Consulting; Author, Functional JavaScript and more

In this session, learn design patterns for client-server connectivity and how to implement them in JavaScript. Connection patterns include multiplexing, throttling, predictive fetch, periodic refresh, server selection and fallback and error notification. Keep your apps debuggable and scalable.

In this session, you will learn how to:

  • Write applications with rich patterns of client/server interactions;
  • Keep your apps debuggable (on the client) and scalable (on the server).

 

 

Creating a Client-Side Search Engine with Gears with Brad Neuberg, Developer, Google Gears; Creator, Dojo Offline and Dojo Storage
Come see how Gears, an open source plug-in that teaches current Web browsers new tricks, can be used to create a client-side search engine plugged right into your Web page. Learn how to add this functionality to your own Web site, then dive deep into how Gears and the Dojo toolkit were combined to create this client-side search engine.

In this session, you will learn:

  • How to combine Google Gears with the Dojo toolkit to create a client-side search engine.

 

 

Defensive, Cross-Browser Coding with Prototype with Andrew Dupont, Developer, Prototype; Front-end Developer, frog design

Tired of writing code that breaks in IE? This session explores strategies that Prototype users can employ to write code that works in the real world. Prototype 1.6 is a major revision to the Prototype framework and introduces many code idioms.

The process can be broken up into several stages:

  • Diagnosing the problem. Are you using APIs that aren't supported in all browsers? Are you leaking memory or tripping over a performance pothole in IE? Find out how to spot leaks and run benchmarks on your code.
  • Solving the problem. Know how to get around memory leaks. Know where the low-hanging optimization fruit lie, and the simple changes that'll increase performance ten-fold.
  • Managing code complexity. Learn how Prototype makes it easy to tailor code to a particular browser without code-forking.
  • Preventing future problems. "Write tests" is the "eat your vegetables" maxim of JavaScript development - everyone knows they should, but few people do. Writing unit and functional tests isn't as hard as it may seem. Prototype's Test.Unit library lets you run the sort of continuous integration tests that you'll run on your server-side code.

In this session, you will learn how to:

  • Get useful information from ambiguous JavaScript errors thrown by IE;
  • Use Drip or Process Explorer to diagnose IE memory leaks;
  • Use Prototype's unit testing framework to run performance benchmarks in all browsers;
  • Decipher which parts of your code are making things slow;
  • Attack messy, complex, forking JavaScript with some basic code patterns made possible by Prototype.

 

 

Deploying and Scaling Ajax Comet Applications with Greg Wilkins, CTO, Webtide; Creator, Jetty Web container; Co-founder, Apache Geronimo; Contributor, Dojo cometd

Ajax Comet is being used as the communication technique at the core of many new and upgraded Web applications. Ajax Comet applications are moderately easy to get working in proof of concept form. However, the issues that need to be addressed include scalability of users, throughput, security, clustering, availability, load balancing and maintainability. This tutorial looks at how these issues have been addressed with Cometd Bayeux and Jetty, and provides specific insight into these tools as well as generic experience that is relevant to all Comet infrastructures. The talk covers both architectural and design concerns.

In this session, you will learn:

  • Issues faced when deploying Ajax Comet applications;
  • Architectural approaches that can be used to address them;
  • Tools and techniques that can be used to address them;
  • Real world case studies of deploying Ajax Comet.

 

 

Dojo Fundamentals with Alex Russell, Project Lead, Dojo Toolkit and Director of R&D, SitePen, Inc.

Many advanced Web applications which rely heavily on Ajax have difficulty in the development phase with squaring the mantra of progressive enhancement with the reality that CSS just isn't powerful enough. Dojo provides a middle ground which provides the strongest progressive enhancement tools available while still comprehensively addressing performance, flexibility, modularization, and reuse needs of large-scale teams.

In this session, many common application construction "gotchas" are addressed. Learn about many of the low-level tools which Dojo provides to help implement progressive enhancement, optimize scripts for deployment to ensure that pages load fast, and how to use many of Dojo's layout widgets to provide flexible solutions to hard application construction problems.

In this session, you will learn:

  • Dojo.query and progressive enhancement;
  • How to construct advanced layouts;
  • How to build custom widgets;
  • How to optimize with builds.

 

 

Dojo Grid and Charting with Alex Russell, Project Lead, Dojo Toolkit and Director of R&D, SitePen, Inc.

In this session, learn about the powerful features in Dojo for accessing data, interacting with data, and visualizing trends and patterns; all without plug-ins or commercial products. Walk away with a new set of tools for providing your users with rich interactivity and the ability to tightly control the presentation of your data. Many designers aren't yet aware of the capabilities of Dojo's Grid and Charting packages and instead use applets, flash, or server-generated images to accomplish similar tasks, solutions which don't print well (if at all) and which result in less fluid, non-degradable user experiences. Likewise, many developers don't yet understand how simple it is to access virtually any type of data source through the uniform dojo.data APIs which underly both Dojo's Charting and Grids. Walk away with familiarity with the capabilities of these systems, an understanding of how they fit together, and techniques for how to customize them to suit their needs.

In this session, you will learn:

  • Introduction to dojo.data;
  • How to set up simple grids;
  • dojo.data in-depth (optimization, lazy-loading, etc.);
  • Advanced grid layouts, locked columns, views, and compound rows;
  • Computed cell values, formatters;
  • Chart types and chart themes;
  • Scrolling, panning, viewing;
  • How to build sparklines;
  • Events, tooltips, and actions.

 

 

Enterprise JavaScript Error Handling with Nicholas Zakas, Senior Front-end Engineer, Yahoo!

A lot of focus goes into error handling and error management on the back-end, this session brings the same eye to the front-end. This session teaches you how to prepare your JavaScript code for errors. Topics include usage of wondow.onerror, try/catch, throwing your own errors, logging error messages, identifying commonly error-prone code, how to discern between fatal and non-fatal errors, and how to deal with each.

In this session, you will learn:

  • How to develop error handling strategies for JavaScript;
  • How to identify common patterns that cause errors;
  • How to determine whether an error is fatal or not;
  • How to recover from errors;
  • The importance of logging errors for tracking purposes.

 

 

Enterprise Rich Internet Application Tools: JSF, Flex, and JavaFX with Max Katz, Senior Systems Engineer, Exadel

The Web browser is not the only platform for delivering Rich Internet Applications. This session covers three different technologies and delivery platforms: JSF/RichFaces, Flex, and JavaFX.

JSF/RichFaces components allow one to easily and quickly build pure browser-based applications. Flex applications run inside a lightweight, powerful Flash player virtual machine that installs as a plug-in into any browser. Finally, JavaFX is a new open source, scripting language runs inside a familiar Java runtime environment (and soon in a lightweight consumer Java JRE). All three technologies provide different platforms for delivering next generation Web applications: the browser, Flash player, and Java virtual machine. Each should be considered by organizations. At the end of the session, we cover criteria to help decision makers identify which platform to choose.

In this session, you will learn:

  • The differences between JSF/RichFaces, Flash/Flex and JavaFX;
  • The pros and cons for each technology and delivery platform.

 

 

Even Faster Web Sites with Steve Souders, Web Performance & Open Source Initiatives, Google; Creator, YSlow

Steve's book, High Performance Web Sites, describes the 14 best practices he developed while working as the Chief Performance Yahoo!. YSlow, the Firebug extension he created, codified those best practices.

Now working at Google, Steve discusses the next set of  best practices he's discovered, including the impact of iframes and where to place (and where not to place) inline script blocks.

In this session, you will learn:

  • How to make your Web sites 25-50% faster;
  • The impact of iframes on your Web site, including blank iframes;
  • How inline scripts block rendering in the entire page and downloads;
  • What you might be doing with stylesheets that make your pages twice as slow;
  • The various techniques for dynamically loading JavaScript, and how they vary in how they affect the browser.

 

 

Experience Design & Rapid Prototyping – From Concept to Pitch with Max Zabramny, Manager, Interface Engineering, Organic, Inc.

The Web is getting richer and more interactive. We all know this. Yet, many organizations still use the same approach to Web development that they used five to ten years ago - a time when Google or Adobe AIR weren’t even part of most developers’ (or designers’ for that matter) vocabularies. Times have changed, and the new type of applications that we will build in the next five years will require engineers and designers to know more about each other’s worlds. Experience Design and Rapid Prototyping provide a way to explore solutions quickly and iteratively.

In this session, we look at the concept of Experience Design, the idea of mixing Engineering with Creative to achieve a better end product. We look at a recent pitch by Organic, Inc. for Martha Stewart and review how the team was able to get developers and designers in one room - speaking the same language - to come up with an original concept that ended up winning the work. We look at photos of the blackboard sketches and discuss the Persona-based and Scenario-based approach that the team has become famous for. Finally, we explore the methods used by the team as they dispersed into their respective disciplines to accomplish the task of putting together a working prototype in 2 weeks.

In this session, you will learn:

  • How to get across the discipline and language barriers of your peers;  
  • How to use Experience Design and Rapid Prototyping to develop creative, and useable, ideas;
  • A step-by-step approach to a successful design and development process for the whole team.

 

 

Fun UI: Lessons Learned From Building a Consumer-Oriented Media Product with Neil Mix, Senior Software Engineer, Pandora.com

How does one create an intuitive, engaging user experience in a Web browser? A question with an ever-elusive answer, this talk provides insight from the trenches of a successful project for Pandora.com, a popular Internet radio station with an engaging user interface. Explore the ins-and-outs and ups-and-downs of building the music player. See where design intersected with (and diverged from) engineering, what it took to polish the chrome, and how to structure a team to succeed in fine-tuning a user experience.

In this session, you will learn:

  • The challenges and solutions associated with creating next-generation browser-based user interfaces;
  • How to organize a team to create a successful user experience.

 

 

Highly Interactive Websites: Implementing Comet with Joe Walker, Creator, Direct Web Remoting (DWR); Director, Support & Development, SitePen

As the Web becomes more social, things change faster. And as we implement more Ajax functionality, people stay on our pages longer. Clearly there is a growing need for a way to automatically update Web pages as they are being viewed. This session goes in-depth on how to integrate Comet into your Web sites.

In this session, you will learn:

  • Your options for creating highly interactive Web sites;
  • How to add Comet functionality to a Web site with minimum pain.

 

 

How to Design Great Forms with Joshua Fraser, CTO and Co-founder, EventVue

Most people hate filling out forms. The challenge for you is to make your forms inviting and engaging enough that your users will enjoy the journey as much as the final destination.

In this session we uncover the fundamentals of designing great forms. We examine research in usability and eye-tracking that can greatly improve your form design, and discuss various trends in form design and the role of Ajax in taking your forms to the next level.

In this session, you will learn how to:

  • Learn from existing research;
  • Understand your user;
  • Reduce friction;
  • Give instant feedback;
  • Increase your completion rates;
  • Be obsessive about details and designing great forms.

 

 

Image Optimization - How Many of These 7 Mistakes Are You Making? with Stoyan Stefanov, Performance Engineer, Yahoo!

Do you want to speed up your Web pages and lower you hosting bills? Do you want to do this with little or no code changes while keeping the same beautiful UI? Come learn about 7 simple steps to put your Web images on a diet. Take off (and keep off) all the bytes you put on under the stress of chasing that next killer feature.

You start your new web site with a blank page. And it's fast! Then you start adding stuff to the page only to make it slower. Optimizing the size of the images you put on the page and send over the network sounds like a no-brainer. Yet you'd be surprised how many of the world's most visited sites and not following this simple advise and sent way over than they need to. Are you making the same mistakes?

In this session, you will learn how to:

  • Optimize the size of your images;
  • Make your pages much leaner with no code changes and no human intervention, automatically.

 

 

Interviewing for JavaScript Gurus with Gavin Doughtie, Front-end Developer, Google; Contributor, Dojo toolkit

Now that JavaScript is being used for large commercial projects, we need to grow and develop our teams without losing code quality. For companies moving existing application functionality to the Web or intranet, how do we find JavaScript expertise to get us up to speed before we've developed it ourselves?

This session presents key areas to probe for when interviewing developers with "JavaScript" on their resumes, along with concrete questions and code samples.

In this session, you will learn:

  • The power and responsibility of programming with closures;
  • The hair-raising horrors of real-world Web browsers;
  • Functional programming idioms that JavaScript programmers should actually understand;
  • How to flunk a developer in three lines of code;
  • How to spot a Java developer masquerading as a JavaScript developer.

 

 

Intro to jQuery with John Resig, Creator/Lead Developer, jQuery

jQuery is increasingly becoming one of the most popular JavaScript libraries to use. jQuery is a concise open source JavaScript Library used for DOM traversal, event handling, Ajax requests, and animations.

In this introduction, we look at what makes jQuery unique and why it helps you to write smaller code, faster. We also go hands-on (bring your laptops!) and write an animated Accordion Widget and an Ajax To-Do List from scratch.

In this session, you will learn:

  • A basic overview of jQuery;
  • How to develop a number of common-case widgets;
  • How to use jQuery to handle DOM, event, animations and Ajax interactions.

 

 

JavaScript 2 with John Resig, Creator/Lead Developer, jQuery

This session provides a comprehensive look at the current state of the JavaScript language and the move towards JavaScript 2. We will look at the features being included in JavaScript 2 and how to best use them in your applications. Attention will be paid to practical development using JavaScript 2, including the development server-side applications and an exploration of what the language is really capable of.

In this session, you will learn:

  • The current capabilities and direction of JavaScript 2;
  • How the language is used in contexts outside of cross-browser Web development;
  • How to begin using server-side JavaScript in your daily development.

 

 

JavaScript UI Programming in the Large with Gavin Doughtie, Front-end Developer, Google; Contributor, Dojo toolkit

Now that browsers are innovating again, the promise of a universally available, rich presentation runtime entices new developers into JavaScript development every day. Developers with a background in traditional UI development and client-side frameworks (Swing/Cocoa/.NET, etc.) may be unprepared for the apparent lack of control and capabilities that a JavaScript application environment provides, while Web designers may find the needs of a long-running interactive application differ significantly from the page-flow approach of more traditional Web sites.

In this session, learn how to manage the construction of browser-based user interfaces that involve multiple developers working on thousands of lines of JavaScript code.

In this session, you will learn:

  • Principles for making the browser do what you want without losing the benefits of using a browser in the first place;
  • When NOT to use Javascript;
  • How to structure code to prevent developers from getting in each others' way, without having to use a compiler;
  • Javascript optimization techniques to use when your downloadable code footprint exceeds 500K;
  • Framework support for Javascript programming in the large.

 

 

jQuery on Rails (The Real Ones) with Jonathan Sharp, Sr. Project Engineer, Union Pacific Railroad

This session looks at how Union Pacific Railroad leveraged jQuery to develop a client-side framework called Ricola 2 for building 80+ internal and customer-facing applications using a variety of backend Java frameworks, such as Wicket, Struts, JSF, ColdFusion and raw servlets. Ricola 2 has streamlined the prototype through its implementation process and increased developer productivity, regardless of the framework they were using.

Ricola 2 is utilized in over 80+ applications at Union Pacific and leverages client side DOM transformations, increasing the productivity of developers. Developers have increased productivity by being able to prototype in HTML and then implement that prototype in their server-side framework. This talk explains how to develop an enterprise solution for leveraging a diverse server-side framework portfolio and deliver a consistent experience to end users.

In this session, you will learn:

  • How to develop an enterprise solution for leveraging a diverse server-side framework portfolio;
  • How to deliver a consistent experience to end users with a client-side solution;
  • How to avoid consolidating your development environment to one framework;
  • How jQuery fits into an enterprise development environment;
  • Cross browser/cross framework development issues to consider.

 

 

JSON SAO-based Client/Server Application Development with Kris Zyp, Research and Development, SitePen

JSON is rapidly becoming the standard format for data on the Web. The modularity of service-oriented architecture is demonstrating significant value in simplifying the reuse of technology and the sharing of information. With the rising popularity of mashups, the interoperability of data sources and services will become extremely significant. By using existing and emerging formats built on JSON for defining Web services, we can rapidly build and consume Web services with high levels of modularity and reusability that can be provided by SAO and JSON in a Web environment.

Learn how to use the tools of JSON Web services, including Service Mapping Description (SMD) and JSON Schema, to quickly integrate JSON sources and develop applications using decoupled services for scalable high-performance standards-based client server applications. This session demonstrates how to create an application using Dojo by quickly plugging in dojo.data storage and dojo.rpc service components and using standard REST and JSON-RPC communication with a Persevere storage and JavaScript server. JSON-based storage and RPC services can easily be wired to client side code with SMDs, and you see how Comet capabilities can easily be included to provide real time views of data. Using open service definitions and standards-based data communication allows client and server components to easily be interchanged without client/server lock-in. We examine scalability benefits of using JSON REST services and RESTful application state management. We also look at best practices for access control and security in developing Web client/server applications.

In this session, you will learn how to:

  • Rapidly develop database/CRUD applications using open Web technology;
  • Leverage multiple technologies with standards-based communication for high levels of interoperability and flexibility in application development;
  • Build safe and scalable client server Web applications.

 

 

Making Friends with the Browser: Ajax, Back Buttons and Bookmarks with Brian Dillard, Lead, Really Simple History; RIA Evangelist, Pathfinder

Ajax breaks our fundamental expectations about how back buttons and bookmarks work. Now, however, Ajax history management has been built directly into such frameworks as Dojo, YUI and GWT, not to mention Gmail and other top Web applications. But not all Ajax bookmarking libraries are created equal. Learn how to enable bookmarks and the back button in your Ajax application using the Really Simple History library, which serializes application state in the URL #hash, and dsHistory, and allows the back button to trigger arbitrary JavaScript functions without changing the URL.

In this session, you will learn:

  • How to master built-in browser controls in Ajax applications;
  • The differences between various browser history managers;
  • The reasons why browser history managers tend to be a little brittle.

 

 

Making your jQuery Code Modular with Yehuda Katz, Plugins team leader, jQuery; Author, jQuery in Action

Get up-to-date with current best practices for developing lean, efficient and reusable code with jQuery. Almost all long-time jQuery users use the plugin architecture to build modularity into their code, so you don't need to be developing a plugin for mass-release to find this talk useful.

In this session we examine the basic hook that all plugins use and dive into the element data store, custom events, and the new setup and teardown feature for jQuery's events. Included is a demonstration where we build a full auto-complete plugin in 100 lines of code or less.

In this session, you will learn:

  • How to build modularity into your jQuery code with plugin architecture;
  • New features of jQuery 1.2.

 

 

Mootools: An Overview with Aaron Newton, Contributor, Mootools; Founder, Epitonic.com

In this session, we cover Mootools from top to bottom. We explore the basic utility methods provided by the framework, delve into the provided functionality from the straight forward (Ajax, Drag'n'Drop, etc) to the more complex (rich effects, sortables, psuedo-selectors, etc), and then move into how to extend Mootools for your own use. We examine the Class inheritance architecture and provide some real world examples of how it all works.

In this session, you will learn:

  • What makes Mootools different than other frameworks;
  • How to use Mootools as it's intended;
  • How to extend Mootools and the Javascript environment using it;
  • How to write your own Mootools plugins;
  • What Mootools has to offer and how it fits with your own sense of style.

 

 

New Features in DWR Version 3 with Joe Walker, Creator, Direct Web Remoting (DWR); Director, Support & Development, SitePen

This session looks at the new features of DWR version 3, including server proxy APIs and integration with Dojo, script.aculo.us, Pub/Sub message passing and integration with JMS and the OpenAjax Hub, image and binary file support for both upload and download, support for JSON and Bayeux and integration with Google Gears.

In this session, you will learn:

  • The new features of DWR version 3;
  • How to use DWR in any Web site.

 

 

Progressive Enhancement on the Mobile Web with Champ Bennett, Software Architect, Schematic, Inc.

The mobile Web is changing rapidly. We can now design very enhanced experiences using JavaScript and CSS on mobile devices. However, these devices cover a very small percentage of the market. Just as with desktop Web development, older browsers should never be shut out. This session explains how it's possible to build for both browsers without using problematic device detection and code forking.

In this session, learn what progressive enhancement is and how it applies to the mobile Web. Via specific examples, see how it is possible to create a progressively enhanced mobile experience for cutting-edge mobile browsers (MobileSafari, Nokia Webkit, Firefox, Opera Mini, etc) without shutting out older browsers. Included is a Nokia MOSH case study - Champ Bennett was the mobile platform lead on the project.

In this session, you will learn:

  • How the mobile Web is changing and where it is going;
  • What progressive enhancement is and how it applies to the mobile Web;
  • How to create a progressively enhanced experience for cutting-edge mobile browsers without shutting out older browsers;
  • Basics of HIJAX techniques.

 

 

Rich Interactivity, Simplified, with jQuery UI with Richard Worth, Lead Developer, JQuery UI

jQuery UI, built on top of jQuery, is a complete set of behaviors and components that can be used in building Rich Internet Applications. Behaviors and components included in jQuery UI include drag-and-drop, resizing, mouse-sorting, mouse-selecting (click-select, shift-select, ctrl-select, lasso select), dialogs, sliders, tabs, trees, grids, toolbars and menus. Each component adheres to a consistent standard across API, design, behavior and theming. This minimizes the surprise and makes learning all of them as easy as learning one. Just as with jQuery, there is a plugin system in jQuery UI that allows users to easily modify/extend existing components, as well as create your own. jQuery UI is also built with themes and supports custom themes, for consistency with existing sites/applications.

This session covers how jQuery UI is designed and how it leverages the power, flexibility, and expressiveness of the jQuery API. A live demonstration shows you how to use some of the more common jQuery UI behaviors and components to create rich interactivity.

In this session, you will learn:

  • The behaviors and components of jQuery UI that can be used to create rich internet applications;
  • How to create a rich internet application with minimal/unobtrusive code, accessibility considerations, progressive enhancement, theming, clean separation of data, behavior, presentation, and interactivity reminiscent of desktop apps;
  • The future of jQuery UI.

 

 

Saving Your Investment: Transforming J2EE Applications into Web 2.0 using GWT with Dietrich Kappe, CTO and Co-founder, Pathfinder Associates, LLC

In this session we discuss the pressures of keeping pace with Web 2.0 entrants into the marketplace. Rewriting is expensive; adding Ajax widgets can result in a complex, unmaintainable application - and both require you to hire scarce JavaScript developers.

Enter Google Web Toolkit - which allows you to write Ajax interfaces in Java and layer a desktop-like interface on top of your Web app. In this session you learn to analyze the service profile of your application, to change HTML views into XML or JSON services, and to resist opening security holes by putting state and control flow logic into the client.

In this session, you will learn how to:

  • Use GWT to layer a desktop-like interface on top of your Web app;
  • Avoid opening security holes by putting state and control flow logic into the client;
  • Leverage the GWT SDK;
  • Better leverage the resources you have;
  • Analyze the service profile of your application;
  • Change HTML views into XML or JSON.

 

 

Secure and Interoperable Mashups with Jon Ferraiolo, Web Architect, IBM; Head, OpenAjax Alliance
Mashups have the potential for revolutionizing the way Web applications are developed, but there are interoperability challenges and security risks that need to be addressed before the industry is unleashed. OpenAjax Alliance has developed an open source secure mashup framework as part of OpenAjax Hub 1.1 (leveraging a set of techniques called "SMash" that were originally developed by IBM Research and allows for secure mashups that run in today's browsers) and a companion set of widget standards (OpenAjax Metadata for Widgets).

The session introduces mashups, OpenAjax Hub 1.1, OpenAjax Metadata for Widgets, and showcases the results from the alliance’s InteropFest - where multiple leading mashup and widget vendors leveraged these technologies to achieve secure mashups and interoperability.

In this session, you will learn:

  • Why mashups, a revolutionary approach to application development, offer many promises to individuals and organizations, including improved productivity, accelerated time-to-market, greater return on IT investment, enhanced communication, new insights, and greater innovation;
  • Why interoperability and secure challenges are slowing down mashup adoption today;
  • How the industry has come together at OpenAjax Alliance to address the interoperability issues with various open source and standards initiatives, particularly the secure mashup runtime that is included in OpenAjax Hub 1.1 and the widget interoperability standard in OpenAjax Metadata;
  • The names of some of the companies and open source projects that are shipping OpenAjax mashup technologies within their products.

 

 

ShiftSpace and the Open Metaweb with David Nolen, Lead Developer, ShiftSpace and Dan Phiffer, Co-founder, ShiftSpace

In this session, we introduce the idea of the 'metaweb' and discuss ShiftSpace and the ShiftSpace API. ShiftSpace attempts to unify the growing number of metaweb applications into a cohesive platform through an Open Source API and flexible JSON-based storage Web service.

In this session you see some exciting new code from the forthcoming version 0.11 release. Version 0.11 is completely rewritten and is based on a new, object-oriented architecture that has proved far more extensible and maintainable than the 0.10 release.

Learn how to develop a truly open and social metaweb application in pure Javascript, without having to worry about:

  • Backend development;
  • Firefox XUL Add-On authoring;
  • The many metaweb security issues;
  • Finding a market from scratch;
  • Inventing the metaweb wheel all over again, running through all the problems this type of development suffers from which we (and the Greasemonkey project) have been dealing with since 2005.

In this session, you will learn:

  • The current state of Metaweb development;
  • How to use the free and open source ShiftSpace API;
  • Best practices in metaweb development;
  • How to become a part of the ShiftSpace open source team.

 

 

Shiny Things in Spinoffsland: What's Up with Prototype and script.aculo.us? with Christophe Porteneuve, CTO, Ciblo.net

In this session take a look at the latest features in both Prototype and script.aculo.us, including custom events and how to leverage them, method wrapping for AOP-style programming, sprockets, the refactorings and improvements on Ajax, scheduling and the DOM, the new effects engine, and more.

We wrap up with an overview of the community landscape for these libraries, looking at major helpful resources, prominent peripheral frameworks, and seeing what the trends look like.

In this session, you will learn:

  • How to write your scripts faster and in a cleaner, more concise, more expressive way;
  • To improve your scripts' performance by leveraging optimizations in the frameworks;  
  • To achieve cooler visual effects with the new effects engine;
  • To modularize your scripts and augment Prototype or native JavaScript in a clean way; 
  • The latest features in Prototype and script.aculo.us;
  • Where to find quality information, documentation and third-party toolkits and widgets;
  • Where Prototype and script.aculo.us are headed.

 

 

State of the Browsers with Peter-Paul Koch, Founder, QuirksMode.org

Based on the results of his extensive test suites at QuirksMode.org, Peter-Paul Koch (or 'ppk' as you may know him) discusses the current state of the four major browsers' DOM support and give tips and tricks for working around the most serious problems. He also gives vendors advice for future versions of their browsers.

 

 

Struts on Ajax: Retrofitting Struts with Ajax Taglibs with Ted Husted, Apache Struts group; Author, Struts in Action

Struts is Java's most popular Web framework. Ajax is the web's hottest user interface. What happens when we put Struts on Ajax?

Many frameworks, including Struts 2, are wrapping Ajax calls in conventional tags or components. Leveraging Ajax in an existing application can help developers enhance a user interface without a major rewrite.

In this session, Ted stirs some Ajax wizardry into a conventional Struts application, without all the sweat and bother of writing JavaScript. Struts 1 and Struts 2 both support Ajax taglibs that look and feel just like ordinary JSP tags. If it's just a little bit of Ajax that you want, these tags will get you around the learning curve in record time.

In this session, you will learn:

  • How to use the Java Web Parts taglib with Struts 1;
  • How to use the Ajax YUI plugin with Struts 2;
  • How to integrate Ajax features with Struts 1 or Struts 2;
  • Basics of the Java Web Parts taglib;
  • Basics of the Struts 2 YUI plugin.

 

 

Test Driven Development with YUI Test with Nicholas Zakas, Senior Front-end Engineer, Yahoo!

Learn how to apply the fundamental concepts of Test Driven Development (TDD) to JavaScript using YUI's unit testing framework, YUI Test. The session explores the capabilities of YUI Test in achieving good TDD practices, including the use of assertions, organizing test suites and test cases, and testing JavaScript-specific features (such as XHR and DOM events).

In this session, you will learn how to:

  • Create test cases and test suites for testing your code;
  • Test DOM events using YUI Test event simulation;
  • Split tests into a series of pages that can be run sequentially;
  • Gather the results of the tests for posting to a server;
  • Use YUI Test on projects that don't use YUI.

 

 

The 7 Habits for Exceptional Performance with Stoyan Stefanov, Performance Engineer, Yahoo!

Improvements in Web site performance are similar to improvements in energy or fuel efficiency: We make great progress, yet we end up consuming more. Learn how to balance design and features with the need for speed.

This session highlights Yahoo!'s latest research results and performance breakthroughs. Apple's iPhone has changed the game for Web browsing on mobile devices. While the iPhone presents new and exciting opportunities for Web developers, it also provides a unique set of performance challenges. Solutions that reduce the number of components improve the user experience greatly by making pages load faster.

In this session, we explore case studies that demonstrate how these solutions have accelerated the user experience on Yahoo!'s most prominent Web pages.

In this session, you will learn:

  • Performance optimizations that give you the biggest bang for your buck;
  • Latest research results and performance breakthroughs discovered at Yahoo!;
  • Apple iPhone's cache characteristics;
  • How to balance features with speed.

 

 

The Grand Convergence:  Web + RIA + Widgets + Client/Server with Richard Monson-Haefel, Author, J2EE Web Services, Enterprise Java Beans and Java Message Service

For the past ten years, application developers have been stuck with only two desktop client choices: a very thin Web-client technology implemented in HTML and CSS, or a very heavyweight thick client experience implemented using traditional client/server (C/S) technologies (e.g. Java Swing, MFC). It wasn’t until the introduction of Rich Internet Application technologies (e.g. Ajax, Adobe Flex, Curl and Silverlight) and widget engines (e.g. Yahoo! Widgets and Google Gadgets) that we were given more options.

Now, these four desktop client options are beginning to converge into a single form - the Fit Client (It's not too thick and not too thin). Each of the options that preceded the Fit Client have their own benefits and are well suited for specific scenarios - the Fit Client represents the best of all these technologies. This session examines the strengths of the Fit Client and the shift in industry focus to a platform that provides the best of thin and thick client technologies.

This session covers the evolution of Web, desktop widgets, RIA and client/server technology and the emergence of the new Fit Client – which leverages the best qualities of all of these technologies. We also cover the pros and cons of using the Fit Client platforms currently available - Adobe AIR, Google Gears, Mozilla Prism, and Curl.

In this session, you will learn:

  • To recognize situations in which a Fit Client platform makes sense;
  • Which Fit Client architecture to use for specific situations;
  • To understand the market dynamics driving the evolution of the Fit Client;
  • Strengths and weakness of RIA, Web, Widgets and Client/Server technologies;
  • Strengths and weakness of Fit Clients, including specifics on Adobe AIR and Google Gears.

 

 

Tutorial: JavaScript Library Overview with John Resig, Creator/Lead Developer, jQuery

JavaScript Libraries are the de-facto way of developing client-side JavaScript code. Learning which frameworks best suit your needs will drastically affect your development.

This tutorial is a whirlwind tour of all the modern, open source, JavaScript frameworks. Libraries examined include Prototype, Dojo, jQuery, and Yahoo UI. We examine everything from features, to coding style, to file size, to community and growth; helping you to make an informed decision about your framework choice.

In this session, you will learn:

  • The feature set of Prototype, Dojo, jQuery and Yahoo UI;
  • The main differentiating features of each library;
  • How to make an informed decision concerning a JavaScript library.

 

 

Tutorial: Intro to Ajax with Ben Galbraith, Co-founder, Ajaxian.com and Dion Almaer, Co-founder, Ajaxian.com

This tutorial provides a proper introduction to Ajax and Ajax fundamentals - perfect for those who are new to Ajax or would like to brush up on their skills. Ben and Dion demonstrate basic Ajax techniques through live coding, and demonstrate and deconstruct more advanced examples of Ajax, including a discussion of how Ajax can improve any type of Web application.

This tutorial also discusses how to avoid turning an Ajax application into an unmaintainable pile of hacked-up JavaScript, with a focus on debugging techniques.

 

 

Tutorial: Practical Design for Ajax Development with David Verba, Technology Advisor, Adaptive Path

Ajax, new application frameworks, and more iterative development processes mean that many developers find themselves working more closely with designers or even being charged with design themselves. You know a great user experience is key, but how can make sure your project is a success?

In this tutorial, we start with a broader definition of design and discuss its importance. Using a framework to structure the conversation, we survey the various aspects of design and how they play out, for better or worse, in your product. Topics we cover include visual design, interaction design, information architecture and user research. We also specifically address design issues that Ajax and Rich Internet Applications introduce and how to address them. 

Whether you need to work with a designer or do the work yourself, you leave this session with resources, ideas, and examples you can apply immediately. Learn how to use Ajax to enhance, rather than degrade, the user experience with your Web application.

 

 

Using Milescript To Build JavaScript Applications with Joshua Harrison, Co-founder, Point5u, LLC

Milescript addresses the growing trend of layering object-oriented frameworks on top of JavaScript to ease development of complex applications. As the size and complexity of these applications grow, they become more difficult to maintain. To address some of these challenges, Milescript provides static type-checking, auto-generated documentation, unit-testing and a standardized method for building and linking libraries of precompiled code and applications.

The session covers the basics of Milescript and how it can be useful for developing complex JavaScript applications. We start by describing Milescript's mission of creating a language, which stays as similar to JavaScript syntax as possible, while layering on a typical statically-typed object oriented framework. Included is an in-depth discussion of Milescript's ability to interact with existing and ongoing JavaScript development via its 'external' and 'export' class features. This ability to easily interact with existing JavaScript is an important part of Milescript's utility, as it allows you great freedom to decide precisely which portions of the problem domain are best implemented in JavaScript itself, and which portions will benefit from more rigorous type-checking.

In this session, you will learn:

  • What Milescript is;
  • How it can be useful for large and/or complex JavaScript development efforts;
  • How to use externals and exports to integrate with a JavaScript application;
  • The differences between Milescript and other frameworks that offer statically-typed OO layers on top of JavaScript.

 

 

UX Design for Ajax Applications with Glen Lipka, Director, UX and Product Development, Marketo

Design is the most contentious issue in most technology projects. Everyone has an opinion.  Without some help figuring out how to talk to each other, we will continue to be annoyed as users and as developers. 

In this session, we discuss the process of designing the user experience of a complex Web application using Ajax (By design, we are talking about the Steve Jobs definition: "Design is not just what it looks like and feels like. Design is how it works.")

 

Topics include:

Process and Philosophy

1. Design decision making. How do I design with a room full of opinions? Agile or detailed plan? Brainstorming and final decision making.
2. Design philosophy. Who are your influences? Learn to eat your own young and never fall in love with your own ideas.  How to think about design.

Design Details

1. Save or Autosave.  How to manage the communication of state and draft modes.
2. Right-clicking, drag and dropping, resizing, and other undiscoverable UI stuff. Are they fair game?
3. Controlled wizards or free form organic building? How do you structure your user experience?
4. Consistency and quality versus expediency. How to balance the magic triangle.

A real world Ajax application will be used to demonstrate these principles in action.


In this session, you will learn:

  • How to resolve design conflicts with a myriad of types (designers, developers, bosses);
  • How to increase task completion, user satisfaction and loyalty;
  • How to create a competitive advantage purely through UX design;
  • How to approach and implement a great user experience in Ajax.

 

 

YUI for Control Freaks with Christian Heilmann, Web Architect, Yahoo!

The hidden quality of the YUI library is the ability to control and test what you are doing at any point in the process. This session breaks down the internal events of YUI, how to control animations, and what you need to know about the browser instance you apply your code to. With the classic "Web site" dying out more and more, we need to make sure our scripts and widgets are as open as possible to outside applications. This talk shows you how YUI is built to allow for integration with other scripts.

In this session, you will learn:

  • Custom events are a great idea;
  • Animation goes hand-in-hand with moderation;
  • The user owns the interface;
  • Components-on-demand is a good plan.