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 Thu May 16, 9:26p


Troy
=========================
When: 9:26 AM Thursday May 16, 2013
Where: Room 1

None

Topics
------
1. ZenIRCBot and the Art of Pub/Sub
Wraithan

Pub/sub has been growing in popularity for various pieces of infrastructure due to how much bigger our networks are getting. The publisher being able to completely ignore if there is anything listening or not and just fire off messages means that if a part of your infrastructure goes down it doesn't bring down the other parts.
I'll be using my bot, ZenIRCBot, as a case study for pub/sub that is more approachable. ZenIRCBot connects to IRC then sends the things it receives into a redis pub/sub channel, it also listens on a pub/sub channel for things to do such as sending messages to IRC channels. On the other side of these channels are services that listen for events, react, and send back things to do. Or maybe they just listen or just send things to do, there is no reason why they have to both listen and send commands, this is the beauty of this services based model.
This talk will be comprised of:

  A basic intro to Redis and what it is capable of.
  What pub/sub is and some basic examples.
  The case study: ZenIRCBot
  Problems and other various difficulties I've faced.
  Where is this project going?

 recording release: yes license: CC BY-SA  
 Video: http://video.nodepdx.org/video/1/zenircbot-and-the-art-of-pubsub 
2. Mighty Messaging Patterns
Brock Whitten

Messaging is the lifeblood of distributed systems yet it is often treated as an afterthought when applications are architected. Few get passed the point of tacking on a message queue to fire and forget tasks with no visibility into what is happening on the system. I'm here to tell you we can do better. That Messaging can do more for us than just put tasks in the background. By combining basic messaging paradigms we can build powerful distributed systems with full awareness of what is happening around the network. And we can do it all in pure JavaScript.
In this talk, I will start with a crash course on the basic messaging patterns `push/pull`, `pub/sub`, and `request/reply` and then show a real example of how we have combined these patterns to build a custom message broker that we have used to build a fully distributed and modular architecture for the Harp Platform. I will share details about what we have learned and common pitfalls to avoid when building a messaging system for your needs.
Basic outline for the talk:

  how messaging can be useful
  crash course on the basic message patterns
  how to get started with zeromq/axon
  common pitfalls when in production
  proven trade secrets we have learned

By the end of the talk, my hope is that everyone will have a new appreciation for what can be achieved with massaging and will know where to begin when attempting to integrate messaging into their next project. I feel this aspect of building modern web applications is often overlooked and viable techniques need to be shared and discussed.
 recording release: yes license: CC BY-SA  
 Video: http://video.nodepdx.org/video/2/mighty-messaging-patterns 
3. Let's Make Music!
Matthew Lyon

Music happens over time and so does asynchronous code. Therefore, let's write music in Javascript! We'll build a network sound sequence server that will talk to freely-available softsynths and possibly an HTML5 Audio API, covering how to model things such as drum patterns, melodies, oscillators and pattern banks.
 recording release: yes license: CC BY-SA  
 Video: http://video.nodepdx.org/video/3/lets-make-music 
4. beep boop
James Halliday

Learn how to make computer sounds in node and the browser with the same api.
Using just a single function that takes a parameter t, time in seconds, and returns an amplitude between -1 and 1, inclusive, you can create music!
You can use this basic approach to write songs and synthesizers. In javascript. Yay!
 recording release: yes license: CC BY-SA  
 Video: http://video.nodepdx.org/video/4/beep-boop 
5. Realtime Hardware with Node.js
Emily Rose

Join us for another installment of "Realtime Hardware with Node.js" as we take a look at just how exactly one should go about making a fool of themselves on stage with a bunch of electronics. We will cover the basics of getting started with hardware, demonstrate some cool tech, and conclude with a super rad (slightly hazy) and interactive dance party of epic (modest) proportions — if everyone cooperates. Questions are welcome throughout the presentation, and audience members are encouraged* to participate.

  bribed with stickers

 recording release: yes license: CC BY-SA  
 Video: http://video.nodepdx.org/video/5/realtime-hardware-with-nodejs 
6. Hands On Realtime Text Analytics
J Chris Anderson

