Montreal's JavaScript User Group


Here are some of the subjects we've covered in the past. If you're interested in participating by giving a talk, don't worry too much if we've touched on the subject before. New people join every day and there are a lot of subjects warranting a re-visit.

February 11th, 2020

Ben Wiley
What happens when you want your uint8array to be larger than 2.1G?

Ben will show us what happens when you want more memory than JS is comfortable with and what to do to get it to play ball.

November 12th, 2019

Troy Taillefer
Type Inference and ReasonML

Troy will show us the performance, flexability and benefits of compiled-to-js languages, specifically ReasonML. It brings type goodness of the likes of TypeScript, but without making the typical compromises required of lanaguages that are strict supersets of JS.

October 8th, 2019

Ruy Adorno
Achieving peace of mind through test coverage

Ruy is going to share his experience on how to efficiently implement tests that will allow your team members to sleep at night after each release.

Bruno Carriere
Intro to GraphQL

Bruno will show us the goodiness of GraphQL and how it works well as an api gateway/backend-for-frontends in a microservice architecture.

September 10th, 2019

Philippe Hebert
Introduction to D3.js: Why you probably don't need a chart library

D3.js js the father of visualisation in the browser. Still relevant 8 years after its birth, it is still the standard today. What makes it so powerful? Come explore D3.js with us, from a 10,000 fleet view to a live implementation in React!

Florent Letendre
Hybrid Apps

Florent will show us the way of the Hybrid apps using one of his personal projects built with Angular and Ionic.

August 13th, 2019

Arnaud Buchholz
Reserve - Lightweight HTTP Server

Arnaud will present reserve, a lightweight web server statically configurable with regular expressions. It can also be embedded and extended.

July 9th, 2019

Steve Venzerul
Tales From Prod: How I learnt to stop worrying and love the BigInt

This is a story that connects strings, redis, 64bit integers, postgres, real-time car data and modern APIs, and by extension, how I struggled for 3 days to write a microservice that works correctly.

June 11th, 2019

Kevin Barabash
Testing tools and best practices

This talk will the following topics: test hierarchy, AAA testing, jest, enzyme, general best practices for testing as well as specific best practices for jest, async code, component testing, and testing GraphQL components.

May 14th, 2019

Steve Venzerul
React -- Refs, Hooks and Contexts

Let's look at some often misused, misunderstood and generally missed features of React. Oh and also the new hooks API, which is awesome.

April 9th, 2019

Étienne Tétreault-Pinard
Modernising plotly.js

Presented by: Etienne, Antoine and Mojtaba - Plotly's graphing library plotly.js has been around for 6 years, a lot of things has happened in JS-land since then. The talk will start by a brief introduction on plotly.js, its ecosystem and its team. We will then focus on the challenges we've had to face to adapt our API for React wrappers, mainly react-plotly.js.

Nicolas Carlo

Gitgraph.js is an open-source library that allows you to draw git graphs using a JavaScript API. This talk will explore the inner details of building such a project. I will talk about: open-source, monorepos, SVG rendering, React/Angular adapters and git tricks.

March 12th, 2019

Arnaud Buchholz
Subclassing in ES6

Subclassing an ES6 class should be easy, right? What if one want to mix an ES6 class with a non-ES6 one? In this talk, I propose to explore the implementation of classes in JavaScript and see how they can be combined. (No transpiler was harmed during the preparation of this talk)

February 12th, 2019

Marvin Frachet
Vers l'infini... et l'event loop!

Ce talk a pour objectif de présenter comment j'ai découvert et compris le fonctionnement de l'event loop. A la fin de ce dernier, vous devriez être en mesure de comprendre les fonctionnements sous jacent des fonctionnalités asynchrones de JavaScript.

January 8th, 2019

Arnaud Buchholz
From OPA to Node-UI5

OpenUI5 is a UI ramework that comes with test automation tools (OPA) and in particular with a component capable of mocking ODATA calls (MockServer). This component works in the browser but with the help of jsdom it is possible to embed it in a NodeJS server using express.

Gregory Luneau

I'll be talking about Utopian.io and how they rewards developers by contributing to your favorite Open Source projects like any js github projects.

December 11th, 2018

Shannon Lal
Serverless and Javascript

Over the last 3 years InVue has been using Javascript and Serverless technologies across multiple products. We will be providing an overview of Serverless and Javascript as well as talking about some of the technical challenges and advantages that it brings.

Ben Wiley
React Cassette

Ben will tell us about Cassette, a react-based lib which provides a zero-config component that is a video/audio player for the web. It also provides a React Context-based API that manages media state for your playlist so you can write custom media player UI without having to think about the internals.

November 12th, 2018

Roy Breidi
Intro to feathers.js

Roy will show us a structured demo for an incremental approach to building-from-scratch your first server-side app up within minutes.

October 9th, 2018

Gina Chiodo
Authenticated Systems Workshop

In this talk we will go over a few ways you can implement authentication (including offline authentication strategies) and then dive into some code for both a server and a client which you can adapt to suit your own app.

Get to know more about the basics of using Gatsby with Robin. He is going to use our own (pretty bad!) js-montreal website as an example, as well his own Bottin de Developpeurs project

September 11th, 2018

David Demarais-Michaud
No sugar please: a tearing down of abstractions

To demistify one of JS' hotest bits of syntax sugar and the familiar Promise, David will break down the mechanics of both async patterns by building his own naive variations of those language features.

Kim Reeves
Développer une App Tablette, Desktop & Web avec React&React-Native

The folks at Turbulent have been working hard using React and React-Native to bring quality, cross platform JS products to market. Today, they will show us the patterns, structures and challenges of building large scale cross platform apps.

August 14th, 2018

Frederic Charette
Network optimizations 101

If you have an application that requires network requests to run, you might want to come watch this presentation. We'll cover congestion control, caching, batching and a couple advanced strategies to make your application faster all while saving on infrastructure costs.

Ben Wiley
Memoizing functions

Ben will tell us all about the power of functional programming, specifically memoization and how it can help speed up frequently used side effect-less functions.

July 10th, 2018

Steve Venzerul
Async Generators - Looking at the ES2018 Spec

Building on Jason's talk from last meet-up, we'll look at Async Generators, a widely discussed feature documented in the new ES2018 spec. We'll look at some use cases and live examples.

