Last Thursday I headed to Berlin for Reject.js, a community JavaScript conference organised to coincide with I was very impressed by the professionalism with which the event was run, which in turn allowed everyone to learn a lot and have a great time. Thanks goes to Robin Mehner, Thorsten Ball, Felix Geisendörfer, Katharina Buca and Matti Besser.

Golo Roden - The Next Big Thing

Golo is from a C# background and gave a very business orientated justification for moving to JavaScript/Node. Although the talk was very well delivered, unfortunately I don't think a JavaScript conference was the intended audience. He did deliver this chestnut though -

"There are JavaScript developers
and there are jQuery developers"

Robert Kuzelj - Who is Afraid of the Whitespaces?

An interesting pseudo-psychological look at programming during which Robert made two interesting points. Firstly, your brain is hardwired to pattern match, therefore an enforced structure in your code is a good thing, it makes it easier to comprehend. However, this doesn't necessarily have to come from the language itself, it can instead come from coding conventions and reviews.

The second, you can only hold about 200-400 lines of code in your working memory. For me, this explains why moving to a new project (and therefore codebase) is so difficult for the first few days. It also suggests a good maximum limit for code reviews.


Dominic Tarr - Distributed Systems for Real-Time JavaScript Applications

Dominic delivered a very fast-paced, very technical overview of some of the core topics of distributed systems. His top tip - read this paper.

Tobias Schneider - Handle Binary as Easy as /123/

Tobias is the creator of Gordon and a developer on Shumway. Both projects that aim to run Flash content in the browser without requiring the plugin.

This is achieved by loading, parsing and then executing the SWF in JavaScript. The talk treated us to the crazy history of parsing binary data in the browser, from bitwise operations on the charcodes obtained from specially headered XHR requests to the modern capabilities of XHR2 and TypedArrays.

Time ran away with Tobias, so sadly he had to rush through the last few slides which introduced RecExp. As best as I could make out it was a regular expression-esque syntax for parsing binary streams. That might sound a bit crazy but he had a convincing demonstration involving parsing the dimension headers from PNG files using just a single simple matching expression.

Karolina Szczur - The Pursuit of SimplicityPavel Filippov - Be Simple, But Not Simpler

An interesting pair of talks to put back-to-back, Karolina flew the flag for throwing away abstractions and Pavel for making the most out of them. Each speaker passionately extolled the virtues of their approach and rubbished the arguments of the other. However, during the questions it became obvious that in reality they agreed with each other - if you use an abstraction, make sure you understand what it does and does not do, and make sure you are consistent in using or not using it.

Unrelated to the main content of the talk, Pavel made the following observation (which I found to be a terrifying thought!) about the controversial subject of re-writing git history -

"When your grandkids come to github and ask -
why this commit comment?"

Jed Schmidt - Browserver: A Node.js HTTP Server, In Your Browser

I'd not heard of Jed before he took to the stage. However, as soon as he started presenting I found this fact very surprising. His talk on Browserver was as hilarious as it was intriguing. I had a feeling this wouldn't be the last I saw of Jed across the weekend.

Browserver assigns each connected client a sub-domain and the server then acts as an HTTP to WebSockets gateway. It's certainly an interesting idea and could work nicely with a webhook-enabled service, but I can't see it replacing Apache or IIS just yet!

Can you tell it's a reject conference?!

Adam Hawkins - JavaScript Testing: The Holy Grail

Adam delivered an interesting talk on testing with a battle-cry that no one tool yet delivers the multi-device, multi-paradigm testing experience he thinks the web needs.

Ben Green - Rite Moar CSS

The clue's in the title with Ben's talk, rite moar CSS! For anyone that hasn't noticed, CSS has become much more powerful in the last couple of years. Where once your only option was JavaScript or image hacks, CSS can now step in with gradients, transitions, animations etc..

Matthew Bergman - Zombie!

In Matthew's first speaking outing, he passionately urged the web developer community to look beyond semi-colons, to acknowledge that like it or not we're all in the same boat, and we would do well to remember that.

Lightning Talks

At the end I was lucky enough to get the chance to give a lightning talk on the CSS 3D perspective property I've blogged about before. I joined other interesting talks about a scoring system for licenses, polymorphism != classes and an introduction to the unhosted movement amongst others. It was a great experience and I was chuffed when at least one person admitted to learning something from my talk!

In Summary

Reject.js kicked off an inspiring weekend of JavaScript with style. Thanks again to the organisers and to Paul Campbell for rounding it all off with a song.