JQCON 2012

Images compliments of "Cowboy" Ben Alman at benalman.com

jQuery is back on the West Coast, and we can't wait to have you join us in the heart of San Francisco for what promises to be the most edifying, intimate, and delicious jQuery Conference to date!

Training


Ben Alman

Rebecca Murphey

At Bocoup’s intermediate one-day jQuery training, you’ll work with jQuery veterans to build a foundation that will make you a stronger developer and get you prepared for all the great talks that you’ll see over the next two days. You’ll even learn the basics of creating your own jQuery plugin. Topics that will be covered include:

June 27, 2012 - 10am to 5pm
Microsoft Offices, 835 Market St., San Francisco

Training Details

Bocoup is a leading open web development company focused on researching and implementing next-generation browser technologies. The Bocoup team has contributed to the jQuery project on several infrastructure projects and is responsible for creating and maintaining numerous open source JavaScript and jQuery plugins.

Attendees should bring a laptop with WiFi and a power cord, ready with a code editor and and browser. We strongly recommend the Google Chrome browser, although the latest Firefox (with the Firebug extension installed) will work in a pinch.

We also recommend one of the following text editors for Mac: TextMate, MacVim, Coda, Sublime Text 2; or Windows: E TextEditor, Notepad++, UltraEdit, but the most important thing is that attendees use a text editor they're comfortable with.

Lodging

Since our event isn't hosted at a hotel's conference center this year, there is no specific hotel (or hotel with special conference rates) to stay at. We recommend staying in the Union Square / Downtown area because it's easy to take MUNI to the conference from any of the Market Street subway stations. Here are some options in that area:

View Sponsors DetailsSponsors

Diamond Sponsors

Platinum Sponsors

Gold Sponsors

Silver Sponsors

Interested in being one of the amazing sponsors that make this conference happen? Check out the details and contact our Events Team.

Location

Mission Bay Conference Center at UCSF

1675 Owens Street San Francisco, CA 94143-3008


Schedule

Toggle Talk Abstracts

Day One - June 28

8:30 - 9:30

Registration

9:30 - 9:35

Welcome and Introduction

9:35 - 10:50

State of jQuery

Dave Methvin, Scott González, and Todd Parker

Learn about the progress on jQuery Core, jQuery UI and jQuery Mobile

10:50 - 11:00

Break

11:00 - 11:35

Exterminating Common jQuery Bugs

Elijah Manor

jQuery is so easy to use and thankfully abstracts many of the cross-browser concerns we used to labor over years ago. As with any library, however, there are a common set of bugs that tend to crop up as you start and continue to use it more and more. This session aims to help equip developers with the appropriate knowledge and tools to exterminate a subset of these common issues.

For each topic that is covered we will start with an example piece of code that contains a jQuery bug, then expose what the bug is, explain why it is happening, proceed to explore various techniques to exterminate the bug, and in some cases provide extra insight surrounding the problem.

These solutions range from simple to advanced concepts. By exterminating bugs in multiple ways it will help expose some of the newer and more advanced features of jQuery that aren't as widely known.

Some of the bugs that we will address involve dealing with synchronous and asynchronous code, uncovering some possibly confusing aspects of the $.each() method, uncovering why some animations have a mind of their own, explaining the difference between bind(), live(), delegate(), and live(), explaining why and how you might have killed event delegation, explaining the difference between commonly confused jQuery methods, problems when reusing a method as an event handler, and more.

11:45 - 12:20

I .promise() to show you .when() to use Deferreds

Alex McPherson

Deferreds are a relatively new addition to jQuery, but what can they be used for beyond ajax resolutions and chaining? This talk shows 7 interesting and useful ways to make safe asynchronous JavaScript apps leveraging that mysterious object, Deferred.

12:20 - 1:30

Lunch

1:30 - 2:05

Beyond the DOM: Sane Structure for JS Apps

Rebecca Murphey

In the bad old days of JavaScript, our days were spent fighting through a thicket of DOM differences. These days, we've pretty much conquered those challenges thanks to tools such as jQuery, but our new challenge is figuring out how to adapt as more and more of our application logic moves from the server to the client. We have great tools like Backbone, Ember, Knockout, and more, but in order to use them effectively, we need to do more than learn their APIs -- we need to learn to think about our code beyond the DOM-centric ways of the past. In this talk, I'll look at useful patterns for thinking about client-side appplication development that will help you avoid creating a tangled mess of code.

2:15-2:50

Going Deeper with jQuery Mobile

Andy Matthews

