Node PDX 2016 schedule

View as grid

Saturday 18th June 2016

  • Geek Train

    by Adron Hall

    The Geek Train will be traveling from Seattle to Portland for Node PDX.*

    Join fellow Nodesters on the Amtrak Cascades from Seattle to Portland. Even if you are coming from Vancouver BC, Bellingham, Mount Vernon, Stanwood, Everett, Edmonds, Tukwila, Tacoma, Olympia, Lacey, Centralia, Kelso, Longview, or Vancouver, WA we'd love for you to join us.

    Our Geek Train is Train #507 on June 18th, departing Seattle's King Street Station at 2:10pm for an arrival into Portland, Oregon at 5:50pm. Join the Geek Train to Portland, it's easy, just go and purchase your fare at our super Node PDX special rate of $15 bucks!

    RSVP: https://ti.to/nodepdx/nodepdx-20...
    Full Details: http://nodepdx.org/lagniappe.htm...

    NOTE: If you're curious, Adron will be organizing the trip and meeting everybody at King Street Station for the trip from Seattle to Portland.

    At 2:00pm to 6:00pm, Saturday 18th June

Sunday 19th June 2016

  • Workshop: Getting Beyond "app.get()": ExpressJS Middleware Explained and Explored

    by 〽️artypd⚔

    ExpressJS makes it incredibly easy to get started setting up an http server.
    But as your app grows in size and complexity an `app.js` full of routing calls
    can become unwieldy and hard to manage.

    This workshop will walk you through how ExpressJS middleware actually works and
    show you how to:

    • Use the `express.Router` object to modularize routes by resource type (REST noun)
    • Correctly order app routes and multi-function routes by knowing how middleware "flows"
    • Use the `next()` function to selectively apply common app logic like authentication and authorization
    • Understand what third-party middlewares like `body-parser` are actually doing
    • Introduce custom properties on the request object
    • Use parameter based middleware
    • Setup common error handling

    At 9:00am to 12:00pm, Sunday 19th June

    In Main Room, Code Fellows

  • Workshop: Taming Asynchronous JavaScript with ES2015 Promises and Fat Arrows

    by 〽️artypd⚔

    Looking to get caught up on the best ES2015 features that you use natively in Node.js version 5 and later? This workshop will
    walk you through how Promises and Fat Arrows allow you to write cleaner, easier-to-read code and leave callback hell far behind.

    You'll learn how to:

    • Relate promises to callbacks and understand the problems promises solve
    • Wrap traditional callback api's as Promises
    • Chain promises and know how return values effect chaining
    • Use fat arrows to make your promise handlers clear and concise
    • Use `Promise.all` to parallelize asynchronous calls
    • Properly handle exceptions in promise chains
    • Manage closure data across Promises
    • Consider when and why to use a third-party promise implementation like bluebird over native promises

    At 1:00pm to 4:00pm, Sunday 19th June

    In Main Room, Code Fellows

  • Group Bike Ride

    by Adron Hall

    Join us for a group bike ride around Portland.

    The bike explorations will depart at 5:15pm from the waterfront on Sunday the 19th. If you're interested, get RSVPed with a Bike Ride Ticket and we'll deliver the specific details for the starting point, bike rentals, or other ways to get a bike and join the ride when it's closer to the date.

    RSVP: https://ti.to/nodepdx/nodepdx-20...

    Full Details: http://nodepdx.org/lagniappe.htm...

    At 5:15pm to 7:00pm, Sunday 19th June

  • Welcome Reception @ Bossanova Ballroom

    by Troy Howard

    Come get your badge, t-shirt, and preview the venue and meet the other attendees before the conference starts tomorrow morning!

    At 7:00pm to 10:00pm, Sunday 19th June

    In Upper Bar, Bossanova Ballroom

