Training Day Schedule
at WaPo Labs, partnering with DC jQuery and Node DC
Welcome/Post Meetup Party at the Post Pub
sponsored by Leidos
Registration and Continental Breakfast Sponsored by Endgame
Welcome and Introduction
by Kyle Simpson
by John K. Paul
Coffee Break Sponsored by Intridea
by Pam Selle
by Adam Lehman
by Brian McKenna
by David Casagrande
by Chris Strom
by John Athayde
Lunch in Town
by Michael Tierney
by Adam Solove
by Michael Ficarra
by Andy Pliszka
by Christian Lilley
by Kyle Hill
by Nick Gauthier
Snack Break Sponsored by Webs
by Andrew Brampton
by Chris Moultrie
by Ray Daly
by Ed Kim
Beer Summit at McGinty's Public House
sponsored by Sequoia
I bet you've been writing JS for years and you think you're pretty good at it. I bet you think you know all about how functions create closured scope, and how `this` gets bound, and even how `.prototype` works. Or, rather, you probably don't care because your framework or library takes care of all that for you.
This talk is going to re-visit some of the 'tough parts' of the language by declaring 'New Rules' (Bill Maher style) for the language.
For instance: 'New rule: Stop using 'this' until you fully understand how it gets assigned.'
This talk is going to be hard-core on coding and expects a solid understanding of the language.
John K. Paul John K. Paul is the lead technical architect of Condé Nast's platform engineering team and former lead front end software engineer at TheLadders.com. He is a contributor to numerous open source projects including learn.jquery.com.
Mobile Web Patterns with Backbone.js by Nick Gauthier
Mobile web is a harsh environment with low processing power, low bandwidth, and high latency. In this talk we'll look at a handful of performance optimizations in Backbone.js with a focus on mobile applications. From transparently caching objects to avoiding unnecessary calls to render, we'll optimize our mobile app for usability.
Prototyping à la Node with Express by Pam Selle (Video)
Fantasy Land Witchery by Brian McKenna (Video)
Fantasy Land is a specification of interoperability for common algebraic structures. Common algebraic structures include functors, monoids and monads. What do these structures do? How do these structures allow us to not repeat ourselves?
This talk will show some magic that we get for free just by implementing a few methods. It'll demonstrate existing Fantasy Land libraries which allow us to treat everything as a value, including I/O, state, mutation and logging.
Brian McKenna Brian McKenna is a huge believer in functional programming. He works Roy, an altJS language for functional programming; bilby.js, a library which takes functional programming seriously; Brushtail, an AST rewriter for tail-call elimination; and Rephrase, a tool for rewriting an AST using inline comments.
John Athayde is a designer and developer who spends a lot of time fighting bad UX coding practices. He is currently the Lead for UI/UX and Front-end Development–Internal Apps at LivingSocial. Prior to LivingSocial he was the lead designer at InfoEther and ran Hyphenated People with Amy Hoy. In his free time, he plays guitar and keyboards for DC's own Juniper Lane. He holds his Masters in Architecture from Catholic University of America.
Getting Blazed With Ember.JS by David Casagrande (Video)
There is nothing hotter than client-side MVC's right now and it can be difficult to decide which one is right for you. This session will focus exclusively on Ember.js from the perspective of a developer who worked on a Backbone.js application for over a year before migrating to Ember.js and never looked back. We'll cover how Ember.js works, we will talk about its internals and what makes it unique, and we will look at how easy it is to write an incredibly-clean, super-maintainable and most importantly, fun-to-write client-side application. I'll also share some real-world examples of how we use Ember.js at Quad Learning..
David Casagrande is responsible for creating the next generation interface at DC ed-tech startup Quad Learning. In his free time he enjoys tennis, reading and co-runs Ceremony Recordings.
A bit of history. A bit of academia. A bit of current news. A few guesses about the future. But nothing about the future of newspapers.
Getting Started with 3D Programming in Three.js by Chris Strom (Video)
You're gonna code in this talk and it's going to be *amazing*!
This is a variation of the course that we teach to kids 8 years old & up. It includes three different exercises designed to introduce new concepts while building on those previously learned, Basic shapes and animations,Building and manipulating a game player, WebGL for beautiful graphics.
Coding is all done with the same in-browser code editor used in the new book “3D Game Programming for Kids.” That way, everything is browser based, so virtually no setup work required, it uses localStorage so attentees following along keep their work, and it yields immediate feedback with the Three.js animations displaying directly in the browser.
So easy a kid could do it. Well some of it, at least :)
Chris Strom You could fill a book with what I don’t know. Which is rather the point. Author of “3D Game Programming for Kids,” “Dart for Hipsters,” and “The SPDY Book.” Co-author of “Recipes with Backbone(.js).”
SASS and Compass for Developers by Andy Pliszka (Video)
Sass is a CSS metalanguage that makes CSS development interesting and fun. Sass is a great vehicle for developers to get involved with CSS and design.
In this session, we will start with a short introduction to Sass syntax and semantics. We will explore variables, imports, and nesting. We will learn how to write reusable stylesheets using mixins and inheritance followed by a survey of Sass functions and control structures such as loops and conditions. Finally, we will explore Compass — a CSS authoring framework build on top of Sass. We will take a look at Compass’ directives for colors manipulation, gradients, sprites, and typographic rhythm.
In summary, SASS and Compass is a great framework for generating CSS.
Andy Pliszka is a Software Engineer at Pivotal Labs and the organizer of AlgorithmsNYC Meetup. He worked on variety of projects: financial exchange written in Erlang, multiple Ruby On Rails web applications, and computer vision processing in Python. He enjoys implementing computer algorithms in variety of computer language. His favorite languages are Smalltalk and Lisp.
You can find Andy on twitter @AntiTyping.
Interactive Data Visualization with Backbone and D3 by Michael Tierney (Video)
Compelling data is everywhere and creating effective data visualizations, while challenging, is always rewarding. In this 30 minute session we'll walk through interactive charts built using D3 on top of Backbone. The session will cover concerns and solutions for displaying your visualizations responsively across devices, as well as strategies employed to create efficient, modular pieces that can bring any number of charts to life.
Michael Tierney Mike Tierney is the lead front-end developer at Intridea. He is a firm believer that every problem, no matter how dire the situation, has a path to success and is always chasing the rush of a great solution. Over the past 3 years as lead front-end dev, he's found himself working with complex applications supporting a diverse range of users and browsers. He is a strong advocate for good user experience and using the right tool for the job.
The GUI turns fifty by Adam Solove (Video)
This year is the fiftieth birthday of the graphical user interface. But the GUI isn't doing so well. It's put on weight, isn't as strong as it used to be, and sighs when it looks back at pictures of itself from the eighties.
Come to celebrate fifty happy years in the life of the user interface, and be ready to go home and make your web applications more powerful.
SpiderMonkey Parser API: A Standard For Structured JS Representations by Michael Ficarra (Video)
Michael Ficarra is best known for his significant contributions to the CoffeeScript programming language, its original compiler, and his KickStarter-funded rewrite. He can be described as having a passion for defining transformations of all sorts, so he naturally enjoys working with compilers and functional programming languages. As one of Github's most active users, he is an influential member of the online OSS and ECMAScript communities. He is currently working at Groupon in Chicago, IL, USA on their application security team.
Angular Directives Made Easy: From Imperative to Declarative in Minutes by Christian Lilley (Video)
The true power of Angular.JS isn't unleashed until you're writing your own custom directives, and letting Angular handle all your DOM manipulation. You'd never know it from the Angular documentation, but it's easy! Once you understand a few simple concepts, and have your template ready, you can whip up your own re-usable, declarative directives in minutes, and start dropping them into your HTML like a pro. We'll provide the tools and insights to get you there.
Christian Lilley Christian Lilley is a happy hacker at McKinsey & Co., one of the world's finest professional services firms. He specializes in building data-driven, browser-side user-interfaces for the web, featuring lots of data visualization. He also trains other developers there in making maximum use of client-side technology. Christian is Co-Organizer of Data Visualization NY, the world's largest offline dataviz community. He writes about the above - and variations thereon - at christianlilley.com.
jQuery Is Not The Answer by Ed Kim (Video)
Ed Kim Ed is the VP of Engineering at Social Tables, an online event planning and CAD software for the hospitality industry. He is also the co-organizer of the NodeDC Meetup group.
Angular.js + Jasmine, Testing the Night Away by Chris Moultrie (Video)
Angular.js with Karma make writing unit and behavior tests quick and easy. This presentation takes a quick look at the Jasmine Testing framework and then dives into the some of the great features of ngMock in Angular.js. We'll talk about Dependency Injection, Spies, $httpBackend, and $timeout. You'll be up and running with tests in no time.
Chris Moultrie As a software developer, Chris creates custom user controls and invents new ways for users to interact with Endgame products. He loves implementing pixel-perfect interfaces to produce a unique and amazing user experience. Chris is a life-long Georgian who got his start writing POS software for movie theaters in Delphi. He's currently maintaining an open source project named Jasmine-Node on Github that allows command line execution of unit tests for node.js projects using the popular Jasmine framework. Outside of Endgame, you're likely to find Chris powerlifting, training for a Spartan Run, or leading the Endgame team in its next Tough Mudder.
Node.js + WebSockets + Wiimote = Fun by Andrew Brampton (Video)
Andrew Brampton Andrew (@TheBramp) is a technical lead at Genesys Labs, a company that enables communication between our clients and their consumers. Specifically Andrew is responsible for maintaining numerous platforms related to (SMS/MMS) messaging, and mobile web.
Before Genesys, Andrew was a researcher at Lancaster University, teaching, and researching the area of distributed systems. In his free time Andrew can be found kernel hacking, contributing to open source, and playing around with new technologies. Check out his blog bramp.net or follow him at github.com/bramp
Express on Rails by Kyle Hill (Video)
Have you built your first node application yet? Yeah, me too! Wasn't writing it fun and easy? Same here! Did your codebase quickly turn into an unrefactorable soupy mess too? Of course it did!
In this talk, we'll discuss the architectural and organizational strategies used by Ruby on Rails that help the scope and size of applications to scale easily. We'll then learn how we can easily employ those principles with express.js to build some serious node applications, without all the dogmatism and pain that usually comes with RoR.
Kyle Hill On weekdays Kyle does data visualization and JS development for JIBE. On weekends Kyle drinks hoppy beers and watches DC United lose.
Brackets: An Open Source Code Editor For The Web by Adam Lehman (Video)