SAN DIEGO, CA / FEB 12 - 13, 2014

SAN DIEGO, CA
FEB 12 - 13, 2014

Not your average jQuery Conference

ABOUT

HERE IS THE DEAL

It's not just about jQuery anymore. jQuery Conference is about bringing together experts from across the field of front-end development to bring you up to speed on the latest open-web technologies. Get the latest on jQuery and related projects, code architecture and organization, design and implementation practices, tooling and workflow improvements, and emerging browser technologies.

It gets even better. We've partnered with Roost, a two-day training event operated by the folks at Bocoup to create our most significant conference experience to date. While you can attend either event, we've put them back-to-back in the same venue to create an immersive and thorough training and conference experience like no other.

PROGRAM

LOOK WHO'S TALKING

Wednesday, Feb 12th

8:00 - 9:00
Registration
9:00 - 9:45
Keynote

Dave Methvin

jQuery Performance Myths and Realities

jQuery continues to evolve to meet the needs of web developers. House cleaning in jQuery Core 1.9 and 2.0 has whittled away the fat and cruft from the API, plus the ability to create custom builds means you don't need to load what you don't use. When performance problems arise, however, it's important to understand how your use of jQuery can affect performance. We'll bust a few myths about what makes web pages slow and use some readily available tools to identify the real performance killers.

9:45 - 10:30
Keynote

Edna Piranha

Meatspace Chat - The Future Meat

chat.meatspac.es is a chat app that mixes Websockets, webRTC, animated GIFs.

Creator Edna Piranha will talk about how it came together, the months-long beta test, the app's sudden popularity, as well as expanding to support third-party APIs and the growing Meatspace ecosystem.

10:30 - 11:00
Break
11:00 - 11:30
Fundamentals

David Aragon

A Little This, a Little _that: Understanding Scope in JavaScript

Scope is one of the most critical concepts in JavaScript, but...

Scope is one of the most critical concepts in JavaScript, but even seasoned front-end developers have trouble with the the meaning of `this`. It doesn’t have to be this way. Once you learn the few simple rules that govern JavaScript scope, your code will become more precise and flexible.

Let’s take a deep dive into what scoping means in JavaScript. In this talk you’ll learn why scope is critical to applications running in a browser environment, what the heck all this talk of `this` and `_that` is about, as well as how to avoid some pitfalls even the experts make.

Code For Thought

Ariya Hidayat

Dynamic Code Analysis for JavaScript

These days, publishing a project without a comprehensive test suite is frowned upon. However, the tests...

These days, publishing a project without a comprehensive test suite is frowned upon. However, the tests themselves do not always tell the full story. We need to level up and provide a more confident level of dynamic code testing. In this talk, two types of such analysis will be covered: code coverage and run-time complexity profiling. Code coverage is instrumental in deciding the quality of the existing sets of unit tests. An important aspect of coverage testing, branch coverage, plays an important role in discovering possible latent bugs due to untested code flow. In addition to code coverage, complexity profiling permits selective instrumentation of a particular code block for the purpose of performance analysis. More than just measuring elapsed time, run-time profiling also needs to reveal the algorithmic complexity which can be tracked via this empirical approach.

11:40 - 12:10
Fundamentals

Brian Arnold

Digging, Debugging

You're putting your application together, but now you're getting some sort of weird errors, and you're not exactly sure where the heck...

You're putting your application together, but now you're getting some sort of weird errors, and you're not exactly sure where the heck to start looking. Did you mess something up, or are you bringing in some plugin that might be broken in a weird way that only you've hit?

Having spent the last few years debugging code that he didn't write, Brian will show you how to dig into code using the latest developer tools in today's browsers in order to find and fix (or at least isolate) what's broken. We'll be using the console along with DOM inspection and source viewing to find all the bugs!"

Code For Thought

TJ VanToll

Making the Case for jQuery in a Browser Utopia

jQuery gained notoriety largely because of how seamless it made writing code that worked everywhere. But times have...

jQuery gained notoriety largely because of how seamless it made writing code that worked everywhere. But times have changed, and the browser landscape is radically different - and far more standards compliant - than it was in 2006. We can now select elements with querySelectorAll, animate elements with CSS, and even attach event handlers without forking our code.