June 12th, 2018

Jason McCarrell
The Power of Generators

From abstracted testing to streaming data, generators provide a convenient framework for dealing with code step by step. We’ll look at why you should care about generators, how they work, when they should be used, and finally some fun things I’ve done with them.

Olivier Arteau
Prototype pollution attacks in NodeJS applications

Prototype pollution is a term that was coined many years ago in the JavaScript community to designate libraries that added extension methods to the prototype of base objects like "Object", "String" or "Function". This was very rapidly considered a bad practice as it introduced unexpected behavior in applications. In this presentation, we will analyze the problem of prototype pollution from a different angle. What if an attacker could pollute the prototype of the base object with his own value? What APIs allow such pollution? What can be done with it?

May 8th, 2018

Alex Chalk
Coding Strategy as a Rookie

Alex will talk about ways to approach coding that have been (or would have been) useful to me when I was starting out. Hopefully it will give senior devs some good ideas on how to maximize the effectiveness of more junior team members

April 10th, 2018

Kevin Barabash
Maintaining React Components

Kevin will show us how to use flow to facilitate changing a components props (renaming/deleting/changing type) and how to use aphrodite (CSS in JS library) with flow to control which styles can be passed to components.

Marek Zaluski
What's the difference between a Resolved, Settled, and Fulfilled promise in Javascript?

In this talk we try to resolve some important questions around Javascript promises. We'll settle the confusion once and for all, and fulfill our desire for better understanding.

March 12th, 2018

Joel Lord
Secure Your Single Page Application With Auth0

A quick demo that shows the attendees how to secure an SPA (could be React, Angular or VueJs) using Auth0. Can be adapted based on the time available for the presentation.

Quentin Sommer
Web Workers

Description coming shortly.

February 13th, 2018

Steve Venzerul
Modern Dev Setup

Tools, shortcuts, keyboards, shells, emacs, and the CapsLock keys. Let's look at a modern development setup for the web.

January 9th, 2018

Kostyantyn Artemov
Workbox - a tool for building a Progressive Web Application

Workbox is a collection of libraries and build tools that make it easy to store your website’s files locally, on your users’ devices. If you want to focus on your website logic, leave creation of an optimal ServiceWorker with sophisticated caching strategies to the Workbox tool.

December 11th, 2017

Robyn Larsen
Down the SVG Rabbit Hole: Optimized Workflow and Advanced SVG Effects

We use Scalable Vector Graphics (SVGs) every day, but how well do we really understand it? More often than not, we are merely scratching the surface of a large and complicated discipline. Most developers and designers don’t realize how powerful and useful SVGs are, you will be surprised at how deep the rabbit hole goes.

Steve Venzerul
JavaScipt: 2017

A quick discussion of what came and went in 2017. Frameworks, APIs, browsers, compilation targets. It's been a great year for JS and we'll take a last critical look at what we produced before moving on to another year.

November 14th, 2017

Mats Ljunggren
Unsupervised testing with Chrome Headless and Puppeteer

Running unsupervised end-to-end testing in the browser is great for both monitoring and QA, and can save you tons of time and help you avoid bugs. Unfortunately, it used to require PhantomJS or browsers configured with virtual displays (like Xvfb) that made it fairly difficult and time-consuming. This has recently been made much simpler with Chrome supporting "headless mode", and with Google creating the npm package Puppeteer it is even simpler. Now the Chrome browser can be remotely controlled with just a few lines of Javascript code. I will show you some useful hands-on code examples.

Sylvain Hamann
Introduction to Progressive Web Apps

As we know, responsive web sites are no longer enough. We have to make sure it works offline, multiple devices, resolution, rendering capabilities and every other condition various browsing machines can throw at us nowadays. Sylvain will show us the dark art of turning your responsive website to a Progressive web app capable of the above.

October 10th, 2017

François Pliab
Using JavaScript and other web technologies, to create a physical public art installation, that produce kindness and compassion.

Utiliser l’écosystème JavaScript de façon créative pour donner vie à une « machine à bienveillance » : c’est l’expérience sociale qu’a réalisée Ensemble-Ensemble au métro St-Laurent à Montréal, transformant une place poussiéreuse et bétonnée en un lieu où des passants échangent, rient, se questionnent et discutent. Dans cette présentation il sera question des processus qui ont conduit à la création de cette installation interactive utilisant des technologies variées : electron, nodejs, es6, sass, kinect sdk, arduino, computer-vision, etc. Comment est-il possible de créer des interactions fortes et signifiantes avec le public en s’appuyant sur des technologies web?

September 13th, 2017

Mathieu Legault
React-Native intro and quirks

Introduction to react-native and overview of some topics you might encounter (Debug, Offline, FlexBox, Images, app size) while building an app.

August 8th, 2017

Steve Venzerul
WTF JS -- Explained

An awesome list of Javascript quirks was recently posted to Github. Let's explore some of the weirdest and most confusing corners of JS while learning how they apply to real world examples.

July 11th, 2017

Osman Zeki
Building a 3D Car Configurator using React, Flux and WebGL.

Can React and Flux-like architectures be used to drive and manage a 3D world built with WebGL? With new tools and ideas emerging out of the worldwide open-source community, it certainly seems possible and it might even a good idea. In this talk, we will be going through how I built a real/commercial product using this premise, the tools that were used to do so and the lessons that were learned in the process. Here is a list of some of the subjects that the talk will cover : BabylonJS, InfernoJS / React, MobX / Flux, TypeScript, Webpack, Babel, Axios, SVG, Blender, SolidWorks, etc.

Frederic Charette
Compactr, building lighter realtime applications

Serialization is something that is often overlooked in the creation of realtime applications. Together we'll explore how serialization works, what protocols are out there and end with a live demo application.

June 13th, 2017

Nick Taylor
An Introduction to React Storybook

ES6 has been making serious progress into our javascript lives. With that comes experience, bugs, stories, tips and tricks. I'll share some of my experience, bugs and tips encoutered while using ES6 in production on a medium to large application.

Michael Sanford
[JS, CSS].Conf EU 2017

I'll focus on the conferences report and give some insight into the new hotness-es for 2017, among them, preact, web assembly, and some just awesome things I learned with pointers to resources

June 13th, 2017