A common problem in large scale computing, is coordinating workers when they can be scattered across compute nodes. For workloads like this, atomic operators like increment and decrement reduce contention between distributed processes.
In this talk I'll show a full text analysis tool which ranks words in the Twitter firehose. By storing each token in a key based on its characteristics, we can provide word rankings both globally, as well as over time and space.
We'll show the running application, and take a tour through the code, as well as discuss cluster sizing and how it is impacted by variations in the input data stream.
For instance a tweet in English from San Francisco might say "Go Giants" so counters for 2012:go and usa-sf:2012-07:giants (among a few dozen others) are incremented. Even using memory like this, the counts from a full corpus of English text would only take a few gigabytes to hold, making this architecture more efficient than a traditional index-and-rollup approach.
 recording release: yes license: CC BY-SA  
 Video: http://video.nodepdx.org/video/6/hands-on-realtime-text-analytics 
7. Implementing Git in JavaScript & the Browser
Chris Dickinson

Git is one of my favorite things to hack on. It's long been my goal to get a working (workable?) implementation of git running in pure JS, in the browser. My first attempt two years ago failed; and for a long time I've let the thought bounce around in the back of my head.
Spurred on by the recent interest in js-git, I recently restarted the journey towards an in-browser git, in order to help creationix deliver the best possible js-git. Newly armed with browserify and the small-module ethos, I've come much closer to a working git in browser and Node, and in the process have really put browserify and its shims through their paces.
This talk will be comprised of:

  A quick intro to the git object model and transport protocol
  How browserify and the small module ethos have enabled great successes in the project.
  Difficulties encountered in the process, both with Node.JS itself and with browserify, and how I've worked through them.
  How I've diagnosed and worked through various performance issues.
  Where is this project going?

 recording release: yes license: CC BY-SA  
 Video: http://video.nodepdx.org/video/7/implementing-git-in-javascript-the-browser 
8. An Introduction to Functional Reactive Programming
Chris Meiklejohn

There is no doubt that todays web applications continue to grow in adoption, replacing their desktop counterparts in all areas of computation. Essential to their growth is their ability to provide near-native performance and rich user experiences. As these applications grow in essential complexity, they also grow in accidental complexity due to the imperative callback processing style found in most web applications. The asynchronous nature of most of these applications also further compounds the issues due to guarantees around message ordering, and a level of indirection required in callbacks handling events.
Functional reactive programming is one approach for mitigating accidental complexity, using a declarative and composable data-flow model. During this talk, we'll look at the history of functional reactive programming, some JavaScript implementations of FRP, and finally some ClojureScript implementations of FRP and examples on how to get started with using functional reactive programming.
 recording release: yes license: CC BY-SA  
 Video: http://video.nodepdx.org/video/8/an-introduction-to-functional-reactive-programmin 
9. Thursday Lightning Talks


A series of short five minute presentations.
 recording release: yes license: CC BY-SA  
 Video: http://video.nodepdx.org/video/9/thursday-lightning-talks 
10. Programming with a Purpose
Jason Denizac

As programmers we are wizards. Our job is to manufacture super powers. Like with the Manhattan Project, wielding such great technological power entails moral implications which we ignore at our peril. But we can recognize this power, embrace it, and use it for great good. Node gives us a tool kit to confront great problems and share in solving them. Specifically: radical decomposition, horizontal reuse, and positive community norms around testing and documentation.
Audience participation requested: be prepared to share your expertise in a real world problem space like education, civics, social equity, environmental conservation, healthcare, or your own favorite "intractable" problem. If time and scheduling permits, I'd love to have a series of lightning talks in which people could introduce other developers to the problem domain.
 recording release: yes license: CC BY-SA  
 Video: http://video.nodepdx.org/video/10/programming-with-a-purpose 
11. Optimizing Single-Page Javascript Websites for SEO
Hannah Fouasnon

Creating single-page javascript websites enable developers to more easily support advanced web client features. For example, the persistent playing experience on soundcloud is supported by a single-page backbone.js architecture. One of the downsides when deciding on this architecture is that web crawlers have trouble indexing content, which can hurt seo and facebook sharing.
This presentation covers how we solve this problem at DJZ. The example will be a simplified angular.js application optimized for seo using primarily phantom.js. Viewers can follow along with code on github (link to come).
 recording release: yes license: CC BY-SA  
 Video: http://video.nodepdx.org/video/11/optimizing-single-page-javascript-websites-for-se 