Monday 20th June 2016

  • Welcome to NodePDX 2016

    by Troy Howard

    At 9:00am to 9:15am, Monday 20th June

    In Main Room, Bossanova Ballroom

  • Intro - Hardware Hacking Space

    by Emily Rose

    At 9:15am to 9:30am, Monday 20th June

    In Upper Bar, Bossanova Ballroom

  • A Foolish Quest: Creating Knitting Patterns Using JavaScript

    by Liz Abinante!

    The talk will show taking something real-world and math-based, like knitting, and turning into a program is actually super easy (no one is surprised here). But! What happens when you combine that with best practices and expected conventions, along with industry-wide standards for design and presentation? Things get a lot more complicated than just crunching numbers, especially when your output will result in lots of manual hours for people creating a real object. This is the story of how Liz built a customizable knitting pattern generator in JavaScript (after she’d built it in Ruby first, of course), and the lessons learned when you try and do math for more than just math’s sake.

    At 9:30am to 10:00am, Monday 20th June

    In Main Room, Bossanova Ballroom

    Coverage video

  • Isomorphic Business Logic

    by Jon Oropeza

    Business logic is all the tricky calculations, rules and transformations that never seem to be in the hot new framework’s example ToDo app. Lately I’ve been finding it’s also the key to convincing clients and bosses that they NEED to run a node layer, no matter what other backend techs they happen to be rocking. In this talk I’ll dive into why and how, including:

    An intro to isomorphic javascript
    Challenges that arise from wanting a performant client and server-side verification
    How this gets exacerbated if you happen to be using a microservices-based backend
    Business logic – that pesky stuff that isn’t in the ToDo App
    Story time: A real world example of an app trying to apply the same logic in 2 different languages
    Isomorphic business logic to the rescue!
    The close… How all of this translates to ‘you need to run a node server’:)

    At 10:15am to 10:45am, Monday 20th June

    In Main Room, Bossanova Ballroom

    Coverage video

  • From Software to Hardware: How Do I Track My Cat with JavaScript

    by Tomomi ❤ Imura

    In the era of Internet of Things, connecting things to the mobile devices and web is becoming ubiquitous. You can control room light using your mobile phone. You can monitor your heart rate and weight on browser. JavaScript engineers like you already have skills to prototype ideas to build software, so why not hardware too?

    At 11:00am to 11:30am, Monday 20th June

    In Main Room, Bossanova Ballroom

    Coverage video

  • Ops for Devs

    by Adam Ulvi

    Node applications exist at the end of a long, somewhat magical series of tubes. What spells are being cast to make this all work? Let's find out!

    In this talk we will explore the steps required to host a Node application on a small, affordable linux virtual private server (like a DigitalOcean droplet). This is not a tutorial, but rather, a walk-through of the configuration steps, background information the role each step plays, and the "why" behind the choices we are making.

    The reference implementation is taken from the current production gruntjs.com server.

    By following the request lifecyle, we will touch on basic tcp/ip networking, DNS configuration and history, node application development, nginx proxy configuration, and basic linux system configuration.

    At the end of the presentation developers should have a better understanding of the simple application's infrastructure requirements, external dependencies, and targets of opportunity for future improvement.

    At 11:30am to 12:00pm, Monday 20th June

    In Main Room, Bossanova Ballroom

    Coverage link video

  • Lunch - Food Carts

    by Troy Howard

    We'll have lunch served from two local food carts in the parking lot outside. Vegan, vegetarian, gluten free options are available.

    At 12:00pm to 1:15pm, Monday 20th June

    In Bossanova Ballroom

  • Lightning Talks - Day 1

    by Adron Hall

    A series of short five minute talks, scheduled first-come, first-served.

    At 12:45pm to 1:15pm, Monday 20th June

    In Main Room, Bossanova Ballroom

    Coverage video

  • The House Is Not On Fire: Building a home automation robot with Arduino, Raspberry Pi and Node.js

    by Artur Paikin

    Artur has built an open source home automation system called [Koti Home](https://github.com/arturi/kotihome) (Koti means home in Finnish language). It’s powered by an Arduino connected to Raspberry Pi, MQTT protocol for messaging, Node.js on the client and server, web sockets. You can interact with Koti robot via a React (like the cool kids do) control panel, Telegram Chat Bot and even your own voice.

    Arthur will talk about how he's turned this project into reality — the tech he used and the challenges he faced. From a blinking LED to a voice controlled home automation robot.

    At 1:15pm to 1:45pm, Monday 20th June

    In Upper Bar, Bossanova Ballroom

    Coverage link

  • The SAM Pattern: a distributed system view of Front-End architectures by Jean-Jacques Dubray

    by Jean-Jacques Dubray

    Web Applications are rapidly becoming sophisticated distributed systems. When you look at a Facebook page or a Netflix catalog,
    the number of components interacting with each other requires complex synchronization and state management capabilities, reaching
    the limits of the MVC pattern.

    In the last couple of years, several reactive architectures have started to get some interest (React, Cycle.js, ELM) without
    generating significant traction (compared to established frameworks like Angular), while struggling to position effects in their
    programming model. A new reactive, functional pattern, the State-Action-Model pattern (SAM) was introduced in early 2016 on the
    foundation of TLA+ semantics.

    The pattern, which is unapologetically driven by simplicity, promotes a clear delineation between the business logic and the view
    and challenges the complexity of frameworks like Google's Angular or Facebook's React/Redux.

    SAM's unidirectional flow is also challenging interactive patterns like BFF (Back-End for Front-End) or the Vertical Slice Pattern
    which suggest creating view-specific APIs, per platform, app, versions of an app...

    We'll start by reviewing some of the key challenges of modern UX and Front-End Architectures. We will then present the
    key concepts of SAM and walk the audience through some node.js code samples (including server-side TimeTravel).

    At 1:15pm to 1:45pm, Monday 20th June

    In Main Room, Bossanova Ballroom

    Coverage video

  • Broken Promises in Open Source

    by Jacob

    Open source is burning people out.

    Most of us are well intentioned but adversarial communication styles and poor communication mediums can derail, divide, and detach communities from one another.

    Using promises in Node Core as the backdrop, I would like to discuss the rocky journey forward to a sustainable, and inclusive world of open source.

    At 2:00pm to 2:30pm, Monday 20th June

    In Main Room, Bossanova Ballroom

    Coverage video

  • Modern Javascript Frameworks - Introduction to Ember.JS and Ember-CLI

    by Suchita Doshi

    There will never be a “one size fits all” approach to web development. If you want your application to be minimally interactive, then server side rendered HTML would be the way to go, else, if it were a more interactive application, then client side framework would benefit you.
    Why not use just JQuery instead of adopting these Modern Javascript Frameworks? Think about it! If your application has interactivity on the lighter side, then JQuery would work well, but as soon as you introduce more states in your application, it would then become messier and heavier on the DOM. You would need to use the ‘data-‘ attributes to store the data in your DOM and also remember how to map them with the triggered events.

    Here is where client side frameworks come to the rescue. I have worked on several client side frameworks like Backbone.js, Ember.js. Few of the many features I love about Ember.js are the two-way data binding, Computed Properties, the run loop, convention over configuration nature, ease of handling routing and many more.
    In this talk I would be covering the following:
    - Introduction to Emberjs and why Ember
    - How Ember js makes a difference
    - Ember convention over configuration nature
    - Introduction to Ember routes, components and templates
    - Introduction to Ember CLI
    - Computed Properties
    - Live Demo on how it’s really intuitive in a couple of non-trivial scenarios.

    So basically my goal is to attract more developers to adapt modern javascript frameworks and make a difference in the way complex apps are built.

    At 3:00pm to 3:30pm, Monday 20th June

    In Main Room, Bossanova Ballroom

    Coverage video

  • MMOWAM: Build Server-less Games with a DSN

    by Josh Marinacci

    Josh will be talking about building a multiplayer casual game for fun. Well, it’s fun until you have to write a server component to run it. Now you have to implement game matching, keeping clients in sync, in game chat, score tracking and more. In this Josh will show you how to use a Data Stream Network (DSN) write a game without any server at all. The network itself can connect users, load clients, and keep everything in sync without having to learn distributed computing programming. Josh will build and play a MMOWAM (Massively Multiplayer Online Whack-A-Mole) game to show how easy it can be.

    • game MMOWAM (whack-a-mole)
    • show mini version of each player on dashboard
    • show current score / level
    • show how much is left
    • random number syncing to ensure everyone has the same board
    • use a random channel w/ tiny UID to let anyone join
    • show number of players
    • start when 4 players in? one player hit’s start? let all player see total count as well and status of the other players

    At 3:45pm to 4:15pm, Monday 20th June

    In Main Room, Bossanova Ballroom

    Coverage video

  • Demystifying TypeScript Decorators

    by James Churchill

    In "Demystifying TypeScript Decorators", James will show us TypeScript decorators. Based on the ES2016 decorator proposal and introduced as part of TypeScript 1.5, decorators provide developers with a way to modify a JavaScript class, property, method, or method parameter using a convenient declarative syntax. We'll start this session by creating our own decorator, to see firsthand how they work. Then, we'll take a look at how decorators can be used in a variety of settings.

    At 4:30pm to 5:00pm, Monday 20th June

    In Main Room, Bossanova Ballroom

    Coverage video

  • Ping Pong Party @ Pips n' Bounce

    Come join us for some snack and ping pong at Portland's very own Pips n' Bounce.

    This is a great time to chat about all the great things you learned during the day and get to know the other attendees.

    At 7:00pm to 10:00pm, Monday 20th June

    In Pips & Bounce

Tuesday 21st June 2016

  • Intro - Day 2

    by Troy Howard

    Welcome back for Day 2 of NodePDX!

    At 9:00am to 9:15am, Tuesday 21st June

    In Main Room, Bossanova Ballroom

  • Intro - Hardware Hacking Space (Day 2)

    by Emily Rose

    At 9:15am to 9:30am, Tuesday 21st June

    In Upper Bar, Bossanova Ballroom

  • A P2P Calendar

    by substack

    How to build a sharable calendar without uploading all of your life to somebody else's computer.

    At 9:30am to 10:00am, Tuesday 21st June

    In Main Room, Bossanova Ballroom

  • WebSockets Bring Light at the End of the Tunnel

    by Joel Lord

    Joel is going to speak on Web Sockets and tunnels of light… or to describe it more specifically more and more, people seem to be obsessed with real-time data. But what does real-time mean in the world of REST servers and one-way communication? Most modern web applications are now either displaying a snapshot of data at a given time or use a polling mechanism to update series of data at a given interval.
    In this talk, you will learn about the power of WebSockets and how they can (and should!) be used in your modern web applications. In these 30 minutes, I will go through the process of building a Node server that can push data to multiple clients in real-time. You will see how this can be easy using the socket.io library.

    At 10:15am to 10:45am, Tuesday 21st June

    In Main Room, Bossanova Ballroom

  • RRR - React, RethinkDB, Raspberry Pi

    by Mike Glukhovsky

    React is the new hotness when it comes to efficient and reactive UI in the browser. RethinkDB is the new hotness when it comes to pushing live data to wherever you need it from a single source of truth. And lastly, RethinkDB is the smallest and cheapest computing device for doing awesome IoT things. So what happens when we combine all three?

    In this talk I’ll show how to create your own motion detection-activated security camera with an automagically updating UI. The RethinkDB, RBPi, React combination gives us a great way to put together a homebrewed hardware idea with the minimum amount of code to get to a working project. React is a great and efficient interface for IoT projects such as this and even more so when the feed is a RethinkDB changefeed powered by the easy asychronicity of Nodejs.

    At 11:00am to 11:30am, Tuesday 21st June

    In Main Room, Bossanova Ballroom

    Coverage video

  • Code First Docs: How we Threw Out The Book & Put Code First With Twilio Documentation

    by jarod reyes

    What is the journey of the modern developer? How does documentation fit into their flow? Are there ways to create documentation that enables developers to work smarter, as opposed to interrupting their day? We'll discuss these questions and more as I share how we got to the realization that we needed a documentation revolution; this is the story of how we raised up code to be the supreme leader of documentation."

    At 11:30am to 12:00pm, Tuesday 21st June

    In Main Room, Bossanova Ballroom

    Coverage link

  • Lunch - Food Carts

    by Troy Howard

    We'll have lunch served from two local food carts in the parking lot outside. Vegan, vegetarian, gluten free options are available.

    At 12:00pm to 1:15pm, Tuesday 21st June

    In Bossanova Ballroom

  • Lightning Talks - Day 2

    by Adron Hall

    A series of short five minute talks, scheduled first-come, first-served.

    At 12:45pm to 1:15pm, Tuesday 21st June

    In Main Room, Bossanova Ballroom

    Coverage video

  • Get JavaScript Running on a $2 WiFi-Enabled Device

    by Andrew Chalkley

    The ESP8266 is a very popular Internet of Things device, because of it's price and availability. You can program it with Arduino, Python and even JavaScript. Using JavaScript on a small device doesn't have to be difficult. Andrew will show you the easiest way to install JavaScript on am Internet of Things device and how to run your JavaScript applications on it.

    At 1:15pm to 1:45pm, Tuesday 21st June

    In Upper Bar, Bossanova Ballroom

  • Node.js Patterns: From Callbacks to Observer

    by Azat Mardan

    This presentation is for you, if you’re a JavaScript engineer who is interested in deepening your understanding of Node.js patterns so you can create and design Node.js applications intelligently. With the right pattern, applications will be more scalable and easier to maintain. If you aspire one day to become a Node.js architect (or maybe you’re already one and want to extend your knowledge), this presentation is for you.

    You will learn from this talk:
    * Starting with basic: what is event loop and callback: setTimeout(), setImmediate() and process.nextTick()
    * The observer pattern with EventEmitter
    * Middleware pattern
    * Module patterns: module.exports et al
    * Hacking object prototype and global refs
    * Factory pattern and pseudo-classical inheritance
    * Async patterns: Async, NeoAsync, async await, generators and Promises

    At 1:15pm to 2:45pm, Tuesday 21st June

    In Main Room, Bossanova Ballroom

Schedule incomplete?

Add a new session

Filter by Day

Filter by coverage

Filter by Venue