Nov
3
Nov 4

Thunder Plains

Actually Understanding Asynchronous JavaScript

Reasoning about asynchronous code can be hard if you don’t understand the mechanics. It often trips up programmers with deep experience in other languages when they try their hand at client or server-side JavaScript. But, asynchronous JavaScript isn’t as hard as it seems once you learn a few simple rules about how it works. In this talk, we’ll dive into the mechanics of concepts that you might have had a chance to full grok.

Let’s dispel this confusion once and for all. We’ll explore some metaphors that illustrate the difference between how synchronous and asynchronous code execute. We’ll dive into essential concepts like the call stack and the event loop to build a solid conceptual understanding of how the asynchronous model is implemented. Finally, we’ll take a good hard look at a number of common patterns for writing asynchronous code in JavaScript. We’ll start with the listening for events on XMLHttpRequest and build callback and promise APIs on top on it.

Oct
7
Oct 8

JSConf Colombia

Building an Desktop Applications with Electron

Steve Kinney demonstrates how to leverage JavaScript knowledge to build cross-platform desktop applications using GitHub's Electron project. Steve guides participants in building multiple applications that break free of the restrictions imposed by the browser and would not otherwise be possible using web technologies.

Aug
4
Aug 5

Develop Denver

Actually Understanding Asynchronous JavaScript

Reasoning about asynchronous code can be hard if you don’t understand the mechanics. It often trips up programmers with deep experience in other languages when they try their hand at client or server-side JavaScript. But, asynchronous JavaScript isn’t as hard as it seems once you learn a few simple rules about how it works. In this talk, we’ll dive into the mechanics of concepts that you might have had a chance to full grok.

Let’s dispel this confusion once and for all. We’ll explore some metaphors that illustrate the difference between how synchronous and asynchronous code execute. We’ll dive into essential concepts like the call stack and the event loop to build a solid conceptual understanding of how the asynchronous model is implemented. Finally, we’ll take a good hard look at a number of common patterns for writing asynchronous code in JavaScript. We’ll start with the listening for events on XMLHttpRequest and build callback and promise APIs on top on it.

Mar
7
Mar 10

O'Reilly Fluent

Building Desktop Applications with Electron

Steve Kinney demonstrates how to leverage JavaScript knowledge to build cross-platform desktop applications using GitHub's Electron project. Steve guides participants in building multiple applications that break free of the restrictions imposed by the browser and would not otherwise be possible using web technologies.

Nov
13
8:00 am08:00

NationJS

I'll be giving a talk on using the Web Audio API to create unique musical instruments in the browser. You can learn more about the conference here.

Someone stuck a synthesizer into your favorite web browser. The Web Audio API is everywhere and it makes it easy and fun to create, process, and control audio in the browser. We can spin up oscillators, adjust gain, tweak frequencies, and slap on some funky delay.
Additionally, we can take existing sounds and manipulate them to our heart's content. We can grab input from cameras and microphones and use them as we see fit. The fun doesn't stop there—we still have the rest of the browser's media APIs at our disposal.
In this talk we'll talk a little bit about the Web Audio API. We'll explore the browser as a vehicle for creative expression. We'll fire up some audio contexts and connect some nodes. We'll leverage the APIs such as the getUserMedia Web API, WebSockets and others to build instruments. Not just any instruments, but ones that could only exist in a web browser. We'll not only talk about the API itself, but also some of the fundamental concepts for working with audio and making music.
Oct
23
9:00 am09:00

EmpireNode

Building Desktop Applications with Electron and Node

In this talk, we’ll use Node to build cross-platform desktop applications that are free from the constraints of traditional web applications. We’ll use Github’s Electron project to create a simple note taking application that sits in your menu bar, waiting patiently to be invoked. Our application will have complete access to the file system and be able to store our notes as plain text files that can be easily backed up or synced. Along the way, we’ll explore some additional features and capabilities as well as how to use leverage all of npm when building a variety of rich desktop applications.

There are a few big goals for this talk. The first is to give any Node/JavaScript developer who has been interested in using Electron and/or NW.js the tools to do so and allow them to feel like “Yea, I can totally do this.” The second goal, is to emphasize how awesome it is to have all of npm at your disposal when building applications for the desktop.

Jun
25
Jun 26

CodeConf

  • The Bell Tower

Making Music in the Browser with the Web Audio API

Someone stuck a synthesizer into your favorite web browser. The Web Audio API is everywhere and it makes it easy and fun to create, process, and control audio in the browser. We can spin up oscillators, adjust gain, tweak frequencies, and slap on some funky delay.

