The 3rd dotJS edition, taking place on November 17th 2014 (a combo with dotCSS) was simply the best one.

Morning sessions

  • James Halliday (@substack) talked about his proposal allowing users to cache webapps for offline use, using Application Cache and a module he created, hyperboot for that, and also talked about forkdb, to store and allow to sync data between those applications.

  • Charlie Robbins talked about dependencies static analysis, and about of how to create multi-dimensional graphs to get some informations like checking how many modules are vulnerable to shellshock, knowing which node modules are oudated (npm-outdated)

  • Justin Meyer started his talk by asking 4 questions:

    • Do you use a module loader
    • Do you document every module
    • Do you test every modules
    • Do you code review everything?

    He created a JavaScript Project Checklist. His advice was that checklists, while obvious, really helped keeping project quality, ensuring that good practices were followed.. and in general, awesome.

  • Domenic Denicola presented JSDOM, a project which is a reimplementation of the DOM (and more) for node.js (and more). They plan on contributing to W3C web platform tests.

Lightning Talks

  • Martin @mgonto presented JSON Web Tokens
  • Franck Rousseau from CozyCloud presented PouchDB, a lightweight database that can be embedded in a JS app and sync with CouchDB.
  • Thomas Parisot talked about "UX.js" methodology and management techniques
  • Guido Bouman's presentation was about Meteor
  • Alex Fernandez wants to build something to assess package quality in npm, since with 104 000 modules, there's a bit of overlap / quality issues

Afternoon Sessions

  • Julien Lecomte, YUI's tech lead, and the one who decided to stop all new developments on it, talked about what's next for Yahoo : Embrace new standards, especially ES6. He talked about how Yahoo plans to introduce a free service to use polyfills. He also presented FormatJS.

  • Angus Croll, in his talk A book nerd's guide to JavaScript, first said this: "JS is to Java as the eiffel tower is to the Montparnasse Tower": Montparnasse is practical, useful and mind-numbingly boring, while the Eiffel Tower is a nonsensical work of genius.

    He continued saying that anyway, in JavaScript, at one time or another everything has been considered harmful, and that if you listen everyone, you can't to anything. On the other hand, literature is about exploring the entire language. What sets JS apart from other languages is options, open minds keep JavaScript fun.

    He wrote a book called If Hemingway wrote JavaScript which sounded great - I ordered it.

  • Mike McNeil, in his talk Pulling the plug, talked about a solution to complement functions and make them more capable of describing themselves and handling custom error states. More information at http://node-machine.org/

  • John David-Dalton (@jdalton)'s talk was called A Shimblance of Success and was about shims. The contrast with Julien Lecomte's presentation was interesting, as the main message here was that shimming is not a silver bullet (non obvious side effects, may change over time, not everything can be implemented) and that "libraries are liberating": lodash, for example, offers functionalities that do not depend on shims, and can also in some case give better performance, or be more convenient that native functions (callback shorthands, faster array search, shortcut fusion)

    He is for keeping a library layer in apps.

  • Soledad Penades (@supersole) talked about Tools for the 21st century musician, contained in Web Audio, since the audio tag isn't able to do a lot of things when it's about generating sound or scheduling events. Web audio is fully controllable with a js api, interoperable with other web api, not attached to the DOM and runs in a separate thread. It can do a LOT of things (including modifying audio). She ended her talk by presenting her project OpenMusic.

  • Joe McCann talked about Tuning node. He told the audience to not make v8 think in order to get better performance in node and presented ways to do this by to enhance node performance by by avoiding complex code behaviours, setting flags in v8, including a trick to avoid having jump instructions in v8's generated assembly code, and adding C++ code.

  • Paul O'Shannely presented React through the ages, explaining why the framework was born, how it evolved, what problems it tries to solve and where it is going

  • Yehuda Katz ended the day by presenting Don't die - A guide to Indie OSS, explaining how to Stay healthy as an OSS project:

    • Diversify contributers
    • Vision
    • Legitimacy
    • Resolve
    • Protection - avoid big bang rewrites to avoid getting in a situation like Python 3
    • Incremental
    • Ship it

    He also explained that an OSS project must try to "play the long game", like Ember did by betting early on promises. He told the merits of diversity for the better evolution of a framework, saying it was better to avoid any major lead (=== benevolent dictatorship). The contrast between this vision, used for Ember, and what AngularJS is doing is really impressive.

At the end of the day

This dotJS was the best one. More technical than the first one but less specific and more inspirational than the second one, it was an amazing day, and I wish it lasted longer. Once again, I'll definitely be back next year.