Sessions at JSConf EU 2010 with slides

Your current filters are…

Saturday 25th September 2010

  • HTML5 APIs - The New Frontier

    by Robert Nyman

    HTML5 is upon us and it offers a wide range of exciting possibilities when it comes to developing rich web interfaces. This talk will introduce you to a number of them and hopefully inspire you to create amazing things!

    At 10:15am to 11:00am, Saturday 25th September

  • Your library sucks, and why you should use it

    by Peter Higgins

    JavaScript Frameworks, Libraries, and Loaders -- there is no shortage of options. Each are wrong. Each have their own philosophies, usefulness, targets, and flaws. Continuing on the "It's Just JavaScript" theme we'll take a subjective look at the current offerings, what problems they intend to solve, and the reasons you should be using one of them anyway.

    Either roll your own or adopt a major library, but know the caveats and benefits therein. Embrace JavaScript as the elegant, loosely-typed language that it is and leverage it's ubiquity for the forces of good. This is not your average framework-comparison presentation; there will be no charts or performance tests. There will be, however, lively discussion of the current state of affairs in the JavaScript landscape, client and server side. And of course beer.

    At 10:15am to 11:00am, Saturday 25th September

  • Creating Interactive Data Visualizations for the Web

    by Nico Garcia Belmonte

    The Web has never been more open to everyone. Open Data services exist in almost every web application: from social networking apps to governmental pages and the news, all this data can be instantly accessed by exposed APIs. However, although most of this data is offered in a simple interchange format, its structures are quite complex, ranging from complex networks to time-based information, hierarchical data or heavy graphs. Displaying this data in a manner that enables the viewer to gain some insight can be challenging, especially if we aim at providing some interaction and doing it in a cross-browser/cross-device manner. The JavaScript InfoVis Toolkit creates interactive data visualizations for the Web. It's based solely on Web Standards, leveraging the power of native browser technologies to provide insights on complex data. In this talk you will learn about the JavaScript InfoVis Toolkit and how it can help you create advanced data visualizations for the Web.

    At 11:15am to 11:45am, Saturday 25th September

  • JavaScript + Web Standards II: The Quickening

    by Jenn Lukas

    Straight from the JSConf.us talent pool comes the wonderful Jenn Lukas. If you missed her talk in the US, go watch it on blip.tv (when it is released :) because here comes part 2:

    "Part one of this series spanned a broad overview of where JavaScript and Web Standards meet. I also explored examples of how to support progressive enhancement without sacrificing functionality or alienating users. The sequel to that talk will continue on that track and delve deeper into specific examples of JavaScript gone wrong! I will talk about common JavaScript enhanced mistakes that prevent users from enjoying the site experience and provide solutions on how to overcome those. Accessibility and usability should always be on the forefront of your code; this talk will cover take-away tips and general theory all while keeping those goals of best practices in mind."

    At 11:15am to 11:45am, Saturday 25th September

  • If it moves they will watch it

    by Stephan Seidt and Sebastian Deutsch

    Doing animations in the dark ages of the internet led you to technologies like Flash, or even Java Applets. Early arcane magicians tried bending the will of the DOM to create shiny stuff. It felt wrong.

    With HTML5 two technologies arrived to fix that: Say hi to Canvas and SVG!

    Our talk will cover basic usage and use cases of both technologies. By showing demos and real world examples we'll try to give you an understanding of when to choose what. Eventually we will show you libraries based on Canvas or SVG which should save you some time.

    At 11:45am to 12:15pm, Saturday 25th September

  • Techniques and Tools for Taming Tangled Twisted Trains of Thought

    by Tim Caswell

    One of the biggest challenges to the otherwise wonderful programming model of JavaScript is handling complex logic that involves lots of async functions and things that emit events. The inversion-of-inversion-of-inversion-of-control often needed is hard to read, write, and just plain understand.

    With pre-empetive multi-threading you delegate all control to the operating system and it handles concurrency for you. This comes at a great performance cost. However with JavaScript this simply isn't the model, there is one thread and finite snippets of code executed. There is nothing like being able to tell a computer exactly how much code to run and under what conditions and it just works under extreme load and/or concurrency.

    Be prepared to have your mind warped and molded as you are trained to not only accept this fact of life, but embrace it. You'll even be thinking in callbacks by the time this talk is over.

    At 11:45am to 12:15pm, Saturday 25th September

  • Dirty NoSQL

    by Felix Geisendörfer

    Felix was supposed to speak at JSConf 2010 in Washington, DC, but then there was a volcano!

    What would happen if your database would have no network interface, no query abstractions and less than 250 lines of node.js code? You would end up with a very flexible in-memory database that is wonderfully suitable for dirty tasks such as rapid prototyping or performing millions of GET/SET operations per second.

    This talk is about rethinking current database technology and exploring situation-based CAP tradeoffs.

    At 2:15pm to 2:45pm, Saturday 25th September

  • PhoneGap: Love the Web and Lose the SDK

    by xnoɹǝʃ uɐıɹq

    Building native mobile applications across platforms with PhoneGap is super easy but developers are still required to install a dizzying array of SDKs for: iOS, Android, Blackberry, webOS, Symbian, MeeGo and Windows Phone. At JSConf.eu the PhoneGap team is releasing a special sneak peak at two new projects which aim to solve this problem. Unlike our previous sessions which have been information dense lightened up with pixel art and 4chan pictures this session will be more code intense: with pixel art and 4chan pictures!

    At 2:30pm to 3:15pm, Saturday 25th September

  • node.js in production use: tempalias.com

    by Philip Hofstetter

    In order to find out whether node.js is ready for production use and to scratch an itch, tempalias.com was started as a fun project.

    The service allows anybody to create a temporary email alias with a limited validity (either time- oder usage based). Mail sent to that alias within the validity constraints is then forwarded to any address of your choice.

    The talk gives a behind-the-scenes look on how the (free software) project was built and how its architecture works. On the process, we'll learn how to build a web application without dynamically generating a single byte of HTML on the server side, how SMTP works, and how to implement a bookmarklet without destroying arbitrary target pages. And we'll learn how to design a daemon in a way sure to bring your server down under load :-)

    The whole service reeks of JavaScript all over: Webserver? Javascript. SMTP-Server? Javascript. Web-Application? Javascript (and a bit of HTML).

    Aside of the technical issues, we'll also have a look at how to be a good citizen in the open source community by providing upstream with usable and easily applied patches. And as it's the case with all cool free services, we'll learn how to deal with Spammers.

    At 2:45pm to 3:15pm, Saturday 25th September

  • Lessons learnt pushing browsers to the limit

    by Ben Firshman

    Applications that were once on the desktop are now appearing on the Web, bringing a whole new set of performance challenges. After writing a console emulator in JavaScript, I have a few tips to share that might be applicable to your more sensible applications. I will talk about the differences in performance between modern browsers, tweaks that can have a huge impact on the speed of your code, and some fun hacks.

    At 3:30pm to 4:00pm, Saturday 25th September

  • Rapid Prototyping for Multiple Platforms with JavaScript

    by Joe McCann

    This topic will cover the concept of what rapid prototyping is, why it is important in the design and development process, and how you can not only leverage the power of JavaScript to rapidly develop proof of concepts and prototypes, but build them with multiple devices in mind.

    Digging Deeper
    The area of Research and Development (R&D) in software, web and user interface engineering is making quite a statement in many large and small scale organizations lately. With such a vast amount of data and web service APIs available to developers, coupled with a huge demand for multiple systems integrating seamlessly across several platforms and devices, it should come as no surprise that companies are creating "Labs" departments left and right to create the "next big thing."

    In order to cultivate innovative products and services, designers and developers need to research, ideate, and collaborate to develop creative approaches to current products or services, or even fill voids for users for products or services that have not been created. Developers need to quickly build out prototypes of these ideas in order to not only implement the ideas and prove the value of the concept, but to also provide new products and/or services for the business itself (and keep the R&D department alive!).

    Rapid prototyping is exactly as it sounds: creating a prototype of a concept or an idea in a very short amount of time. For years, such rapid prototyping and development of various simulations was heavily dominated by the Flash and Actionscript world. Now, with the speed and power of current JavaScript interpreters and its ubiquity across arguably the most used piece of software known to man (the web browser), JavaScript, in harmony with HTML and CSS is quickly becoming a go to resource for hashing out proofs of concepts.

    From My Presentation, You Will Learn...
    What rapid prototyping is and why it is important.
    Some actual results of rapid prototyping (case studies) with JavaScript.
    What tools you can use right now to build rapid prototypes (including Titanium Desktop, Phonegap, CouchDB, Node.js, JavaScript Templating, Webview for Android and plain HTML5 and CSS3).
    Tips on baking in ideas like performance, scalability, and maintenance into the prototypes and why you should avoid them.
    How to utilize a single codebase for usage across various devices and platforms including the desktop browser, the mobile browser and mobility products (e.g. Ipad).

    At 4:00pm to 4:30pm, Saturday 25th September

  • Using canvas to develop classic 2D games

    by Mutwin Kraus

    With recent advancements in JavaScript interpreters it's possible to run more complex games inside the Browser, using JavaScript and the canvas tag.

    In this talk, we'll explore what is needed to develop a 2D game, like Monkey Island, entirely in JavaScript, by example of JSScummVM, a (work in progress) JavaScript port of the adventure game engine ScummVM.

    Some of the topics covered are: palette graphics, Sprites, manipulating canvas image data, Blitters, Timing, Sound and new technologies like WebGL and Chrome's Native Client.

    At 4:00pm to 4:30pm, Saturday 25th September

    Coverage slide deck

  • The jQuery Divide

    by Rebecca Murphey

    Project managers, bosses, and teams are picking jQuery as their go-to JavaScript library at an ever-increasing pace. Nobody wants to choose a loser, and as demonstrated by super-meaningful Google graphs and surveys that count my grandfather's blog alongside leading web sites, jQuery is leaving all the other libraries in the dust. Plus, it's easy! And there's a plugin for everything! And with all those sites using it, finding someone who can write thoughtful, maintainable code with it will be totally no big deal. Right?

    This talk is a call to arms. This is not just JavaScript -- it's JavaScript, damnit, a language worthy of respect and, *gasp*, knowledgeable developers. When well-meaning but uninformed deciders and developers see jQuery as the be-all-end-all answer, conflating a knowledge of jQuery with a knowledge of JavaScript, we all lose. As a community, we owe it to the language -- and ourselves -- to give those deciders and developers the context they need to make well-informed decisions. Maybe jQuery is the right answer; but first, they need to truly understand the question.

    At 4:30pm to 5:00pm, Saturday 25th September

  • Proxy Objects

    by BrendanEich

    Proxy Objects are going to an amazing new addition to the next version of ECMAScript. You will be able to allow a proxy to intercede any method or internal within the ECMA specification, allowing you to wrap everything in the JavaScript object domain. This is super powerful for logging, debugging, operation inversion, and if you can wrap the entire DOM and record timestamps, this might be the magic bullet that will allow you record and replay DOM interactions. We are bringing metaprogramming or Meta Object Programming to JavaScript and this will be your first peek at this awesome technology.

    At 6:00pm to 6:45pm, Saturday 25th September

