JSConf US 2014 Track B Speakers

Zach Carter

Armchair Type Theory
It was recently discovered that types have been a thing since before Haskell.

Ron Evans

Cylon.js: The JavaScript Evolution Of Open Source Robotics
The robotics revolution has already begun. You can even buy drones and robotic devices at local retail stores. Unfortunately, it has been too hard to develop code for robots, and nearly impossible to create solutions that integrate multiple different kind of devices.
That is why we created Cylon.js, a JavaScript framework for open source robotics & the Internet of Things. Cylon.js makes it easy to write apps that communicate with many different kinds of hardware devices all at the same time. The time has come for the next generation of open source robotics, and Cylon.js is ready to help!

David Catuhe

Unleash 3D games with Babylon.js
Babylon.js is an open-source project built with simplicity in mind in order to help web developers creating 3D games. During this session, you will discover how simple it can be to play with 3D without having to deal with WebGL plumbing!

Raquel Velez & Friends

NodeBots: LIVE!
It's just me and my silly nerdy friends, playing with NodeBots on stage. Watch our antics, see how we think through things, and ask us questions!

Matthew Whittemore

Social Tables Swaziland
For the last three months I've worked remotely from Swaziland, Southern Africa. In doing so I learned a lot about the do's and don'ts of remote work and (in particular) what its like to work remotely from a developing nation.

Matthew Bergman

Health Myths We Tell Ourselves in Tech
The 10x programmer is a unicorn. We love to lionize the amount of dedication, time, and thought that goes into creating great software -- but we forget the very real cost it can entail, both emotionally and physically, on the programmer. Depression, RSI, burnout: these are all real issues facing our field.

John Riviello

The Truth About Your Web App's Performance
The performance of your web app is important. This you already know. But how do you know your web app is performing well for all of your users? Before you can even begin that analysis, you need a way to measure your web app's current performance. Out of the box tools provide us metrics, but most only provide an overall view. This case study of building the XFINITY X1 single-page web app will demonstrate what frontend performance data should you be gathering, how to gather it, and then what do with that data.

Tomasz Janczuk

On the edge of Node.js and CLR
Humankind has been scripting JavaScript from other programming environments for generations. Time has come to reverse the roles. Let's script C# from Node.js, in-process. On Windows, Mac, and Linux. Combine the power of single threaded V8 with multi-threaded CLR. Run +70k NPM packages and .NET Framework with +20k NuGet modules and Node.js in one application. Live on the edge of two great technologies using Edge.js.

John Hann

Introducing RaveJS: Zero-config JavaScript applications
Introducing RaveJS. Rave eliminates configuration, machinery, and complexity. Stop configuring and tweaking file watchers, minifiers, and transpilers just to get to a runnable app. Instead, go from zero to "hello world" in 30 seconds. In the next 30 seconds, easily add capabilities and frameworks to your application simply by installing *Rave Extensions* and *Rave Starter* packages from npm and Bower, the leading JavaScript package managers. Finally, install additional *Rave Extension* packages to apply your favorite build, deploy, and testing patterns.

Ben Newman

Yield Ahead: Regenerator in Depth
The future of JavaScript is too exciting to put on hold while native implementations get around to supporting much-needed new features like classes, generator functions, and modules. This talk dives into the concepts and techniques involved in transforming these futuristic syntaxes into JavaScript-of-today, through the lens of Facebook's Regenerator project, which efficiently simulates ES6 generator functions (and soon async functions too!) using plain ES5. Listeners will come away from this talk with a deep understanding of Regenerator's implementation, and also (hopefully!) a headful of ideas for designing transformations of their own.

Matt Robenolt

Everything is broken, and I don't know why!
This talk will be about the current state of the union in Exceptions and stack traces in JavaScript in not only browsers but Node.js.

Edward Kim

Engineers as Makers, Not Order Takers
At Social Tables, we believe in giving engineers a lot of responsibility when it comes to building new features. For instance, they may talk directly to customers to figure out feature requirements, and have them design the UI themselves. But is this a good thing? I'll make the case that it can actually be a great way to collaborate with other teams inside your company and bring diversity of thought into an engineering organization. I'll also talk about some of the pitfalls we've run into.

Christopher Chedeau