Building a jQuery Mobile application is easy, but making it stand out from the pack takes work. This session will take an in-depth look at the inner workings of jQuery Mobile and show you how to get started with creating custom theming, custom icons, and even custom plugins.

3:00 - 3:35

Creating a Dynamic Mobile Application using jQuery Mobile

Pat McLoughlin

An overview of how to build a dynamic mobile application using the rendering features of jQuery Mobile. An end to end analysis of how to receive form meta data from a web service called through the jQuery ajax api. Store that data on the client in order to render it both in an online and offline manner. Render forms by adding controls to the jQuery Mobile container and then enhancing the forms. Finally saving information from the dynamic forms via a web service. Presentation will be from the standpoint of a programmer and will get in depth with JavaScript, jQuery Mobile and HTML5.

3:35 - 4:00

Break

4:00 - 4:35

HTML5 Game Dev on the iPad

Daniel Cohen

Our team has learned great lessons while developing Fashion Tale, a hidden object game entirely in HTML5. The process taught us several tricks, pitfalls, and successful workarounds. This talk covers using hardware accelerated graphics, responding effectively to touch events and gestures, and creating actionable feeds and message centers using jQuery.data().

4:45 - 5:20

The UX of Language

Alex Sexton

There are 1 thing(s) that you have probably noticed about l10n and I18n in your JavaScript App(s). The sentences, even in english, are as ridiculous as the first one in this paragraph. Sure, you may be used to it, but it's a crappy user experience. There's lots you can do to make your data driven sentences valid, even expressive, in your language, and then expand that to any language. This talk will round up a set of tools and techniques to help prepare you to write apps that don't sound like Borat.

5:30 - 6:00

New Perspectives on Performance

Menno van Slooten

Performance. A word programmers use so often it's almost a buzzword. But in our world of web apps written in HTML, CSS and JavaScript it can mean many different, sometimes contradictory things.

In this presentation I will talk about the most common targets of web app performance, the techniques used to optimize them and how they influence each other. Additionally, I will discuss several performance targets that are mostly overlooked even though they arguably matter most.

6:00 - 10:00

jQuery Hack Night

Sponsored by Sharethrough

Contribute to the jQuery Project like you never have before. Food and drinks, swag and prizes.

Day Two - June 29

9:00 - 9:05

Hello, Again!

9:05 - 9:40

jQuery Foundation Keynote

Richard D. Worth

An overview of the changes to the organization of the jQuery Project.

9:40 - 10:05

What's jQuery Doing on Standards?

Yehuda Katz

A few months ago, the jQuery Foundation announced its participation in the W3C and ECMA standards bodies. Why did we do this, and how are we doing?

In this talk, Yehuda will give a rough overview of the standardization process, some examples of ways that web developers have helped the process, and talk about how the jQuery project is making a difference.

10:05 - 10:15

Break

10:15 - 10:50

Pitfalls and Opportunities of Single Page Applications

Jörn Zaefferer

The thick client is back! Pushing entire applications down to the client has become a lot more popular in recent times, and is especially interesting for mobile devices.

Building a really solid and polished single-page applications means that we need to replicate a lot of native browser behavior, and when we don’t we’ll annoy or even scare away our users. This talk will cover both pitfalls and opportunities of single-page applications, with a focus on native behavior that your app needs to provide in order to behave like an actual web site, while fixing a lot of the usability issues that web sites usually have.

Topics covered include dealing with proper URLs without breaking back and forward buttons and using the (still somewhat new) HTML5 history.pushState API. We’ll look at existing (and still missing) frameworks that help implement these behaviors.

11:00 - 11:35

Contextual jQuery 3: Just In Time & User Actions

Doug Neiner

Once you break the habit of initializing everything on DOM ready, you need to be able to predict what users are about to do next so you can ensure it is setup and ready to go. This session dives into a techniques for setting up portions of your page right as (or right before) a user interacts with it. The techniques learned in this session can leveraged to speed up page load, reduce bandwidth and speed up the overall user experience of your website or web application. Though this is the third session in the Contextual jQuery series of talks, you do not need to have seen the previous talks to understand and start using this material.

11:35 - 12:20

Confessions of a jQuery Committer

Corey Frang, Kris Borchers, Adam Sontag, and Rick Waldron

The process of getting involved with jQuery, or indeed, any open source project, is unique for every contributor. Listen to how a group a number of jQuery team members came to be involved with the project, and learn how you can find your own niche and give back to the community.

12:20 - 1:30

Lunch

1:30 - 2:05

Grow Up With Grunt

Ben Alman