This standards proliferation has led many to conclude that jQuery's job is done; we can map $ to querySelectorAll and get on with our development lives. They argue that reimplementing these native features adds unnecessary bloat and weight, especially in the context of limited mobile browsers and networks.

In this talk we'll debunk these myths of irrelevance and bloat. We'll see that even in a browser utopia - a mystical land where all features are implemented, all bugs are fixed, and unicorns roam free - jQuery is not only still relevant, but it remains a foundation for any web development stack.

12:20 - 12:50
Fundamentals

Jörn Zaefferer

Effective jQuery - Patterns for maintainability and performance

Most people have a driver's license, but very few are race car...

Most people have a driver's license, but very few are race car drivers. Every web developer knows jQuery, but very few make use of all its potential.

This talk will cover some basics from a new perspective, to make more effective use of the finely tuned library we all seem to know so well. For example, how to structure your markup, CSS and JS for them to work well together while promoting maintainability of all three; how to use CSS3 transitions with fallbacks; how to deal with bad APIs with Deferreds; and more.

Code For Thought

Cory Gackenheimer

Unified Widget Theory: Building for Desktop and Mobile

Recently the jQuery UI and jQuery Mobile teams have...

Recently the jQuery UI and jQuery Mobile teams have commenced unifying some of the widgets that comprise the UI framework and implementing this in jQuery Mobile. This allows for a shared API across desktop and mobile devices and reduces the amount of time required to maintain the code base. This talk will not only take a look at how the jQuery Mobile and jQuery UI teams are sharing their widgets, but will also demonstrate how to build a $.widget from scratch that will work with jQuery UI on the desktop and jQuery Mobile.

12:50 - 2:00
Lunch
2:00 - 2:30
Fundamentals

Alex Sexton

Hacking Front-End Apps

Writing web applications is fun. Getting hacked is not fun. This talk will walk through several different ways that websites, especially...

Writing web applications is fun. Getting hacked is not fun. This talk will walk through several different ways that websites, especially front-end heavy ones, are being hacked. It will cover cross site scripting, and resource forgery as well as introduce some protective measures for writing secure web apps.

Code For Thought

Alex Schmitz

jQuery Mobile: Optimizing Performance

Performance is a major concern on mobile platforms. jQuery Mobile 1.4 adds a number of performance related...

Performance is a major concern on mobile platforms. jQuery Mobile 1.4 adds a number of performance related options and features to help you speed up your mobile site along with a new theme designed to make your site render as fast as possible. Learn Tips and tricks to make your site as fast as it can. Covered in this talk will be not only framework optimizations but server side tricks to minimize transfer and page initialization times.

2:40 - 3:10
Fundamentals

Catherine Farman

Real World Responsive Design Projects and Patterns

Developing responsive websites has become a core service for...

Developing responsive websites has become a core service for web design agencies, but presents a challenge in delivering nimble, lean websites that are beautiful, usable and functional at every screen size. Through client case studies, learn real-world jQuery solutions we use at Happy Cog to solve the most common responsive design challenges.

Code For Thought

Rob Lauer

Firefox OS: The What, Why, and How

Firefox OS is a new mobile operating system from Mozilla and with it comes a mix of excitement, fear, and apathy from...

Firefox OS is a new mobile operating system from Mozilla and with it comes a mix of excitement, fear, and apathy from the mobile community. In this session we will talk about what Firefox OS is, how you can develop apps for it, and most importantly - why it is a relevant platform. With easy to understand code examples and down to earth talk we will navigate the murky waters together and come to understand why this new mobile OS is worth looking into.

3:20 - 3:50
Fundamentals

Kirsten Jones

Demystifying REST

REST web services are everywhere! It seems like everything you want is available via a web service, but getting started with one of these...

REST web services are everywhere! It seems like everything you want is available via a web service, but getting started with one of these web services can be overwhelming – and debugging the interactions bewilders some of the smartest developers I know. In this talk, I will talk about HTTP, how it works, and how to watch and understand the traffic between your system and the server. From there I’ll proceed to REST – how REST web services layer on top of HTTP and how you can expect a REST web service to behave. We’ll go over how to monitor and understand requests and responses for these services. Once we’ve covered that, I’ll talk about how OAuth is used for authentication in the framework of a REST application. I will cover http monitoring tools for multiple OS’s. When you’re done with this talk you’ll understand enough about REST web services to be able to get started confidently, and debug many of the common issues you may encounter.

