•  

JSConf EU 2012 schedule

View as grid

Saturday 6th October 2012

  • Breakfast

    At 8:30am to 9:30am, Saturday 6th October

    In Alte Münze Berlin

  • The Keynote

    At 9:30am to 10:30am, Saturday 6th October

    In A – Production, Alte Münze Berlin

  • A programming language for children

    by Mary Rose Cook

    A child starts learning to read and write at age 5. Why can’t they start learning to program then, too? I am making Isla, a first programming language for young children. The accompanying environment is called Storytime and lets a child use Isla to write text adventures.

    I’ll describe the Isla compiler and how I implemented the lexer, parser and interpreter. I’ll describe the design of the Isla grammar. Why is there no punctuation? Why are expressions like sentences? How did I enable array and object assignments, function calls, conditionals and logical rules in baby talk?

    At 10:30am to 11:00am, Saturday 6th October

    In A – Production, Alte Münze Berlin

    Coverage video

  • Low Level JavaScript

    by Michael Bebenita

    Low Level JavaScript (LLJS) is an experimental language that lets you write memory-efficient and GC pause-free code less painfully. The research goal here is to explore low-level statically typed features in a high-level dynamically typed language. It can achieve predictable performance. It can make writing code that interfaces with WebGL almost pleasant. It’s not pretty, but it gets the job done.

    At 11:15am to 11:45am, Saturday 6th October

    In B – Bubble, Alte Münze Berlin

    Coverage video

  • Rebuilding Facebook Chat

    by Adam Wolff

    Facebook chat used to be notoriously unreliable. User complaints about disconnection, incorrect message counts, and missed messages dominated Facebook’s overall product feedback. New code frequently caused regressions because of untracked dependencies in our ginormous, monolithic codebase.

    Not long ago, a small team set out to fix this by introducing modularity and unit testing. Along the way, we developed an approach that abandoned conventional MVC in favor of a functional style. The rewrite was a success: we were able to improve every important metric for chat, and we have continued to add features without causing regressions. Come learn about how we did it.

    At 11:15am to 11:45am, Saturday 6th October

    In A – Production, Alte Münze Berlin

    Coverage video

  • IcedCoffeeScript

    by Max Krohn

    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.

    At 11:45am to 12:15pm, Saturday 6th October

    In B – Bubble, Alte Münze Berlin

    Coverage video

  • WebRTC: Real-time communication without plugins

    by Sam Dutton

    **Imagine a world where your phone, TV and computer could all communicate on a common platform. Imagine it was easy to add video chat to your web application. That’s the vision of WebRTC.**

    WebRTC implements open standards for real-time, plugin-free video, audio and data communication.

    As Brendan Eich put it: “WebRTC is a new front in the long war for an open and unencumbered web.” We believe WebRTC can democratise and decentralise tools for content creation and communication – for telephony, gaming, video production, music making, news gathering and many other applications.

    In this session show you how to use WebRTC to build real-time communication into your web apps:

    • what are MediaStream, PeerConnection and DataChannel?
    • how does WebRTC signalling work?
    • what are ICE, TURN and STUN?
    • what do I need server-side for WebRTC?

    At 11:45am to 12:15pm, Saturday 6th October

    In A – Production, Alte Münze Berlin

  • Don’t dream - make the WebAPI of your dreams become real!

    by Julian Viereck

    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.

    At 12:15pm to 12:45pm, Saturday 6th October

    In B – Bubble, Alte Münze Berlin

    Coverage slide deck

  • Effectively Building Language Tools

    by Lennart C. L. Kats

    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.

    At 12:15pm to 12:45pm, Saturday 6th October

    In A – Production, Alte Münze Berlin

  • JavaScript as a compilation target - Making it fast

    by Florian Loitsch

    We would like to present dart2js, our Dart-to-JavaScript compiler. We have implemented many optimization techniques and in this talk we would like to present some of them. In particular we want to discuss tree-shaking, speculative optimizations, and local SSA-based optimizations. While our compiler is specialized for Dart, most of the optimization techniques could be adapted for other languages and are therefore interesting to anyone targeting JavaScript as a compilation target.

    At 1:45pm to 2:15pm, Saturday 6th October

    In A – Production, Alte Münze Berlin

    Coverage video

  • Taking Web Apps Offline

    by Kevin Markman

    The story behind Google Docs Offline and some of the fantastic hacks put in place to make it work. We changed people’s mindsets to “think offline” while re-architecting the apps to not rely on the network. Moving an internet company offline involves some hard work and has some serious challenges (performance, cross-browser compatibility, platform bugs, etc).

    At 1:45pm to 2:15pm, Saturday 6th October

    In B – Bubble, Alte Münze Berlin

    Coverage video

  • Bringing Data to your Client-Side Apps

    by Irene Ros

    Data is everywhere! We build applications that collect it, and even better - other people collect it and give us access. But! Do we bring that data back to our apps? In this session, we’ll talk about patterns for integrating data into our client-side applications and sweep through a collection of exciting libraries that work with those patterns.

    At 2:15pm to 2:45pm, Saturday 6th October

    In B – Bubble, Alte Münze Berlin

    Coverage video

  • To hell with jQuery

    by Karolina Szczur

    Have you ever wondered why developers tend to use jQuery and other JavaScript libraries while their goals can be easily achieved in plain CSS? Both CSS3 and future CSS specifications give us endless possibilities for styling, animations and selecting objects without unnecessary DOM manipulations. A how-to for JS avoidance.

    At 2:15pm to 2:45pm, Saturday 6th October

    In A – Production, Alte Münze Berlin

  • Client Side Internationalization

    by Alex Sexton

    With the exception of some of the big players (google plus, facebook), the proper internationalization of a JavaScript application is almost unheard of. The tool chain to make this happen isn’t well-known and doesn’t even necessarily exist in some cases. There’s a lot to consider when internationalizing an app. Number and Date Formatting, Left-to-right display, pluralization and gender aware sentences are among them. The ES6 globalization effort may tackle some of the bigger problems (like collation), but we’re still on the hook to get these things right as we move towards catching up with the rest of the application stacks.

    At 2:45pm to 3:15pm, Saturday 6th October

    In B – Bubble, Alte Münze Berlin

    Coverage video

  • Faster JavaScript with Category Theory

    by John Bender

    Math: It’s certainly not something you expect to see at a conference about JavaScript, but even this far from its ivory towers it has an important role to play. Together we’ll build two categories and see how satisfying the Functor laws suggests a whole new architecture for jQuery that will help developers speed up their client side DOM manipulation.

    Don’t worry, you don’t need to know any Math to understand and enjoy the talk, just some curiosity and a desire to make your JavaScript faster!

    At 2:45pm to 3:15pm, Saturday 6th October

    In A – Production, Alte Münze Berlin

    Coverage video

  • Government.js - Building the JavaScript Party

    by max ogden

    Last year I took a fellowship inside the US government and spent most of the time trying to find ways to write JavaScript that fixed all of things we hate about government. Here’s the conclusion: You should start a company and sell your software to your government.

    At 3:30pm to 4:00pm, Saturday 6th October

    In B – Bubble, Alte Münze Berlin

  • Improvisational JavaScript

    by Garann Means

    In the book Bossypants, Tina Fey gives three rules of improv: 1. Always say yes, 2. Say yes, and, 3. Make statements. These rules are a damn good approach to dealing with the unexpected in comedy or anything else. Error handling in JavaScript, for example. The way JS deals with exceptions is already a little unpredictable - instead of fighting that, let’s take advantage of it to create better user experiences, more powerful services, and room for hacks and happy accidents.

    At 3:30pm to 4:00pm, Saturday 6th October

    In A – Production, Alte Münze Berlin

    Coverage slide deck

  • JavaScript inheritance: beyond the basics

    by Axel Rauschmayer

    After giving a brief overview of JavaScript inheritance basics, this talk delves into advanced topics and answers questions such as the following ones:

    • What is the difference between constructor inheritance and instance inheritance?
    • What is the property `constructor` about?
    • How does the `instanceof` operator really work?
    • How does one reference a super-property in JavaScript?
    • What is the `__proto__` property? Does it have a future?
    • Will JavaScript ever have classes? How would they work?
    • How do I implement a type via an object instead of via a constructor function?

    At 4:00pm to 4:30pm, Saturday 6th October

    In A – Production, Alte Münze Berlin

  • Break all the rules

    by Angus Croll

    Good programmers follow best practices; great programmers investigate them.

    Many JavaScript sources proclaim (with miraculous certainty) that some tricky language features are anti-patterns that must be avoided at all costs, while offering little or nothing in the way of substantive evidence beyond alarmist warnings or references to their favorite gurus. We shouldn’t ask people to follow rules that we can’t explain or propose actions that we can’t defend.

    This talk will demonstrate that, whether its double-equals coercion, iteration without hasOwnProperty, augmenting native prototypes or even fraternizing with the evil ‘eval’ and ‘with’, there is a time and place for virtually every feature of JavaScript and taking the time to study and understand their potential will enrich the programming experience, just as a broader vocabulary enriches the speaking experience. The talk will feature copius real life examples drawn from respected libaries and tools.

    At 4:30pm to 5:00pm, Saturday 6th October

    In A – Production, Alte Münze Berlin

  • Firefox for Android

    by Margaret Leibovic

    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!).

    At 5:15pm to 5:45pm, Saturday 6th October

    In A – Production, Alte Münze Berlin

    Coverage video

  • Let your tool help you imagine

    by Kirill Safonov

    Usually, when you make changes to code you need to imagine what this code will do, how your components will look like and how colors fit. But you’ve got a computer for that!

    I will show you how immediate feedback on your changes to JavaScript, HTML or CSS code helps to be more productive, inspire yourself and catch new ideas. In my opinion, this is definitely going to be the next best practice in Web development.

    At 5:15pm to 5:45pm, Saturday 6th October

    In B – Bubble, Alte Münze Berlin

    Coverage video

  • JavaScript is the new Punk Rock

    by Stuart Memo

    On 4th June 1976, the Sex Pistols played Manchester’s Lesser Free Trade Hall. It was an event that changed the world forever. There were only about 40 people there, but those who attended were inspired to form their own bands, creating Joy Division, The Buzzcocks, The Fall and The Smiths. As these bands fade away, we’re long overdue for another such event. Programmers are artists, and JavaScript is the new Punk Rock.

    My talk will show that JavaScript can be used to write and perform music using the wonderful Web Audio API. I’ll talk about why we should do this and why it’s the future of music. By the time the conference is over you’ll have burned your guitar, remixed a dozen tunes on GitHub, and started a JavaScript band that has its sights set on changing the world.

    At 5:45pm to 6:15pm, Saturday 6th October

    In A – Production, Alte Münze Berlin

    Coverage video

  • Rendering Mona Lisa by Solving the Traveling Salesman Problem

    by Daan van Berkel

    Javascript is ubiquitous, but can it solve real though problems? The [traveling saleman problem](http://en.wikipedia.org/wiki/Travelling_salesman_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](http://en.wikipedia.org/wiki/Mona_Lisa "Wikipedia on Mona Lisa").

    At 5:45pm to 6:15pm, Saturday 6th October

    In B – Bubble, Alte Münze Berlin

    Coverage video

  • Because F$%k Photoshop

    by Julie Ann Horvath

    I’ve seen the future, and it’s not in that layered .psd your designer just handed you. As designers and developers, we build things. And we do it often. But we don’t build websites or apps. We build systems. Systems that evolve and grow with a company, its users, and both of their needs. The way we design and build these systems should reflect the living, breathing things we want to create and leave more room for them to grow. The question is how do we accomplish this with static assets?

    The answer is we set them all on fire. And start in the future. We start in the browser.

    At 6:15pm to 6:45pm, Saturday 6th October

    In B – Bubble, Alte Münze Berlin

  • Code Collage

    by James Halliday

    Lines of code are spent. Writing maintainable software and combating technical debt requires constant vigilance and an uncompromising aesthetic affinity for small components that do one thing well. This talk will look at the shape of code ripe for modularization and exactly what steps are required to turn convoluted tangle of code into dozens of reusable sub–components suitable for publishing to npm.

    At 6:15pm to 6:45pm, Saturday 6th October

    In A – Production, Alte Münze Berlin

    Coverage video

  • Closing Day 1

    At 6:45pm to 7:00pm, Saturday 6th October

    In Alte Münze Berlin

  • Dinner / Chill Out

    At 7:00pm to 8:20pm, Saturday 6th October

    In Alte Münze Berlin

  • PARTY

    At 8:30pm to 8:30pm, Saturday 6th October

    In Alte Münze Berlin

Sunday 7th October 2012