<?xml version="1.0" encoding="UTF-8"?>
<event>
  <created-at type="datetime">2009-09-01T15:11:39+00:00</created-at>
  <creator-id type="integer" nil="true"></creator-id>
  <description>The 2009 jQuery Conference.</description>
  <end-date type="datetime">2009-09-13T00:00:00+00:00</end-date>
  <event-url>http://events.jquery.com/jquery-conference-2009/</event-url>
  <hashtag nil="true"></hashtag>
  <id type="integer">172</id>
  <location>Microsoft Cambridge</location>
  <series-id type="integer" nil="true"></series-id>
  <start-date type="datetime">2009-09-12T00:00:00+00:00</start-date>
  <title>jQuery Conference 2009</title>
  <updated-at type="datetime">2009-09-01T15:11:39+00:00</updated-at>
  <average-rating type="decimal">3.85</average-rating>
  <talks type="array">
    <talk>
      <created-at type="datetime">2009-09-01T15:11:47+00:00</created-at>
      <event-id type="integer">172</event-id>
      <id type="integer">1399</id>
      <info>The construction and build of jQuery has changed considerably over time - even within the past year has the nature of jQuery changed rather dramatically (with the release of jQuery 1.3, 1.3.1, and 1.3.2). In this talk the internal construction of jQuery is going to be discussed, looking at a number of components that have undergone recent overhauls. This talk is not for those just starting with jQuery - it's assumed that you're already a jQuery user and are, at least, basically familiar with its construction.</info>
      <location nil="true"></location>
      <series-id type="integer" nil="true"></series-id>
      <slides-url></slides-url>
      <slideshare-key nil="true"></slideshare-key>
      <talk-url></talk-url>
      <title>Recent Changes to jQuery's Internals</title>
      <updated-at type="datetime">2009-09-01T15:11:47+00:00</updated-at>
      <when type="datetime">2009-09-12T10:45:00+00:00</when>
      <average-rating type="decimal">4.67</average-rating>
    </talk>
    <talk>
      <created-at type="datetime">2009-09-01T15:14:14+00:00</created-at>
      <event-id type="integer">172</event-id>
      <id type="integer">1400</id>
      <info>The first part of a three part beginner track, this talk is for the designer/developer that is just starting out with jQuery. Perhaps you've heard of jQuery or you've used it occasionally, this talk will help you understand the core jQuery library.

We will cover:

* jQuery's History
* Introduce you to the core team
* Explain how jQuery works
* Demonstrate how to set-up jQuery
* Explore core jQuery methods and structure
* Look through a couple real-world examples</info>
      <location nil="true"></location>
      <series-id type="integer" nil="true"></series-id>
      <slides-url></slides-url>
      <slideshare-key nil="true"></slideshare-key>
      <talk-url></talk-url>
      <title>Beginning jQuery</title>
      <updated-at type="datetime">2009-09-01T15:14:14+00:00</updated-at>
      <when type="datetime">2009-09-12T10:45:00+00:00</when>
      <average-rating type="decimal">2.61</average-rating>
    </talk>
    <talk>
      <created-at type="datetime">2009-09-01T15:16:55+00:00</created-at>
      <event-id type="integer">172</event-id>
      <id type="integer">1401</id>
      <info>If you've seen the results from TaskSpeed, you know that the sexy syntactical sugar of jQuery comes with a few performance disadvantages. jQuery makes it quite easy for  you to write some pretty inefficient code, so we'll discuss how to develop in a terse style but with the best possible performance.

We'll cover:

* Why everything you've learned about the context argument is wrong.
* Optimal code architecture approaches, e.g. Module Pattern, Constructors, Object Literal
* Why your selectors in jQuery shouldn't match your ones in CSS
* Where Sizzle doesn't optimize where you'd think it would
* How to write jQuery plugins that are blazingly fast

