by Dean McNamee
Plask (http://www.plask.org/) is a multimedia programming environment. It brings together many of the recent advances in web-related technologies, graphics rendering, and languages, and brings them away from the web.
jsPerf (http://jsperf.com/) makes it easy to create performance test cases and run benchmarks across different browsers and devices -- but it also makes it very easy to do it wrong. Incorrect test cases lead to incorrect results, and we don't want to spread misinformation when it comes to JavaScript performance. In this presentation, we will be taking a look at some common mistakes in jsPerf tests, and we'll learn how to avoid them for great justice.
by Jared Wyles
Everyone seems to have their favourite misfeature of javascript:
Let's take a walk back in time to discover what could have been, the horrors that will be explored from other languages at that time.
I will construct a language on stage made from the best bits of the most popular languages of the time to see what could have been!
We will then reconstruct javascript from the languages that it borrows heavily from, to show just how lucky we were, even after those marketing boffins twisted brendan's arm.
This year js officially becomes jailbait. And even though there is a lot of work in the field, the number of solid tools available to js devs is pretty limited. How many decent IDE's do you know about? Now try other languages. Why has there been so much work in pretty much every popular language except for js? Even though js is one of the most popular lanugages around. Because it's dynamic? Oh sure, the dynamic aspect of the language has some major pitfalls for IDE's, but it's not all hopeless. There is a lot of information to infer. And whether this information is solid or weak, it doesn't matter. The aim of the game is to help the coder, you!
I'd like to show you why creating tools for js is not that difficult. Why the field is lacking in tools. And why, even though you shouldn't rely on tools, they really do make your life much easier. I will use my tool, Zeon.js, as an example on how you can create such tools. I will showcase some simple tricks of getting information from your source and how it can help you be more productive. We might not have the static run through type checking of, say, Java or C, but we can sure get a long way of spotting errors before actually running the code.
by Aaron Quint
Yeah, yeah. I'm the Sammy Guy. I've spent a lot of time thinking about client side tooling and frameworks and building some sizable apps. I have come to the conclusion that they all suck. Maybe even one step further - frameworks in general are not always the correct solution for your problem. That doesn't, however, mean that they're irrelevant. It just means that its not so cut and dry, one is not really better than the other, they all present tradeoffs and all have their strong points. I'll talk in general about why you shouldn't use a client side framework like Sammy or Backbone or Sproutcore or Cappucino and also why you should. These sound like opposites and like I'll be doing a lot of contradicting myself, but thats the whole point! Don't believe the hype, know the facts about framework development and make your choice and stick to it.
by David Mandelin and David Anderson
We're going to get down and dirty with just-in-time compilers for JavaScript, all the way down to the bare metal. We're going to present three major JavaScript JIT technologies. First, we'll crack open general-purpose JIT compilers like Firefox 4's JaegerMonkey. Next, we'll dive into inline caching, which allows JaegerMonkey to optimize property access, and more generally adapt and re-optimize as code runs. Finally, we'll show off fully optimizing compilers like our next-generation IonMonkey project, which uses type information to enable advanced optimizations.
For each technology, we'll give an overview, discuss performance characteristics, and analyze generated assembly code in depth. Warning: presentation includes self-modifying code.
As Sun Tzu says, 'know your enemy'.
To effectively work with the DOM you must first understand the DOM. Not just on the surface, but down to the dodgy hacks that browser vendors use to make it as fast as it is today.
To treat those hack exhaustively would take several weeks, but I'll do my best to cram a suitable portion of them into 40 minutes.
by Ben Green
by Paul Bakaus
In early 2010, Paul Bakaus presented a prototype of the first comprehensive HTML5 game engine. His vision was a future with cross-device, cross-platform HTML5 games that run everywhere, every time. Although HTML5 gaming is trending more than ever, the core challenge still remains: everyone wants to jump on it, but nobody knows how. It is a new frontier, for both web, game, and browser developers. In his talk, Paul will provide an overview of the industry today including the current state of the HTML5 landscape, how it has evolved, and what is to come.
by Andreas Gal
PDFs are traditionally rendered using native code plugins. Often enough those native code viewers turn into unintentional native code execution platforms. I will talk about Mozilla's new PDF.js pure JavaScript PDF render. Flashy demos aside I will in particular focus on performance tricks we use to make rendering fast (we just-in-time compiler PDF content!), and report on limits of the canvas API, and how we plan to fix those since we conveniently also make a popular browser: Firefox. Have you heard of it?
You have never heard of Raphaël? Prepare to be amazed. You know everything about this library? You know nothing about 2.0.
60% of library have been rewritten for a good reason. New animation, transformation and event APIs. I will explain what has changed and more importantly why.
by Paul Kinlan and Jan Kleinert
Users use many different services on the web to handle their day-to-day tasks, such as sharing images, editing documents and listening to music. They expect their applications to be connected and to work together seamlessly.
It's impossible for developers to anticipate every new service and to integrate with every existing external service that their users prefer, and thus they must choose to integrate with a few select APIs at great expense to the developer.
Help is on the way, in the form of Web Intents. Web Intents is a framework for client-side service discovery and inter-application communication.
Web Intents put the user in control of service integrations and makes the developer's life simpler. This talk covers use cases, demos, and a look at what's coming next.
by Tim Becker
Deep in the heart of the bank card industry, where you would least expect it, JavaScript is running on industrial machines to transform pieces of plastic into universally accepted payment vehicles.
This talk will introduce an effort of the chipcard industry to implement various aspects of payment technology, ranging from functionality of the cards themselves to mechanisms used to interact with cards for testing and injecting personal data. GlobalPlatform chose ECMAScript to enable chipcard personalization (http://www.globalplatform.org/sp...), providing interfaces to physically talk to the cards, access hardware security, crypto routines, etc.
I'll demonstrate an open source implementation based on Rhino, which will allow you, provided you have a card reader, to see what's actually stored on your credit card.
by Nikolai Onken, Tobias Schneider and Stephan Seidt
Arduino's, explosions, boats, AR-Drones, robots, Uranium-235 enriched awesomeness and more Arduino.
Kendo UI is a shiny new framework (still beta!) for building stunning UI for both desktop and mobile. It provides everything you need for building sites and apps with JavaScript and HTML. In this quick session, you will get an introduction to Kendo UI from one of the core team members, you will see Kendo UI in action, and you will get a sneak peek at some of what's to come in Kendo UI. Also, be sure to stop by the Kendo UI booth to learn more!
While building boomerang (Yahoo!'s performance measurement tool), we developed many interesting methods to measure network performance characteristics using JavaScript running in the browser. While the W3C's NavigationTiming API provides access to many performance metrics, there's far more you can get at with some creative tweaking and analysis of how the browser reacts to certain requests.
In this talk, I'll go into how we measure things like bandwidth, latency, TCP connect time, DNS time, IPv6 connectivity, and if time permits, port scanning using JavaScript in the browser.
by Tomás Senart
What?
This talk will cover the Audio API wars, their bugs, features, futures and gotchas. Also, we'll look into real-time audio manipulation and it's performance. All the "wizardry" will be explained with "magic artifacts" like the WebAudio API, Typed Array's, Blobs and XHR2. The talk is based on the experience gathered in the struggle building an audio cropper in JavaScript.
Why?
The intent of the talk is to raise the awareness of the audio capabilities existent (or being developed) on the current browsers, also to motivate the JS community to explore the limits of the browsers. A lot of the innovative API experiments are sadly done by the browser developers themselves, this time I'd like to show a view from the other side and tell a story about developing on the 'edge' :)
Have a peek into the future. JavaScript is now more popular than Java/C# and even ACME uses it to write enterprise applications. But there's a new language in town. It's called Blub and all the cool kids are using it. They say that Blub is more powerful than JavaScript, but exactly what does that mean? And shouldn't we just keep using JavaScript?
JavaScript won't be our first choice forever. As attendees of a developer conference, we have broad horizons already, but keeping it up requires constant work. This presentation will do the work for you. It will examine some core features in languages more powerful than JavaScript. It will hurt your feelings, but it will also make you think about what evolution's next step might be like. In the end, it will make you less reluctant to getting your hands dirty with Blub when the time comes.
by Alon Zakai
Emscripten is an open source LLVM to JavaScript compiler. It lets you take code written in C or C++ and run it on the web. It can also be used to compile entire language runtimes, like CPython, letting you run code in those languages on the web as well.
Currently a major focus of work in Emscripten is connecting with 'normal' JavaScript code. In other words, making it easy to compile some existing C++ library, then use it from your handwritten JavaScript on the web.
by Brendan Eich
by Tomasz Janzcuk
by Jed Schmidt
by Thilo Utke
by Eduardo Lima Mitev
by Lea Verou
Polyfills, a term coined by Remy Sharp back in 2010, are scripts that mimic a future API providing fallback functionality to older browsers. The rise of HTML5, CSS3 and ES5 resulted in various polyfills being written by developers all over the world to fill in the gaps of browser support, so we can use new standards before they are universally adopted by browser makers.
In this talk, we will explore various techniques commonly employed in good polyfills and shims, so you can start writing your own when a polyfill for the feature you need is not already available. This way, not only you will be able to improve your own workflow, but also share it with the world and give back to the community.