Nick Taylor
An Introduction to React Storybook

ES6 has been making serious progress into our javascript lives. With that comes experience, bugs, stories, tips and tricks. I'll share some of my experience, bugs and tips encoutered while using ES6 in production on a medium to large application.

Michael Sanford
[JS, CSS].Conf EU 2017

I'll focus on the conferences report and give some insight into the new hotness-es for 2017, among them, preact, web assembly, and some just awesome things I learned with pointers to resources

May 9th, 2017

Steve Venzerul
ES6 From the Wild: An Exploration

ES6 has been making serious progress into our javascript lives. With that comes experience, bugs, stories, tips and tricks. I'll share some of my experience, bugs and tips encoutered while using ES6 in production on a medium to large application.

March 14th, 2017

Christophe Naud-Dulude
Demystifying CPU Profiling in Node.js

Node's event-driven and single threaded architecture enables easy concurrency and high throughput without much effort but comes at a cost. Synchronous and CPU intensive operations can lead to degraded performance and even completely block the process. CPU profiling allows developers to find blocking functions and deal with them accordingly. In this talk 'learn by example' talk, we'll look at some real issues that were identified and fixed thanks to CPU profiling.

Rami Sayar
Building Universal JavaScript Applications with React

Rami will show us how to build universal, isomorphic JavaScript apps using React. We'll talk about strucutre, components, code sharing and other details of building robust JS code across front and back-ends.

February 14th, 2017

Marek Zaluski
How Async/Await will change JavaScript forever

The async/await keywords are one of the most powerful upcoming ECMAScript feature. Let's learn how they work, how they relate to promises and generators, and why they're a game-changer for writing async code. And we'll review the key concepts about promises that you need to know to get a head start on using these new features.

Steve Venzerul
Debugging Javascript for fun and profit

A quick 15min talk about some cool techniques for debugging large projects in the Chrome DevTools console.

January 10th, 2017

Assane Gueye
From desktop to web app using Typescript

Few years ago, we developed a collaborative tool in WPF intended for production teams. Sharing and communication of design intentions, missions, layout and structure of levels in the game world. That desktop app served as a beta to validate the need of such a system, and we agreed to go further with a web based version. A single page app with rich controls, aesthetic visuals and no more installation process. We decided to work with Typescript taking benefit, among other things, of its type checks, compilation time error detection, frequent updates and growing community. This talk will showcase our new product, its functionalities and our usage of multiple technologies with Typescript as a center point to reach our goal.

December 13th, 2016

Steve Venzerul
Hacking on Node for fun and profit

We all use Node.js as a platform to run our servers, clients, bots, quick and dirty shell scripts and many other things. But few crack open Node itself and peek under the hood. No more! We're going to look at some key architecture concepts, Node's code layout, some cool hacks that can be easily done in an afternoon and finally work out how to writing native addons.

November 8th, 2016

Rami Sayar
Introduction to React Native

React has been named the front-end library to learn in 2016! React Native has also picked up tremendous steam as a way to build cross-platform apps with React. In this talk, Rami will do a quick 5 minute introduction to React's core concepts. Following, Rami will introduce React Native, discuss the differences between React & React Native, and show you how to build a simple Android application. By the end of this talk, you will have a greater grasp of the ecosystem and leave with new tools in your developer arsenal.

Rami is a Senior Technical Evangelist at Microsoft Canada

Denis Grigor
3D on the Web

The Web was always flat and all efforts to use effects and some interactivity to mimic a new dimension to the Web is commendable, but not always enough. The relative recent possibility of exposing the power of the graphics cards to the browsers, opened a new door and now allows to transform the flat Web into a 3D Web. Ranging from the raw WebGL, to free and commercial 3D viewers - let us explore why it might be the next big thing.

October 11th, 2016

Karim Besbes
Building a faceted catalog of video game assets using ExtJS and Elasticsearch

At the Ubisoft Technology Group we have created a platform for video game productions to share game assets, in-game footage and animations across the entire company. Ease of search and good UX were incredibly important for an audience of artists and creative types. This is where the Web and a powerful Javascript framework comes in; we chose ExtJS for its robustness and scalability. In this session, we will showcase two different applications and dive into the technical aspects of designing the UI for a faceted search based on Elasticsearch.

September 13th, 2016

Michael Sanford
The Node Cluster API, what is it good for?

Michael will tell us about, and dismistify the secrets of multi-threaded Javascript. The Node cluster module is a prime tool and example for show casing the capabilities of modern Javascript and NodeJS.

Alain Gaeremynck
All about SOAJS

Soajs (soajs.org) is both a micro service framework and a operation management platform that sits on top of Node js for application development and on top of dockers and Kubernetes for deployment management. Out of the box it provides mapping for input parameter validation, response building and error management. On the operation side it allows automated deployment, service discovery and calling. Alain is going to tell us all about it.

August 9th, 2016

Marc-Andre Giroux
Building data-driven React applications with Relay & GraphQL

React has proven itself as a really powerful way to build complex user interfaces by using declarative and predictive components. But what about data-fetching? Relay is a JavaScript framework for building data-driven React applications. It makes data fetching simple for developers by co-locating your React components with their data needs, fetching and handling data using a powerful query language, GraphQL.

Rami Sayar
An Overview of the React Ecosystem

React has been named the front-end library to learn in 2016 however few people talk about the React without mentioning Flux (or Redux or React Native or Relay). In this talk, we will explore the ecosystem of tools and libraries that surround React. We will look at the various Flux implementations (including a short explanation of Flux) like Redux, at some of the React routing libraries, at some of the reactive database or reactive API libraries and finally at everyday tools and techniques that make the React developer happy. By the end of this talk, you will have a greater grasp of the ecosystem and leave with new tools in your developer arsenal.

Rami is a Senior Technical Evangelist at Microsoft Canada

July 13th, 2016

Alexandre Geissmann
How to be super agile with Vue.js + Hype

Discover how to build amazing and flexible webapps using Vue.js and Hype. This speech will introduce an unusual workflow to quickly get running some apps, in a small-team context. We’ll also be speaking of production pipeline and requirements (such as timeframe, team communication, client, etc;), how they’re shaping the way we build the Web, and how to code javascript to embrace this purpose.

Ruy Adorno
iPipeTo -- Story of a Unix Pipe

