List of videos

Max Krohn: IcedCoffeeScript
I cofounded OkCupid.com back in 2003. It was my fateful decision to base our whole stack on a single-threaded event-based library written in C++. It sucked; our code was stuffed with callback spaghetti and pyramids of death. But all of that changed when in 2006, we wrote the "Tame" system for C++, which we presented at USENIX ATC in 2007. This new system was compatible with the old code, but drastically improved our productivity by allowing straight-line code on either side of an a network call, much like threads supported all along. Most JavaScript and CoffeeScript systems work like OkCupid's did in 2005. But two JavaScript systems I've written — TameJS and IcedCoffeeScript — change all of that. They bring the same language primitives to node.js and the browser that Tame brought to OkCupid's C++ libraries. These primitives are more powerful than threads and more manageable than hand-rolled callback code. If you give them a chance, they will make your JavaScript projects cleaner, more manageable, more parallel and therefore better performing. For reuse of this video under a more permissive license please get in touch with us. The speakers retain the copyright for their performances.
Watch
Kamen Bundev: Fixing the Mobile Web - tips and tricks that can save your sanity
A quick stroll through the horror land of mobile WebKit browser bugs. Dangerous forms and weeping angels lurk in the shadows, preying on the innocent mobile developers. Narrow escape passages and various walkarounds provided. Don't blink, or you'll end up using IE7 Mobile forever. For reuse of this video under a more permissive license please get in touch with us. The speakers retain the copyright for their performances.
Watch
Lennart C. L. Kats: Effectively Building Language Tools
JavaScript has a vivid ecosystem of a passionate developer community, libraries, and tools. New frameworks keep pushing the boundaries what you can do with it, and the language family is rapidly expanding with new cousins; TypeScript being the latest. We're building language tooling to provide an integrated experience with static error checks, code completion, API documentation, and so on. But how can we keep up with this changing environment? Let's talk about effectively building language tools. For reuse of this video under a more permissive license please get in touch with us. The speakers retain the copyright for their performances.
Watch
Andrew Miadowicz: What does Chakra do with your JavaScript?
With the upcoming release of IE10 you may be curious how much performance you can expect from JavaScript in IE. In this talk I'll delve deep into the internals of Chakra (including changes added in IE10), its profiling interpreter, type system, optimizing compiler, and garbage collector. If you enjoy staring at assembly code, there will be plenty of that as well. For reuse of this video under a more permissive license please get in touch with us. The speakers retain the copyright for their performances.
Watch
Daan van Berkel: Rendering Mona Lisa by Solving the Traveling Salesman Problem
Javascript is ubiquitous, but can it solve real though problems? The traveling saleman problem is a notoriously hard problem to do efficiently (I.e nobody knows how). In this talk we combine art and craft and put JavaScript to the test. We will let JavaScript solve a TSP problem which results in a rendition of the Mona Lisa. For reuse of this video under a more permissive license please get in touch with us. The speakers retain the copyright for their performances.
Watch
Neuman Vong: The circuit as a point-free general model of computation
Discover how to create shorter simpler programs by modeling them as a circuit of intercommunicating processes. Modern web applications and libraries have to maintain state, coordinate asynchronous events, and recover from failure. Over the course of development, the complexity of a program's control flow graph can vary greatly from one program to another; in a disorganized program, complexity can quickly grow making the program brittle and difficult to maintain. Inspired by category theory, point-free, and functional reactive programming, this talk will present some ideas on how to describe a program as a circuit, and why it could help to minimize complexity over the program's development. For reuse of this video under a more permissive license please get in touch with us. The speakers retain the copyright for their performances.
Watch
Julian Viereck: Don't dream - make the WebAPI of your dreams become real!
A: "Dammit, we can't do this on the web :(" B: "You know, it's called the open web - you can change it!" A: "I can't just fork the web from GitHub and make it do the things I want." B: "Haha, no, it's not that simple. But you can talk to some people and if they think your API makes sense, get a browser project from GitHub and they will help you to implement your new API." A: "But then it's just in one browser, not the web?" B: "You got to start somewhere." A: "Right... Can you help me get going?" B: "Sure!" Implementing competitive printing support for PDF.JS is not possible with the current state of the web. Therefore, I started to work on some new `mozPrintCallback` API. In this talk, I will share my experience with proposing a new API, how to implement it in a browser and how even hacking C++ code can be fun. For reuse of this video under a more permissive license please get in touch with us. The speakers retain the copyright for their performances.
Watch
Margaret Leibovic: Firefox for Android
Slides http://margaretleibovic.com/talks/jsconf/firefox-for-android.html The Firefox desktop UI is powered by JS and Mozilla's XUL platform, and in our first attempt to port Firefox over to Android, we used essentially the same architecture. However, drawing our own XUL-based UI killed startup time, responsiveness and memory use on Android, so about 10 months ago we decided start over with an entirely native Android UI. We still use Gecko to render the same web experience you get on desktop, and a lot of the front-end browser logic is still written in JS, but we use a custom JSON message loop to communicate with a native Android UI written in Java and XML. Add-ons are an important part of the Mozilla story, so we also added JS APIs to allow add-on authors to manipulate this new native UI. I'll talk about the architecture of our app, challenges we faced, and how you can get involved with the project (including writing add-ons entirely in JS!). For reuse of this video under a more permissive license please get in touch with us. The speakers retain the copyright for their performances.
Watch
Jason Huggins: Everyone Loves Robots
You might think a robot that can play Angry Birds on a tablet is the most ridiculous idea you've ever heard of -- and you'd be right. However, you can use that little 'bot for automated testing of your app on any mobile device. You already write tests, right? So you *need* a robot! (You always wanted one, anyway; now you have an excuse to make one!) I'll show you how to make it, and how to program it JS. For reuse of this video under a more permissive license please get in touch with us. The speakers retain the copyright for their performances.
Watch