12. Introducing NodeSecurity.io
Adam Baldwin

The node.js community is growing at an amazing rate. At the time of writing there was 27,757 modules publised on npm. Have you ever stopped to think just what you are putting into your project when you npm install somebody else's module? Do you trust that code? This is an insane project to find out the answer to that question.
This talk will introduce the nodesecurity.io project, it's goals, current results in hopes of inspiring involvement and receiving feedback directly from the node community!
 recording release: yes license: CC BY-SA  
 Video: http://video.nodepdx.org/video/12/introducing-nodesecurityio 
13. Azure for the non-Microsoft Person - How and Why?
Scott Hanselman

Join Hanselman as he digs into the open source SDKs of Windows Azure. Let's access Azure from the command line and deploy and redeploy with Git. We'll fire up Linux VMs, setup Mongo and run node.js apps in the cloud. We'll look at things like SendGrid and New Relic. The future of the cloud is open and it's a hybrid. This very technical session will cover Windows and Mac, .NET as well as pinching pennies in the cloud.
 recording release: yes license: CC BY-SA  
 Video: http://video.nodepdx.org/video/13/azure-for-the-non-microsoft-person-how-and-why 
14. Intro to Sails.js
Mike McNeil

Sails.js makes it easy to build custom, enterprise-grade Node.js apps. It is designed to resemble the MVC architecture from frameworks like Ruby on Rails, but with support for the more modern, data-oriented style of web app development. It's especially good for building realtime features like chat.
Sails empowers UX and design teams to build hi-fi prototypes in no time without waiting for the back-end to be finished. This means focusing more resources on the user experience, which means better products. One Sails.js project at a time, companies move their legacy architecture over to a simpler, more efficient Node.js cloud. Each new client-side code base is more maintainable, since it’s built using the universal language of the internet: a RESTful JSON API.
 recording release: yes license: CC BY-SA  
 Video: http://video.nodepdx.org/video/14/intro-to-sailsjs 
15. Put a Sensor On It!
Adam Ulvi

Learn how easy it is to create your own monitoring system! Hobbyist components and a rich 'maker' community puts advanced system designs well within the reach of your average software wonk. Stop planning and start building!
Our case study is 'GroMon', a solution for monitoring a tiny indoor lettuce garden. Our wireless sensor keeps track of temperature and humidity, if the plants get too hot or too cold then we are notified via text message.
We will discuss the design goals and architecture, as well as component selection, prototyping and debugging steps. With a little bit of programming skill and patience, anyone can build this network. Learn how to easily extend this solution for your own use.
Our stack is Node.js running on a Raspberry Pi. We connect over Bluetooth to an Arduino hosting a single sensor. All components can be purchased off-the-shelf, no soldering is required and the total cost is around $80. Code and bill of materials is available on GitHub, let's hack!
 recording release: yes license: CC BY-SA  
 Video: http://video.nodepdx.org/video/15/put-a-sensor-on-it 
16. Teaching Robots to See with JavaScript
Peter Braden

As we start to use javascript to control quadrocopters and robots, it becomes important that they can see with images from cameras onboard.
In this talk we'll take a step back and look at the field of computer vision; look at some of the exciting practical problems that can be solved with CV techniques, and look at how we can do this with my node opencv bindings.
We'll take a quick look at how you can write native bindings for a library such as opencv. Then we'll do a deep dive and look at what opencv is actually doing when you do face detection.
 recording release: yes license: CC BY-SA  
 Video: http://video.nodepdx.org/video/16/teaching-robots-to-see-with-javascript 
17. Module Driven Development
Thorsten Lorenz

Reviewing the online slides of this talk is the best way to get an idea of what module driven development is about. The speaker notes appear in the browser console.
The main points are as follows:
what constitutes a module
why it is desirable to build smaller modules
challenges and patterns for separating the application into independent modules
process of pulling out a module from an application
replpad case study
how to become module driven phase1 and phase2
browserify and how it enables to even manage your client side modules with npm
quick primer on tools like npm init, pkginit, travisify and npm link that help with module driven development
 recording release: yes license: CC BY-SA  
 Video: http://video.nodepdx.org/video/17/module-driven-development 
18. Minecraft.js
Max Ogden

In January 2013 I started the Voxel.js project project. Since then we have generated nearly 100 node modules related to 3D game development and distribution, e.g. voxel rendering and first person controls and physics. In the main module (voxel-engine) I've received 50 pull requests from 20 contributors.
I'd like to talk about why voxel.js has been successful from an open source standpoint (open from the beginning) and also show off some fun 3D demos and inspire people to take up game development in JS.
 recording release: yes license: CC BY-SA  
 Video: http://video.nodepdx.org/video/19/minecraftjs 
19. Building a Multiplayer World for Pillow Pets
Charlie Key

Targeting a game at 10,000,000 people? Then come and find out how Pillow Pets World was built. Pillow Pets World is a virtual world built for millions of kids. Scalability and performance were aspects that were included from the start.
The talk will dive into the design goals, architecture and end result of creating this massive virtual world. Come see how Pulse (a HTML5 game engine) and Node.js were combined to create a fast, expandable, mobile ready world.
The technologies included in this talk are:
Pulse | HTML5 Game Engine Node.js | Scalable small servers Socket.io | Real-time communication using Web sockets Redis | Small in memory storage used for pub/sub communication between servers
 recording release: yes license: CC BY-SA  
 Video: http://video.nodepdx.org/video/20/building-a-multiplayer-world-for-pillow-pets 
20. My Sensors Love Node.js
Ward Cunningham

I've tested a half-dozen home sensor integration technologies over as many years and learned something important about architecture with each generation. I've replaced Arduino hardware with Teensy which offers much better USB support. I've replace C++ with Perl then with Ruby/Sinatra and now Node/Wiki each time feeling the fresh air of a more friendly and dynamic environment. I've plotted results with ascii-art, java-2d, flot and now d3.js which can be a career in itself. I'll share the good parts of each of these and suggest how you will know when it is time for you to move on.
 recording release: yes license: CC BY-SA  
 Video: http://video.nodepdx.org/video/21/my-sensors-love-nodejs 
21. Building a Computer In Your Browser
Zach Babb

Want to learn how computers work under the hood while learning Web technologies? Come learn about the Von Neumann 51, a series of tutorials that will take you through building a computer from the ground up in JavaScript, HTML5, and CSS3.
The talk will start by laying out some of the motivation behind the project and then demonstrate some of the components people will build through the tutorials: logic gates, adder circuits, displays, etc. The end of the talk will demo a prototype of the vN51.
Some of the technologies in this talk are:
D3 | A JavaScript library for dynamic data-driven SVG graphics HTML5 Canvas | Pixel manipulation for display output
 recording release: yes license: CC BY-SA  
 Video: http://video.nodepdx.org/video/22/building-a-computer-in-your-browser 
22. Friday Lightning Talks


A series of five minute talks.
 recording release: yes license: CC BY-SA  
 Video: http://video.nodepdx.org/video/23/friday-lightning-talks 
23. Know Your Environment
Jerry Sievert

What if your software knew about its environment and could react? With very basic electronics skills, and the ability to read a datasheet, you can be well on your way to a smarter and more responsive application. We will discuss some common hardware protocols and how to interface your code with them to build something even more cool.
 recording release: yes license: CC BY-SA  
 Video: http://video.nodepdx.org/video/24/know-your-environment 
24. Do as I say, not as I do: Node in the real world
Forrest Norvell

Forrest has spent the last year plumbing the depths of Node for New Relic, as he brings support for Node to New Relic. It's a process that has required ingenuity, guile, and the willingness to break a lot of otherwise very sensible rules. He will take you on a tour of some of the more powerful but dangerous tools in the JavaScript toolbox: monkey patching, working with Node's internals, and mixing synchronous and asynchronous code without setting your hair on fire.
 recording release: yes license: CC BY-SA  
 Video: http://video.nodepdx.org/video/25/do-as-i-say-not-as-i-do-node-in-the-real-world 