Ruy will tell us the story of how he spiced boring old Unix pipes into a wonder of modern command line foo, with his tool iPipeTo.

June 14th, 2016

Frederic Charette
Getting the most out of Sockets

Sockets are light, powerful and all-around fun but they can be hard to work with. In this presentation we will visit socket communication concepts in Node.js and see how we can push performances to the limit with Kalm. We'll try out two demos: a micro-service implementation and a browser game integration that leverages websockets.

Martin Vezina
Autopsy of an unconventional Javascript project

This is the story of how a Javascript experiment became a t-shirt through a successful Kickstarter. I will describe what I went through to make this very unusual project, which involves a lot of different things from Three.js, Adobe Illustrator scripting, vector drawing and manipulation through code, plus all the unforeseen difficulties and how I overcame them. Oh, and orbital mechanics.

May 10th, 2016

Arnaud Buchholz
Mocking stuff, in a good way.

In this talk, Arnaud will show us key parts of Sinon.JS, specifically introducing one of it's most useful parts, the sinon.spy() function.

April 12th, 2016

Benoit Beauséjour
Star Citizen Starmap: A Journey through a WebGL project

In this lightning talk the team from Turbulent will go through the lessons learned building a large-scale WebGL project. Anecdotes, stack & tech choices, the good and the bad.

March 8th, 2016

Florent Vilmart
parse-server: Beyond Facebook

Facebook has recently open-sourced Parse after shutting down the project. Undeterred, Florent will show us what we can do with it, how to deploy it and provide some pro tips.

February 9th, 2016

Andy Maleh
Beyond React: Introducing Cycle.js

Cycle.js is a reactive RxJS/Virtual DOM based front-end library. Andy will provide a quick introduction to Cycle.js basics and philosophies, go through a tutorial of its concepts and demonstrate with some code examples.

January 12th, 2016

Steve Venzerul
Fundamentals: Prototypal Inheritance

Prototypal inheritance in JavaScript is one of those things that is difficult to understand as a beginner and tricky to master as an experienced programmer. Steve will expose all its secrets, including some of the new constructs introduced in ES6.

December 8th, 2015

Geoff Goodman

Imagine you could write powerful web applications without a backend, provisioning or deployment. Using only JavaScript. Geoff will explain some of the magic behind webtask.io and how you can use it today.

Steve Venzerul & Bruno Carriere
This year in JavaScript

Another crazy year gone by in the world of JavaScript. Join us as we go over the major trends for this year and our predictions for next year.

November 10th, 2015

Jean-Philippe Côté
JavaScript & Physical Computing

Jean-Philippe will show us how easy it is for JavaScripters to write code that interacts with the physical world. Using NW.js and a Phidgets I/O board, we will break out of the virtual realm and gain access to the real, tangible world. Web developers will find that venturing outside the security of the browser sandbox can be quite a thrill…

October 13th, 2015

Kevin Vicrey
React & Flux

React and Flux are an open source library and architecture from Facebook to build web applications. Kevin will introduce these concepts and share his impressions, good and bad, after 6 months of use on a concrete project.

David Zhang
Redux, Flux Evolved

Redux is a fresh new take on a Flux-like architecture for React-based applications. Like how React and the virtual DOM enabled easily building stateless view components, Redux brings the same convenience to the rest of your application. By managing application state in the framework, all of your code can be pure functions. As you'll see, when you do that, magic happens...

September 8th, 2015

Charles Ouellet
Webpack is your friend

Webpack is a module bundler that allows you to use multiple module definition systems, making refactoring of large scale single page applications much smoother. Charles will explain how to get started with Webpack, the main concepts behind the tool, and show us quick demos.

Marek Zaluski

TypeScript is an open source, typed superset of JavaScript. It is backed by Microsoft and usable everywhere JavaScript runs. Marek has been using it for a while and is going to tell us what he loves about it and how to get started.

August 11th, 2015

Osman Zeki
Using Phaser to build a music game

In this talk Osman will discuss how his team used Phaser to develop a browser-based HTML5 Arcade/Music game that had to run on desktops and tablets. He'll describe the cross-browser compatibility, audio-visual synchronization and performance challenges they faced and give examples of how the engine's many features were used.

Justin Stahlman
Retro pixel games with ImpactJS

Justin has been wanting to make computer games since Space Invaders in 1982. That led him to teach himself game programming on the Apple II, then DOS, and eventually, years later, JavaScript. Retro pixel art and games are trendy again and he used the explosion of JS libraries and pixel-art nostalgia to remake some of the games of his youth -- and finally a new original game.

July 14th, 2015

Steve Venzerul
ES6: Diving Deeper

In my previous talk we saw an intro to new ES6 features, but everything was still in flux. Now that TC39 has finally approved the draft it's time to get a good feel for what's new and exciting in ES6. Additionaly we'll discuss the latest and greatest 'WebAssembly' and what it means for Javascript.

June 9th, 2015

Jonathan Stoikovich
RAML: Describe your APIs

RESTful API Modeling Language (RAML) is a simple and succinct way of describing practically-RESTful APIs. It encourages reuse, enables discovery and pattern-sharing, and aims for merit-based emergence of best practices. This presentation will demonstrate how to generate a JavaScript client from a RAML file and use that client in your projects.

Cedric Dugas
Inker: Rethinking how we manage email development & transactional delivery

Sujet difficile pour tout front-end dev, le développement d'email est souvent mal aimé et mépris. Voyons pourquoi nous sommes encore a faire des tables dans un monde ou les technologies front-end évolue rapidement et comment on peut améliorer ca de façons significative.

March 10th, 2015

Sebastien Filion
Manipulating data structures with JavaScript data type's methods

Using JavaScripts data type's methods is a flexible way of manipulating data structures; Discover functional programing and how to make the most out these expressive techniques. After this talk you will be able to solve everyday problems elegantly.

February 10th, 2015

Ruy Adorno
Building you own Yeoman Generator

Generators are the building blocks of the Yeoman ecosystem and you don't need to be limited to only using the existing ones. In this talk we are going through an overview on how to create your own generator and automate your project setup process.

Rami Sayar
Hands-on with Yeoman