Additionally, we can take existing sounds and manipulate them to our heart's content. We can grab input from cameras and microphones and use them as we see fit. The fun doesn't stop there—we still have the rest of the browser's media APIs at our disposal.

In this talk we'll talk a little bit about the Web Audio API. We'll explore the browser as a vehicle for creative expression. We'll fire up some audio contexts and connect some nodes. We'll leverage the APIs such as the getUserMedia Web API, WebSockets and others to build instruments. Not just any instruments, but ones that could only exist in a web browser. We'll not only talk about the API itself, but also some of the fundamental concepts for working with audio and making music.

May
27
May 29

JSConf US 2015

  • Amelia Island, FL

Making Music in the Browser with the Web Audio API

Someone stuck a synthesizer into your favorite web browser. The Web Audio API is everywhere and it makes it easy and fun to create, process, and control audio in the browser. We can spin up oscillators, adjust gain, tweak frequencies, and slap on some funky delay.

Additionally, we can take existing sounds and manipulate them to our heart's content. We can grab input from cameras and microphones and use them as we see fit. The fun doesn't stop there—we still have the rest of the browser's media APIs at our disposal.

In this talk we'll talk a little bit about the Web Audio API. We'll explore the browser as a vehicle for creative expression. We'll fire up some audio contexts and connect some nodes. We'll leverage the APIs such as the getUserMedia Web API, WebSockets and others to build instruments. Not just any instruments, but ones that could only exist in a web browser. We'll not only talk about the API itself, but also some of the fundamental concepts for working with audio and making music.

Apr
28
6:00 pm18:00

DenverScript, April 2015

ES6/2015 and the Standardization Process

Nota bene: You can RSVP on DenverScript's event page.

Like HTML5, JavaScript is moving from big bang releases every few years to a living standards—constantly iterating forward. Many of us are familiar with the previous iterations of JavaScript: ES3, ES5, and the upcoming ES6. ES2015 represents a new approach to the standardization process. We'll talk briefly about the process from initial spike to polyfill to shipped.

New features are constantly shipping, but we'll actually discuss how you can use features from the future in your JavaScript applications today using Babel and Google Traceur. 

In this session, we'll cover the following new features in JavaScript:

  • New variable scoping: `let` and `const` 
  • String interpolation 
  • Arrow functions 
  • Symbols and generators  
  • Classes and inheritance 
  • ES7 asynchronous functions 
  • Enhanced object literals 
  • Modules 
  • Proxies 
  • Array and generator comprehensions
Apr
23
10:50 am10:50

RailsConf 2015

  • Atlanta, GA

Using JavaScript from the Future in Your Rails Application Today

I gave a talk at RailsConf about the latest and greatest version of JavaScript (ES6), why its pretty great, and how incredibly easy it is to use in your Rails—and other—applications today.

Here is the abstract for the talk:

ECMAScript 6 has a metric ton of new Ruby-friendly features that make working with JavaScript less painful—including but not limited to: classes, implicitly returning functions, string interpolation, and modules. In this session, we'll take a look at how you can use these features today in your Rails applications.

Slides are available here.

Apr
8
6:30 pm18:30

Full Stack, April 2015

  • Factory Labs

Working with Multimedia APIs in the Browser

The browser has come a long way in the last twenty-five years or so. The ability to click a word on a web page and be brought to a totally different page was so cutting-edge, that those blue, underlined words were called “hyperlinks.” We’re not quite as easily amused these days and that’s fine because the web has risen to the challenge. In this talk, we’ll explore some of the new media APIs in HTML5. We’ll take about getting media from from a user’s camera and microphone, building simple games in the browser, making music, and real-time communication using WebRTC.

Mar
4
3:00 pm15:00

EmberConf 2015

  • Portland, OR

Building Real-Time Applications with Ember.js

In this session, we'll investigate a few strategies for integrating browser features like WebSockets as well as third-party libraries into our ember-cli applications. We'll look at how to structure an application using standalone controllers, initializer objects, and services. Our example application will be a real-time chat application that uses WebSockets to push notification to connect clients. We'll build the application with native WebSockets and talk about how to leverage external libraries like Socket.io and Faye.

Jan
24
9:00 am09:00

Girl Develop It: Swift/iOS

Building Your First iOS App Using Swift

For more information, please visit the Girl Develop It event page.

In this class, we learn the basics of Swift and then proceeded to build a few small applications, including a tip calculator and a small utility to calculate how much pizza to order for a group.

A repository with my lecture notes and exercises is available here.