Code For Thought

John Dimm

Fun with Speech

Create hands-free interfaces using new HTML5 speech API's. We will look inside two examples. TalkShow is an exercise in ambient computing, using the Web...

Create hands-free interfaces using new HTML5 speech API's. We will look inside two examples. TalkShow is an exercise in ambient computing, using the Web Speech API and Named Entity Recognition -- it eavesdrops on your conversations and shows images of things you mention. The Translating Telephone is a web app for multilingual conference calls, combining the Web Speech API and Web Real Time Communicaton (WebRTC) with text-to-speech and online translation services.

3:50 - 4:20
PM Break - sponsored by
4:20 - 4:50
Fundamentals

Brian Klaas

Promises, Promises: Unlocking the Power of jQuery's Deferreds

Managing the order in which asynchronous callbacks in JavaScript occur can be a nasty business. Without a lot of...

Managing the order in which asynchronous callbacks in JavaScript occur can be a nasty business. Without a lot of overhead and management, you're never quite sure that a certain callback has succeeded or failed. One technique for handling this problem that has gained a lot of traction in the past year is to use deferreds and promises. In fact, if you're using jQuery 1.6 or later and making Ajax calls, you're already using deferreds and promises.

In this session, we'll look at how deferreds and promises bring order to the chaos of multiple asynchronous JavaScript calls -- often known as ""callback hell."" We'll start by understanding the problem of asynchronous work in JavaScript. The solution to this problem that jQuery provides are promises. A brief explanation of promises and deferreds will then be covered to give you a solid understanding of this key construct in JavaScript application development. We'll then look at the basics of both promises and deferreds in jQuery and then move on to see how you can leverage promises when making network requests, animating a page, loading content on the fly, waiting for long-running requests to complete, and more. Finally, we'll wrap up with a brief look at promises in other environments, like Node.js, and how promises are being integrated into the core JavaScript stack across browsers and virtual machines.

Code For Thought

Greg Franko

Building JavaScript Tools

Many developers use popular JavaScript code analysis tools (e.g. JSHint, UglifyJS, the RequireJS Optimizer) in their workflows, yet don't know how to create similar...

Many developers use popular JavaScript code analysis tools (e.g. JSHint, UglifyJS, the RequireJS Optimizer) in their workflows, yet don't know how to create similar tools for themselves. This talk will cover what JavaScript Abstract Syntax Trees (ASTs) are, how to use ASTs to create powerful node.js and client-side tools, and why you are smart enough to use them.

5:00 - 5:30
Fundamentals

Dan Gribbin

Transforming front-end Disaster Code™ into a Maintainable Masterpiece

For 5 weeks, I worked with a small team of developers to refactor the...

For 5 weeks, I worked with a small team of developers to refactor the front-end of a moderately trafficked website for a ubiquitous international brand. The project’s initial launch deadlines were tight, and sacrifices were made to get the site out the door. Months down the road as features were added and changed, performance began taking a major hit, with page load times reaching 15 seconds. Some of this was attributed to poor front-end practices. Implementing new features became a somewhat of a nightmare, and morale on the team dropped. Given the opportunity to refactor and rework a portion of the site, we planned and worked for several weeks. In the end, we shaved 75% off page load times, eliminated a ton of technical debt, and set future work up for success by modularizing our code. This talk will cover some of that process. What worked for us, what didn't, how schedules and priorities between developers and clients can conflict, and how to make that better. We’ll also cover several things you can do right now to clean up your front-end code and optimize for performance.

Code For Thought

Rebecca Murphey

Ain't No Party Like a Third Party JS Party

You've got the hang of this whole JavaScript thing. Your code works on ancient browsers, and...

You've got the hang of this whole JavaScript thing. Your code works on ancient browsers, and positively sings on new ones. AMD, SPA, MVC -- you can do that stuff in your sleep, amirite?