During this talk, Ben Alman will demonstrate how you can use grunt, the task-based JavaScript build tool, to improve your development process through automation. Maybe you want to more easily employ popular, best-practice approaches to JavaScript and jQuery development like linting your code, writing and running unit tests, and concatenating or minifying files, but haven't quite figured out how to incorporate them into your application. Perhaps you just want to write a jQuery plugin, and don't want to spend a lot of time setting up project scaffolding. Either way, by the end of this talk, you'll have a much better grasp on what this tool can help you do!

2:15 - 2:50

Extensible jQuery Plugin Development

Shane Riley

Have you ever had to exclude an element from a collection so you could run a plugin method with two different sets of arguments? Have you ever had to modify someone else's (or maybe your own) plugin for a specific use case and felt dirty for doing so? When dealing with plugins, do you frequently think to yourself there's got to be a better way to develop plugins? You're not alone. Shane Riley, the front-end development lead at Hashrocket, is tired of modifying plugins to suit a particular need and fearing the modified plugin will be overwritten by future Shane when he realizes there is a new version out. To that end, he set out to change the way he, and hopefully others, develop plugins to eliminate this worry and hassle and returned with a solution that's not only super-extensible at the plugin level, it's also completely customizable at the element level once the plugin has been initialized. Intended for those who have experience writing and/or modifying plugins, Shane will walk through the process he now uses in his own plugin development to ensure that if the plugin doesn't exactly suit your use case, you can make it easily and without having to change the core code of the plugin.

3:00 - 3:35

Plugin Unit Testing - Get around the event loop

John K. Paul

For many front end developers, including me, a jQuery plugin was their first repository on GitHub. Reading that code again, I found many bugs and I am very grateful that no one ever used it in production. At the time, I was completely confident about my code working as I intended it to, but I never stopped to think twice about why I felt that way. Since then, the most significant tool that I have picked up is unit testing and the biggest hindrance in learning how to unit test has consistently been the event loop. For example, how do I ensure that particular code paths are followed when an element is clicked, double clicked, or if the window has scrolled into a particular state.

Most unit testing examples focus on very straightforward imperative tests. I have seen many explanations of JavaScript unit testing that describe how to verify the logic behind a calculator or a form validation library, but not how to test a more complex, event-triggered interaction. In this talk, I will address how to begin unit testing jQuery plugins, and how to avoid common pitfalls when dealing with asynchronous, or event handling code. Most importantly, I will explain how to deal with verifying that code is executed when native browser events fire.

3:35 - 4:00

Break

4:00 - 4:35

Frame Juggling: Building a Live Preview

Daryl Koopersmith

Interacting with iframes is a JavaScript rite of passage. There will be hurdles: the Same Origin Policy, postMessage, and browser history will each rear their ugly heads. Fear not, for others have tread this path.

Learn the techniques and challenges required to create a live preview interface and how WordPress used jQuery's utilities to create a lightweight data-binding library to synchronize data and UI across multiple frames. Then, pull the whole experience together with seamless full page refreshes and an extensible API.

4:45 - 5:20

Faster jQuery With Category Theory

John Bender

Math: It's certainly not something you expect to see at a conference about JavaScript, but even this far from its ivory towers it has an important role to play. Together we'll build two categories, see how satisfying the Functor laws shines light on a simple optimization for our jQuery method chains, and derive a plugin/method standard that will allow us to easily use this optimization in our applications.

Don't worry, you don't need to know any Math to understand and enjoy the talk, just some curiosity and a desire to make your jQuery based JavaScript faster!

5:30 - 6:00

Flying Satellites from a Browser

James Long

Spacecraft Operators require extremely reliable, accurate, and real time software to optimize the efficiency of spacecraft operations and to ensure proper commands are issued to take pictures of the Earth. Any loss of contact or data misreading due to software error can be mission ending.

Come learn how our team developed a lightweight JavaScript real-time event-driven platform utilizing WebSockets and proven open source technology such as jQuery to enable a cross platform mission operations center. Prototypes and testing tools were created to verify the data stability and limits of several different real time technologies, from Comet to WebSockets, while constant performance testing was done to keep the memory footprint low in the browser while maintaining high data volume. This platform has supported day in the life testing of SkySat-1, our first imaging satellite.


Speakers

Dave Methvin

Dave Methvin is President of the jQuery Foundation and the team leader for jQuery Core. He also provides independent consulting focused on client-side web technologies and web site performance. Past positions include Chief Technology Officer at PC Pitstop, Executive Editor at Windows Magazine, and more than two decades of experience as a freelance technology writer. Unlike the former CEO of Yahoo, Dave can prove that he has Computer Science degrees--a Master's and Bachelor's from the University of Virginia.

