jsfest week 2014

rejectjs banner

Last week I had the opportunity to spend a long weekend in the beautiful capital of Germany for jsfest.berlin. What should I say? It was amazing.

After eurucamp set quite a basis for "great conference", reject.js and jsconfeu had no easy start, but the people, the organization, the venue and the talks totally made up for the less good weather.

The 3 conference days were packed with interesting talks, quite a few parties and great food. JavaScript seems to be quite a nice language (sometimes) and people do awesome stuff with it. From sleep-hacking over making music and animations to making gifs even more awesome. Oh, and some stuff others would consider more useful in work life too.

rejectjs badge

The only downside was that I in fact didn't really have time for a whole 4 days off, so I wasn't too focused on the reject.js talks and I might have missed good things from it :(

But the two talks I did attend and where I was attentive where Hacking Sleep with JavaScript by Nick Rowe and Location-based Pokémon with Node.js by Stefanie Taepke.

Nick built himself a nice smart home powered by node.js, with automatic light dimming for an even better sleep. Definitely an interesting topic, though his setup isn't the cheapest one. Stefanie built a prototype of a Location-based Pokémon game. There's an online Pokédex you can use if you want to do something similar: Pokéapi - The Pokémon RESTful API.

For jsconfeu I was more focused and I tried to take at least a few notes per talk to remember all the stuff I heard. I did manage to tweet a photo of each talk I attended, so if you're into that check my twitter stream from Saturday and Sunday.

Following are a few short notes per talk.

Day 1

After a nice intro (wait for the videos), Jake Archibald started with The ServiceWorker is coming; look busy. With this new addition to the browser stack web app can finally easily compete with native apps when it comes to notifications, background sync and offline-first. Definitely worth a watch.

The talk was followed by We Will All Be Game Programmers from Hunter Loftis. Today's apps use a lot of the ideas that were used in games years ago, maybe we should have a look at game developing techniques and tooling a bit more to see what's relevant for modern web app programming.


JavaScript Level 9000 by Christoph Martens explained a lot of low-level stuff in JavaScript. I'm not that into JavaScript yet, so I didn't take too much from it with me.

Next I watched Mathias Bynens talk about why JavaScript ♥ Unicode. There are quite a few changes how to properly handle Unicode in ECMAScript 6 and also a few libraries to make Unicode usage a lot easier today. Simply look through his notes and slides. For some 💩-humor watch the talk once it is out.

This was then followed by Parallel JavaScript from Jaswanth Sreeram. I'm currently writing my bachelor thesis in the field of high-performance computing and parallel computing, so this seemed quite relevant to me. Turns out: It might actually be relevant. JavaScript can be executed on GPUs to allow for multi-threaded computation. New APIs to make use of this are already in the making and the first implementation landed in Firefox Nightly. Once I've got some more time again I will check it out.

Sitting nice and comfy at beanbag.js I watched Supercharging Node with Kraken from Tim. PayPal transitioned most of their apps from a C++/Java-stack over to node.js, replacing apps one by one. They now have smaller teams, are able to more quickly adopt the apps as needed. They also make heavy use of npm together with a company-internal package registry to distribute common modules for security, logging, monitoring and other things.

After skipping two talks, James Coglan entered the stage with Practical functional programming: pick two. I followed his twitter stream in the past weeks where he already shared lots of his research and learning. Functional programming is quite an interesting topic with lots of good ideas (ooooh, what would I give to have immutability in my thesis project right now). James showed how even just a few functional ideas can make code a lot easier to reason about. Recommended watch! The slides are online.

Raul Fraile followed with How GZIP compression works. He explained the basic principles behind compression and GZIP. It's not really my topic though.

Michael Donohoe talked about how to Deep-link to Anything on the Web. Working as a developer for journalistic sites he implemented multiple solutions to help linking to sections of an article, annotating it as needed and how to combine that with the backend.

party with nerds

After another coffee break (there were a lot coffee breaks that weekend) Mathieu Henri showed Monster Audio-Visual demos in a TCP packet, a short introduction into the demo scene and the techniques he uses to build demos in as few bytes as possible. I wish I was more creative with visuals and audio.

Just before the party really began, Tim Pietrusky showed his Nerd Disco. Nice what you can do with a small chip, some LEDs, an Ikea lamp and JavaScript. In fact I still have an LED strip lying around, I should definitely try this.

Day 2

Day 2 began early, far too early as the party the evening before was long into the night (well, and maybe I had one or two gin tonic).

I missed the first talk, but was right on time for Javascript... Torrents... and Mad Science! with Mathias Buus Madsen. I saw his projects before, but I was still amazed at what he did. peerflix, peerwiki and torrent-mount are 3 really cool projects, now if only more legal things would be available via torrent…

Still a little hangover I sat down at beanbag.js and watched Got make? by Rob Ashton. His live-demo talk was a little bit confusing.

What followed next (after one round of skipped talks) was Lena Reinhard's talk This is bigger than us: Building a future for Open Source. WATCH IT! It's worth it! Slides and notes are on speakerdeck.

Sebastien Cevey followed up with Server-less applications powered by Web Components. He combined web components to build up a dashboard showing stats from his servers at work.

In == ? === ??? ...#@^% Shirmung Bielefeld explained the small details one needs to know to not get confused when JavaScript once again decides to do type coercion.

Sebastian Markbage from Facebook talked about Minimal API Surface Area - Learning patterns instead of frameworks. We should focus less on complete framework solutions and instead rely on reusable patterns. That's exactly what they try to focus on in React.

Even though I thought I knew a bit about JavaScript What the heck is the event loop anyway? by Philip Roberts explained a bit more to me. He used his tool Loupe (a hack built on hacks and more hacks) to visualize how certain things happen when run in the JavaScript environment. Apart from the topic we also got a good stretch from this talk.

Amy Palamountain showed us the Enemy of the State. Don't build servers on the client. Slides are online.

What followed was The Linguistic Relativity of Programming Languages by Jenna Zeigen. We are heavily influenced by the programming languages and tools we use. From time to time we should look at different paradigms, different programming languages, different tools simply to broaden our view and to get new and better ideas how to solve problems, even if we then come back to our main programming language.

Again from the comfy of beanbag.js, I watched Realtime in the browser using XMPP by Lloyd Watkin. He thinks XMPP "allows us to easily rebuild the decentralized web". Slides are online.

Coming to an end, the organizers held back two really good talks:

The first one was GIFs vs Web Components. Glen Maddern implemented a library to control GIFs in every imaginable way. Born was the <x-gif> tag. See for yourself.

Followed by Know Your /'s in which Lindsay Eyink gave an overview over the early history of Silicon Valley. I can't properly summarize it myself, so go watch the video when it is available.

The day was then coming to an end at yet another party, this time on a boat! There are photos of the conference and the parties on flickr. More to come for sure. The videos should be available on YouTube in the following weeks, I will probably link to them then. Here's the full schedule for reject.js and the schedule for jsconfeu.


I had an amazing time and would love to come back next year for a full week of jsfest. Hope I can manage it somehow.

Thanks to the organizers of both conferences, thanks to all the awesome speakers, thanks for the people I met and talked too. Thanks to all attendees for making both these conferences such a joy!

Special thanks to Ola and Hendrik, who made it possible for me to attend the jsconfeu in the first place. And a shout-out to Jane, for whom this was the very first tech conference. Head over to her blog to read about her experience.

<3 <3 <3

Update 21.09.2014:

More things appear online: