pre-release: Troy meeting announcement

Please take a moment to review your details and reply with OK or edits.
Subject and below is what will go out and also will be used to title the videos.

Subject: 
ANN: Troy at Room 1 Sat June 18, 2p


Troy
=========================
When: 2 PM Saturday June 18, 2016
Where: Room 1
- NodePDX (http://nodepdx.org/), June 20-21
  : single-track, two days, at Bossanova Ballroom (same place .NET Fringe was last year) 
http://nodepdx.org

Topics
------
1. Geek Train
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.
 recording release: yes license:   

2. Workshop: Getting Beyond "app.get()": ExpressJS Middleware Explained and Explored
〽️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

 recording release: yes license:   

3. Workshop: Taming Asynchronous JavaScript with ES2015 Promises and Fat Arrows
〽️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

 recording release: yes license:   

4. Group Bike Ride
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...
 recording release: yes license:   

5. Welcome Reception @ Bossanova Ballroom
Troy Howard

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

6. Welcome to NodePDX 2016
Troy Howard

(Needs description.) 
 recording release: yes license:   

7. Intro - Hardware Hacking Space
Emily Rose

(Needs description.) 
 recording release: yes license:   

8. A Foolish Quest: Creating Knitting Patterns Using JavaScript
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.
 recording release: yes license:   

9. Isomorphic Business Logic
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’:)
 recording release: yes license:   

10. From Software to Hardware: How Do I Track My Cat with JavaScript
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?
 recording release: yes license:   

11. Ops for Devs
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.
 recording release: yes license:   

12. Lunch - Food Carts
Troy Howard

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

13. Lightning Talks - Day 1
Adron Hall

A series of short five minute talks, scheduled first-come, first-served.
 recording release: yes license:   

14. The SAM Pattern: a distributed system view of Front-End architectures by Jean-Jacques Dubray
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).
 recording release: yes license:   

15. The House Is Not On Fire: Building a home automation robot with Arduino, Raspberry Pi and Node.js
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.
 recording release: yes license:   

16. Broken Promises in Open Source
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.
 recording release: yes license:   

17. Modern Javascript Frameworks - Introduction to Ember.JS and Ember-CLI
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.
 recording release: yes license:   

18. MMOWAM: Build Server-less Games with a DSN
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

 recording release: yes license:   

19. Demystifying TypeScript Decorators
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.
 recording release: yes license:   

20. 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.
 recording release: yes license:   

21. Intro - Day 2
Troy Howard

Welcome back for Day 2 of NodePDX!
 recording release: yes license:   

22. Intro - Hardware Hacking Space (Day 2)
Emily Rose

(Needs description.) 
 recording release: yes license:   

23. A P2P Calendar
substack

How to build a sharable calendar without uploading all of your life to somebody else's computer.
 recording release: yes license:   

24. WebSockets Bring Light at the End of the Tunnel
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.
 recording release: yes license:   

25. RRR - React, RethinkDB, Raspberry Pi
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.
 recording release: yes license:   

26. Code First Docs: How we Threw Out The Book & Put Code First With Twilio Documentation
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."
 recording release: yes license:   

27. Lunch - Food Carts
Troy Howard

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

28. Lightning Talks - Day 2
Adron Hall

A series of short five minute talks, scheduled first-come, first-served.
 recording release: yes license:   

29. Node.js Patterns: From Callbacks to Observer
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
 recording release: yes license:   

30. Get JavaScript Running on a $2 WiFi-Enabled Device
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.
 recording release: yes license:   

31. The Web Platform is the Universal Instrument
Ben Michel

Music as an idea, expression, commercial endeavor, and communal art is in its most volatile state since the European Renaissance. We’ve moved from the public adoption of recording technology, through the massive rise and fall of the recording industry, to a new age that was first seeded at Bell Labs during the Computer Science era.
Max Mathews encouraged a generation of computer musicians by declaring the Nyquist-Shannon “sampling theorem shows that there are really no limits to the sounds you can make…the computer is a universal musical instrument.”
Now with a fuller understanding of what Mathews was implying, we can take it a step further and say that the Browser is the universal musical instrument. It's the most accessible, cross-compatible runtime yet–and with the growth of Web Audio and Web MIDI standardization, we’re on the verge of a new renaissance in musical collaboration and interaction.
Unfortunately, the promotion of individualism in our popular culture, and the divide between developers and working artists has kept us from realizing the potential of building useful tools for distributed music collaboration, even in the web platform.
Still, I can see a world coming where community music and recorded works are not identified by regional boundaries, but distributed data regions and organic peer to peer networks. If the development of Web Audio and it’s supporting standards stabilize, music collaboration and exposition could be made available to everyone with no hinderances from age, class, or personal ability.
The WebSound project is my iterative solution to this problem through long-term community engagement, and Audio/MIDI tool versioning.
Our first endeavor is to build a few useful live performance tools enabling remote collaboration:
* Realtime Web MIDI performances streamed to a live-event, enabling the performer to lead songs or compositions remotely. Achieved through an optimized VPN and P2P WebRTC DataChannels.
* Communally performed live music making with MIDI controlled WebAudio and WebSocket broadcasting.
* Audience interaction with the exposed parameters of a live band’s instrumentation–via broadcast methods and microcontroller installations.
 recording release: yes license:   

32. I Play the JavaScript
Matt McKegg

I have been making music with computers for about 10 years, but once I tried to move from bedroom composing to live performance, I got incredibly frustrated at how hard it was to play computer music live. For some crazy reason, I decided to start working on my own live electronic performance software written in JavaScript that would let me play the way I want to play. 3 years later, it's finally starting to become a reality.
I would like to talk about how I use JavaScript, Web Audio/MIDI and Electron to drop the beats and bring the vibes, and the new possibilities available to all with desktop "web" applications!
Here is a video of a recent (100% JavaScript powered) performance I gave at a music festival in February: https://www.youtube.com/watch?v=...
And here is a video of a similar talk I gave (will probably be revised considerably though) at JSConf.asia: https://www.youtube.com/watch?v=...
 recording release: yes license:   

33. How to Electron
Blaine Schmeisser

Blaine's "How to Electron" answers questions you have about building user interface applications with JavaScript. Have you ever wanted to build desktop apps with web technology you already know? If you've never heard of Electron or just want to learn more about it, this talk will cover what Electron is and how to utilize it to create powerful tools like Atom and Slack. You will learn the history of Electron, how to get started, the trade-offs of picking various boiler plates, and the unique Electron specific APIs that are vital to being a Electron developer.
 recording release: yes license:   

34. How to Build a Bike Shed
David Manning, Adam Ulvi

Despite having no formal construction experience, Adam and David have been tasked
with designing a new bike shed outside of the Olympic Mills Commerce Center. They have spent long hours in extensive research, and are excited to share their results with the community.
Attendees will receive plans and a Starter Kit of building materials.
For more important information about what a bike is, what a shed is, and how these two things combined make bike sheds, check out this useful links.

  Bikes: [https://en.wikipedia.org/wiki/Bi...
  Sheds: [https://en.wikipedia.org/wiki/Sh...
  Bike Sheds: [https://en.wikipedia.org/wiki/Sh...

 recording release: yes license:   



Location
--------
Room 1


About the group
---------------
nodepdx-216-slide.svg
bling/dnf/16/dnf-video-title-screen.svg