image

Sascha Depold

Engineering Manager

Blog

JSConf.EU 2011 - Summary of the 1st Day

Alright, …, day 1 of the JSConf.EU is done and while other are trying to minimize the results of the after show party I’ll try to summerize the (visited) talks:

Art

Not a talk at all but a very nice detail was the artist Anna Lena Schiller. The Frulein (see the website) created an artwork for each of the talks in the downstairs area.

Plask

The first talk was by Dean McNamee about the multimedia programming environment Plask. It might be my inability to completely understand native american speaker or the complexity of the topic, but I don’t exactly got the point :D As far as I’ve understood, Plask is an environment which can be used in order to easily analyze multimedia and trigger stuff according to the resulting data. Dean presented some showcases including a visualization of music (via a nicely animated wave stream) and an experiment by a car manifacturer, who filled the inner of the car with gas and placed some LEDs into it. The LEDs were then colored according to the bass of the music. Check out the website for the video.

One thing I’ve noticed, is, that Anna Lena had a type :D It’s “Plask” not “Plusk” ;)

jsPerf

The second talk in the upstairs area was about jsPerf by Mathias Bynens. He was showing the testing tool and known pitfalls. According to him, the most failures made are due to wrong testcase setups. For example it seems to be a common problem that testcases are modifying the test setup without resetting the data. He pointed out, that when your tests are resulting in very different values, the tests are most likely faulty. I will have to take a closer look at jsPerf in the near future.

Sweet sixteen, but where are the tools?

In the third talk Peter van der Zee complained about having so few tools and asked for more people to build tools. He also presented the proof-of-concept software Zeon.js which he announced to be open-source the same day. You can find the Github repositories (here Zeon) and (here ZeParser). Zeon is by now possible to reflect the properties of an object, can detect errors thrown by a function and can also find dead code. It has also a profiling mode, in which the code get’s highlighted according to the currently active functions. He named it a heatmap for code :)

JavaScript JITs

David Mandelin and David Anderson dived into the world of JavaScript JITs afterwards. They talked about typed and untyped JITs and how JavaScript is now only 2-3 times slower than C. Awesome! The explaination have been including the way, JavaScript is turned into Assembler and how it is optimized using code rewriting and dynamic mapping. This talk really reminds me of my studies :D

DOM implementation techniques

Marijn Haverbeke talked about the DOM. He described problems one should avoid while developing frontend stuff. According to that you should avoid reading the DOM as much as you can while you are manipulating it. Doing so will mark the DOM nodes as dirty without re-rendering it at all. So you should first manipulate it as much as possible and the read properties of it. Another thing I’ve learned, was, that DOM implementations are trying to index the nodes. They differ between ID usage, class usage, tag name usage and more semantic usage, which are completely unindexed. So selecting nodes via a class will be much faster than using a semantic selector like “:hover”.

HTML5 Game Engine development

The talk I was looking forward the most, was this one by Paul Bakaus. He reviewed the last two years looking back at Dextrose AG and the lessons learned since then. He announced, that Zynga is open-sourcing four of their libraries, two of them just this day. First thing was ViewPorter, which will maximize the Viewport on mobile devices and take care of things like positioning of elements at [Bottom: 0, Left: 0]. Second one was Scroller, which unifies swiping guesteres and mouse dragging in order to move the viewport correctly over an clipped content. The library also allows sticking to the viewport to specific element borders.

Besides that, he says, that he used external CSS Animations and Transitions in order to get performant graphics calculation. This is no longer needed. Inline CSS will perform exactly as fast as external CSS is doing. Furthermore the Canvas is sometimes no more slower than DOM usage. This has totally changed in the last two years.

Awesome talk!

Web Intents

Paul Kinlin and Jan Kleinert from Google followed with some pretty nice and interesting talk. They first outlined, that it is a pain in the ass to edit an existing photo in the web and then send it to multiple services. They explained, that there should be better inter-application communication and presented Web Intents. Web Intents is basically based on additional meta data of the websites. On the server side you can define routes for specific verbs. The client then calls those verbs via a javascript library and cann send and receive data from the server. They showed an example in which they first took a picture from a website, then manipulated it with a web editing tool and afterwards saved it on another webservice.

Pretty interesting!

Intro to Kendo UI: The JS Developer Sword

Following this very exciting talks, I did the failure to visit the Kendo UI talk by Alexander Gyoshev. Neither the speaker was very interesting nor the topic was well presented. After the talk I really had no clue why to use the framework or what is possible with it… IMHO it is yet another UI Framework based on jQuery. Sorry folks.

Messing with JavaScript and the DOM to measure network performance characteristics

Phillip Tellis did a great job by telling us how to measure the network performance of a client via JavaScript. He explained parts of the communication between client and server and pointed to some problems you have when measuring the network. He explained basics of the Boomerang project and furthermore went into details about port profiling of the clients network. Very very cool!

Beyond JavaScript

In this mindblowing talk Jakob Mattsson talked about the not so dynamic programming languages out there and told the listeners that it would be a very fail to design programming languages with the question “What can it do?” in mind. You should much more thing about “What can’t be done with it?”. Problem with the so called dynamic languages today is, that you can’t change keywords or rewrite the syntax the way you want. So you are forced to use the function keyword and to accept the or-operator as is. He also pointed to an upcoming open-source project by him or his Company Burt.

Emscripten

The last scheduled talk at this day was by Alon Zakai about Emscripten. The Mozilla guy presented a project which transforms LLVM Bytecode into JavaScript code. Doing so he was able to create a bunch of demos available here. One of them (which was also very well presented) is the Python environment, which actually handles datatypes correctly and is behaving most likely as Python would. The guy also talked about common pitfalls, e.g. manually deletion of objects and minor problems with javascript runtimes.

JSLOL

I was almost on my way to the train when Malte Ubl stopped everyone and announced a further talk. Entering the stage was Mr. JS himself, talking about the current state of ECMAScript 6. Brendan talked about the triangle operator doing inheritance between classes (smth like Class <| Base). Furthermore he said, that this is a somehow strange syntax and that they were thinking about the monocle-mustache operator (smth like Class.{a:1, b:2}). In addition he presented default values for functions and much more. He finally announced the official draft of the specification. Someone btw. requested the .js-TLD. Brendan will talk about that with ES6 commitee. I finally got this link, where it is possible to test ES6 in the web.

Talk-Listing

This gist is listing all the related resources of the talks.