But now your users are trying to type in your Very Important Form, and nothing is showing up; you loaded Backbone into your app *right there on line 1*, but `window.Backbone` is nowhere to be found; that widget that's supposed to end up in a certain div is showing up somewhere completely different; calls to jQuery's `.css()` are doing absolutely nothing; and, rarely but not never, your app just doesn't load at all.

You *thought you had the hang of this whole JavaScript thing, but now you're in the world of third-party JavaScript, where all you control is a single script tag and where it's all but impossible to dream up every hostile environment in which your code will be expected to work. "It works on my machine" has never rung quite so hollow.

In this talk, we'll take a look at some of the delightful bugs we've had to solve at Bazaarvoice while working on the third-party JavaScript app that collects and displays ratings and reviews for some of the world's largest retailers. We'll also look at some strategies for early detection -- and at some scenarios where you are just plain SOL.

7:00

Thursday, Feb 13th

8:00 - 9:00
Registration
9:00 - 9:45
Keynote

Scott González

jQuery UI: Behind the Scenes

jQuery UI is more than just a collection of JavaScript widgets. It's a project that aims to discover, create, and deliver experiences that excel in usability, accessibility, and ease of implementation. Join us as we take a behind-the-scenes look at the various projects and communities that are involved in creating the world's most popular JavaScript UI library.

9:45 - 10:30
Keynote

Scott Hanselman

JavaScript, Virtual Machines, and the Cloud

How does the pervasiveness of JavaScript on the client change how we architect applications? We can create hundreds virtual machines in the cloud, but we are using the millions of visual machines that visit our sites every day?

Suddenly we are scripting against thousands of Virtual Machines from the command line while creating things today with JavaScript in the browser that were impossible yesterday. LiveScript becomes JavaScript becomes ES6 and now we’re compiling C++ to JavaScript.

Join Scott Hanselman as he explores the relationship between the Cloud and the Browser, many Languages and one Language, how it might all fit together and what comes next.

10:30 - 11:00
Break
11:00 - 11:30
Fundamentals

Monika Piotrowicz

Accessibility is a Feature You Can Build - A Guided Tour of a11y Basics

Making a website or application accessible can be an...

Making a website or application accessible can be an overwhelming task for a lot of developers, especially if you’re not already an expert. Looking at all the complex regulations, specs, and articles on the topic, where should we begin?

In this talk, I’ll walk through some of the challenges I faced when working through accessibility requirements for the first time. I’ll cover basic considerations, how design and content fit in, testing advice, and introduce Aria practices. Attendees will leave knowing some of the practical constraints and tools that can make a big difference for users, and will have a starting point of how to make their next project more accessible. By thinking about accessibility as we would any other feature, it becomes less of a scary unknown requirement, and instead something we can plan for and implement to create a more open web for all.

Code For Thought

Rob Larsen

Data Visualization in the Browser

We're awash in data. Making sense of that flood of information is impossible without the aid of visualizations to simplify the information, amplify the important...

We're awash in data. Making sense of that flood of information is impossible without the aid of visualizations to simplify the information, amplify the important points and educate at a glance. The web has two main technologies for working with interactive visualizations: SVG and Canvas. This presentation will outline the optimal use cases for each, will talk about the current state of each technology and will show detailed examples of each in action.

11:40 - 12:10
Fundamentals

Rushaine McBean

JavaScript Testing for All

Enter the JavaScript Era: from Node.js to Jquery, MV* frameworks and libraries to tools like Grunt.js, Bower and Yeoman, Javascript has...

Enter the JavaScript Era: from Node.js to Jquery, MV* frameworks and libraries to tools like Grunt.js, Bower and Yeoman, Javascript has taken center stage in the web community. During this renaissance, you are honing your skills with new bleeding-edge technologies, but are you making the most out of JavaScript testing? If not, now is the time to correct that. I will show you the wonderful art of JavaScript testing using today’s popular testing frameworks and give you tips to get started in a new or existing application.

Code For Thought

Jason Strimpel

Unit Testing a Client-server AMD Code Base

Unit testing is never easy, but it is a necessary evil in software development. Unit testing an AMD code base is...

