CHICAGO, ILLINOIS • SEPT 12-13, 2014

by Web Developers, for Web Developers

GET IN THE LOOP

It's a whole lot more than just jQuery! We're making our first trip to Chicago to bring 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.

Together again! We had such a good time with Roost in San Diego that we're taking the show on the road. Roost is a two-day training event operated by the folks at Bocoup, designed to give developers an immersive, hands-on experience creating modern web applications.

You can attend either #jqcon or Roost, but we're also offering a combo ticket that'll get you into both events and a four-day-long opportunity to learn a lot about JavaScript and web development in the company of a community of developers from across our field and around the world.

PROGRAM

LOOK WHO'S TALKING

Thursday, September 11

5:30 - 7:00
Hackathon Kickoff

Write Code, Win Prizes!

The jQuery Foundation's CDN is powered by MaxCDN. With the recent release of their analytics platform...

The jQuery Foundation's CDN is powered by MaxCDN. With the recent release of their analytics platform and the massive amount of requests coming from code.jquery.com we thought why not use this data to build something cool?

We'll provide you read-only access to the jQuery CDN analytics and you provide an awesome visualization of that data. Anyone with a conference pass can compete. Work in teams or work alone. We'll give you all of the details in this time together then send you out to create over the next 24 hours.

Information about prizes coming soon!

Friday, September 12

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

Dave Methvin

State of the jQuery Foundation

9:45 - 10:15
Break
10:15 - 11:00

Lisa Seacat DeLuca

Arduino, Bluetooth, and Apache Cordova

Many people recognize Apache Cordova for the core features it provides that allow mobile developers to create hybrid...

Many people recognize Apache Cordova for the core features it provides that allow mobile developers to create hybrid mobile applications using their favorite web technologies: html, css, and JavaScript. The ecosystem behind the Cordova community is growing rapidly. Companies and individual contributors are creating 3rd party Cordova plugins that are shared with developers on the Cordova plugins site. This talk will showcase one such plugin, Cordova's bluetooth plugin, and how it can be leveraged to connect a hybrid app over bluetooth to an arduino to control the individually addressable led's of a Neopixel Matrix. The power of web standards expanded to a physical hardware device.

Matt Claypotch

Beyond The Wall

Jank is the enemy. Our humble browsers, for historical reasons, put their primary JavaScript execution and UI rendering on the same...

Jank is the enemy. Our humble browsers, for historical reasons, put their primary JavaScript execution and UI rendering on the same thread. This causes sadness. Enter Web Workers! I will cover the basics of Web Workers, and go on to show how to use existing programming patterns to ease communication between the main thread and the Web Worker environment. Lastly, I will demo a rich web application that keeps the app's logic off the main thread, and the UI buttery.

11:00 - 11:10
Break
11:10 - 11:40

Alex Schmitz

jQuery Mobile: What’s New in 1.5 and the Road to 2.0

jQuery Mobile 1.5 brings lots of new features and a revamped navigation system...

jQuery Mobile 1.5 brings lots of new features and a revamped navigation system, more performance optimization possibilities for advanced users and adoption of more widgets from jQuery UI. Lately though, the question I am asked isn't about what's going to be in 1.6, 1.7, and so on, but about the future of jQuery Mobile after the merger with jQuery UI, and what the future is for the jQuery Mobile project. I’ll go into our current road map and details (as many as are available right now) about the future of jQuery Mobile and what it will look like after 2.0

TBA

11:40 - 11:50
Break
11:50 - 12:20

Ralph Holzmann

Throw New Error

Error driven development. Is that even a thing? It should be, at least for the next 30 minutes...

Error driven development. Is that even a thing? It should be, at least for the next 30 minutes. Correctly creating and handling errors in your app is arguably more important than handling success cases, so let's do a better job! This talk will take an in depth look at the elusive Error class and how to wield it. We'll cover best practices, vendor specific extensions, sub classing and error handling patterns in both synchronous and asynchronous code. Write better errors, handle errors better, improve your SLA, come see this talk.

Dave Arel

As I Walk Through The Valley Of The Shadow Of DOM

Let's party like it’s the late 1990's — When the Components spec was originally introduced...

Let's party like it’s the late 1990's — When the Components spec was originally introduced and 2Pac was livin' in a gangsta's paradise. While the implementation of this paradigm is long overdue, at least it's been a sufficient amount of time for Microsoft to forget Google stole their idea.

In this presentation, we'll look at each piece of the Web Components spec including Templates, Decorators, Custom Elements, The Shadow Dom, and HTML Imports. We'll also look at how this may integrate with ECMAScript 6 Modules to create a truly modularized, encapsulated, decoupled web.