Sunday 26th September 2010

  • The hitchhiker's guide to client side persistent data storage

    by Jens Arps

    Plugin-independent client side data storage, like HTML5 powered localStorage or IndexedDB, is becoming more relevant every day, though it had been there for ages. In fact, IE 5.5 was the first browser to offer data persistence in other forms than cookies. However, today, as we are online most of our time, handling offline situations has become important for many web apps. And for mobile dev, storage is crucial: You wouldn't want to pull some hundred k of data via a slow connection again and again.

    "This talk will take a tour around existing client side storage mechanisms. We'll start with cookies and see why it's a bad place to stay. Then we'll quickly move on to the good neighbours, visiting ancient places as well as futuristic ones and investigating their ins and outs. And we'll also stop by the frameworks/wrappers that give easy access to them. To make things more interesting, we'll then board a submarine and dive into the crazy world of mobile devices, it's special demands and see what options exist over there. Finally, we'll have a look at performance and security concerns. Don't forget your towel!"

    At 11:00am to 11:30am, Sunday 26th September

  • The State of HTML5

    by Paul Irish

    HTML5 and friends have been getting implemented in browsers at an impressively quick pace. But that leaves us as web developers wondering, "Great, but how am I supposed to build cross-browser applications with these features when I still have to support IE".

    We'll take a look at what the landscape of implementable features are, detailing best practices of implementation and fallback solutions where appropriate. For example, how do you pair WebSockets with a standard comet stack and what do you have to watch out for.

    We'll also review your available feature set if you're only targeting webkit mobile, or if you've already given IE6 the boot.

    The data will be up-to-the-day accurate, covering all major browsers and filled with best practices from topic experts.

    At 11:00am to 11:30am, Sunday 26th September

  • Not your Mother's JavaScript!

    by Tobias Schneider

    JavaScript was made for the web of yesterday, but the web has changed significantly in the past decade and therefore the requirements of a JavaScript for tomorrow. I'm a JavaScript hacker and its in the nature of hackers that having a better language tomorrow isn't fast enough for us.

    Let me show you how to deal with the flexibility of today's JavaScript implementations to make things, which you may haven't seen before running in a Browser but will definitely become needed parts for the future of web development. This will be about shifting bits and bytes, misusing native file formats, overloading operators, uncommon using of getters/setters and some more evil JavaScript hackery.

    At 11:45am to 12:15pm, Sunday 26th September

    Coverage slide deck

  • Techniques for a single stack world

    by ryah

    After last year's standing ovations performance, he is back. His last talk's video was viewed 12 thousand times. We're excited what will happen this year.

    Node.js presents the same non-blocking, single execution stack programming model of client-side Javascript. However, Node is arguably aiming at more complex problems than browsers have faced: massively concurrent servers that may shell out to many different processes, that might need to execute many sequential file system operations. Can this programming model support such systems or does the code degenerate into a spaghetti of callbacks? This talk will present an emerging set of patterns being used in this new domain.

    At 11:45am to 12:15pm, Sunday 26th September

  • Getting Functional with (fab)

    by Jed Schmidt

    (fab) is an HTTP framework for that eschews the conventionally muddled web stack of middleware, routers, and handlers for a cleaner, more functional approach. By stressing convention over code, (fab) enables any web app to be recursively composed of other web apps, using a chained pattern that enables the full power of javascript but the simple readability of a site map. In this presentation, Jed will show you how to use (fab) to get up and running with your own reusable apps on both the client and server.

    At 12:15pm to 12:45pm, Sunday 26th September

  • Introducing Unify - A Framework for Cross Platform Applications

    by Sebastian Werner

    Mobile applications are a huge trend at the moment. But there is one major drawback: You need to develop them from scratch for every-single-platform. That hurts. Web technology seems like a natural choice to develop cross platform and fundamentally increases efficiency during development. This talk is about the richness of Unify applications, the focus of the project and our future plans.

    At 12:15pm to 12:45pm, Sunday 26th September

  • Don't write spaghetti code in server side JavaScript

    by Tom Hughes-Croucher

    Sever Side JavaScript (especially Node.js) is a hot topic right now, but we are still figuring out what good SSJS code looks like. It isn't enough that we can write JavaScript on the server, or even that it is well written JavaScript. It's essential that we write maintainable JavaScript for the server environment. This talk will examine different coding styles for event driven, non-blocking SSJS and which styles are most successful.

    We'll take a look at strategies that other languages and frameworks with similar attributes such as Clojure, Erlang, Python/Twisted and Ruby/Event Machine use. From these languages we'll take a look what has worked well and what hasn't. We'll explore how these models can apply to JavaScript to create patterns that can be used to make code more maintainable.

    Since JavaScript is already an event driven language there is already a lot of support for events, and developers are used to developing code with the event driven browser. However, how we use these features on the server with it's additional freedom can either help or harm the long term use of our code. One of the obvious code defects created by poor use of the evented model in JavaScript is Pyramids. Pyramids are huge chains of nested, dependant anonymous callbacks piled one on top of another until you end up with a pyramid of code, left to right. Pyramids are one of the first, obvious, mistakes people tend to make when beginning SSJS. We'll also discuss some of the less obvious ones and explore ways of avoiding them.

    At 12:45pm to 1:15pm, Sunday 26th September

  • Socket.IO: WebSockets for everyone

    by Guillermo Rauch

    The realtime web is right around the corner, and JavaScript is here to help, both on the server and the client side. The WebSocket protocol promises to solve the problem of bidirectional communication once and for all, but can we leverage it today?

    Socket.IO provides an API that enables WebSocket for every browser (IE5.5, IE6, IE7, IE8, Safari, Chrome, Firefox 3-4, Opera 10) and multiple mobile devices (including the iPhone and the iPad).

    I'll talk about how you can get started using Socket.IO today, how people are using it in production environments, and how to create realtime web applications with just a few lines of code.

    At 12:45pm to 1:15pm, Sunday 26th September

  • Robotic JavaScript

    by Jörn Zaefferer and Nikolai Onken

    Have you ever wondered if we could use JavaScript to do the following?

    $("livingroom").bind("motion", function() {
    Or did you dream about writing applications in HTML, JavaScript and CSS which could tell you how much you weigh or what the outside temperature is? What if we had a web-based interface to setup and program all our devices at home?

    Well, your dreams are heard and finally, today we are able to do all this. In this talk we will walk through the implications of opening up the browsers APIs, explore real life use-cases and will demonstrate working examples which will show that JavaScript, HTML and CSS are the perfect tools to build interfaces controlling and reading hardware.

    This presentation will highlight various options (like LinuxMCE, Arduino, Lego Mindstorms NXT) for programming hardware, along with a few pratical experiments like scripting a bluetooth-connected Wiimote, a web-enabled socket outlet and interacting with an Arduino board and sensors directly from an iPhone. Code and instructions for each experiment will be available later

    At 3:00pm to 3:45pm, Sunday 26th September

  • Browser Extensions for Web Hackers

    by Mark Wubben

    Building browser extensions is now easier than ever. Jetpack, Chrome and Safari 5 combine open web technologies with a few special APIs and clever design, opening up extension development to any web hacker.

    In this talk we'll build a few simple extensions for Chrome, introducing the main concepts in their extension system. We'll compare and contrast with Jetpack and Safari 5. Expect working code and a energetic presentation!

    At 4:00pm to 4:30pm, Sunday 26th September

    Coverage slide deck

  • The Front-end Takeover

    by Aaron Quint

    With all the talk and hype over server side platforms and technologies, somehow we've been neglecting the most ubiquitous and widely used javascript platform - the browser. Differences aside, the web browser and the desktop are becoming more and more entwined and just generally faster. Now is our chance to make web applications that surpass the usefulness and awesomeness of desktop counterparts. Sure, there are technologies that allow you to bring desktop style code to the web. With Sammy.js, I'm more interested in creating web style apps that can compete as desktop experiences. Sammy.js is a very simple framework for organizing browser based javascript applications. Despite its size, when combined with other cutting edge technologies, (CouchDB, other RESTful DB's, Comet) it becomes a very powerful way to write entirely front-end, entirely JavaScript applications. I'll walk through the basics of Sammy, show some cool examples of Sammy in production, and talk about new features and technologies that make this all a pretty exciting time to be writing JS.

    At 4:00pm to 4:30pm, Sunday 26th September

  • Not your unit test

    by Alexander Lang

    I will talk about the different aspects, approaches and tools for testing javascript applications (web and offline, server and client side). There's much more you can do in testing than just writing a bunch of unit tests. To be confident in the code you write you also need to test the interactions between different modules, sometimes even integration with other services. Let me show you how.

    At 4:30pm to 5:00pm, Sunday 26th September

  • Performance Patterns

    by Stoyan Stefanov

    In this talk Stoyan will share bits of his forthcoming book "JavaScript Patterns" (published O'Reilly) focusing on performance. How do we evaluate and measure performance and patterns to improve and write high-performance JavaScript.

    At 5:15pm to 6:00pm, Sunday 26th September