Unit testing is never easy, but it is a necessary evil in software development. Unit testing an AMD code base is even more difficult. A few questions that quickly arise are – How do I mock dependencies? How do I ensure my paths have been configured? How do I generate coverage reports? This talk will answer all these questions and much more.

12:20 - 12:50
Fundamentals

Rafael Xavier

GlobalizeCLDR

Internationalization is the process that provides users with a localized experience that matches their own cultural and linguistic expectations. Learn how...

Internationalization is the process that provides users with a localized experience that matches their own cultural and linguistic expectations. Learn how jQuery is improving its Globalize project to leverage the official CLDR JSON data, allow users to load as much or as little data as they need, avoid duplicating data if using multiple i18n libraries that leverage CLDR, and that run in browsers or node.js.

Code For Thought

Lon Ingram

Making Pigs Fly: Functional Reactive Programming with jQuery, Flight and Bacon.js

Keeping frontend code cleanly decoupled is challenging at the best...

Keeping frontend code cleanly decoupled is challenging at the best of times. Rich user interfaces often depend on complex interactions between program state, control values, and AJAX requests, which makes it hard to write correct and testable code.

One technique for handling this complexity that is gaining favor in some circles is Functional Reactive Programming, which provides powerful tools for manipulating and composing streams of events and values that change over time.

Using the working example of a simple Flight mobile web app, this talk will introduce the fundamentals of functional reactive programming and show how it can greatly simplify complicated UI logic.

12:50 - 2:00
Lunch
2:00 - 2:30
Fundamentals

Ralph Holzmann

So you're thinking of using Ember

Embereños! Ember.js is hot and so are you – but just because it's hot doesn't mean you start sharing a...

Embereños! Ember.js is hot and so are you – but just because it's hot doesn't mean you start sharing a toothbrush on the first date. We'll take a brief look at the ever evolving landscape of client-side MVC and speak generally about which tools are best suited for different types of apps. Then we'll take a look at the basics of Ember.js and top it off with some tips for supporting Ember.js in production. Afterwards, we'll all get matching Tomster tattoos.

Code For Thought

Timmy Willison

jQuery: Now Ideal For Low Bandwidth

Prolonged load times can avert users from your beautiful site off to those other ghastly but fast-loading...

Prolonged load times can avert users from your beautiful site off to those other ghastly but fast-loading contrivances. Even if your site renders like a wildebeest escaping its hunter on your souped-up Mackbook Pro, the size of your dependencies can still be a concern for other devices on slower networks. This very concern has led to the fabrication of tiny javascript libraries which are slender phantoms of the amply-tested. And many third-party libraries require jQuery unnecessarily and have yet to realise they have the potential to slim down their dependencies. We'll talk about the recent changes to the jQuery source and how you can personalise jQuery to fit into that dress.

2:40 - 3:10
Fundamentals

Tyler Benziger

JS Legos: Reusable UI Patterns in JavaScript

This talk will cover how to effectively organize and compose UI components in JavaScript, HTML, and CSS, as well...

This talk will cover how to effectively organize and compose UI components in JavaScript, HTML, and CSS, as well as give an overview of identifying UI patterns. We'll cover some common UI components and identify similarities between them. This sheds light on the construction of these components and how to effectively decouple code so that it can be reused effectively across projects.

With a solid understanding of UI patterns, and best-practices for reusable code, rolling your own UI components is awesome and enjoyable. And for those who don't have to time to write a component framework from the ground-up this talk will give an excellent outline of what to look for in 3rd party components.

Code For Thought

Jarrod Overson

Real World Web Components with Polymer & Angular

What do web components look like outside of Google and conference...

What do web components look like outside of Google and conference presentations? How do they fit into frameworks like Angular? In this session we'll go over some real world use cases and the headaches web components cure and present, where they should be used and where they shouldn't, and why you should consider using web components today.

3:20 - 3:50
Fundamentals

Mike Taylor

Mobile Web Compatibility on the World Wide Web

In this talk we'll take a look at just how messed up the world wide web can be, ranging from broken web browsers...

In this talk we'll take a look at just how messed up the world wide web can be, ranging from broken web browsers to broken web servers and everything in between. We'll also look at how jQuery (and jQuery Mobile) APIs, often working around these various busted components, have helped to shape the future of a more compatible web. Come prepared to hear some battle tales and learn some low-level details about the web stack works, despite being so broken.