Scott González

Scott González is a web application developer living in Raleigh, North Carolina. He has been contributing to jQuery since 2007 and is currently a development lead for jQuery UI, jQuery’s official user interface library. Scott also writes tutorials about jQuery and jQuery UI on nemikor.com and is a co-author of the ‘jQuery Cookbook’ from O’Reilly.

Elijah Manor

Elijah Manor is a Christian and a family man. He develops at appendTo as the Director of Training and a Senior Architect providing corporate jQuery support, training, and consulting. He is a Microsoft Regional Director, ASP.NET MVP, and ASPInsider specializing in front-end development. He enjoys blogging at http://elijahmanor.com and tweeting (@elijahmanor) about the things he learns.

Rebecca Murphey

Rebecca is a Senior JavaScript Engineer at Bocoup in Boston, the a co-host of the yayQuery podcast, a co-organizer of TXJS, a contributor to the jQuery Cookbook from O’Reilly, and the author of the open-source jQuery Fundamentals training material. She has spoken on emerging JavaScript topics at numerous conferences conferences, and is considered a thought leader in large-scale JavaScript application development. She lives in Durham, North Carolina, with her partner, their dog Ellie, and two terrible cats.

Pat McLoughlin

Pat McLoughlin is a technical architect working for CityTech, Inc out of Chicago. Recently he has been working on enterprise level distributed mobile applications for both phones and tablets. Pat has extensive experience working with JQTouch, jQueryMobile and Sencha Touch as a means to creating cross platform mobile websites and mobile applications via PhoneGap.

Alex Sexton

Alex Sexton is a Labs Engineer at Bazaarvoice in Austin, TX. He is a developer on the Modernizr Team and a member of the jQuery Content Team. He spends his time building and writing about large JavaScript applications. He recently wrote Jed and MessageFormat.js in order to help in the JS i18n world. He tweets as @SlexAxton and blogs at http://alexsexton.com.

Richard D. Worth

Richard D. Worth is executive director of the jQuery Foundation and the jQuery UI project manager. He lives in the Washington, D.C. area and works for Bocoup, training mobile and web developers in JavaScript, jQuery, and jQuery UI.

Jörn Zaefferer

Jörn is a freelance web developer, consultant and trainer, residing in Cologne, Germany. Jörn evolved jQuery’s testsuite into QUnit, a JavaScript unit testing framework, and maintains it. He created and maintains a number of popular plugins. As a jQuery UI development lead, he focuses on the development of new plugins, widgets and utilities.

Corey Frang

Corey is the President of Momentum Workshop, Inc. and is active in jQuery community on IRC, and Stack Overflow. He is currently working on the effects and animations for jQuery UI, and the jQuery.Color plugin and hopes that his work will "effect" your websites positively.

Adam J. Sontag

Adam J. Sontag is a New York City-based frontend developer at Boston's Bocoup and the Developer Relations Lead for the jQuery Foundation.

Ben Alman

Ben Alman currently works at Bocoup, where he is responsible for the development of intermediate and advanced JavaScript and jQuery training curricula, as well as the creation and maintenance of JavaScript-based tools and utilities. In addition to his training and client work at Bocoup, Ben writes articles and gives presentations advocating JavaScript and jQuery best practices.

Ben has created and maintains a number of very popular open source JavaScript projects and jQuery plugins and is a frequent contributor to the open source jQuery, jQuery Mobile and Modernizr projects. As an avid photographer and funk bass player, Ben loves spending time taking photos and jamming in the greater Boston area.

John K. Paul

John K. Paul is the VP of development at 76Hudson.com and former lead front end software engineer at TheLadders.com. He is a contributor to numerous open source projects including learn.jquery.com, jquery-mockjax, jquery-console, and scriptular.com. He has spoken at various events and companies around NYC about front end development, and scalable engineering practices, in particular, unit testing JavaScript.

John Bender

John Bender is the co-creator of Vagrant, a jQuery Mobile contributor, and a recovering polygot. During the day he works full-time on jQuery Mobile at Adobe but otherwise spends his time hacking on open source and reading. John shares his thoughts at johnbender.us and as @johnbender on Twitter.

Timmy Willison

Timmy started as a Front-End Engineer at Medium building websites for clients such as Kraft Foods, Premiere Global, Yanmar, EPB, and more. He currently works for a start-up in Chattanooga building iOS and web applications. He is a Core Team member for the jQuery project and is responsible for the rewrite of the Sizzle selector engine in jQuery 1.8, as well as the Attributes module in 1.7.