Yeoman is a tool designed for front-end web developers. It helps you start new projects right by providing a generator ecosystem. A generator helps define the scaffold for your projects and generators useful code for your starter project. In this talk, I will introduce you the Yeoman Workflow and the different tools, share my favorite generators.

January 13th, 2015

Geoff Goodman
Flexible declarative drag & drop for Angular

Geoff Goodman is the author and maintainer of Plunker. Facing particular UI challenges, he set out to create a directive that makes declarative drag & drop in Angular flexible and easy. He will tell us more about how it is built and the tools he used to create it.

Bruno Carriere
Pull the trigger on ES6 Modules

After years of turmoil and experimentation, JavaScript is set to have a proper module system in ES6. Bruno will show us how easy it is to take advantage of them today and present typical usage patterns.

December 9th, 2014

Marc Khoury
WebVR and Oculus Rift

Virtual Reality is coming fast to the general public, with the Oculus Rift leading the charge. Together we'll look at what the Oculus Rift is, and how we can approach development for it. The WebVR API provided in Firefox and Chrome will allow us to bring VR to the web using JavaScript. In the presentation, we'll learn how to integrate VR support into a THREE.js scene so that you can start building your own VR apps

November 11th, 2014

Alex Dergachev
BabelFrog, a Chrome Extension

Alex Dergachev recently built a simple Chrome Extension called BabelFrog to help him learn languages. Alex will show us how he did this and follow up with a discussion about chrome extensions: What you can do with them, how to get started making one, and some tricks he figured out along the way.

Sacha Leprêtre
Retour: Pourquoi et comment les Web Components?

Les Web Components (W3C) sont très prometteurs pour le web et les outils tels que Polymer, X-tag et Brick nous permettent d'en bénéficier dès à présent.

Mais qui a-t-il derrière ces librairies?

Pour éclairer nos choix technologiques, Sacha fait un retour sur sa présentation de Juin passé, avec des mise à jours importantes.

October 14th, 2014

Martin Vézina
The Greensock Animations Platform

Greensock Animation Platform is an amazing library used to design high performance animations for the web. Its flexibility makes it possible to construct complex animation sequences and integrate them into your workflow with mimimum effort, and its simplicity bridges the gap between the motion designer and the programmer.

September 9th, 2014

Steve Venzerul
ECMAScript 6: The Next Generation

The ECMAScript 6 spec brings a host of new features and API goodies to our favourite language. This talk will explore some of the new language constructs and APIs being introduced into Javascript, and which development pains they're designed to alleviate. Lastly, we'll see how we can leverage the features of tomorrow, today!

July 8th, 2014

React is a recently released library built at Facebook and Instagram that's making a lot of waves. Daniel will show you what you need to know to get started and illustrate how it can work alongside more traditional libraries such as Backbone.

Florent Vilmart
Happy Parsing

Parse is a popular platform that greatly simplifies the backend side of web and mobile apps. Florent has been an active user for a while and will quickly get us up to speed on the basics and follow up with power tips and advanced usage.

June 10th, 2014

Kevin Vicrey
Advanced web debugging tools

Web applications getting more and more complex, bugs and performance issues can be difficult to find out. Using breakpoints in the debugging tool is a first step, but in this talk, we will focus more on advanced features.

Sacha Leprêtre
Pourquoi et comment les Web Components?

Les Web Components (W3C) sont très prometteurs pour le web,les librairies/polyfills telle que Polymer, X-tag/ Brick nous permettent d'en bénéficier dés à présent.

Mais qui a-t-il derrière ces librairies?

Afin de nous éclairer sur des éventuels choix technologiques, Sacha va nous présenter les stratégies utilisées par celles-ci et nous donner un rapide aperçu sur Lïghtly la librairie qu'il a conçu.

May 13th, 2014

Kasper Isager
Supercharge your workflow through frontend tooling

Writing Javascript applications for the browser is often a chaotic and fragmented experience. With a vast selection of technology at our disposal, bringing it all together is often time consuming and prone to error. Dependency management, code optimization, and portability are all part of the constant struggle.

Rodric Haddad
Let's Talk About Angular

With concepts like $scope, Dependency Injection and Directives, AngularJS isn't always a walk in the park for the regular JavaScript aficionado. Rodric will walk us through these concepts, along with live demos to showcase them, and a production app built on top of the framework to put it all together.

April 8th, 2014

Ben Postlethwaite
Streaming the Internet of Things with Javascript.

Javascript is everywhere and the maker movement is bringing affordable and hackable devices to a wider audience. At the same time Node provides us with a set of asynchronous primitives perfectly suited to wiring all of this together. Over the last few months this is exactly what we have been doing at Plotly. We want to share our experiences working with streams and real-time data in the server and client. We have some great demo's and projects so signup for Plotly and bring your laptops!

March 11th, 2014

Monica Dinculescu
Cat-DNS: a DNS server that resolves everything to cats

The internet needs more cats. DNS servers are the authority on all things internet. Therefore, the best DNS server is the one that resolves everything to cats. We'll talk about DNS servers: how they work, how your browser talks to them, and how to write a DNS server that always gives you a cat in less than 200 lines of JavaScript.

Gina Cook
D3 & FRB: A case study in binding and editable DataViz

Functional Reactive Bindings go beyond just two-way data binding. They can gracefully bind long property paths and the contents of collections. They can also incrementally update the results of chains of queries including maps, flattened arrays, sums, and averages. In this talk I'll demo a framework agnostic graph visualization dashboard built using D3 and FRB which can be embedded in any client side app as a Bower component, or server side app as an NPM module.

February 11th, 2014

Steve Venzerul
Front-End Web App Architecture

Front-end apps are all the rage nowadays and the tool chain has never been better, but what's behind all the magic? what makes a modern front-end JS app tick? We will be looking at all those questions and much more.

January 14th, 2014

Sebastien Cabot
Mise en lumière de votre JavaScript!

Au cours de cette heure, nous souhaitons partager avec vous notre démarche pour parvenir à contrôler une bande DEL RVB via une interface Web, et cela en n'utilisant aucun autre langage que le JavaScript. Notre but est de vous initier à la quantité phénoménale d'interactions au monde physique qui vous est accessible avec la plateforme d'expérimentation BeagleBone Black et vos connaissances JavaScript.

Rami Sayar
Turning Visual Studio into a NodeJS IDE