Although Web Components are not yet ready for use in production we'll look at how we can be building our applications with components in mind, and how frameworks like Angular, Ember, and Polymer are already doing so. This is not only one of the most exciting specs in draft, it's also one of the most important paradigm shifts in web development since Al Gore created the internet.

12:20 - 1:30
Lunch - Sponsored by
1:30 - 2:00

Scott González

jQuery UI

Description coming soon

Description coming soon

Brian Arnold

Beyond DevTools: Debugging by Proxy

You know your way inside and out when it comes to DevTools in all the browsers. You understand the network waterfall...

You know your way inside and out when it comes to DevTools in all the browsers. You understand the network waterfall and can hunt down memory leaks with the best of them. However, you're hitting some sporadic issues on mobile, but you can't reliably reproduce them. Perhaps you've got some minified code in production and you'd really like to just replace it for debugging with unbuilt code, but you don't want to actually put your unbuilt app into production.

Proxies to the rescue! In this talk, Brian will introduce the concept of using a proxy as a debugging tool, showing you how you can observe everything happening at a network level, including hijacking requests, responses, modifying headers, and even emulating latency problems, in order to help you harden your application against the harsh realities of slow, flaky networks.

2:00 - 2:10
Break
2:10 - 3:10

Lon Ingram

Chasing Waterfalls: Real-world Frontend Optimization

I am in the beginning stages of an extended effort to improve the initial render latency of...