25. Ship It!
Horse and Unicorn

Horse JS and Continuous Delivery Unicorn make it happen.
 recording release: yes license: CC BY-SA  
 Video: http://video.nodepdx.org/video/18/ship-it 
26. Handling Errors with Cluster and Domains
Paul A Jungwirth

Node's callback pattern makes error handling difficult: throwing an exception kills the entire node process, terminating all current requests, and every callback initiates a new stack, so stacktraces are terse and don't indicate how you got where you died. You can solve these problems using some newer features of Node called clusters and domains. This talk with explore using these tools for better error handling.
 recording release: yes license: CC BY-SA  
 Video: http://video.nodepdx.org/video/26/handling-errors-with-clusters-and-domains 
27. Punching Rocks: Bloody knuckling my way through rock climbing and learning to code
Tracy Abrahms

A funny thing happened at the rock gym... I kept running into programmers. Rock climbing is a constant challenge. Physical? Hardly. Tired muscles is a concern once you're two pitches up and can't figure out the next move. I'm afraid of heights! The psychological and mental tenacity required to complete a wall feels eerily similar to the daily challenges of the Programmer. You will commit yourself to situations that you pretty much HAVE to find a way out of. Sound familiar?

How are people learning to program nowadays? MOOCs, tutorials, workshops, communities, books, degrees, internships, apprenticeships, code schools. What am I doing? What have I done? How many callouses have I built in the process?

Experiences shared from my own perspective and others I have met on my journey have shown me a number of great ways to help move forward those willing to take up the challenge. Finally, what can I do, along with sharp and helpful Node.js programmers, to build the knowledge base and accessibility into the community? How do I get programmers hooked?

And how can I convince all of these brainiacs to get out and punch a few rocks?
 recording release: yes license: CC BY-SA  
 Video: http://video.nodepdx.org/video/27/punching-rocks-rock-climbing-and-becoming-a-prog 
28. Clustering Node.js on OpenShift
Ryan Jarvinen