Rami Sayar is a Microsoft Technical Evangelist based in Montreal (@ramisayar). He will be demoing the latest tools for Node JS and Visual Studio. NTVS allows you develop and debug nodejs web apps while retaining all the IDE features and power of Visual Studio. You can manage NPM packages for your projects, perform remote debugging and more.

December 10th, 2013

Tarek Sherif

BrainBrowser is a suite of web-based, real-time 2D and 3D visualization tools for neuroimaging data. BrainBrowser is a full JavaScript application, using WebGL (through three.js) for 3D rendering, the Canvas API for 2D rendering and Web Workers for computationally expensive data parsing tasks. It is being developed as part of the CBRAIN project at McGill University.

Martin Vézina
jsOrrery - WebGL Solar System

Experiments are not only fun to do, they are also a fantastic way to learn. I will walk you through an experimental project of mine : a visualization of the Solar System in 3D built with Three.js. So we will be talking about Three.js and WebGL but also physics, vector geometry, astronomy, etc. All of that in Javascript. Geek topics for a geek crowd!

November 12th, 2013

Jason McCarrell
Framework Showdown

With so many Javascript frameworks and libraries it's hard to know which one works for which scenario. Luckily Jason has redundantly built the same project using three different libraries. This presentation will compare Angular, Backbone, and Meteor using a hands-on use case of a TCG visual deck builder.

October 8th, 2013

Francois Marier
Mozilla Persona

Handling user passwords safely is hard, but replacing passwords on the web in a reasonable way is even harder. Really, this should have been in the browser all along. In this talk you we will see how Persona attempts to solve this issue.

Rami Sayar
Building and Publishing Node.js Applications with Windows Azure Web Sites on OS X

In this talk, you will learn the basics of the Windows Azure Web Sites service for Node.js applications. You will see how to use the Windows Azure portal for creating a web site and then publish a "Hello World" Node.js application using Git. You will also learn how to use the Node.js Command-Line Tools for publishing applications. You will have an additional reason to use your free monthly Azure Credits!

September 10th, 2013

Jack Parmer
Plot.ly - D3 Magic

D3.js has steadily gained popularity among scientists, data journalists, and web developers and is now arguably the leading open-source tool for web visualization. This talk will discuss Plotly's integration of d3.js with UX controls that allow users greater control over vis styling and information presentation

Nicolas Kruchten
PivotTable.js - For all your tabling needs

Pivot Tables and Pivot Charts are very useful interactive data analysis/visualization tools. Nicolas Kruchten from Datacratic will present his recently-open-sourced PivotTable.js component which addresses this need, and he will discuss applications and design decisions.

August 13th, 2013

Thomas Thiery
RequireJS - Chargeur de Module AMD

RequireJS est une librairie qui permet de charger des fichiers et modules JavaScript. Elle facilite grandement la structuration des projets JavaScript. Par des exemples simples et concrets, la présentation nous amènera à voir plusieurs mises en place possibles de la librairie — shim, AMD, node — pour un rapide tour d'horizon.

Stanislav Venzerul
Browserify - CommonJS Module Loader

Browserify is a module management system and the main competitor to RequireJS. Unlike RequireJS, it's based on the CommonJS module loading system popularized by Node.js. This presentation will be an introduction to Browserify and how it differs from RequireJS and the AMD eco-system.

July 9th, 2013

Ryan Weal
Pump.io - Next-Gen Social Network Engine

Pump.io is a decentralized social network engine written in JavaScript. It lets you manage activity streams, handling protocol communication and providing a web UI with real-time updates. Ryan will explain how to join an existing pump.io instance and follow people on other instances, how pump.io’s protocols work, and show us how to setup your own pump.io server.

Daniel Roberts
Continuous Testing with Karma

Karma is a testing framework agnostic, blazingly fast automated test runner written by the Google team behind Angular.js. Karma listens to your filesystem and runs your tests every time you save a file. Daniel will cover how with Karma, writing tests first, before code, can speed up your day-to-day development process, and turn test writing from a chore to an essential time saving practice you couldn't live without.

June 11th, 2013

Cedric Dugas
Getting Started With Vanilla Mobile Apps

Thinking about doing a mobile web app? See what issues you really don't want to tackle and learn some tips & tricks to get started.

Rowan Udell

A practical introduction to using the task runner GruntJS in your projects. More than just a build tool, Grunt makes it easy to automate your common tasks. Leverage concepts you already know, and an abundant ecosystem of plugins to quickly and easily improve your day-to-day workflow.

May 14th, 2013

Daniel Roberts
Continuous Testing with Karma

Karma is a testing framework agnostic, blazingly fast automated test runner written by the Google team behind Angular.js. Karma listens to your filesystem and runs your tests every time you save a file. Daniel will cover how with Karma, writing tests first, before code, can speed up your day-to-day development process, and turn test writing from a chore to an essential time saving practice you couldn't live without.

Hoodie is a new "frontend-only" framework designed to help you build applications quickly without worrying about server-side programming. Ben is going to tell us about what it can do, what type of apps it's a good fit for, and show us how to get started.

April 9th, 2013

Eric Mignot
Un kata TDD en JavaScript: Prime Factors

L'éco-système Javascript dispose aujourd'hui de tous les outils nécéssaires pour profiter du Développement piloté par les tests (TDD). Néanmoins sa maîtrise reste difficile. Les coding-dojos ont été conçus pour nous permettre d'apprendre à tirer le meilleur du TDD tout en jouant. Alors amenez vos laptops et venez coder, js-montreal se transforme en dojo!

Maël Nison

Voxplode est un jeu qui se passe dans un monde genéré de façon procédurale, et rendu a l'aide d'un engin voxel. Mael va nous présenter son jeu et les outils qu'il a conçu pour y arriver.

March 12th, 2013

Maël Nison
Angular.js: Un survol

Développé par Google, apportant un paradigme novateur, 'concurrent' direct d'Ember.js, AngularJS est un framework web faisant de parler de lui ces derniers temps. Maël nous présentera ses caractéristiques et points forts, avant d'évoquer quelques-uns des cas d'utilisations de l'outil.

Maxime Bergeron
jQuery Promises en 15 minutes

Malgré le fait qu'elles existent à travers les 'Deferred' dans jQuery depuis plusieurs versions (1.5+), les 'promises' sont encore méconnues et mal comprises par beaucoup de programmeurs. À travers plusieurs exemples, Maxime va démystifier tout ça.