In this session we'll also touch on how to prepare your code for a run through the YUI Compressor. Using real-world examples, we'll reduce the minified size of scripts by 50% using techniques that retain readability and maintainability.</info>
      <location></location>
      <series-id type="integer" nil="true"></series-id>
      <slides-url></slides-url>
      <slideshare-key nil="true"></slideshare-key>
      <talk-url></talk-url>
      <title>jQuery Anti-Patterns for Performance and Compression</title>
      <updated-at type="datetime">2009-09-01T15:24:35+00:00</updated-at>
      <when type="datetime">2009-09-12T12:00:00+00:00</when>
      <average-rating type="decimal">4.02</average-rating>
    </talk>
    <talk>
      <created-at type="datetime">2009-09-01T15:19:14+00:00</created-at>
      <event-id type="integer">172</event-id>
      <id type="integer">1402</id>
      <info>At a certain point the methods that jQuery provides will not be enough. It is at this point that understanding how to build a jQuery plugin correctly can allow you to leverage jQuery's selecting &amp; chaining, while at the same time giving you the freedom to extend jQuery however you see fit. In this session we will briefly touch on why jQuery plugins are needed and then spend the majority of our time actually building a plugin. The goal of the session will be to express the broad concepts central to plugin development.</info>
      <location nil="true"></location>
      <series-id type="integer" nil="true"></series-id>
      <slides-url></slides-url>
      <slideshare-key nil="true"></slideshare-key>
      <talk-url></talk-url>
      <title>Extending jQuery</title>
      <updated-at type="datetime">2009-09-01T15:19:14+00:00</updated-at>
      <when type="datetime">2009-09-12T12:00:00+00:00</when>
      <average-rating type="decimal">3.33</average-rating>
    </talk>
    <talk>
      <created-at type="datetime">2009-09-01T15:21:57+00:00</created-at>
      <event-id type="integer">172</event-id>
      <id type="integer">1403</id>
      <info>jQuery has changed the way we write and organize code by defining a sane, flexible API for the DOM. However, sometimes the &quot;find elements, do something&quot; pattern isn't what you're looking for.  This can be especially true when working with feature-rich, stateful plugins.  In this session we'll look at how jQuery UI's widget factory solves these problems by discussing some of its lesser-known features.  Come learn how to do all the things you thought you couldn't do with jQuery UI and start using the widget factory for your own plugins.</info>
      <location></location>
      <series-id type="integer" nil="true"></series-id>
      <slides-url>http://nemikor.com/presentations/jQuery-UI-Widget-Factory.pdf</slides-url>
      <slideshare-key nil="true"></slideshare-key>
      <talk-url></talk-url>
      <title>jQuery UI Widget Library</title>
      <updated-at type="datetime">2009-09-12T20:56:54+00:00</updated-at>
      <when type="datetime">2009-09-12T13:45:00+00:00</when>
      <average-rating type="decimal">3.62</average-rating>
    </talk>
    <talk>
      <created-at type="datetime">2009-09-01T15:23:58+00:00</created-at>
      <event-id type="integer">172</event-id>
      <id type="integer">1404</id>
      <info>jQuery UI is an official suite of jQuery plugins that can be used in building Rich Internet Applications. 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.

This beginner's jQuery UI session will demonstrate the major components in each jQuery UI area:

  * Interactions (draggable, droppable, resizable, selectable, sortable)
  * Widgets (accordion, datepicker, dialog, progressbar, slider, tabs)
  * Theming (jQuery UI CSS Framework - the first CSS framework built for widgets)
  * Effects (color animations, class animations, transitions, easing)</info>
      <location></location>
      <series-id type="integer" nil="true"></series-id>
      <slides-url></slides-url>
      <slideshare-key nil="true"></slideshare-key>
      <talk-url></talk-url>
      <title>Beginning jQuery UI</title>
      <updated-at type="datetime">2009-09-12T20:00:55+00:00</updated-at>
      <when type="datetime">2009-09-12T13:45:00+00:00</when>
      <average-rating type="decimal">4.75</average-rating>
    </talk>
    <talk>
      <created-at type="datetime">2009-09-01T15:27:29+00:00</created-at>
      <event-id type="integer">172</event-id>
      <id type="integer">1405</id>
      <info>Developing complex JavaScript applications is a nightmare.  Your application has to run on as many browsers as operating systems. Every additional line of code means a slower loading time for your users.  Your front-end developers are wasting time waiting for the backend developers to catch up. JavaScriptMVC is a framework that has stolen the best ideas in JavaScript development and integrated them into a single package. Your application is extremely well organized, documented, and tested. It consumes reusable services.  Development was efficient and parallelized.  You feel confident that you could edit anyone's code immediately.  Rest easy developer, you used JavaScriptMVC.

This session explores JavaScriptMVC's solutions to common large-scale JavaScript development problems such as organization, maintainability, integration, testing, documentation and dependancy management. It also discusses  technical solutions such as browser history, event delegation, templates, simulated classes, fixtures, compression and thin server architecture.

