And that’s it. JSConf.EU 2011 is done. Great conf! Here is my summary about the second day’s talks.

High density server side java script

The first talk of the day was by Tomasz Janczuk about High density server side java script. The microsoft speaker was talking about possibilities to lower hosting costs for lightweight applications (actual node apps). He assumed costs of 5 per month as current normal hosting costs. Way too much, according to him. Tomasz splitted the currently process based hosting approach into threads. Doing so, each application won’t run in a single process but in process’ threads. Because the resulting price reduction was not enough, he was going on. An explaination followed, which outlined the hierarchy of V8 apps with it’s V8::Isolates and it’s V8::Contexts. Basically each application has an isolate and in that one specific context. However, Tomasz was splitting the Isolate into multiple contexts, running each an application. This was finally resulting in a demonstration of 1000 chat servers running all in a single thread’s V8::Isolate. If I remember correctly the final price was about 0,30 a month.

Tomasz was using the tool Denser, which spawned the processes and started a web gui with some information about hardware usage and network traffic. You can find it here.

Buzz It For Real ! … the tortuous road to Mobile HTML5 Apps

The next talk was about the ability of current browsers to support “HTML5”. Andrea Giammarchi made clear, that there’s neither a finished specification of it nor does current browser support it consistantly or completely. In order to get those features work, the Nokia guy pointed to polyfilling the missing stuff. To get those fallback solutions work, it’s the first step to detect if the feature is already natively supported or not. He described the stoney way to detect the browser’s compatibility to touch events and that there are browers which seems to support it but actually fail when using it. After that he also told about missing fallback solutions for canvas usage, due to missing flash support in many mobile devices. Limitations in LocalStorage followed: Only 2.5MB of space, no getter for current storage size, no timestamps in values. To get rid of those problems, he throwed Web SQL into the buzzword bingo jungle. 50MB space on iOS, unlimited space on Android, the possibility to increase the storage size dynamically: “too fast, too easy and ABANDONED by W3C!” Conclusion of him: No HTML5 feature is really cross-browser compatible, but it’s taking the right direction. “Challenge accepted”. Here are the slides of his talk.

Demand More From Your JavaScript Editor

After this awesome talk I headed to the upstairs area to learn about cool JS IDEs… Well, let’s just say that the speaker was Maxim Mossienko, a JetBrains guy, talking about how super awesome the WebStorm application is. I left after some minutes…

I just ran into another great talk of Jed Schmidt presenting the idea of golfing JS code to 140 bytes. I assumed, that the talk would be the very same as at Berlin.JS some weeks ago, but he ended up with some nice tricks to minimize code size. He also pointed to some other projects of him: kibi and Namedrop. If you haven’t heard Jed speaking you definitly should give it a try. Awesome speaker.

Magic Wand for surface generation

The next talk was by Jakub Siemitkowski about using Voxels in JavaScript games. I had not assumed that much of maths details but the talk was ok. After explaining why Octotrees and Voxels are pretty useful, he showed a demo of what he built, crashed his browser and told about some improvents, he want to add in the future. Fun fact: Someone asked, why he is using firefox over Chrome or Safari. Answer: Because Firefox is the only browser which is not crashing initially. :D

Polyfilling the gaps

Lea Verou followed up with an awesome talk about polyfilling. She defined rules for polyfilling correctly, meaning basically that one should only fix things as specified. So don’t add additional functionalities, as polyfills are meant to be replaced by a native implementation without any changes on your code. You can find the slides here.

All Your Browsers Are Belong To Me

The next talk was about playing sound on multiple machines dynamically. James Coglan asked the audience to open an URL in firefox. Doing so James was able to control the sound output of each client. The challenge was to synchronize the sound of all clients, while sending different data to each of them.

Community JS reloaded - how to rock as a movement

Afterwards Chris Heilmann entered the stage. The Mozilla guy complained about the current ongoing in the JS scene, resulting in some “rock stars”, which the masses follow. He wants more people “to join the band”. Furthermore he told about some things, that should be followed when joining. First thing: stop breaking other people’s rules. So one should e.g. adapt the syntactical style when commiting to someone’s project. He went on talking about, how to communicate to another person without criticism and with many other stuff. Finally he spent some time to talk about future Firefox features for debugging and styling. You can find the slides of Chris here.

dyn.js - 100% invokedynamic js impl

Douglas Campos then presented a Rhino-like JavaScript Runtime based on the JVM 7, which just introduced semi dynamic data types. First he told the audience how awesome the Rhino-devs were, when they developed the Runtime for Java 2, which he said is known for it’s slowness. He went on, explaining how he is connecting the dynamic datatypes of JavaScript to the so called invokedynamics. The project actually handles ECMAScript 3 but gets updated to 6, once it’s final. You can find the project here and the slides here.

Why JavaScript is the only language that matters - the story behind jsmad

Amos Wenger continued with the story behind the mp3 decoding service jsmad. He compared Flash to HTML5 and showed things, that Flash can handle for years and … current browsers can’t. He always made clear, that the specification is pretty awesome but the browsers are implementing it wrong or only partly. He also pointed to an issue with MP3: The patent holders have to be paid for ever single usage of MP3 on the web. You can find the slides here.. Awesome talk BTW.

Garbage collection in JavaScript

Erik Corry from Google was talking about garbage collection in JavaScript afterwards. He showed a demo of how V8 will doing GC.

Why Do We Need Two Eyes?

Michal Budzyinski had an awesome talk about anaglyphs. He talked about the history of anaglyphs and how the things are actually working. The basic idea is to take two pictures with the same content but with a minimal change to the camera angle. A live programming session followed, in which he was converting images to canvas and manipulating them to extract red and blue from the one and red from the other image. He then combined both images to get an anaglyph version. Pretty cool :) Slides here.

An End to Negativity

The final talk was by Chris Williams himself, making clear, that many people in the programmer scene are hating way too much. He want’s the see this stopping and also called for support for people, which are getting hated. He asked the audience what programming languages they are using and if they think, that it does matter if they are using PHP, Ruby or whatever else. A rhetorical question of cause. Funfact: Before the talk started, he wanted to call his wife + child to be part of the talk, but that failed. Some listener offers a dial with his mom, which he just facetimed and which was obviously confused :D