Todd Parker

Todd, a principal at Filament Group Inc., is a jQuery board member, project and design lead for the jQuery Mobile team, and design lead for jQuery UI. He is involved with the design of the ThemeRoller application and CSS class frameworks. Todd is co-author of the Peachpit book "Designing With Progressive Enhancement", contributor to the O'Reilly "jQuery Cookbook" and frequent presenter on the topics of mobile, progressive enhancement, accessibility, and responsive web design.

Alex McPherson

Alex is a developer with Quick Left in Boulder, Colorado. His past experience includes financial information design and development for Fortune 500 companies. He teaches JavaScript and Ruby on Rails at Colorado University's BDW program and heads up Quick Left's internal apprenticeship program. When he's not coding you can easily find him mountain biking, shaking cocktails, or eating arugula.

Andy Matthews

Andy Matthews has been working as a web and application developer for over 16 years, with experience in a wide range of industries, and a skill set which includes UI/UX, graphic design, and programming. He is co-author of the book jQuery Mobile Web Development Essentials, he is a frequent speaker at conferences around the country, and he has developed software for the open source community. He blogs at andyMatthews.net, he tweets at @commadelimited, and he lives in Nashville, TN with his wife and 4 children.

Daniel Cohen

Daniel Cohen is an HTML5 video game programer at 50 cubes here in beautiful, downtown San Francisco. Previously he was technical evangelist for a cloud database platform in Silicon Valley. He is originally from Minnesota, but studied game development in Orlando and Paris. He's looking forward to getting an iPad3.

Menno Van Slooten

Menno is a real rock star developer because he can actually play the Sweet Child 'o Mine guitar solo. He also has several years of martial arts experience so I suppose you could call him a JavaScript Ninja too.

Yehuda Katz

Yehuda Katz is a member of the Ember.js, Ruby on Rails and jQuery Core Teams; he spends his daytime hours at the startup he founded, Tilde Inc.. Yehuda is the co-author of the best-selling jQuery in Action, Rails 3 in Action, and is a contributor to Ruby in Practice. He spends most of his time hacking on open source—his main projects, along with others, like Thor, Handlebars and Janus—or traveling the world doing evangelism work. He blogs at http://yehudakatz.com and can be found on Twitter as @wycats.

Doug Neiner

Doug Neiner is a front-end web developer with a love for semantic markup, powerful CSS, and efficient, reusable jQuery/JavaScript. Doug loves knowledge sharing and helping both new and developing jQuery programmers perfect their craft. When he isn't programming or designing on the computer, you might find Doug playing with his four wonderful children, hanging out with his beautiful wife, or talking about the farm he wants to own one day.

Kris Borchers

Kris is a front-end/mobile web app developer, primarily focused on JavaScript, HTML5 and CSS3. He recently joined the AeroGear team at Red Hat as a Senior Software Engineer to help JBoss users bring web, hybrid and native applications to mobile devices. Kris is also a committer on the jQuery UI project and has been dabbling in open source projects for years.

Rick Waldron

Rick Waldron works at Bocoup in Boston, where he is a JavaScript enthusiast and evangelist and jQuery core committer.

Shane Riley

Growing up in the birthplace of IBM, Shane was destined to work with computers in some capacity. From the age of 6, he started tinkering with BASIC games in order to get them to compile, and soon enough he was rewriting programs for local IBM employees. His passion for computers and video games continues to grow to this day, leading him to a life of front end development using (X)HTML, CSS, and JavaScript, with jQuery as his choice of library.

Daryl Koopersmith

Daryl Koopersmith is a core developer of WordPress. As a member of the core team, he develops new features using equal parts JavaScript and black magic. He lives in San Francisco and works on Automattic's Dot Org Team, where he builds features, fixes bugs, and eats burritos.

James Long

James Long is a Sr. Front End Engineer for Skybox Imaging Inc where he designs web applications that fly satellites. His latest specialization includes event driven architecture and real time JavaScript applications. He has previously worked for Netflix and Yahoo. He enjoys astronomy, photography, and long walks on moonlit beaches.

Jason Scott

Jason has worked at Research in Motion for over 3 years. He is currently a member of the Web Platform team where he is the principal BlackBerry contributor to jQuery Mobile. In the past he was a member of the BlackBerry WebWorks team, building the framework and the API's for the BlackBerry Playbook. When Jason is not coding you will find him in search for quality food to satisfy his palate or off on a long run.


About Our Sponsors