Code For Thought

Danni Friedland

NSA.JS

I'll cover some of the different possibilities to capture user information from the browser, from cookies to timing attacks but...

I'll cover some of the different possibilities to capture user information from the browser, from cookies to timing attacks but mainly i'll show and focus on mutations observers as a new and cool way to efficient way to really capture a user interaction on a live page and make a movie of it using phantomJS.

In the process, I'll cover WeakMaps (to weakly store user nodes), Mutation Observer(to actually capture the session), NodeJS(as a backend), RequireJS(As a build system) and PhantomJS(to create a movie of the session).

Expect an awesome and mind blowing demo!

3:50 - 4:20
PM Break
4:20 - 4:50
Fundamentals

Vernon Kesner

Using Node and Grunt to Create an Awesome Workflow

At Ally, we used Node.js along with Grunt, Yo and Bower to develop...

At Ally, we used Node.js along with Grunt, Yo and Bower to develop a custom developer toolset for Ally's front-end development teams. The toolset had to be crafted in a way that allowed us to take a forward approach while still supporting the use of some legacy code and not-so legacy code. In the end, we created a toolset that separated new and on-going development tasks, gave living documentation and usage examples, and also allowed us to focus on maintainable and testable code. In this talk, you will get an overview about problems we tackled as well as solutions we found and approaches to creating a more maintainable codebase.

Code For Thought

Justin Ribeiro

Handling Real-Time Data on the Web

With technologies like WebSockets and Server-Sent Events, real time data has never been easier to display to your...

With technologies like WebSockets and Server-Sent Events, real time data has never been easier to display to your end user. But what happens as that data or the number of devices talking to your application grows? In this talk, we explore how to handle pratfalls and increase performance with jQuery, the DOM and your JavaScript. Warning: may contain live demo of remote 3D printers and other talking M2M devices!

5:00 - 5:30
Fundamentals

Teresa Light

Josh Smith

Create Amazing Interactive Content

Are you interested in obtaining amazing power over HTML5 features for animating, sound, preloading and more?...

Are you interested in obtaining amazing power over HTML5 features for animating, sound, preloading and more? CreateJS is a suite of module libraries that work great independently or can be combined to enable rich interactive mobile or web content to open technologies through HTML5. In this session, you will learn how CreateJS will give you this power and more including cleaner code that requires less effort to maintain. It will illustrate how you can use the libraries independently or together.

In this session, Teresa Light and Josh Smith will provide an overview of Create JS before going through a real example of creating an interactive map. Attendees will leave his session inspired to create amazing interactive content.

Code For Thought

Lenny Markus

NodeJS In the Enterprise

A case study in how PayPal revitalized its tech stack by moving from Java, JSP and proprietary solutions to node.js and dust.js templating. Developer agility...

A case study in how PayPal revitalized its tech stack by moving from Java, JSP and proprietary solutions to node.js and dust.js templating. Developer agility was our primary motivation, but along the way we had to tackle enterprise culture and teach people that JavaScript is no longer a ""toy"", but a powerful tool to wield.

We showcase the technical hurdles we overcame, how we did it, and present the open source frameworks we released as a result of it.

LOCATION

SAN DIEGO, CALIFORNIA

While the prospect of returning to Boston in February (30°F anyone?) was quite alluring, we thought San Diego might be a tad more comfortable. Town and Country Resort & Convention Center will provide a wonderful place to stay, same-location conference and lodging and have plenty of amenities if you so desire.

VENUE AND ACCOMODATION

Town and Country Resort & Convention Center
500 Hotel Circle North
San Diego, CA 92108

Book Online
Book by Phone: (800) 772-8527, mention jQuery Conference

SPONSORS

HELP US MAKE THIS HAPPEN

The jQuery Conference San Diego 2014 is a great opportunity to meet and get to know hundreds of the world's top jQuery and JavaScript talent. Whether you're looking to hire developers, promote your product, or just give back to the community, this is the place to be. Take a look at our sponsorship prospectus and get in touch with us to get involved.