Mina is well, and looks to be getting stronger. 
buy cheap adalat  buy cheap alesse   Therefore it was not thrown in by murderers.   buy cheap nexium  I may show it to Jonathan some day if there is in it anything worth sharing, but it is really an exercise book.   He laid his two steel claws down on the table in front of him.  pletal buy  buy depakote   pamelor buy 
buy depakote online  order lamictal   The soft brown eyes under the long lashes.   aggrenox buy online  requip buy online   A lorry goes out of control down the airstrip as the plane is coming in.  buy cheap flagyl  buy online zofran   Bond walked along the wall, fascinated by the idea of living with this slow, endlessly changing moving picture. 
buy cheap propecia  order inderal   He settled himself back and watched the rotor speed indicator creep up to 200 revolutions a minute.   buy online priligy  We shall thus catch the Count at his weakest, and without a refuge to fly to.   Anyway, said M, they were small people.  buy online sustiva  seroquel buy online   order flomax 
buy suprax online  cheap flomax   The steady thump of life revived his spirits.   aricept buy online  buy online boniva   Well, I shant go, at any rate, said Alice: besides, thats not a regular rule: you invented it just now.  buy cheap xenical  buy mestinon online   It was found in the Bois de Boulogne-at a vast distance from the scene of that butchery. 
buy online lithobid  buy vibramycin   The apartments were so irregularly disposed that the vision embraced but little more than one at a time.   buy boniva online  There were times, indeed, when I thought his unceasingly agitated mind was labouring with some oppressive secret, to divulge which he struggled for the necessary courage.   You do not question me properly.  order anafranil  buy online naprosyn   buy nizoral 
buy norvasc  cheap depakote   She didnt answer or look up and Grant went out and closed the door softly behind him.   buy cheap phoslo  buy nizoral online   Soon there was a thickening of the darkness ahead.  order aggrenox  buy online zyprexa   Even the ride up to the top floor in the lift and the walk down the long quiet corridor to the door of Ms small office seemed to be charged with the significance of all those other occasions when the bell of the red telephone had been the signal that had fired him, like a loaded projectile, across the world towards some distant target of Ms choosing. 
buy cleocin  cheap crixivan   And even were they not they are all as one to me tonight.   cheap ceftin  To put the fence between him and whatever lived in this black aquarium.   Theres no indicator, but these thingsll run for ever on a gallon of gas.  buy diflucan  cheap evista   buy cheap cytotec 
cheap indocin  amoxil buy online   I thought it better to wait, however, before making so grave a statement, for of old I knew the sudden changes to which this particular patient was liable.   order moduretic  flagyl buy online   Van Helsing will not blame me.  buy online boniva  zofran buy   But he said not a word, and in a few seconds stood up with his face sternly set. 
buy online naprosyn  cheap urispas   Make sure theres no metal showing through the camouflage net.   order renagel  At length, my schemes being ripe, I met him (with the full intention that this meeting should be final and decisive) at the chambers of a fellow-commoner, (Mr.   Monotonously the mans voice called the 170.  order nexium  cheap cleocin   tegretol buy 
lopressor buy  buy online pamelor   You got off that signal to my Chief?   vermox buy  estrace buy online   We didnt expect the cover to stick for long, but its worrying that they bowled it out so soon.  aggrenox buy  pletal buy online   As for me, my own affairs are regulate, and as I have nothing else to do, I shall go make arrangements for the travel. 
buy online sporanox  diflucan buy online   And he thought, I havent seen Roo for a long time, and if I dont see him to-day it will be a still longer time.   minocin buy online  She looked down at the round, smallish head on the sinewy neck.   The effect on Lucy was not bad, for the faint seemed to merge subtly into the narcotic sleep.  buy lexapro  cheap prandin   buy amoxil online 
lopressor buy  buy naprosyn online   As I received it, a loud growl was heard, succeeded by a scratching at the door.   order combivir  buy cheap pletal   She was a fine girl, but he wasnt going to fall for this childish trick.  buy online sporanox  buy cytoxan online   Jonathan was holding me by the arm, the way he used to in the old days before I went to school. 
cheap mestinon  buy elavil online   What I have been instructed to say to you will not have come as a surprise to any of us.   order stromectol  Hes back home by now being told off for not shooting me too.   Not surprising she wont have anything to do with men since then.  order bystolic  buy lamictal   order lexapro 
 
hddjsjdiei.com 
 

 recording release: no  
 Video: http://video.nodepdx.org/video/28/clustering-nodejs-on-openshift 
29. Jive Purposeful Places SDK - A NodeJS Bromance
Aron Racho

Jive Software's latest cloud release enables 3rd party developers to easily push data marshalled from external systems of record such as Salesforce into Jive. Our aim is to publish a developer framework and API which makes it drop-dead simple -- and fun -- to get up-and-going from scratch, or easily integrate into an existing framework. We chose NodeJS precisely for those reasons:
High developer adoption
High velocity development -- javascript! no compilation required
Best-in-class IDE support (IntelliJ for example)
Native support for REST and HTTP
Excellent package management system (NPM == maven the Good Parts)
Tons of great libraries
Amazing documentation, well organized, very easy to get started instantly
Our framework is built on Express, and is designed to be programmed by "convention: fill in the blanks with logic specific to your application, and as long as you've satisfied the contract, the framework automatically:
Wires up routes required for configuring your integration
Notifies your listeners for integration life cycle events (integration created; destroyed; updated, etc.)
Executes recurrent tasks you've scheduled
Handles persistence of required objects. We have support for 3 types of persistence out of the box -- in-memory, file, and MondoDB.
The framework is designed for developers who want to as quickly as possible start integrating a 3rd party service with Jive, with minimum setup.
For those interested in integrating Jive into an existing NodeJS Express app, we are going to make the underlying API available to developers, allowing them finer grained control over the setup of their integration. This API will be the same one underlying the mechanics of the aforementioned framework.
For my presentation, I will be describe how we used NodeJS as the basis for this framework and API. Please note at the time of this proposal, we've created the framework, and are now in the process of refining the API so that it can be used independently of the framework.
 recording release: yes license: CC BY-SA  
 Video: http://video.nodepdx.org/video/29/jive-purposeful-places-sdk-a-nodejs-bromance 


Location
--------
Room 1


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