I am in the beginning stages of an extended effort to improve the initial render latency of a large third-party JavaScript application. This talk will be a post-mortem of that project, with an emphasis on concrete steps the audience can take right away to improve performance. We'll cover:

  • measurement
  • reporting
  • how to identify promising optimization opportunities
  • performance modeling
  • how to design an optimization experiment
  • how to evaluate the results of an experiment
  • automated performance testing and alerting
  • war stories and weird tricks (for example, it looks like we will be able to cut 50ms off of our initial render by overriding RequireJS's nextTick method)

Ilya Dreytser

Building offline-enabled, data driven applications using jQuery, jQuery Mobile and PersistenceJS

jQuery and jQuery Mobile together are a compelling platform for building mobile user experiences, but on their own they are missing...

jQuery and jQuery Mobile together are a compelling platform for building mobile user experiences, but on their own they are missing one of the most important ingredients of native mobile apps – offline access. The good news is that all modern mobile browsers support one of the competing standards for HTML5 offline storage; the bad news is that there are competing standards, and the tools available for managing persistence in JavaScript are poor at best.

In this talk we will present a practical approach to building offline-enabled, data-driven applications using jQuery, jQuery Mobile, and PersistenceJS as an O-R-M abstraction on top of HTML5’s varying offline storage standards. Using this combination, we introduce a simple data synchronization paradigm that allows mobile HTML5 apps to download data, store and manipulate that data locally, and re-synchronize that data whenever the device is online. In addition, we present some of the benefits of viewing data stored in a database, including sorting, grouping, filtering, and full text indexing lists of data objects.

With offline storage added to the mix, mobile HTML5 starts to deliver on the promise of a fully cross-platform, browser driven experience that is just as good as any native app.

3:10 - 3:40
Snack Break
3:40 - 4:25

TJ VanToll

HTML5 Form Validation: Why No One Uses It, And How You Can!

Client-side form validation is a notoriously painful development experienece. Yet, despite HTML5 constraint...

Client-side form validation is a notoriously painful development experienece. Yet, despite HTML5 constraint validation—a series of APIs designed to make form validation way easier—being implemented in most browsers, no one actually uses it. In this talk you'll see why. We'll discuss constraint validation's pain points, and how you can overcome them in your own applications. Come learn how to use HTML5 form validation today!

Vlad Filippov

Next-Generation JavaScript Testing

This session showcases the latest advances in JavaScript testing and introduces you to The Intern, an open source testing framework...

This session showcases the latest advances in JavaScript testing and introduces you to The Intern, an open source testing framework. The Intern is the test runner of choice in projects at companies including SitePen, Mozilla and Stripe. It enables testing of any JavaScript code and works well with Travis CI, Sauce Labs, and other tools. The talk will include several examples, starting from basic jQuery sites to large modular web applications.

4:25 - 4:35
Break
4:35 - 5:20

Jenn Schiffer

There Are Local jQuery Tables In Your Area

This is a case study on how I took slow loading tables full of basketball data for stats.nba.com and made...

This is a case study on how I took slow loading tables full of basketball data for stats.nba.com and made them fast and fun. It's also about how sometimes reinventing the wheel (in this case the wheel is a table generating plugin) is the best solution for a large project that requires agile feature development.

Kevin Hakanson

Securing TodoMVC Using the Web Cryptography API

The open source TodoMVC project implements a Todo application using popular JavaScript MV* frameworks...

The open source TodoMVC project implements a Todo application using popular JavaScript MV* frameworks. Some of the implementations add support for compile to JavaScript languages, module loaders and real time backends. This presentation will demonstrate a TodoMVC implementation which adds support for the forthcoming W3C Web Cryptography API, as well as review some key cryptographic concepts and definitions.

Instead of storing the Todo list as plaintext in localStorage, this “secure” TodoMVC implementation encrypts Todos using a password derived key. The PBKDF2 algorithm is used for the deriveKey operation, with getRandomValues generating a cryptographically random salt. The importKey method sets up usage of AES-CBC for both encrypt and decrypt operations. The final solution helps address item “A6-Sensitive Data Exposure” from the OWASP Top 10.

With the Web Cryptography API being a recommendation in 2014, any Q&A time will likely include browser implementations and limitations, and whether JavaScript cryptography adds any value.

5:30 - 7:00
Hackathon Wrapup

Share Your Creation

You've been creating your masterpiece for the last 24 hours or so and now it's time to show it off...

You've been creating your masterpiece for the last 24 hours or so and now it's time to show it off to your fellow hackers and our judges. Winners will then be selected and announced at the evening party immediately following this wrapup so come out and grab a little bite to eat or something to drink and see if you won!

Information about prizes coming soon!

7:00 - 10:00
Party at Public House

Sponsored by
&

Saturday, September 13

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

John Paul

ES6 Right Now

The list of solidified ES6 features keeps growing and we, on the client side, just get greener with envy. Many of these new features...

The list of solidified ES6 features keeps growing and we, on the client side, just get greener with envy. Many of these new features won’t be supported in a broad base of browsers for years to come, but there is hope for us nonetheless. While we don’t have the ease of flipping a command line flag, like node, to bask in the warm sunlight of ES6 sugar, we can build a system that gives us similar results.

Using a combination of shims and transpilers, we can enjoy these new language features while still maintaining support for all of the browsers you’d need. I'll first explain some of the great new additions to the JavaScript programming language and example use cases with code that take advantage of ES6's elegance for client side development. I will go through the details of setting up a development environment with source maps for debugging the code that you wrote, rather than what is generated by a transpiler.

After listening to this talk, I hope your jealousy will be soothed, and I know that your curiosity will be satisfied.

9:45 - 10:15
Break
10:15 - 11:00

Corey Frang

Scoping JavaScript Scope

Scope is one of the hardest concepts for new JavaScript developers to understand...

Scope is one of the hardest concepts for new JavaScript developers to understand. In this presentation we will take an in-depth look at scope in JavaScript, learn about closures and prototypes, and explore how scope relates to memory and the garbage collector. This talk will be mostly aimed at beginner to intermediate JavaScript engineers, but will also cover some advanced topics.

Ariya Hidayat

JavaScript and the Browser: Under the Hood

A browser's JavaScript engine can seem like a magical black box. During this session, we'll show you...

A browser's JavaScript engine can seem like a magical black box. During this session, we'll show you how it works from 10,000 feet and give you the understanding of the main building blocks of a JavaScript engine: the parser, the virtual machine, and the run-time libraries. In addition, the complicated relationship with the web browser with a JavaScript environment will be exposed. If you are curious as to what happens under the hood when the browser modifies the DOM, handles scripted user interaction, or executes a piece of jQuery code, don’t miss this session!

11:00 - 11:10
Break
11:10 - 11:40

Alex Sexton

Front-End Ops

Building front-end web applications takes a lot more than just a CSS Preprocessor, jQuery, and...

Building front-end web applications takes a lot more than just a CSS Preprocessor, jQuery, and an MVC framework. Running that application takes, monitoring, and performance improvements, developer happiness, build tools and analytics. Front-End Ops is the set of jobs that a front-end developer should be doing to support their application, rather than just building it in a vacuum. Some teams can afford to have a dedicated Front-End Ops engineer, and others will have engineers that wear many hats.

Lucas Holmquist

Chromecast: Beyond Streaming Media

The Chromecast is a small device that allows users to "cast" their media to a TV...

The Chromecast is a small device that allows users to "cast" their media to a TV. It allows for creating sender applications using either the Chrome/iOS/Android SDK that can stream video or display your photos, and receiver applications, which are just HTML5, Javascript and CSS web apps.

While this is cool, this idea can be taken a step further. Who says we have to just use this as a "display-only" technology?

In this experiment, we will see how we can make our content interactive - using this new technology as an HTML5 Game Console.

11:40 - 11:50
Break
11:50 - 12:20

Sara Gorecki

Recreating Nostalgic Computer Games

You don't have to be a 'game developer' to build games on the open web - HTML, CSS, and JavaScript can take you a long way...

You don't have to be a 'game developer' to build games on the open web - HTML, CSS, and JavaScript can take you a long way. Whether its a recreation of Spider Solitaire or Tetris, client-side games are full of complex logic and a lot of it involves DOM manipulation and tracking states of different elements. We'll go through the process of planning out the different elements a game will require and exploring the DOM and various logic pitfalls that one can come across. We'll also touch on topics such as strategies for generating and managing repeating elements, and how to persist game state between browser sessions, while going through the process of recreating one of these classic games.

Matthew Lancaster

Performance Optimization Automation for Client-Side Applications

In today's responsive world, user experience and application performance is becoming more important than ever. Performance...

In today's responsive world, user experience and application performance is becoming more important than ever. Performance optimization has long been considered a task that requires careful manual "tuning" of several application components, as well as continuous testing. In some cases, the effort involved may outweigh performance gains, and this is when developers must walk the tight rope between benefit and cost. With the advent of automated build tools and task runners like Grunt, automating these tasks has become possible. In this session we will cover examples of some of the most common approaches, as well new and more radical methods including unCSS, combining media queries, bunching up API calls, automatic sprite image generation, and others.

12:20 - 1:30
Lunch
1:30 - 2:15

Kassandra Perch

Stop the Fanaticism! Using the Right Tools for the Job

When a JavaScript project is defined, we face a seemingly endless number of choices – from frameworks, to module loading...

When a JavaScript project is defined, we face a seemingly endless number of choices – from frameworks, to module loading, to dependency management, to code style. There are at least 2 tools for every job, and a group of people willing to argue the merits of each one until they are blue in the face. Fanaticism runs rampant, and we've started to ask the wrong questions when faced with new tools and ways of solving problems. This talk examines the decisions we as developers make, the way we make them, and how we can make these decisions better. We'll talk about framework fanaticism, dealing with large teams, and protecting yourself once you've made your choices.

Jay Merrifield

Advanced Promises: Locks, Latches, and Barriers

As web applications get more complex, with more moving parts, and more async behahvior...

As web applications get more complex, with more moving parts, and more async behavior, the ability to run a smooth user experience with a consistent state become a lot harder. Utilizing the simple power of Promises, with some lessons learned from concurrent programming, we can provide some tools and techniques to bring order to async issues like out of order execution, request/animation interruption, and state management.

2:15 - 2:25
Break
2:25 - 3:10

Trevor Landau

Functional JS

Ditch those mutable values and let's get functional! Functional programming improves...

Ditch those mutable values and let's get functional! Functional programming improves readability, avoids mutability, eliminates side effects, and more. JavaScript isn't a pure functional language, but because it supports higher-order functions it can certainly act like it. In this talk, we'll explore functional programming in JS through a myriad of examples that you can start using in your code today!

We'll begin by briefly discussing what functional programming means and compare it to the more popular imperitive programming style. This includes, but not limited to, concepts like immutability, partials and predicates. Then we'll play with some functions native to JS that allow us to transform values instead of mutating them. Following that, we'll wield underscore and underscore-contrib to make writing functional JS even more powerful.

By the end of this talk, you'll be able to write more concise, safer, reusable and understandable code.

Bodil Stokke

Reactive Game Development For The Discerning Hipster

To most people in JS, functional programmers are perceived as academic hipsters raving...

To most people in JS, functional programmers are perceived as academic hipsters raving about things like applicative functors, semigroup homomorphisms and Yoneda lemmas for no good reason except to make the rest of us feel stupid. And this is fair; there’s no better way to make you feel pitifully mainstream than throwing category theory at you. Conversely, JS programmers tend to believe functional programming, therefore, can have no real world application because nobody in the real world has any idea what a Yoneda lemma is and they seem to be getting by just fine without it.

Except we aren’t. We’ve been living in callback hell for almost two decades now, and no matter how many control flow libraries we submit to npm, things don’t seem to be getting any better. And that’s where functional programming comes in—turns out callbacks are just functions, and those academics in their ivory towers with their Haskell compilers actually encountered and solved these problems long ago. And now we can have their solutions in JS too, because of functional reactive programming. To demonstrate, I’ll attempt to write a browser based game, from scratch, with ponies, using RxJS, everybody’s favourite reactive library, live on stage in 30 minutes with no callback hell in sight. And we’ll be finding out if this reactive stuff is all it’s cracked up to be or not.

3:10 - 3:40
Snack Break
3:40 - 4:10

Phil Dutson

DIY: Build a jQuery Plugin!

You can search forums, GitHub, and of course the jQuery Plugin Repository to find a plugin that will fit most of your needs, but...

You can search forums, GitHub, and of course the jQuery Plugin Repository to find a plugin that will fit most of your needs, but what happens when you already have a function that you've built that you know would be perfect as a jQuery plugin? In this talk we will start with a JavaScript function that is used as an image replacement technique for RWD and learn how it works, why it would be a perfect candidate to be made into a plugin, and then how to make that happen. Geared towards those new to jQuery in general, the concepts presented will be useful to any and all dealing with today's modern web (especially in regards to adaptive and responsive design).

Rob Dodson

Building 60fps mobile apps with Web Components

Building a mobile web app that animates smoothly is nearly impossible unless you're an expert developer. It's time for the web...

Building a mobile web app that animates smoothly is nearly impossible unless you're an expert developer. It's time for the web to get its own collection of fast by default components. In this talk we'll look at how you can use readily available Polymer elements to build an app that is buttery smooth on phones and tablets. We'll also show off some cool new tools that make it super easy to go from zero to working prototype in no time flat.

4:10 - 4:20
Break
4:20 - 4:50

Cory Gackenheimer

Inspect the Uninspected: Mobile Debugging

Web sites and web applications provide a special flavor of debugging for developers. The techniques used can range from...

Web sites and web applications provide a special flavor of debugging for developers. The techniques used can range from archaic and brute force alert() debugging, to simply altering the code and refreshing your browser until it seems to work. Ideally you will utilize some more advanced developer tooling but many are left confused when it comes to debugging a mobile site because the mobile debugging landscape changes so fast. In this talk I will highlight some common mobile debugging techniques from in-browser emulation to remote debugging solutions from weinre to browser developer tools that allow for remote debugging.

Kelly Andrews

So you built something, now what?

As a developer, building stuff is in our DNA. Then we are asked to produce documentation, and our heads explode. There are many tools...

As a developer, building stuff is in our DNA. Then we are asked to produce documentation, and our heads explode. There are many tools and resources to help you, but what's the best route to take? This talk will cover documentation best practices from auto-generated to static site generators, that way when you build something, someone might actually use it.

Good Bye and Thank You!

LOCATION

CHICAGO

VENUE AND ACCOMODATION

In the heart of the city, Sheraton Chicago Hotel & Towers puts you within reach of some of the best restaurants and attractions Chicago has to offer.

Sheraton Chicago Hotel & Towers
301 East North Water Street
Chicago, IL 60611

Deluxe Room Price: $385 $269/night + free Wi-Fi for jQuery attendees for a limited time

Book Online: https://www.starwoodmeeting.com/Book/jQuery

Image by Bert Kaufmann

WIN A PEBBLE

Thanks to a generous donation from Pebble, we will be giving classic Pebble devices away throughout the ticket sales for jQuery Chicago. Follow @jqcon for announcements and purchase your tickets now for a chance to win.

REGISTER

WE WANT TO SEE YOU THERE

Chicago / Sep 12 - 13, 2014
Early-Bird Individual Ticket
$449 SOLD OUT
Regular Individual Ticket
$499
Chicago / Sep 10 - 11, 2014
Early-Bird Individual Ticket
$549 SOLD OUT
Regular Individual Ticket
$599
+
Chicago / Sep 10 - 13, 2014
Early-Bird Combo Ticket
$899 SOLD OUT
Regular Combo Ticket
$999

SPONSORS

HELP US MAKE THIS HAPPEN

jQuery Conferences 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. Get in touch with us for a copy of our sponsorship prospectus and to figure out how you can get involved.

DIAMOND SPONSORS

PLATINUM SPONSORS

GOLD SPONSORS

SILVER SPONSORS

CONDUCT

BE EXCELLENT TO EACH OTHER

The jQuery Foundation believes that everyone deserves a thoroughly pleasant conference experience, regardless of who they are. We adhere to the JSConf Code of Conduct and expect that all of our speakers, attendees, and volunteers will do the same.