Why does React Scale?
We've talked a lot about big concepts such as the Virtual DOM, re-rendering the entire app on every update with a diff algorithm, server-side rendering ... But there's another side to it: all the design decisions that makes React work for large projects.

Poornima Venkatakrishnan

Template Specialization with Express Apps
Template specialization is a way to dynamically switch the partials in your views based on the request/response context. This becomes vital for big corporations like Paypal since we have cases where parts of the views are customized based on locale, device, user profile based A/B tests etc.This idea was born out of the work we did to support template specialization with Krakenjs suite - the open sourced bootstrapping framework from Paypal. However, the idea is general enough to be implemented directly with vanilla express apps. This talk will demo template specialization in express apps with dust templates. Dust is a powerful javascript template engine which works well with node.js, and also provides the hooks required to add this capability. Additionally, I will also go over the recipe to enable specialization for any template engine, provided the engine exposes the hooks to tap into the render work flow to do your magic!

John-David Dalton

Fearless Browser Testing
Browser test automation can be intimidating leaving developers to spend their time manually testing browsers (many times in VMs) or opting to simply not test a range of browsers. Join John-David Dalton as he discusses browser test automation, removes the roadblocks/gotchas, and shows lots of awesome things you can do (code coverage, perf testing, tagging, & more).

Oytun Sengul

Architecture of Cross-Platform Native App Development
You know WebKit but think it without DOM. Put inside our core engine and your javascript codes running into native libraries of iOS and Android devices.

Kate Hudson

Contributors Wanted: Encouraging Diversity in Your Open Source Project
Open source projects are better when they take advantage of a greater range of experience in the use and development of software. This includes both traditional code contributions/bug fixes, as well as other forms of contribution like localization, design, and copy-writing.

Dan Silvestru

Distributed Complex Computing Using Node.js
JavaScript is single threaded, not ideal for distributed processing of large/complex workloads. There are several options out there for distributing the load over multiple cores, but what if we wanted to distribute the load over many servers AND cores?

Mikeal Rogers

Simplified Node Deployment
Deployment shouldn't require a dozen orchestration steps and builds. Pushing your node.js app to run on a server should be as simple as running locally.

Marcy Sutton

Accessibility of Web Components
We've been talking a lot about Web Components as a community. Encapsulation, templating, custom elements, polyfills: it's an exciting time to be a developer! (<taco-button>, anyone?) Before we create the next generation of soulless <div> tags, we should consider the role of semantics in shiny, new technologies. In this talk, we'll discuss web accessibility in a bleeding-edge way to illustrate that accessibility conversations don't have to be boring or old-school.

Jeff Morrison

JavaScript Unit Testing with Jest
A dive in to how we use Jest to unit test our JavaScript at Facebook, why unit testing should be as easy and painless as possible, and how to make it that easy.

Kevin Whinnery

Designing Modules for the Browser and Node with Browserify
In this talk, we will explore the techniques necessary to design and build CommonJS modules that work both in node.js and the browser using Browserify. We will look at both the general techniques needed, as well as a specific implementation with the Twilio module (npm install twilio), which is currently being converted to work both in node (REST API + utilities) and the browser (WebRTC + VoIP).

Josh McClain

Black Magic APIs
This talk is about my deliberate choice to try writing a Node.js ORM with no respect for simplicity, maintainability, or goodwill towards mankind -- but that reads like a dream.

Jordan Santell

Signal Processing with the Web Audio API
With the advent of the Web Audio API, processing audio signals is now possible in realtime within browsers. Let’s take a look into what raw audio data actually is, the signal processing theory behind it, and practical implementations of analyzing audio using the Web Audio API. We’ll see how effects processing, audio analysis tools, and DSP algorithms can be constructed, used, and shared all in JavaScript.

Kyle Lambert

Make It Pop: Visual Design Simplified
Tired of building apps that aren't as beautiful as the code that powers them? This talk will be a basic guide to visual design for the full stack developer. We’ll go over design principles that will help you create beautiful and useable applications.

Adam Fortuna

eval everything - Running student code at Code School
There are number of ways to run student entered code in the browser - but how do you do it safely, and give good feedback? We'll be looking through a few patterns to solve this using eval, iframes and web workers.