December 11th, 2012

Florent Lamoureux
Introduction a Appcelerator Titanium

Titanium est un framework open source JavaScript, maintenu par Appcelerator, qui permet de développer des applications natives multi plateformes à partir d'un même code source. Florent va présenter son principe de fonctionnement, atouts et inconvénients, et nous montrera en direct la création d'une petite application multi plateforme.

November 13th, 2012

Olafur Arason
Introducing the Enyo 2.0 framework

Enyo 2 is a new component based JavaScript framework. It promotes a sane structure for the code and is easy to get into to make powerful applications. Olafur will also discuss his project DataControl which integrates PouchDB into Enyo to provide a seamless experience when working in offline conditions.

Alex Seville
Seamless code coverage with Blanket.js

Blanket.js is a new open source code coverage tool for JavaScript. Currently in alpha release, it completely changes how code coverage is managed in JavaScript testing. Alex will discuss current techniques for JavaScript code coverage and the method used by Blanket.js.

October 9th, 2012

Gina Cook & Theresa Deering
Taking Javascript Into The Field: A case study

FieldDB is a 100% Javascript stack for collaboratively collecting data. It was designed to run offline on multiple platforms (Chrome Extension and Android). In this talk we will discuss the hurdles along the way to building a data heavy offline app. We will focus two key libraries and how they fit into our stack: PouchDB alpha, a Javascript implementation of the NoSQL database CouchDB, for storing large amounts of data offline, and Require.js for simplifying development and deploying to different targets. The Javascript App, and its Node.js web services are OpenSourced on GitHub

September 11th, 2012

Clarence Leung
Next-generation JavaScript Frameworks

Now that we have both client-side and server-side JavaScript frameworks, the next step is to bring the two together. Clarence will explain the benefits of sharing code between client and server and demo three of the newest frameworks that take advantage of this: Mojito, Derby and Meteor.

August 14th, 2012

Martin Drapeau
Building assets on the fly with Node

Martin is going to demonstrate the technique he has been using to serve assets and templates without a 'watcher', using Node and Snockets.

Anna Filina
JavaScript Tools and Frameworks Faves

Anna will pick a few Javascript frameworks and libraries that she used on a recent project (jQuery, RaphaelJS, Plupload, etc.). And then show a quick overview of the possibilities of each and how they helped her build a mission-critical application.

July 10th, 2012

Steve Venzerul
Getting to know Node

Steve's going to show us how to get started building web apps using Node, Express and Jade. We'll also see explore some of the tools useful for Node development and a demonstration of Node's asynchronous nature through a small crawler program Steve has built. Exceptionally this month, there will be only one presentation because there is a lot of material to cover. And plenty of time for questions.

May 8th, 2012

Rahul Garg
QML - QT programs with JavaScript

QML is a JavaScript-based, declarative language for designing user interface–centric applications. It is part of Qt Quick, the UI creation kit developed by Nokia within the Qt framework. QML is mainly used for mobile applications where touch input, fluid animations (60 FPS) and user experience are crucial. Rahul will show us how to get started with QML.

Show and tell

Let's have an open show-and-tell about tools and libraries we've recently discovered or started using.

March 13th, 2012

Steve Venzerul
Transform data into magic with D3

D3 applies data-driven transformation to a document. It is particularly adept at creating awesome visualisations using SVG and CSS3-transforms.Steve will show us how to get started with D3 and a few fun things you can do with it.

Christian Joudrey
Continuous integration for your projects using Travis CI

Travis CI is getting a lot of traction, particularly on Github where it is beautifully integrated. Christian will explain how easy it is to get your open-source project working with Travis.

February 14th, 2012

Laurent Villeneuve
/^[FfC](?:(?:re?a|\*{1,2}|.*)c?)king$/ Regex

Do you, like most regular folks, suck at regular expressions? What if you suddenly had to save someone's life using Regex? You could be a hero! Laurent's going to unlock the mysteries of Regex syntax and put us all on the path to regular expression enlightenment.

Jerome Gravel-Niquet
Building DocumentUp

Jerome's latest project, DocumentUp, uses many interesting js libraries and techniques to create documentation on the fly for your GitHub projects. He's going to tell us more about the technology behind DocumentUp: Ender, localStorage, Node and more.

January 10th, 2012

Gina Cook
Setting up your New Years Resolution: JsTestDriver Part 1

Getting JsTestDriver set up requires reading almost every issue in the issue tracker but it's worth it. Gina will present her findings to us and help us fullfil our testing resolutions. JsTestDriver is a test runner for Javascript unit tests that supports 3rd party frameworks.

Laurent Villeneuve
Readability through code formatting, idioms and compression tolerance

After fiddling with code formatting for many years, Laurent will share some aspects of his idiosyncratic JS style. From comma-in-front formatting, to compression tolerance, to the elimination of flow control statement, we'll see how code can be transmuted to data for better scanability and eventually, architecture.

November 8th, 2011

André de Santi Oliveira
Frameworks MVC JavaScript

Présentation des frameworks MVC JavaScript (SproutCore et JavascriptMVC) et l'écosystème autour d'eux (JavaScript frameworks, templates frameworks, dynamic stylesheet languages, mobile frameworks, etc).

Bruno Carriere
A fresh new website (with nothing on it)

The JSMTL web site was getting a bit old so I decided to go ahead and begin a redesign. It uses Twitter's new baseline library, Bootstrap. All the code is available on Github and I want to invite everyone to play with it, because I suck at design.

October 11th, 2011

Cedric Dugas
State of jQuery Mobile

The jQuery mobile team has just released 1.0 RC1 nearly one year after its announcement and with it we are getting very close to a 1.0 release. Let's examine this framework and find out what makes it great as well as its weaknesses.

Bruno Carriere
Getting started with Sencha Touch

Sencha Touch is a mobile framework with a heavy emphasis on a hierarchy of widgets; much like its big brother it is designed to be driven with a lot of JavaScript, and very little HTML.

September 13th, 2011

Mathias Baert
Userscripts: smoothing the creases of the web