The audience will understand the pitfalls of scaling JavaScript development and know how to avoid them.</info>
      <location nil="true"></location>
      <series-id type="integer" nil="true"></series-id>
      <slides-url></slides-url>
      <slideshare-key nil="true"></slideshare-key>
      <talk-url></talk-url>
      <title>Scaling JavaScript Development with JavaScriptMVC</title>
      <updated-at type="datetime">2009-09-01T15:27:29+00:00</updated-at>
      <when type="datetime">2009-09-12T15:00:00+00:00</when>
      <average-rating type="decimal">3.08</average-rating>
    </talk>
    <talk>
      <created-at type="datetime">2009-09-01T15:29:27+00:00</created-at>
      <event-id type="integer">172</event-id>
      <id type="integer">1406</id>
      <info>This talk is aimed at beginners to intermediate users who want to know everything about events in jQuery: from simple binding and cloning to efficient event delegation. The specificities of the .live() and the .closest() functions introduced in jQuery 1.3 will be covered as well as tricks to improve performances of event delegation and to use it with the mouseover and mouseout events.

The talk can be short but is likely to be  higly visual in order to help the audience understand the key concepts such as event bubbling and the way .closest() works.</info>
      <location nil="true"></location>
      <series-id type="integer" nil="true"></series-id>
      <slides-url></slides-url>
      <slideshare-key nil="true"></slideshare-key>
      <talk-url></talk-url>
      <title>Events and Event Delegation with jQuery</title>
      <updated-at type="datetime">2009-09-01T15:29:27+00:00</updated-at>
      <when type="datetime">2009-09-12T15:00:00+00:00</when>
      <average-rating type="decimal">1.94</average-rating>
    </talk>
    <talk>
      <created-at type="datetime">2009-09-01T15:31:10+00:00</created-at>
      <event-id type="integer">172</event-id>
      <id type="integer">1407</id>
      <info>The WAI-ARIA (Web Accessibility Initiative &#8211; Accessible Rich Internet Applications) specification is almost complete, yet now is the time to start integrating the ARIA features into your websites, web applications, and widgets.  Joe&#8217;s track will introduce some basic, high-level concepts behind ARIA, what is required to &#8220;make it work&#8221;, and how to write efficient code for ARIA-enabled widgets using jQuery.  There will be plenty of code and demos throughout so bring your laptop!</info>
      <location nil="true"></location>
      <series-id type="integer" nil="true"></series-id>
      <slides-url></slides-url>
      <slideshare-key nil="true"></slideshare-key>
      <talk-url></talk-url>
      <title>Building ARIA-Enabled Widgets With jQuery</title>
      <updated-at type="datetime">2009-09-01T15:31:10+00:00</updated-at>
      <when type="datetime">2009-09-12T15:45:00+00:00</when>
      <average-rating type="decimal">4.2</average-rating>
    </talk>
    <talk>
      <created-at type="datetime">2009-09-01T15:34:03+00:00</created-at>
      <event-id type="integer">172</event-id>
      <id type="integer">1408</id>
      <info>Like any good Javascript framework would, jQuery includes Ajax functionality into its core. In particular, though, jQuery has some interesting ways it approaches event handling with Ajax responses. We&#8217;re going to dive into this Ajax event mechanism, and see what fun we can have with extending it.

This talk will first review the various Ajax events and some common ways they are used. Then, we&#8217;ll investigate jQuery source code and see how each is accomplished. Armed with this knowledge, we&#8217;ll talk about some scenarios where you might want to extend these events with extra functionality, or even add your own custom Ajax events.

To move from the theoretical into the concrete, we will discuss two jQuery Ajax plugins I released, mpAjax and flXHRproxy, and look at how each needed in its own way to hook into the Ajax event mechanism and extend it.</info>
      <location nil="true"></location>
      <series-id type="integer" nil="true"></series-id>
      <slides-url></slides-url>
      <slideshare-key nil="true"></slideshare-key>
      <talk-url></talk-url>
      <title>Extending Ajax Events for All Mankind</title>
      <updated-at type="datetime">2009-09-01T15:34:03+00:00</updated-at>
      <when type="datetime">2009-09-12T15:45:00+00:00</when>
      <average-rating type="decimal">2.61</average-rating>
    </talk>
    <talk>
      <created-at type="datetime">2009-09-01T15:37:08+00:00</created-at>
      <event-id type="integer">172</event-id>
      <id type="integer">1409</id>
      <info>One of the major advantages of jQuery UI is its ease of integration into a wide range of websites and applications. In the past year, the entire suite of jQuery UI components have fully transitioned to the jQuery UI CSS Framework, and ThemeRoller provides an intuitive, robust, and  fun interface for customizing the design of those jQuery UI components &#8211; and also custom jQuery widgets -- with unparalleled ease and flexibility.
 
This session will give an in-depth view into how theming in jQuery UI works, how to effectively use ThemeRoller to customize jQuery UI components for your application, and also how to leverage the jQuery UI CSS Framework when developing your own custom jQuery components.</info>
      <location nil="true"></location>
      <series-id type="integer" nil="true"></series-id>
      <slides-url></slides-url>
      <slideshare-key nil="true"></slideshare-key>
      <talk-url></talk-url>
      <title>The jQuery UI CSS Framework and ThemeRoller: An In-Depth Overview</title>
      <updated-at type="datetime">2009-09-01T15:37:08+00:00</updated-at>
      <when type="datetime">2009-09-12T16:30:00+00:00</when>
      <average-rating type="decimal">4.6</average-rating>
    </talk>
    <talk>
      <created-at type="datetime">2009-09-01T15:46:51+00:00</created-at>
      <event-id type="integer">172</event-id>
      <id type="integer">1410</id>
      <info>Working on a large-scale site makes you look at jQuery a bit differently, and from that less common viewing angle you gain some interesting insights. I broke them down into what jQuery does for Digg, what it doesn't do, and my main takeaways from jQuery while writing DUI:

What it does for us:

- It scales with people / makes sense to non-JS devs. In the utopian future, a firm grasp of JS will be a basic skill for developers. For now though, you have a very small number of focused JS folks bringing everyone else up to speed. The curve between being a JS liability and someone who can write production UI code with jQuery is short and sweet, and that's absolutely essential when you have dozens of devs with only 2 JS guys.

What it doesn't do:

- It doesn't organize our code for us. I wrote DUI specifically to take care of that: We're large enough to require our own highly- organized code structure, but we're not Yahoo. jQuery remains agnostic in that regard, which is a good thing.

jQuery's influence on DUI:

- Sugar is good for you. Look at how jQuery chaining works, how its methods are laid out. It isn't elegant by accident, nor will your code be. Jump through a reasonable number of hoops if you have to -- it's worth the effort to have an API that rules.</info>
      <location nil="true"></location>
      <series-id type="integer" nil="true"></series-id>
      <slides-url></slides-url>
      <slideshare-key nil="true"></slideshare-key>
      <talk-url></talk-url>
      <title>jQuery at Digg</title>
      <updated-at type="datetime">2009-09-01T15:46:51+00:00</updated-at>
      <when type="datetime">2009-09-12T16:30:00+00:00</when>
      <average-rating type="decimal">4.26</average-rating>
    </talk>
    <talk>
      <created-at type="datetime">2009-09-01T15:48:04+00:00</created-at>
      <event-id type="integer">172</event-id>
      <id type="integer">1411</id>
      <info>This talk will be a comprehensive look at what you need to know to properly test your JavaScript code. Numerous testing frameworks will be discussed and examined together with an encompassing analysis of the general families of testing techniques. If you haven't tested your JavaScript code before - or if you're looking for a better way to test your existing code - this is the talk for you.</info>
      <location nil="true"></location>
      <series-id type="integer" nil="true"></series-id>
      <slides-url></slides-url>
      <slideshare-key nil="true"></slideshare-key>
      <talk-url></talk-url>
      <title>Understanding JavaScript Testing</title>
      <updated-at type="datetime">2009-09-01T15:48:04+00:00</updated-at>
      <when type="datetime">2009-09-12T17:15:00+00:00</when>
      <average-rating type="decimal">3.88</average-rating>
    </talk>
    <talk>
      <created-at type="datetime">2009-09-01T15:50:42+00:00</created-at>
      <event-id type="integer">172</event-id>
      <id type="integer">1412</id>
      <info>Over the course of this talk, we get our hands dirty by building a simple database-driven web application from start to finish using jQuery and ASP.NET MVC. Learn how to use jQuery to implement form validation and asynchronous data access. Learn about the new features that Microsoft is adding to the ASP.NET framework and Visual Studio to make it easier to build applications using jQuery. Expect plenty of code samples!</info>
      <location nil="true"></location>
      <series-id type="integer" nil="true"></series-id>
      <slides-url></slides-url>
      <slideshare-key nil="true"></slideshare-key>
      <talk-url></talk-url>
      <title>Building a Database-Driven Web App with jQuery</title>
      <updated-at type="datetime">2009-09-01T15:50:42+00:00</updated-at>
      <when type="datetime">2009-09-12T17:15:00+00:00</when>
      <average-rating type="decimal">3.3</average-rating>
    </talk>
    <talk>
      <created-at type="datetime">2009-09-01T15:56:56+00:00</created-at>
      <event-id type="integer">172</event-id>
      <id type="integer">1413</id>
      <info>Scripts are the most painful resource to load in your page - they slow down the page more than images, stylesheets, even Flash. Why? Because when browsers start downloading a script, they stop rendering the page and downloading other resources. Even newer browsers that tout parallel script loading (IE8, Firefox 3.5, Chrome 2, Safari 4) still block rendering and downloads when loading scripts. In this talk, I'll present several techniques for avoiding these problems including splitting the initial payload, loading scripts without blocking, and coupling asynchronous scripts. This talk is only relevant for web sites that use JavaScript and want to be fast and have happy users.</info>
      <location nil="true"></location>
      <series-id type="integer" nil="true"></series-id>
      <slides-url></slides-url>
      <slideshare-key nil="true"></slideshare-key>
      <talk-url></talk-url>
      <title>Load JavaScript Faster</title>
      <updated-at type="datetime">2009-09-01T15:56:56+00:00</updated-at>
      <when type="datetime">2009-09-13T10:00:00+00:00</when>
      <average-rating type="decimal">4.39</average-rating>
    </talk>
    <talk>
      <created-at type="datetime">2009-09-01T15:58:08+00:00</created-at>
      <event-id type="integer">172</event-id>
      <id type="integer">1414</id>
      <info>We've all spent our time toiling over sIFR, coercing it to work with our .swf's, in all browsers and in other languages. But we now have Facelift and Cuf&#243;n, which put sIFR to shame in performance and implementation ease.

Meanwhile, the @font-face standard is in all the latest browsers. But a hot debate surrounds the use of 'naked' typefaces on the web. Proposals such as webOTF and EOT-Lite have been pitched, and commercial solutions such as TypeKit and Typotheque promise to solve the issue for a small fee. So if you're sick being limited to Verdana and Arial, this inevitably leads to the question:

How can I use a custom font in my god-damned webpage?!?

We've got you covered. In this talk we'll discuss:

* How to employ these various techniques to get your font working cross-browser... and performant
* A feature and performance summary of the available techniques
* How to protect the typeface data
* The state of font licensing, and how to get font foundries to let you use their work affordably
* How to communicate to clients on this issue and get them on your side
* Where the webfont debate is now and what it means to you
* What about these implementations will be a pain in the ass for the next few years</info>
      <location nil="true"></location>
      <series-id type="integer" nil="true"></series-id>
      <slides-url></slides-url>
      <slideshare-key nil="true"></slideshare-key>
      <talk-url></talk-url>
      <title>Employing custom fonts... right now!!!</title>
      <updated-at type="datetime">2009-09-01T15:58:08+00:00</updated-at>
      <when type="datetime">2009-09-13T10:00:00+00:00</when>
      <average-rating type="decimal">4.59</average-rating>
    </talk>
    <talk>
      <created-at type="datetime">2009-09-01T15:59:43+00:00</created-at>
      <event-id type="integer">172</event-id>
      <id type="integer">1415</id>
      <info>With the amount of jQuery code being written, this session takes a practical approach to best practices and patterns for refactoring existing code. The session will identify areas for performance improvements, standardizing style, utilizing hidden jQuery features, refactoring code for generic components and when to create a plugin. This session will be of particular interest to larger development teams and enterprises.</info>
      <location></location>
      <series-id type="integer" nil="true"></series-id>
      <slides-url></slides-url>
      <slideshare-key nil="true"></slideshare-key>
      <talk-url></talk-url>
      <title>jQuery Refactoring</title>
      <updated-at type="datetime">2009-09-01T19:38:56+00:00</updated-at>
      <when type="datetime">2009-09-13T11:00:00+00:00</when>
      <average-rating type="decimal">2.9</average-rating>
    </talk>
    <talk>
      <created-at type="datetime">2009-09-01T16:03:27+00:00</created-at>
      <event-id type="integer">172</event-id>
      <id type="integer">1416</id>
      <info>How do you decide when to use pure CSS, include jQuery or chose plugins? User interface expert Marc Grabanski will tune your mind to approach building new interfaces by explaining some of the logical thinking, code and patterns behind how he develops interfaces for his clients at MJG International.</info>
      <location></location>
      <series-id type="integer" nil="true"></series-id>
      <slides-url>http://www.slideshare.net/1Marc/web-interface-essentials</slides-url>
      <slideshare-key>web-interface-essentials-091120005459-phpapp01</slideshare-key>
      <talk-url>http://events.jquery.com/jquery-conference-2009/</talk-url>
      <title>Web Interface Essentials at jQuery Conference</title>
      <updated-at type="datetime">2009-11-20T07:05:36+00:00</updated-at>
      <when type="datetime">2009-09-13T11:00:00+00:00</when>
      <average-rating type="decimal">3.42</average-rating>
    </talk>
    <talk>
      <created-at type="datetime">2009-09-01T16:04:21+00:00</created-at>
      <event-id type="integer">172</event-id>
      <id type="integer">1417</id>
      <info>jQuery has the best JavaScript community around. I'm going to take you behind the scenes of jQuery and share my personal experiences in contributing to jQuery. You'll learn about the teams that help make jQuery what it is, how you can get involved, get inspired, and survive. jQuery has a large community but there is always room for one more. Get involved!</info>
      <location nil="true"></location>
      <series-id type="integer" nil="true"></series-id>
      <slides-url></slides-url>
      <slideshare-key nil="true"></slideshare-key>
      <talk-url></talk-url>
      <title>Get Involved</title>
      <updated-at type="datetime">2009-09-01T16:04:21+00:00</updated-at>
      <when type="datetime">2009-09-13T11:45:00+00:00</when>
      <average-rating type="decimal">4.01</average-rating>
    </talk>
    <talk>
      <created-at type="datetime">2009-09-01T16:05:07+00:00</created-at>
      <event-id type="integer">172</event-id>
      <id type="integer">1418</id>
      <info>jQuery is an amazing powerhouse leveling the playing field for DOM and client side applications. However, it remains a low-level toolkit, abstracting away the hard parts without enforcing any implicit structure. This leaves a lot of developers and applications yearning for some sort of clear organization to allow for code-reuse and ease of maintenance. Enter Sammy.js. (http://code.quirkey.com/sammy) Sammy is a super lightweight jQuery plugin that allows developers to easily define 'route' based applications. With little overhead and even less of a learning curve, it adds a sprinkle of structure to client side programming. Aaron Quint, Sammy's author and maintainer will take you through the what's, why's, and how's of Sammy. Sammy's sheer simplicity will make it easy to pick up, even for beginners, but has enough tricks up its sleeve for more advanced users.</info>
      <location nil="true"></location>
      <series-id type="integer" nil="true"></series-id>
      <slides-url></slides-url>
      <slideshare-key nil="true"></slideshare-key>
      <talk-url></talk-url>
      <title>Sammy.js: Simple Structure for your Sites</title>
      <updated-at type="datetime">2009-09-01T16:05:07+00:00</updated-at>
      <when type="datetime">2009-09-13T11:45:00+00:00</when>
      <average-rating type="decimal">4.1</average-rating>
    </talk>
    <talk>
      <created-at type="datetime">2009-09-01T16:06:30+00:00</created-at>
      <event-id type="integer">172</event-id>
      <id type="integer">1419</id>
      <info>In this talk, Paul Bakaus, creator of jQuery UI, will talk about the latest pillar for the jQuery UI project, the upcoming jQuery UI Labs. He'll talk about the current labs projects, how to easy it is to participate, and how a labs project becomes a full featured jQuery UI widget.</info>
      <location nil="true"></location>
      <series-id type="integer" nil="true"></series-id>
      <slides-url></slides-url>
      <slideshare-key nil="true"></slideshare-key>
      <talk-url></talk-url>
      <title>jQuery UI Labs</title>
      <updated-at type="datetime">2009-09-01T16:06:30+00:00</updated-at>
      <when type="datetime">2009-09-13T13:15:00+00:00</when>
      <average-rating type="decimal">4.06</average-rating>
    </talk>
    <talk>
      <created-at type="datetime">2009-09-01T16:07:18+00:00</created-at>
      <event-id type="integer">172</event-id>
      <id type="integer">1420</id>
      <info>As browser technology improves, bigger and more complicated applications are built with web technology.  A big part of enhancing the browser experience is accurately reproducing the state-full interactivity of a desktop application inside a state-less browser.  This talk will demonstrate various methods of enhancing an application with state preservation.  Topics will include dealing with AJAX and back button, utilizing new client-side storage engines, and synchronizing client and server side application state.  This talk will not be a simple walk through of how to use these individual techniques, but will attempt to demonstrate a way to use them together in a way that makes the user experience better. </info>
      <location nil="true"></location>
      <series-id type="integer" nil="true"></series-id>
      <slides-url></slides-url>
      <slideshare-key nil="true"></slideshare-key>
      <talk-url></talk-url>
      <title>Preserving State</title>
      <updated-at type="datetime">2009-09-01T16:07:18+00:00</updated-at>
      <when type="datetime">2009-09-13T13:15:00+00:00</when>
      <average-rating type="decimal">3.31</average-rating>
    </talk>
    <talk>
      <created-at type="datetime">2009-09-01T16:07:50+00:00</created-at>
      <event-id type="integer">172</event-id>
      <id type="integer">1421</id>
      <info>Starting off a jQuery application is a pleasure: in just a few lines of JavaScript you're off to the races. But if you don't start off on the right foot, you could end up with a large mass of unmaintainable code. This problem is not unique to jQuery or JavaScript, but it can catch even the most experienced JavaScript developers off guard.

In this talk, Yehuda will go over 10 tips for building a jQuery-based application from the ground up. In particular, he will cover what you need to do from day 1 to ensure that your code remains maintainable and modular from day 1.</info>
      <location nil="true"></location>
      <series-id type="integer" nil="true"></series-id>
      <slides-url></slides-url>
      <slideshare-key nil="true"></slideshare-key>
      <talk-url></talk-url>
      <title>Advanced jQuery Best Practices</title>
      <updated-at type="datetime">2009-09-01T16:07:50+00:00</updated-at>
      <when type="datetime">2009-09-13T14:00:00+00:00</when>
      <average-rating type="decimal">4.44</average-rating>
    </talk>
    <talk>
      <created-at type="datetime">2009-09-01T16:09:28+00:00</created-at>
      <event-id type="integer">172</event-id>
      <id type="integer">1422</id>
      <info>Accessibility is usually seen as a confusing and arcane art. This talk will demystify the techniques of JavaScript accessibility, teaching you how to make your jQuery plugins more accessible and usable by a wide range of people. Learn how to add keyboard navigation  and ARIA  to your UI so that it will work better with  assistive technologies such as  screen readers. This session will be  anchored by real-world code examples that you can use in your own projects.</info>
      <location nil="true"></location>
      <series-id type="integer" nil="true"></series-id>
      <slides-url></slides-url>
      <slideshare-key nil="true"></slideshare-key>
      <talk-url></talk-url>
      <title>Making jQuery Plugins More Accessible</title>
      <updated-at type="datetime">2009-09-01T16:09:28+00:00</updated-at>
      <when type="datetime">2009-09-13T14:00:00+00:00</when>
      <average-rating nil="true"></average-rating>
    </talk>
    <talk>
      <created-at type="datetime">2009-09-01T16:11:11+00:00</created-at>
      <event-id type="integer">172</event-id>
      <id type="integer">1423</id>
      <info>When you move beyond simple snippets of jQuery and start developing more complex user interactions and applications, your code can quickly become unwieldy and difficult to debug. This talk will show you how to start thinking about your code in terms of the bits of behavior it comprises, and will teach patterns for code organization.

We'll start by looking at jQuery code that doesn't use any organizing pattern, and point out where issues can arise when the code needs to be debugged or modified. We'll move on to look at how the object literal pattern can be used to solve these challenges by encapsulating features and centralizing configuration options. Finally, we'll  look at organizational patterns that allow for private variables and methods.</info>
      <location></location>
      <series-id type="integer" nil="true"></series-id>
      <slides-url>http://www.slideshare.net/rmurphey/using-objects-to-organize-your-jquery-code</slides-url>
      <slideshare-key nil="true"></slideshare-key>
      <talk-url>http://blog.rebeccamurphey.com/organize-your-jquery/</talk-url>
      <title>Using Objects to Organize Your Code</title>
      <updated-at type="datetime">2009-09-13T20:26:54+00:00</updated-at>
      <when type="datetime">2009-09-13T14:45:00+00:00</when>
      <average-rating type="decimal">4.17</average-rating>
    </talk>
    <talk>
      <created-at type="datetime">2009-09-01T16:12:46+00:00</created-at>
      <event-id type="integer">172</event-id>
      <id type="integer">1424</id>
      <info>Building single page applications has always seemed like a dark art. Guess what? It's not. The key is really simple--let the URL dictate everything. I'll show how to use the window location's hash in combination with jQuery's event system to drive your entire application, from link clicks to form submissions to history management and beyond.</info>
      <location nil="true"></location>
      <series-id type="integer" nil="true"></series-id>
      <slides-url></slides-url>
      <slideshare-key nil="true"></slideshare-key>
      <talk-url></talk-url>
      <title>Building Evented Single Page Applications</title>
      <updated-at type="datetime">2009-09-01T16:12:46+00:00</updated-at>
      <when type="datetime">2009-09-13T14:45:00+00:00</when>
      <average-rating type="decimal">4.61</average-rating>
    </talk>
    <talk>
      <created-at type="datetime">2009-09-01T16:14:09+00:00</created-at>
      <event-id type="integer">172</event-id>
      <id type="integer">1425</id>
      <info>Q: What do Nokia, RIM, Apple, Palm, Microsoft and Google have in common?
A: They want in your in pants.

Specifically: they want in your pocket.

These device and software companies are forming the new window to the internet: low resolution and low power devices. What does this smaller window with less Ram/CPU mean for web hackers? What devices support what subset of the web we all know and love? How do we design a good user experience for so many devices? Find out the answers to this and more as we go boldly to where few have gone before. [Queue music.]</info>
      <location nil="true"></location>
      <series-id type="integer" nil="true"></series-id>
      <slides-url></slides-url>
      <slideshare-key nil="true"></slideshare-key>
      <talk-url></talk-url>
      <title>Mobile JavaScript: The Final Frontier</title>
      <updated-at type="datetime">2009-09-01T16:14:09+00:00</updated-at>
      <when type="datetime">2009-09-13T15:30:00+00:00</when>
      <average-rating type="decimal">3.71</average-rating>
    </talk>
    <talk>
      <created-at type="datetime">2009-09-01T16:16:24+00:00</created-at>
      <event-id type="integer">172</event-id>
      <id type="integer">1426</id>
      <info>Never heard of the validation plugin before? Learn how to use it in the first part of this session. In a mini-workshop you'll see how to improve an already familiar form with client-side validation. Interested now or already working with the plugin anyway? Learn, in the second part, about the details that make the plugin fast, and scaling well with the complexity of your application. You'll see how you can customize the behaviour of the plugin to adapt it to various
requirements, as well as various approaches to refactor your custom code.</info>
      <location nil="true"></location>
      <series-id type="integer" nil="true"></series-id>
      <slides-url></slides-url>
      <slideshare-key nil="true"></slideshare-key>
      <talk-url></talk-url>
      <title>Validation Plugin</title>
      <updated-at type="datetime">2009-09-01T16:16:24+00:00</updated-at>
      <when type="datetime">2009-09-13T15:30:00+00:00</when>
      <average-rating type="decimal">3.94</average-rating>
    </talk>
    <talk>
      <created-at type="datetime">2009-09-01T16:18:38+00:00</created-at>
      <event-id type="integer">172</event-id>
      <id type="integer">1427</id>
      <info>jQuery UI is a showcase for best practices. It is a source for the most tested, proven, flexible, and well supported jQuery plugins. It is leading the way in accessible, themable widgets, built with the same principles that has made jQuery the most popular JavaScript library today. Adopted by many high-profile web sites and open source projects, jQuery UI is well positioned for continued growth, supported by a dedicated expert team, as well as an unequaled community.</info>
      <location></location>
      <series-id type="integer" nil="true"></series-id>
      <slides-url></slides-url>
      <slideshare-key nil="true"></slideshare-key>
      <talk-url></talk-url>
      <title>jQuery UI Keynote</title>
      <updated-at type="datetime">2009-09-14T18:57:16+00:00</updated-at>
      <when type="datetime">2009-09-13T16:15:00+00:00</when>
      <average-rating type="decimal">3.96</average-rating>
    </talk>
    <talk>
      <created-at type="datetime">2009-09-01T16:19:16+00:00</created-at>
      <event-id type="integer">172</event-id>
      <id type="integer">1428</id>
      <info>This keynote will provide an overview of how the jQuery project has grown over the past year and how we plan on continuing to grow over the next year - and beyond. Upcoming changes to the code base and project announcements will occur here.</info>
      <location nil="true"></location>
      <series-id type="integer" nil="true"></series-id>
      <slides-url></slides-url>
      <slideshare-key nil="true"></slideshare-key>
      <talk-url></talk-url>
      <title>jQuery Keynote</title>
      <updated-at type="datetime">2009-09-01T16:19:16+00:00</updated-at>
      <when type="datetime">2009-09-13T16:45:00+00:00</when>
      <average-rating type="decimal">4.81</average-rating>
    </talk>
    <talk>
      <created-at type="datetime">2009-09-01T16:21:01+00:00</created-at>
      <event-id type="integer">172</event-id>
      <id type="integer">1429</id>
      <info>The final session of the 2009 jQuery Conference will be a Q&amp;A with the lead developers of the jQuery project. Use this opportunity to ask all your burning questions about jQuery, jQuery UI, and the jQuery project.

Questions can be submitted ahead of time using Google Moderator.
http://moderator.appspot.com/#15/e=b1ffe&amp;t=b3b49</info>
      <location></location>
      <series-id type="integer" nil="true"></series-id>
      <slides-url></slides-url>
      <slideshare-key nil="true"></slideshare-key>
      <talk-url></talk-url>
      <title>Panel Q&amp;A</title>
      <updated-at type="datetime">2009-09-01T16:26:02+00:00</updated-at>
      <when type="datetime">2009-09-13T17:15:00+00:00</when>
      <average-rating type="decimal">4.35</average-rating>
    </talk>
  </talks>
</event>
