Good afternoon, I have been in Madrid this weekend, where the Javascript conference Spain.js was held for the 2nd time. On Friday was session number one one of the two day event, and to sum it up I was blown away by the amount of information presented during the talks.

Let's try to deal with it step by step.

The conference took place at the University Pontificia de Salamanca, a bit outside of the centre of the city, in a quiet area and with a huge lecture hall with a capacity of around 500 people I guess. The talks went from 10 o'clock in the morning until 8 o'clock in the evening and they were packed with interesting stuff about Javascript syntax, frameworks, tools, best practices and a lot more.

Among the speakers were some pretty well-known personalities such as Douglas Crockford and Reg Braithwaite, which also gave two of my favourite talks, maybe because they were very in-depth and profound while dealing with not-so-common topics and providing a bit of historical background.

I'd like to go over each of the talks briefly and recapitulate what they were about for those who haven't been able to attend the conference or for those who would like to review the talks.

"Syntaxation" - an in-depth talk about language design

The opening keynote was presented by Douglas Crockford, who spoke about the topic of Syntaxation and gave a step-by-step introduction on how to theoretically write our own parser in Javascript.

While covering programming language design basics such as binding power and paradigms like top down operator precedence, his concluding appeal was to innovate and – consequently – follow these simple principles should we ever bother to design our own language:

  • Select your features carefully
  • Beware of "sometimes useful"
  • Avoid universality
  • Manage complexity
  • Promote quality
  • Let the language teach you
  • Exploit parallelism

Since there wasn't any video recording this year, I would like to point you to a video of the same talk at a different conference, in case you would like to see the whole presentation

"From Zero To Hero" - building a Windows Store game in 30 mins

After that, Giorgio Sardo from Microsoft went on stage to built a basic Javascript game for the Windows app store in only 30 minutes.

One has to admit however that he used pre-defined code snippets to put together the different components of the game (canvas, sprites, events etc.) quickly, but the overall experience was very entertaining and the explanations of each part very easy to follow.

In the end, he even went a step further and by binding mouse events of the game to the API of a phyiscal, USB connected ball, showed us what's possible with the power of imagination and the possibilities that technology offers to us today.

I have been looking for video footage of the talk and found a link to the same talk at the build conference 2012.

"From web apps To hybrid mobile apps"

Martin Naumann then shared his experience with the various Javascript framework he has worked with during his three month research on leveraging web technologies for making native mobile applications.

He categorized the most common approaches that exist in today's web development domain as UI layer frameworks (jQ Widget, Lungo, Kendo UI...), architectural environments (Backbone, Ember, Angular...) and complete solutions (Cordova, Calatrava, Sencha...).

The following list of questions that Martin compiled can help us to figure out which one to choose:

  • What's the goal?
  • Are you targeting multiple platforms from the beginning?
  • How many native features do you need? Which?
  • Where is the complexity?
  • What about your team?

... but "we shouldn't trust anyone, but test ourselves" – this was his concluding statement that I will make sure to remember the next time I see myself confronted with this kind of challenge.

Slides of this talk can be found on GitHub pages

"The good parts of responsive web design"

Leo Lanese then entered a topic that all of us our certainly familiar with, but being such a young paradigm, everybody is still learning new stuff about Responsive Web Design. The talk taught me a few new things that I didn't know about and that I would like to summarize.

The first topic was responsive images and responsive videos and the tools that we currently have at hands, such as picturefill by the Filament group, foresight.js by Adam Bradely or fitvids.js by Chris Coyier.

I particularly enjoyed the part about performance improving techniquse since I'm currently working on a presentation about this topic as well. It included the following ideas and principles:

  • Treat performance as design
  • Treat javascript as a feature
  • Use navigator.connection.type to detect the user's connection speed
  • Integrate ECMAScript 5/6 features
  • Load functions conditionally (e.g. by using yepnope)

Slides of this talk can be found on Leo's personal website

"Bringing the open web to mobile devices"

I guess the next talk was one many people were looking forward to, with Firefox OS being such a hot topic recently.

Robert Nyman began the talk with this ingenious quote from Fight Club:

"We buy things we don't need with money we don't have to impress people we don't like"

Could I agree more with that?

Robert took us on a journey through some of the possibilites that Firefox OS offers to quickly develop web applications for the new Mozilla ecosystem. Apps can actually be deployed as three different types: Regular web content (like a website), a regular web app (an installed one) and privileged web apps that have more access to device functionality, and due to that have to be build more responsibly.

Beside the regular HTML5 APIs we can use more advanced ones such as the Battery Status API, Screen Orientation API, Vibration API, or those for more privileged applications like the Device Storage API or the TCP Socket API.

Slides of this talk have already been uploaded to Slideshare

"Cross plattform development at Spotify"

At this point some people including me were probably in the mood to recapitulate a bit and test out some of the mentioned technologies, but there were still three talks to come. So let's jump right into the next one, because hell was it packed with lots of interesting information about our favorite music streaming platform.

Tomás Pérez & José M. Pérez are both software engineers at Spotify where they are enabling people to leverage their web based applications to the Spotify ecosystem.

For starters: A Spotify app can be entirely based on open standards so everyone who knows HTML/CSS and Javascript to a certain degree is able to write a Spotify app.

The deployment process of these applications happens gradually so that new software can be rolled out only to certain platforms or countries. According to Tomás this leads to the benefit of faster development cycles, since we have fewer dependencies. And it produces less hassle, as it allows for quickly tweaking things after deployment.

The Spotify embedded platform on the other hand that José introduced afterwards is a sandboxed environment that uses iframes.

According to him, the good thing about it is that due to to the separate execution context the user enjoys better security and privacy. Unfortunately, there is a caveat which is that iframes are not very performant, a topic that Steve Souders has examined and written about in his blog.

The cross-origin communication between the different contexts by the way is handled via postMessage. The two were nice enough to share some examples on github of how this works in detail.

"La hermosa vida"

It was now time for a less technical talk and the one of Rag Braithwaite fitted right in.

It was among other things a hommage to two important personalities of the history of personal computers. First, Douglas C. Engelbart, one of the forefathers and important pioneers of this era, and second, John von Neumann, who – in his lifetime – raised the question:

"Could life be mechanical?"

A question which led Reg to the next one: "What *Is* Life", which in turn brang up the topic of replication,
and an expirement to see what kind of supercomputer it would take to compute one trillion live cells with ten quadrillion generations.

The answer which he revealed in the end, and which is based on an algorithm he wrote (and can be found here on Github) is that you don't need anything more than that:

A Macbook Air and a Google Chrome web browser.

"NoSQL with Couchbase"

Unfortunately, because I got psyched with a sudden idea I had I wasn't able to follow the last talk on "NoSQL with Couchbase", so if you're interested, I would like to point you to the conference page on Lanyrd to see when the slides get posted

Thanks for reading. I hope you have enjoyed this post and would like to hear your feedback about the conference. I'm already preparing a summary for the day 2 sessions, so stay tuned. I will probably publish it by tomorrow morning.