What to do when a website you frequent has these irksome little annoyances that drive you crazy? What to do when your browsing experience is repeatedly interupted by something that could be so much better if only they would fix it? Do you send the website owner an email asking to adapt his site to your tastes? No, you whip out greasemonkey and fix it with a userscript of course! Userscripts are old news. Still, I bet you're not using them quite enough. (Presentation in English)

Bruno Carriere & Everyone else
State of the JS-MONTREAL address

We're quickly closing in on two years of JS-MONTREAL. Let's talk about what we want to see more of, less of and new things we want to accomplish over the next few months. Also we need halp! Are you interested in volunteering your time to make JS-MONTREAL better? It's a good time to get involved.

August 9th, 2011

Cedric Dugas
jQuery Spaghetti, Version Sans Gras

Cedric nous démontre de simples trucs pour améliorer votre code tout en gardant la simplicité de jQuery intacte. Un entre deux pour ceux qui ne sont pas prêts à se lancer dans Backbone.js et autres frameworks plus complexes.

Martin Drapeau
Moving Planbox to Backbone.js: What we learned

Planbox is web-based Agile Project management tool. Project management can quickly become quite complex and Martin and his team have discovered that Backbone.js has really helped them keeping things simple. Come see how they moved the MVC stack to the forefront with Backbone. Learn about the benefits and downsides. Actually there are no downsides!

July 12th, 2011

Olivier Arteau
LiveTool - Dessin dans le browser multi-utilisateur

Olivier va nous présenter son application LiveTool qui permet à plusieurs personnes de travailler en même temps dans un éditeur graphique. Il nous présentera l'application, ainsi que les technologies utilisées dans ce projet.

Rahul Garg
Developing for WebOS in Javascript - An Introduction

Are you curious about WebOS? This tablet OS is designed from the ground up for JavaScript programmers. Rahul will present the OS and show how it works and give us an overview of the APIs and tools available.

May 10th, 2011

Derek Brans
On CoffeeScript

CoffeeScript is a little language that compiles into JavaScript. Underneath all of those embarrassing braces and semicolons, JavaScript has always had a gorgeous object model at its heart. CoffeeScript is an attempt to expose the good parts of JavaScript in a simple way. Derek's also going to talk about the IDE he's working on - built for CoffeeScript, in CoffeeScript on top of nodejs.

Laurent Villeneuve
Two Prototypal Eureka Moments

Flash presentation about Laurent's new script, Super.js - a micro sized JS class implementation.

April 12th, 2011

Christian Joudrey
Jump into Node: Building your first Node app with Connect & Express

Christian will show us how easy it is to get started with Node JS, creating a basic web application with Connect & Express.

Scott Burch
BDD with Jasmine

Jasmine is an open-source BDD testing framework for Javascript. After Scott's talk, you will not have any excuse not to unit test your JS. :D

February 8th, 2011

Laurent Villeneuve
Don't skip chapter 7: A look at the Function object.

The first time Laurent read "Javascript, the Definitive Guide" he skipped over chapter 7 entitled Functions. Bad idea. 8 years later, he won't let your make the same mistake.

Vincent Renaudin
Canards & Canvas

Vincent brave les avocats de Nintendo pour nous expliquer comment il a reproduit le classique de notre enfance "Duck Hunt" sur Canvas avec plusieures librairies utiles.

January 11th, 2011

Bruno Carriere
Building a client-side MVC app with Backbone.js, Underscore and jQuery

Backbone.js is a fresh new library providing models, collections, views and controllers to client-side JavaScript applications. Bruno is going to take us through the creation of a simple but fully functional web app using Backbone.

November 9th, 2010

Cedric Dugas
Better form validation with jQuery.validationEngine

Form validation is an annoying, repetitive task that we all hate to do. Cedric's jQuery plugin makes form validation much less painful.

Sean Coates
Webshell - A console based Javascripty web client utility

Sean Coates is a name that is familiar with the PHP community but tonight he's gonna show Webshell, a web client utility written using NodeJS.

September 14th, 2010

Jacob Beard
Developing a statechart to ECMAScript compiler

Developing rich, Web-based user interfaces can be challenging due to the complex behavioural relationships between UI components, which are often difficult to express, and are even more difficult to encode and maintain. An elegant solution may be found in Model-Driven Engineering. In particular, Statecharts, a formalism for describing complex, reactive, timed, state-based behaviour, is highly suited to model UI behaviour. This presentation will discuss the SCXML JavaScript Code Generation Framework (scxml-js), a Statechart-to-JavaScript compiler, and how it may be used to accelerate the development of fast, robust, and richly interactive Web-based UIs

Alexis Sellier
Building real-time web applications with CouchDB

Alexis is going to introduce CouchDB and explain how he's been using it to create real-time web applications.

July 13th, 2010

James Duncan
Why Software Sucks, JavaScript and you

Why does software suck? James Duncan is going to tackle this age-old question and tell us why JavaScript is the last language you'll ever need to know. He is currently developing a PaaS using end to end JavaScript called SmartPlatform.

Laurent Villeneuve
A Quilt Of Higher-Order Functions

A machine-gun delivered overview of functional jutsu.

May 11th, 2010

Sean Braithwaite
Partial application in JavaScript

Partial function application is a staple of functional programming. It is easily implemented in JavaScript as Sean will show us.

Vladimir Sedach
Continuation-passing style in JavaScript

Vladimir will demonstrate how to use this technique to compile search queries.

April 13th, 2010

Alexis Sellier
Node JS: An introduction

Node JS is an evented IO framework built on top of V8 Javascript. It's particularly useful for building http-based servers and JavaScript is a great match for event-based programming. Alexis has been playing with it for a while and will get us up to speed.

Bruno Carriere
Since we last met...

An overview of what happened since our last meeting, in February.

February 10th, 2010

Gary Haran
Plugins In Your Web App: The How-To

A plugin based architecture is a great way to build extensible web applications. Gary takes us through the basics and tells us more about his group chat application, Talker.

January 21st, 2010

Bruno Carriere
A brief history of JavaScript

The JavaScript language has had a very interesting history. Despite being a young language, it has become the most popular one on the planet and its story is one full of mystery, intrigue and murder! Ok maybe not.

Laurent Villeneuve
Building a DSL for RESTful applications in JavaScript

Laurent presents a useful abstraction created to define a RESTful application's URL routes. The idea continues now on github with his restate project.