<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Composite Code</title>
	
	<link>http://compositecode.com</link>
	<description>Snippets, software architecture, lean, agile, management, and leadership bits.</description>
	<lastBuildDate>Mon, 20 May 2013 21:30:07 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain="compositecode.com" port="80" path="/?rsscloud=notify" registerProcedure="" protocol="http-post" />
<image>
		<url>http://0.gravatar.com/blavatar/a15b7bd3abd0aa2f207f7e52e512411a?s=96&amp;d=http%3A%2F%2Fs2.wp.com%2Fi%2Fbuttonw-com.png</url>
		<title>Composite Code</title>
		<link>http://compositecode.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://compositecode.com/osd.xml" title="Composite Code" />
	
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/LooselyCoupledHumanCodeFactory" /><feedburner:info uri="looselycoupledhumancodefactory" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://compositecode.com/?pushpress=hub" /><geo:lat>45.51854</geo:lat><geo:long>-122.675506</geo:long><item>
		<title>Polyglot Conference in Vancouver, Using Riak to Analyze, Store Data and Survive the Zombie Apocalypse</title>
		<link>http://feedproxy.google.com/~r/LooselyCoupledHumanCodeFactory/~3/7YIkwrsUZKc/</link>
		<comments>http://compositecode.com/2013/05/20/polyglot-conference-in-vancouver-using-riak-to-analyze-store-data-and-survive-the-zombie-apocalypse/#comments</comments>
		<pubDate>Mon, 20 May 2013 20:46:13 +0000</pubDate>
		<dc:creator>Adron</dc:creator>
				<category><![CDATA[Community]]></category>
		<category><![CDATA[Conferences]]></category>
		<category><![CDATA[Databases]]></category>
		<category><![CDATA[Distributed Things]]></category>
		<category><![CDATA[Riak]]></category>

		<guid isPermaLink="false">http://compositecode.com/?p=8365</guid>
		<description><![CDATA[First things first - If you haven&#8217;t registered for the Polyglot Conference yet, get registered ASAP as it could sell out! I have a workshop coming up on Friday of this week at the Vancouver BC Polyglot Conf. In addition I&#8217;ll be attending the conference itself and looking to have a lot of conversations and open spaces sessions around distributed systems, technologies, &#8230;<p><a href="http://compositecode.com/2013/05/20/polyglot-conference-in-vancouver-using-riak-to-analyze-store-data-and-survive-the-zombie-apocalypse/" class="more-link">Read More</a></p><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=compositecode.com&#038;blog=14138691&#038;post=8365&#038;subd=compositecode&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p><em><strong><a href="http://polyglotconf.com/"><img class="alignright" alt="" src="http://adronhall.smugmug.com/Software/Meetups-N-Conferences/Polyglot-2013/i-HsKWxwH/0/S/Polyglot-S.png" width="288" height="53" /></a>First things first - If you haven&#8217;t <a href="http://polyglotconf.com/tickets/" target="_blank">registered</a> for the <a href="http://polyglotconf.com/" target="_blank">Polyglot Conference</a> yet, get <a href="http://polyglotconf.com/tickets/" target="_blank">registered</a> ASAP as it could sell out!</strong></em></p>
<p>I have a workshop coming up on Friday of this week at the Vancouver BC Polyglot Conf. In addition I&#8217;ll be attending the conference itself and looking to have a lot of conversations and open spaces sessions around distributed systems, technologies, platform as a service, other *aaS and generally anything for modern, distributed, scalable architecture and systems. Hopefully I&#8217;ll get to converse with all of you about as many topics as possible  - it&#8217;s always a great time to dig into these topics at conferences like these. It&#8217;s where the real next steps in technology come from!</p>
<p>In the coming days before and after the workshop I&#8217;ll be blogging material I have put together for the workshop. Previously I&#8217;ve put together one blog entry on backing up distributed systems ala the Riak variety. Check it out &#8220;<a href="http://compositecode.com/2013/05/08/distributed-databases-issue-001/">Backup Riak – Learning About Distributed Databases :: Issue 001</a>&#8220;.</p>
<p>The Workshop, for those of you interested in surviving a Zombie Apocalypse (or just learning about Riak) can sign up still, there&#8217;s a few spaces left! Below is a the basic outline of what we&#8217;ll be touching upon. There&#8217;s a LOT more topics beyond this, but we&#8217;ll save those for open space sessions. If there&#8217;s anything specific you&#8217;d like me to cover, feel free to throw a comment on the blog and I can easily add 1-2 topics of interest if attendees would like!</p>
<ul>
<li><span style="line-height:1.5;font-style:inherit;">Introducing Riak, a database designed to survive the Zombie Plague. Riak Architecture &amp; 5 Minute History of Riak &amp; Zombies.</span></li>
</ul>
<p>Architecture deep dive:</p>
<ul>
<li><span style="line-height:1.5;font-style:inherit;">Consistent Hashing, managing to track changes when your kill zone is littered with Zombies.</span></li>
<li><span style="line-height:1.5;font-style:inherit;">Intelligent Replication, managing your data against each of your bunkers.</span></li>
<li><span style="line-height:1.5;font-style:inherit;">Data Re-distribution, sometimes they overtake a bunker, how your data is re-distributed.</span></li>
<li><span style="line-height:1.5;font-style:inherit;">Short Erlang Introduction, a language fit for managing post-civil society.</span></li>
<li><span style="line-height:1.5;font-style:inherit;">Getting Erlang</span></li>
</ul>
<p>Installing Riak on&#8230;</p>
<ul>
<li><span style="line-height:1.5;font-style:inherit;">Ubuntu, RHEL &amp; the Linux Variety.</span></li>
<li><span style="line-height:1.5;font-style:inherit;">OS-X, the only user centered computers to survive the apocolypse.</span></li>
<li><span style="line-height:1.5;font-style:inherit;">From source, maintained and modernized for humanities survival.</span></li>
<li><span style="line-height:1.5;font-style:inherit;">Upgrading Riak, when a bunker is retaken from the zomibes, it&#8217;s time to update your Riak.</span></li>
<li><span style="line-height:1.5;font-style:inherit;">Setting up</span></li>
</ul>
<p>Devrel &#8211; A developer&#8217;s machine w/ Riak &#8211; how to manage without zombie bunkers.</p>
<ul>
<li><span style="line-height:1.5;font-style:inherit;">5 nodes, a basic cluster</span></li>
<li><span style="line-height:1.5;font-style:inherit;">Operating Riak</span></li>
<li><span style="line-height:1.5;font-style:inherit;">Starting, stopping, and restarting</span></li>
<li><span style="line-height:1.5;font-style:inherit;">Scaling up &amp; out</span></li>
<li><span style="line-height:1.5;font-style:inherit;">Managing uptime &amp; data integrity</span></li>
<li><span style="line-height:1.5;font-style:inherit;">Accessing &amp; writing data</span></li>
</ul>
<p>Polyglot client libraries</p>
<ul>
<li><span style="line-height:1.5;font-style:inherit;">JavaScript/Node.js &amp; Erlang for the zombie curing mad scientists.</span></li>
<li><span style="line-height:1.5;font-style:inherit;">C#/.NET &amp; Java for the zombie creating corporations.</span></li>
<li><span style="line-height:1.5;font-style:inherit;">Others, for those trying to just survive the zombie apocolypse.</span></li>
</ul>
<p>Cheers!</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/compositecode.wordpress.com/8365/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/compositecode.wordpress.com/8365/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=compositecode.com&#038;blog=14138691&#038;post=8365&#038;subd=compositecode&#038;ref=&#038;feed=1" width="1" height="1" /><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?a=7YIkwrsUZKc:-bSw0g_XTJg:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?a=7YIkwrsUZKc:-bSw0g_XTJg:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?a=7YIkwrsUZKc:-bSw0g_XTJg:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?i=7YIkwrsUZKc:-bSw0g_XTJg:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?a=7YIkwrsUZKc:-bSw0g_XTJg:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?i=7YIkwrsUZKc:-bSw0g_XTJg:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?a=7YIkwrsUZKc:-bSw0g_XTJg:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?a=7YIkwrsUZKc:-bSw0g_XTJg:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?i=7YIkwrsUZKc:-bSw0g_XTJg:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?a=7YIkwrsUZKc:-bSw0g_XTJg:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?a=7YIkwrsUZKc:-bSw0g_XTJg:KwTdNBX3Jqk"><img src="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?i=7YIkwrsUZKc:-bSw0g_XTJg:KwTdNBX3Jqk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?a=7YIkwrsUZKc:-bSw0g_XTJg:l6gmwiTKsz0"><img src="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?d=l6gmwiTKsz0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?a=7YIkwrsUZKc:-bSw0g_XTJg:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?i=7YIkwrsUZKc:-bSw0g_XTJg:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?a=7YIkwrsUZKc:-bSw0g_XTJg:TzevzKxY174"><img src="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?d=TzevzKxY174" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/LooselyCoupledHumanCodeFactory/~4/7YIkwrsUZKc" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://compositecode.com/2013/05/20/polyglot-conference-in-vancouver-using-riak-to-analyze-store-data-and-survive-the-zombie-apocalypse/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<georss:point>45.522405 -122.684155</georss:point>
		<geo:lat>45.522405</geo:lat>
		<geo:long>-122.684155</geo:long>
		<media:content url="http://2.gravatar.com/avatar/b077605f4799abe20de52b6ded458e99?s=96&amp;d=http%3A%2F%2F2.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&amp;r=R" medium="image">
			<media:title type="html">adron</media:title>
		</media:content>

		<media:content url="http://adronhall.smugmug.com/Software/Meetups-N-Conferences/Polyglot-2013/i-HsKWxwH/0/S/Polyglot-S.png" medium="image" />
	<feedburner:origLink>http://compositecode.com/2013/05/20/polyglot-conference-in-vancouver-using-riak-to-analyze-store-data-and-survive-the-zombie-apocalypse/</feedburner:origLink></item>
		<item>
		<title>Node PDX – Introducing Adam Baldwin, James Halliday, Ryan Jarvinen, Mike McNeil and Horse JS</title>
		<link>http://feedproxy.google.com/~r/LooselyCoupledHumanCodeFactory/~3/sWEn6P2TXJM/</link>
		<comments>http://compositecode.com/2013/05/15/node-pdx-introducing-adam-baldwin-james-halliday-ryan-jarvinen-mike-mcneil-and-horse-js/#comments</comments>
		<pubDate>Wed, 15 May 2013 18:13:13 +0000</pubDate>
		<dc:creator>Adron</dc:creator>
				<category><![CDATA[Awesome Coders]]></category>
		<category><![CDATA[Community]]></category>
		<category><![CDATA[Conferences]]></category>
		<category><![CDATA[horsejs]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[node]]></category>
		<category><![CDATA[node.js]]></category>

		<guid isPermaLink="false">http://compositecode.com/?p=8342</guid>
		<description><![CDATA[This is it, last string of introductions. Hope you&#8217;re registered. Adam Baldwin is presenting&#8230; Introducing NodeSecurity.io Adam Baldwin is a web app hacker, team lead at ^Lift Security and the CSO for &#38;yet. Adam has presented at various security &#38; dev conferences in the past including, DEFCON, Djangocon, Toorcamp and RealtimeConf. The node.js community is &#8230;<p><a href="http://compositecode.com/2013/05/15/node-pdx-introducing-adam-baldwin-james-halliday-ryan-jarvinen-mike-mcneil-and-horse-js/" class="more-link">Read More</a></p><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=compositecode.com&#038;blog=14138691&#038;post=8342&#038;subd=compositecode&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>This is it, last string of introductions. Hope you&#8217;re <a href="http://nodepdx.eventbrite.com/" target="_blank">registered</a>.</p>
<p><em><strong>Adam Baldwin is presenting&#8230;</strong></em></p>
<h2>Introducing NodeSecurity.io</h2>
<div class="wp-caption alignright" style="width: 190px"><img class=" " alt="Adam Baldwin" src="http://adronhall.smugmug.com/Software/Meetups-N-Conferences/Node-PDX-2013/i-jTFXfm3/0/S/a3e14ed361f57b095c75dfd8b1ea4862-S.jpg" width="180" height="180" /><p class="wp-caption-text">Adam Baldwin</p></div>
<p>Adam Baldwin is a web app hacker, team lead at ^Lift Security and the CSO for &amp;yet. Adam has presented at various security &amp; dev conferences in the past including, DEFCON, Djangocon, Toorcamp and RealtimeConf.</p>
<p>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&#8217;s module? Do you trust that code? This is an insane project to find out the answer to that question.</p>
<p>This talk will introduce the nodesecurity.io project, it&#8217;s goals, current results in hopes of inspiring involvement and receiving feedback directly from the node community!</p>
<p><em><strong>James Halliday is presenting&#8230;</strong></em></p>
<h2>beep boop</h2>
<div class="wp-caption alignright" style="width: 190px"><img class=" " alt="James" src="http://adronhall.smugmug.com/Software/Meetups-N-Conferences/Node-PDX-2013/i-mbVWgPV/0/S/d4a2f12ceae3b7f211b661576d22bfb9-S.jpg" width="180" height="180" /><p class="wp-caption-text">James</p></div>
<p>Oh hello. I write too much code. I co-founded <a href="https://browserling.com/">browserling</a>. Here are some <a href="http://substack.net/art">pretty pictures</a>.</p>
<p>Unix philosopher and methodological reductionist etc.</p>
<p><a href="https://a248.e.akamai.net/camo.github.com/cb26700f530858d8e1f4d52fb30c39a47d9f2959/687474703a2f2f737562737461636b2e6e65742f696d616765732f737562737461636b2e676966" target="_blank"><img class="alignleft" alt="shake the fist" src="https://a248.e.akamai.net/camo.github.com/cb26700f530858d8e1f4d52fb30c39a47d9f2959/687474703a2f2f737562737461636b2e6e65742f696d616765732f737562737461636b2e676966" width="156" height="187" /></a></p>
<p>Learn how to make computer sounds in <a href="https://npmjs.org/package/baudio">node</a> and <a href="https://npmjs.org/package/webaudio">the browser</a> with the same api.</p>
<p>Using just a single function that takes a parameter <code>t</code>, time in seconds, and returns an amplitude between -1 and 1, inclusive, you can create music!</p>
<p>You can use this basic approach to write songs and synthesizers. In javascript. Yay!</p>
<p><em><strong>Ryan Jarvinen is presenting&#8230;</strong></em></p>
<h2>Clustering Node.js on OpenShift</h2>
<div class="wp-caption alignright" style="width: 190px"><img class=" " alt="Ryan" src="http://adronhall.smugmug.com/Software/Meetups-N-Conferences/Node-PDX-2013/i-CfNXSbD/0/S/ee8fbe2cda4f05ef6dea595ced8f6e1a-S.png" width="180" height="180" /><p class="wp-caption-text">Ryan</p></div>
<p>Ryan Jarvinen is an Open Platform Advocate working with RedHat&#8217;s OpenShift team. He lives in Oakland, California and is passionate about open source, open standards, open government, and digital rights. You can reach him as &#8216;ryanj&#8217; on twitter, github, and IRC.</p>
<p>Learn how to automate builds, deployment tasks, and application scaling as we use OpenShift&#8217;s platform architecture on-demand to build your own git-based release pipeline, including: development, testing, staging, and cloud-scaling production environments for node.js.</p>
<p><strong>Slides:</strong></p>
<ul>
<li><a href="http://darkslides-rjdemo.rhcloud.com/">http://darkslides-rjdemo.rhcloud.com</a></li>
<li><a href="https://github.com/ryanj/darkslides/">https://github.com/ryanj/darkslides/</a></li>
</ul>
<p><strong>Posts:</strong></p>
<ul>
<li><a href="https://www.openshift.com/blogs/secret-free-source-on-paas">https://www.openshift.com/blogs/secret-free-source-on-paas</a></li>
<li><a href="https://www.openshift.com/blogs/release-management-in-the-cloud">https://www.openshift.com/blogs/release-management-in-the-cloud</a></li>
</ul>
<hr />
<p>An adaptation of this talk was presented recently at HTML5DevConf in SF - <a href="http://html5devconf.com/sessions.html#r_jarvinen">http://html5devconf.com/sessions.html#r_jarvinen</a></p>
<h2>Intro to Sails.js</h2>
<p><em><strong>Mike McNeil is presenting&#8230;</strong></em></p>
<div class="wp-caption alignright" style="width: 190px"><img class=" " alt="Mike" src="http://adronhall.smugmug.com/Software/Meetups-N-Conferences/Node-PDX-2013/i-764DDrp/0/S/199046437b76e6ca73e00b4cc182a1c5-S.jpg" width="180" height="180" /><p class="wp-caption-text">Mike</p></div>
<p>Mike autobiogrophies himself as, &#8220;<em>I&#8217;m Mike, a developreneur based out of Austin, Texas and connoisseur of fine code. I&#8217;m also the creator of Sails.js, the open-source BaaS framework which allows front-end developers to build robust, scalable APIs using only JavaScript.</em></p>
<p><em>My <a href="http://www.sencha.com/apps/blinktop/">first startup</a> was in social television, where I saw the need for more efficient, easy-to-use solutions for realtime social features. Because of that, I got involved in Node.js early on, and after building a few early apps, recognized the need for an MVC solution to normalize patterns. Early last year, I founded <a href="http://balderdash.co/">Balderdash</a>, a UX-focused mobile and web studio, which has given me an excellent opportunity to build out and utilize Sails.js in production.</em>&#8220;</p>
<p><a href="http://sailsjs.com/">Sails.js</a> 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&#8217;s especially good for building realtime features like chat.</p>
<p>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.</p>
<p><em><strong>Chris Dickinson is presenting&#8230;</strong></em></p>
<h2>Implementing Git in JavaScript &amp; the Browser: A Case Study</h2>
<div class="wp-caption alignright" style="width: 190px"><img class=" " alt="Chris" src="http://adronhall.smugmug.com/Software/Meetups-N-Conferences/Node-PDX-2013/i-8KC8Wfk/0/S/f70956bdb907c2f8b39ff624ea925ccd-S.jpg" width="180" height="180" /><p class="wp-caption-text">Chris</p></div>
<p>Chris describes himself as &#8220;<em>I make silly things with JavaScript: I particularly love bit-twiddling and WebGL-based projects. I live in Portland OR and work at Urban Airship as a JavaScript engineer.&#8221;</em></p>
<p><em>Git is one of my favorite things to hack on. It&#8217;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&#8217;ve let the thought bounce around in the back of my head.</em></p>
<p><em>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&#8217;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.&#8221;</em></p>
<p>This talk will be comprised of:</p>
<p>A quick intro to the git object model and transport protocol<br />
How browserify and the small module ethos have enabled great successes in the project.<br />
Difficulties encountered in the process, both with Node.JS itself and with browserify, and how I&#8217;ve worked through them.<br />
How I&#8217;ve diagnosed and worked through various performance issues.<br />
Where is this project going?</p>
<p><em><strong>Horse JS is presenting&#8230;</strong></em></p>
<h2>JavaScript, This is Confusing</h2>
<p>&#8230;.<a href="http://twitter.com/horsejs" target="_blank">Horse JS Tweets, nuff&#8217; said</a>.  <a href="http://horsejs.github.io/" target="_blank">Horsing around&#8230;</a></p>
<p><a href="http://nodepdx.org/"><img class="aligncenter" alt="" src="http://adronhall.smugmug.com/Software/Meetups-N-Conferences/Node-PDX-2013/i-mKbjXsb/0/O/NodePDX.png" width="623" height="319" /></a>Are you signed up?  <a href="http://nodepdx.eventbrite.com/" target="_blank"><strong>BUY YOUR TICKET FOR NODE PDX HERE</strong></a></p>
<p>Want to learn more? <a href="http://nodepdx.org/" target="_blank">http://nodepdx.org/</a></p>
<p>Want to know the dates? <a href="http://nodepdx.org/" target="_blank">http://nodepdx.org/</a></p>
<p>Want to know who else is speaking? Stay tuned here or go check out <a href="http://nodepdx.org/" target="_blank">http://nodepdx.org/</a>!</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/compositecode.wordpress.com/8342/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/compositecode.wordpress.com/8342/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=compositecode.com&#038;blog=14138691&#038;post=8342&#038;subd=compositecode&#038;ref=&#038;feed=1" width="1" height="1" /><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?a=sWEn6P2TXJM:ctqCEDO4pMM:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?a=sWEn6P2TXJM:ctqCEDO4pMM:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?a=sWEn6P2TXJM:ctqCEDO4pMM:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?i=sWEn6P2TXJM:ctqCEDO4pMM:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?a=sWEn6P2TXJM:ctqCEDO4pMM:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?i=sWEn6P2TXJM:ctqCEDO4pMM:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?a=sWEn6P2TXJM:ctqCEDO4pMM:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?a=sWEn6P2TXJM:ctqCEDO4pMM:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?i=sWEn6P2TXJM:ctqCEDO4pMM:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?a=sWEn6P2TXJM:ctqCEDO4pMM:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?a=sWEn6P2TXJM:ctqCEDO4pMM:KwTdNBX3Jqk"><img src="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?i=sWEn6P2TXJM:ctqCEDO4pMM:KwTdNBX3Jqk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?a=sWEn6P2TXJM:ctqCEDO4pMM:l6gmwiTKsz0"><img src="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?d=l6gmwiTKsz0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?a=sWEn6P2TXJM:ctqCEDO4pMM:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?i=sWEn6P2TXJM:ctqCEDO4pMM:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?a=sWEn6P2TXJM:ctqCEDO4pMM:TzevzKxY174"><img src="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?d=TzevzKxY174" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/LooselyCoupledHumanCodeFactory/~4/sWEn6P2TXJM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://compositecode.com/2013/05/15/node-pdx-introducing-adam-baldwin-james-halliday-ryan-jarvinen-mike-mcneil-and-horse-js/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<georss:point>45.522405 -122.684155</georss:point>
		<geo:lat>45.522405</geo:lat>
		<geo:long>-122.684155</geo:long>
		<media:content url="http://2.gravatar.com/avatar/b077605f4799abe20de52b6ded458e99?s=96&amp;d=http%3A%2F%2F2.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&amp;r=R" medium="image">
			<media:title type="html">adron</media:title>
		</media:content>

		<media:content url="http://adronhall.smugmug.com/Software/Meetups-N-Conferences/Node-PDX-2013/i-jTFXfm3/0/S/a3e14ed361f57b095c75dfd8b1ea4862-S.jpg" medium="image">
			<media:title type="html">Adam Baldwin</media:title>
		</media:content>

		<media:content url="http://adronhall.smugmug.com/Software/Meetups-N-Conferences/Node-PDX-2013/i-mbVWgPV/0/S/d4a2f12ceae3b7f211b661576d22bfb9-S.jpg" medium="image">
			<media:title type="html">James</media:title>
		</media:content>

		<media:content url="https://a248.e.akamai.net/camo.github.com/cb26700f530858d8e1f4d52fb30c39a47d9f2959/687474703a2f2f737562737461636b2e6e65742f696d616765732f737562737461636b2e676966" medium="image">
			<media:title type="html">shake the fist</media:title>
		</media:content>

		<media:content url="http://adronhall.smugmug.com/Software/Meetups-N-Conferences/Node-PDX-2013/i-CfNXSbD/0/S/ee8fbe2cda4f05ef6dea595ced8f6e1a-S.png" medium="image">
			<media:title type="html">Ryan</media:title>
		</media:content>

		<media:content url="http://adronhall.smugmug.com/Software/Meetups-N-Conferences/Node-PDX-2013/i-764DDrp/0/S/199046437b76e6ca73e00b4cc182a1c5-S.jpg" medium="image">
			<media:title type="html">Mike</media:title>
		</media:content>

		<media:content url="http://adronhall.smugmug.com/Software/Meetups-N-Conferences/Node-PDX-2013/i-8KC8Wfk/0/S/f70956bdb907c2f8b39ff624ea925ccd-S.jpg" medium="image">
			<media:title type="html">Chris</media:title>
		</media:content>

		<media:content url="http://adronhall.smugmug.com/Software/Meetups-N-Conferences/Node-PDX-2013/i-mKbjXsb/0/O/NodePDX.png" medium="image" />
	<feedburner:origLink>http://compositecode.com/2013/05/15/node-pdx-introducing-adam-baldwin-james-halliday-ryan-jarvinen-mike-mcneil-and-horse-js/</feedburner:origLink></item>
		<item>
		<title>Node PDX – Introducing Zach Bobb, Paul Jungwirth, Forrest Norvell and Charlie Key</title>
		<link>http://feedproxy.google.com/~r/LooselyCoupledHumanCodeFactory/~3/D_DRsOlsSJ0/</link>
		<comments>http://compositecode.com/2013/05/13/node-pdx-introducing-zach-bobb-paul-jungwirth-forrest-norvell-and-charlie-key/#comments</comments>
		<pubDate>Mon, 13 May 2013 19:16:25 +0000</pubDate>
		<dc:creator>Adron</dc:creator>
				<category><![CDATA[Awesome Coders]]></category>
		<category><![CDATA[Community]]></category>
		<category><![CDATA[Conferences]]></category>
		<category><![CDATA[conference]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[node]]></category>
		<category><![CDATA[node.js]]></category>
		<category><![CDATA[nodejs]]></category>
		<category><![CDATA[nodepdx]]></category>

		<guid isPermaLink="false">http://compositecode.com/?p=8338</guid>
		<description><![CDATA[&#8230;and the fifth iteration of Node PDX Introductions! Zach Bobb is presenting&#8230; Building a Computer In Your Browser Zach is a mobile engineer with GlobeSherpa working hard to bring you the app that will let you buy TriMet tickets on your phone. Want to learn how computers work under the hood while learning Web technologies? &#8230;<p><a href="http://compositecode.com/2013/05/13/node-pdx-introducing-zach-bobb-paul-jungwirth-forrest-norvell-and-charlie-key/" class="more-link">Read More</a></p><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=compositecode.com&#038;blog=14138691&#038;post=8338&#038;subd=compositecode&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>&#8230;and the fifth iteration of Node PDX Introductions!</p>
<p><em><strong>Zach Bobb is presenting&#8230;</strong></em></p>
<h2>Building a Computer In Your Browser</h2>
<p><a href="http://www.trimet.org"><img class="alignleft" alt="" src="http://adronhall.smugmug.com/Software/Meetups-N-Conferences/Geoloqi-and-CivicApps-Pre/i-v5pH3DG/0/O/trimet-50.png" width="130" height="69" /></a></p>
<div class="wp-caption alignright" style="width: 154px"><img class=" " alt="Zach the TriMet Ticket Man!" src="http://adronhall.smugmug.com/Software/Meetups-N-Conferences/Node-PDX-2013/i-dvb32mM/0/O/zachbabb.png" width="144" height="144" /><p class="wp-caption-text">Zach the TriMet Ticket Man!</p></div>
<p>Zach is a mobile engineer with GlobeSherpa working hard to bring you the app that will let you buy <a href="http://www.trimet.org" target="_blank">TriMet</a> tickets on your phone.</p>
<p>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.</p>
<p>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.</p>
<p>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</p>
<p><em><strong>Paul Jungwirth is presenting&#8230;</strong></em></p>
<h2>Handling Errors with Cluster and Domains</h2>
<div class="wp-caption alignright" style="width: 190px"><img class=" " alt="Paul" src="http://adronhall.smugmug.com/Software/Meetups-N-Conferences/Node-PDX-2013/i-Bj6jhKp/0/S/431c64e3e3fd0c892ad2a7e4150cf63e-S.jpg" width="180" height="180" /><p class="wp-caption-text">Paul</p></div>
<p>Paul will jump into,</p>
<blockquote><p>&#8220;<em>Node&#8217;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&#8217;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.</em>&#8220;</p></blockquote>
<p><em><strong>Forrest Norvell is presenting&#8230;</strong></em></p>
<h2>Do as I say, not as I do: Node in the real world</h2>
<div class="wp-caption alignright" style="width: 190px"><img class=" " alt="Forrest" src="http://adronhall.smugmug.com/Software/Meetups-N-Conferences/Node-PDX-2013/i-tkHN7tV/0/S/44c00253ab6c0e681820c82e9a2264d1-S.png" width="180" height="180" /><p class="wp-caption-text">Forrest</p></div>
<p>Forrest is a software engineer who has spent the better part of the last two years working with Node full-time, first working on bringing Singly&#8217;s Locker Project up to web scale, and then exploring the wilds of monitoring the performance of Node applications for New Relic. He has learned an unreasonable amount about JavaScript, V8, libuv, and making it all work well in the real world.</p>
<p>Forrest has spent the last year plumbing the depths of Node for New Relic, as he brings support for Node to New Relic. It&#8217;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&#8217;s internals, and mixing synchronous and asynchronous code without setting your hair on fire.<br />
<em><strong>Charlie Key is presenting&#8230;</strong></em></p>
<h2>Building a Multiplayer World for Pillow Pets</h2>
<div class="wp-caption alignright" style="width: 190px"><img class=" " alt="Charlie" src="http://adronhall.smugmug.com/Software/Meetups-N-Conferences/Node-PDX-2013/i-G9jvDFc/0/S/cf25e03ab50fefe222add86c4ae6a691-S.png" width="180" height="180" /><p class="wp-caption-text">Charlie</p></div>
<p>Charlie is Co-founder of Modulus, a premier Node.js hosting solution. He has spent the last six-years working in the software, where he has created over a dozen production websites and applications for many global brands.</p>
<p>He is also a core contributor on Pulse game engine and one of members of the team who developed Pillow Pets World.</p>
<p>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. 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.</p>
<p>The technologies included in this talk are:</p>
<p>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</p>
<p><a href="http://nodepdx.org/"><img class="aligncenter" alt="" src="http://adronhall.smugmug.com/Software/Meetups-N-Conferences/Node-PDX-2013/i-mKbjXsb/0/O/NodePDX.png" width="623" height="319" /></a>Are you signed up?  <a href="http://nodepdx.eventbrite.com/" target="_blank"><strong>BUY YOUR TICKET FOR NODE PDX HERE</strong></a></p>
<p>Want to learn more? <a href="http://nodepdx.org/" target="_blank">http://nodepdx.org/</a></p>
<p>Want to know the dates? <a href="http://nodepdx.org/" target="_blank">http://nodepdx.org/</a></p>
<p>Want to know who else is speaking? Stay tuned here or go check out <a href="http://nodepdx.org/" target="_blank">http://nodepdx.org/</a>!</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/compositecode.wordpress.com/8338/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/compositecode.wordpress.com/8338/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=compositecode.com&#038;blog=14138691&#038;post=8338&#038;subd=compositecode&#038;ref=&#038;feed=1" width="1" height="1" /><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?a=D_DRsOlsSJ0:q_isQDUweGI:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?a=D_DRsOlsSJ0:q_isQDUweGI:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?a=D_DRsOlsSJ0:q_isQDUweGI:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?i=D_DRsOlsSJ0:q_isQDUweGI:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?a=D_DRsOlsSJ0:q_isQDUweGI:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?i=D_DRsOlsSJ0:q_isQDUweGI:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?a=D_DRsOlsSJ0:q_isQDUweGI:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?a=D_DRsOlsSJ0:q_isQDUweGI:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?i=D_DRsOlsSJ0:q_isQDUweGI:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?a=D_DRsOlsSJ0:q_isQDUweGI:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?a=D_DRsOlsSJ0:q_isQDUweGI:KwTdNBX3Jqk"><img src="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?i=D_DRsOlsSJ0:q_isQDUweGI:KwTdNBX3Jqk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?a=D_DRsOlsSJ0:q_isQDUweGI:l6gmwiTKsz0"><img src="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?d=l6gmwiTKsz0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?a=D_DRsOlsSJ0:q_isQDUweGI:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?i=D_DRsOlsSJ0:q_isQDUweGI:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?a=D_DRsOlsSJ0:q_isQDUweGI:TzevzKxY174"><img src="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?d=TzevzKxY174" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/LooselyCoupledHumanCodeFactory/~4/D_DRsOlsSJ0" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://compositecode.com/2013/05/13/node-pdx-introducing-zach-bobb-paul-jungwirth-forrest-norvell-and-charlie-key/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<georss:point>45.522405 -122.684155</georss:point>
		<geo:lat>45.522405</geo:lat>
		<geo:long>-122.684155</geo:long>
		<media:content url="http://2.gravatar.com/avatar/b077605f4799abe20de52b6ded458e99?s=96&amp;d=http%3A%2F%2F2.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&amp;r=R" medium="image">
			<media:title type="html">adron</media:title>
		</media:content>

		<media:content url="http://adronhall.smugmug.com/Software/Meetups-N-Conferences/Geoloqi-and-CivicApps-Pre/i-v5pH3DG/0/O/trimet-50.png" medium="image" />

		<media:content url="http://adronhall.smugmug.com/Software/Meetups-N-Conferences/Node-PDX-2013/i-dvb32mM/0/O/zachbabb.png" medium="image">
			<media:title type="html">Zach the TriMet Ticket Man!</media:title>
		</media:content>

		<media:content url="http://adronhall.smugmug.com/Software/Meetups-N-Conferences/Node-PDX-2013/i-Bj6jhKp/0/S/431c64e3e3fd0c892ad2a7e4150cf63e-S.jpg" medium="image">
			<media:title type="html">Paul</media:title>
		</media:content>

		<media:content url="http://adronhall.smugmug.com/Software/Meetups-N-Conferences/Node-PDX-2013/i-tkHN7tV/0/S/44c00253ab6c0e681820c82e9a2264d1-S.png" medium="image">
			<media:title type="html">Forrest</media:title>
		</media:content>

		<media:content url="http://adronhall.smugmug.com/Software/Meetups-N-Conferences/Node-PDX-2013/i-G9jvDFc/0/S/cf25e03ab50fefe222add86c4ae6a691-S.png" medium="image">
			<media:title type="html">Charlie</media:title>
		</media:content>

		<media:content url="http://adronhall.smugmug.com/Software/Meetups-N-Conferences/Node-PDX-2013/i-mKbjXsb/0/O/NodePDX.png" medium="image" />
	<feedburner:origLink>http://compositecode.com/2013/05/13/node-pdx-introducing-zach-bobb-paul-jungwirth-forrest-norvell-and-charlie-key/</feedburner:origLink></item>
		<item>
		<title>Node PDX – Introducing Adam Ulvi, Aron Racho, Christopher Meiklejohn, Max Ogden and Brock Whitten!</title>
		<link>http://feedproxy.google.com/~r/LooselyCoupledHumanCodeFactory/~3/ZXhqGDn_XLI/</link>
		<comments>http://compositecode.com/2013/05/12/node-pdx-introducing-adam-ulvi-aron-racho-christopher-meiklejohn-max-ogden-and-brock-whitten/#comments</comments>
		<pubDate>Mon, 13 May 2013 01:41:36 +0000</pubDate>
		<dc:creator>Adron</dc:creator>
				<category><![CDATA[Awesome Coders]]></category>
		<category><![CDATA[Community]]></category>
		<category><![CDATA[Conferences]]></category>
		<category><![CDATA[conference]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[node]]></category>
		<category><![CDATA[node pdx]]></category>
		<category><![CDATA[node.js]]></category>
		<category><![CDATA[nodejs]]></category>
		<category><![CDATA[nodepdx]]></category>

		<guid isPermaLink="false">http://compositecode.com/?p=8302</guid>
		<description><![CDATA[&#8230;and the fourth iteration begins! Adam Ulvi is presenting&#8230; Put a Sensor On It! Adam is a Portland native (straight out of the Simpsons) with a penchant for software and systems integration. 8-bit gamer, seasoned professional, perpertual noob. Specialization is for insects. Learn how easy it is to create your own monitoring system! Hobbyist components &#8230;<p><a href="http://compositecode.com/2013/05/12/node-pdx-introducing-adam-ulvi-aron-racho-christopher-meiklejohn-max-ogden-and-brock-whitten/" class="more-link">Read More</a></p><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=compositecode.com&#038;blog=14138691&#038;post=8302&#038;subd=compositecode&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>&#8230;and the fourth iteration begins!</p>
<p><em><strong>Adam Ulvi is presenting&#8230;</strong></em></p>
<h2>Put a Sensor On It!</h2>
<div class="wp-caption alignright" style="width: 190px"><img class=" " alt="Adam Ulvi" src="http://adronhall.smugmug.com/Software/Meetups-N-Conferences/Node-PDX-2013/i-rThLqBx/0/S/1cc2c674718448415c0eccb23b12295a-S.png" width="180" height="180" /><p class="wp-caption-text">Adam Ulvi</p></div>
<p>Adam is a Portland native (straight out of the Simpsons) with a penchant for software and systems integration. 8-bit gamer, seasoned professional, perpertual noob. Specialization is for insects.</p>
<p>Learn how easy it is to create your own monitoring system! Hobbyist components and a rich &#8216;maker&#8217; community puts advanced system designs well within the reach of your average software wonk. Stop planning and start building!</p>
<p>Our case study is &#8216;GroMon&#8217;, 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.</p>
<p>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.</p>
<p>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&#8217;s hack!</p>
<p><em><strong>Aron Racho is presenting&#8230;</strong></em></p>
<h2>Jive Purposeful Places SDK &#8211; A NodeJS Bromance</h2>
<div class="wp-caption alignright" style="width: 190px"><img class=" " alt="Aron" src="http://adronhall.smugmug.com/Software/Meetups-N-Conferences/Node-PDX-2013/i-j99VRrd/0/S/aronracho-S.jpg" width="180" height="180" /><p class="wp-caption-text">Aron</p></div>
<p>Aron Racho is a Senior Software Developer at Jive Software. Aron&#8217;s background has primarily been in Java, about 10 years in. He is a relatively recent convert to Javascript, and server-side Javascript in particular. Though relatively new to NodeJS, he has been smitten by its fluency, flexibility, and superb design. One might even say a Bromance has been started.</p>
<p>Ok, get ready, this description for this sessions is HUGE!</p>
<p>Jive Software&#8217;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 &#8212; and fun &#8212; to get up-and-going from scratch, or easily integrate into an existing framework. We chose NodeJS precisely for those reasons:</p>
<ul>
<li>High developer adoption</li>
<li>High velocity development &#8212; javascript! no compilation required</li>
<li>Best-in-class IDE support (IntelliJ for example)</li>
<li>Native support for REST and HTTP</li>
<li>Excellent package management system (NPM == maven the Good Parts)</li>
<li>Tons of great libraries</li>
<li>Amazing documentation, well organized, very easy to get started instantly</li>
</ul>
<p>Our framework is built on Express, and is designed to be programmed by &#8220;convention: fill in the blanks with logic specific to your application, and as long as you&#8217;ve satisfied the contract, the framework automatically:</p>
<ul>
<li>Wires up routes required for configuring your integration</li>
<li>Notifies your listeners for integration life cycle events (integration created; destroyed; updated, etc.)</li>
<li>Executes recurrent tasks you&#8217;ve scheduled</li>
<li>Handles persistence of required objects. We have support for 3 types of persistence out of the box &#8212; in-memory, file, and MondoDB.</li>
</ul>
<p>The framework is designed for developers who want to as quickly as possible start integrating a 3rd party service with Jive, with minimum setup.</p>
<p>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.</p>
<p>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&#8217;ve created the framework, and are now in the process of refining the API so that it can be used independently of the framework.</p>
<p><em><strong>Christopher Meiklejohn is presenting&#8230;</strong></em></p>
<h2>An Introduction to Functional Reactive Programming</h2>
<div class="wp-caption alignright" style="width: 190px"><img class=" " alt="Chris Meiklejohn" src="http://adronhall.smugmug.com/Software/Meetups-N-Conferences/Node-PDX-2013/i-pSGJpGf/0/S/3e09fee7b359be847ed5fa48f524a3d3-S.jpg" width="180" height="180" /><p class="wp-caption-text">Chris Meiklejohn</p></div>
<p>Christopher Meiklejohn is a Software Engineer with Basho Technologies, Inc. where he focuses on building rich web applications for Riak using Erlang and JavaScript. Before joining Basho, he worked at Swipely, a loyalty program startup based in Providence where he maintained critical infrastructure components written in Ruby. Christopher currently serves as one of the maintainers of Rubygems.org.</p>
<p>Chris also knows a thing or three about this show&#8230; called <strong><a href="http://en.wikipedia.org/wiki/The_Wire" target="_blank">The Wire</a></strong>&#8230; he could probably speak entirely in quotes solely from The Wire and still make complete sense. So throw a quote out, I bet he&#8217;ll catch it.</p>
<p>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.</p>
<p>Functional reactive programming is one approach for mitigating accidental complexity, using a declarative and composable data-flow model. During this talk, we&#8217;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.</p>
<p><em><strong>Max Ogden is presenting&#8230;</strong></em></p>
<h2>Minecraft.js</h2>
<div class="wp-caption alignright" style="width: 190px"><img class=" " alt="Max Ogden - Penciled and colored!" src="http://adronhall.smugmug.com/Software/Meetups-N-Conferences/Node-PDX-2013/i-Vw97kgp/0/S/fcc9bbfe2a31c5a6225cc287ed7ae2a6-S.png" width="180" height="180" /><p class="wp-caption-text">Max Ogden &#8211; Penciled and colored!</p></div>
<p>Max used to live here in Portland, and at some point defected to work on noble causes with Code for America. Since then he&#8217;s been an Oaktown Coder (Oakland, the other city near San Francisco).</p>
<p>In January of 2013 he started the <a href="http://voxeljs.com/" target="_blank">Voxel.js Project</a>. Since he and contributors have generatored nearly 100 node modules related to 3D game development and distribution. Examples including voxel rendering and first person controls and physics. On the main voxel-engine the project has received over 50 pull requests from 20 contributors. All of this since January. Max is going to dive into this effort and what inspiration people have taken to dive into game development with JavaScript.</p>
<p><em><strong>Brock Whitten is presenting&#8230;</strong></em></p>
<h2>Mighty Messaging Patterns</h2>
<div class="wp-caption alignright" style="width: 190px"><img class=" " alt="Brock Whitten" src="http://adronhall.smugmug.com/Software/Meetups-N-Conferences/Node-PDX-2013/i-kNg7Cmp/0/S/sintaxi-S.jpg" width="180" height="180" /><p class="wp-caption-text">Brock Whitten</p></div>
<p>Best know for having co-created PhoneGap, Brock went on to work at Joyent where he created the Public API for the beloved (and now sunset) No.de Platform. He&#8217;s now working on the Harp Platform where he&#8217;s worked with a team to have created a dead simple publishing platform that uses Dropbox as its deployment mechanism. Much has been learned, he&#8217;s read to share.</p>
<p>He describes his course as, &#8220;<em>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&#8217;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.</em></p>
<p><em>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.</em></p>
<p><em><strong>Basic outline for the talk:</strong></em></p>
<ul>
<li><em><span style="line-height:1.5;">how messaging can be useful</span></em></li>
<li><em><span style="line-height:1.5;">crash course on the basic message patterns</span></em></li>
<li><em><span style="line-height:1.5;">how to get started with zeromq/axon</span></em></li>
<li><em><span style="line-height:1.5;">common pitfalls when in production</span></em></li>
<li><em><span style="line-height:1.5;">proven trade secrets we have learned</span></em></li>
</ul>
<p><em> 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.</em>&#8220;</p>
<p><a href="http://nodepdx.org/"><img class="aligncenter" alt="" src="http://adronhall.smugmug.com/Software/Meetups-N-Conferences/Node-PDX-2013/i-mKbjXsb/0/O/NodePDX.png" width="623" height="319" /></a>Are you signed up?  <a href="http://nodepdx.eventbrite.com/" target="_blank"><strong>BUY YOUR TICKET FOR NODE PDX HERE</strong></a></p>
<p>Want to learn more? <a href="http://nodepdx.org/" target="_blank">http://nodepdx.org/</a></p>
<p>Want to know the dates? <a href="http://nodepdx.org/" target="_blank">http://nodepdx.org/</a></p>
<p>Want to know who else is speaking? Stay tuned here or go check out <a href="http://nodepdx.org/" target="_blank">http://nodepdx.org/</a>!</p>
<p>Have a last minute request, idea, comment or a speaking proposal? <a href="http://nodepdx.org/" target="_blank">http://nodepdx.org/</a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/compositecode.wordpress.com/8302/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/compositecode.wordpress.com/8302/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=compositecode.com&#038;blog=14138691&#038;post=8302&#038;subd=compositecode&#038;ref=&#038;feed=1" width="1" height="1" /><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?a=ZXhqGDn_XLI:UJb1EOrNwNc:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?a=ZXhqGDn_XLI:UJb1EOrNwNc:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?a=ZXhqGDn_XLI:UJb1EOrNwNc:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?i=ZXhqGDn_XLI:UJb1EOrNwNc:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?a=ZXhqGDn_XLI:UJb1EOrNwNc:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?i=ZXhqGDn_XLI:UJb1EOrNwNc:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?a=ZXhqGDn_XLI:UJb1EOrNwNc:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?a=ZXhqGDn_XLI:UJb1EOrNwNc:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?i=ZXhqGDn_XLI:UJb1EOrNwNc:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?a=ZXhqGDn_XLI:UJb1EOrNwNc:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?a=ZXhqGDn_XLI:UJb1EOrNwNc:KwTdNBX3Jqk"><img src="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?i=ZXhqGDn_XLI:UJb1EOrNwNc:KwTdNBX3Jqk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?a=ZXhqGDn_XLI:UJb1EOrNwNc:l6gmwiTKsz0"><img src="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?d=l6gmwiTKsz0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?a=ZXhqGDn_XLI:UJb1EOrNwNc:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?i=ZXhqGDn_XLI:UJb1EOrNwNc:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?a=ZXhqGDn_XLI:UJb1EOrNwNc:TzevzKxY174"><img src="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?d=TzevzKxY174" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/LooselyCoupledHumanCodeFactory/~4/ZXhqGDn_XLI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://compositecode.com/2013/05/12/node-pdx-introducing-adam-ulvi-aron-racho-christopher-meiklejohn-max-ogden-and-brock-whitten/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<georss:point>45.522405 -122.684155</georss:point>
		<geo:lat>45.522405</geo:lat>
		<geo:long>-122.684155</geo:long>
		<media:content url="http://2.gravatar.com/avatar/b077605f4799abe20de52b6ded458e99?s=96&amp;d=http%3A%2F%2F2.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&amp;r=R" medium="image">
			<media:title type="html">adron</media:title>
		</media:content>

		<media:content url="http://adronhall.smugmug.com/Software/Meetups-N-Conferences/Node-PDX-2013/i-rThLqBx/0/S/1cc2c674718448415c0eccb23b12295a-S.png" medium="image">
			<media:title type="html">Adam Ulvi</media:title>
		</media:content>

		<media:content url="http://adronhall.smugmug.com/Software/Meetups-N-Conferences/Node-PDX-2013/i-j99VRrd/0/S/aronracho-S.jpg" medium="image">
			<media:title type="html">Aron</media:title>
		</media:content>

		<media:content url="http://adronhall.smugmug.com/Software/Meetups-N-Conferences/Node-PDX-2013/i-pSGJpGf/0/S/3e09fee7b359be847ed5fa48f524a3d3-S.jpg" medium="image">
			<media:title type="html">Chris Meiklejohn</media:title>
		</media:content>

		<media:content url="http://adronhall.smugmug.com/Software/Meetups-N-Conferences/Node-PDX-2013/i-Vw97kgp/0/S/fcc9bbfe2a31c5a6225cc287ed7ae2a6-S.png" medium="image">
			<media:title type="html">Max Ogden - Penciled and colored!</media:title>
		</media:content>

		<media:content url="http://adronhall.smugmug.com/Software/Meetups-N-Conferences/Node-PDX-2013/i-kNg7Cmp/0/S/sintaxi-S.jpg" medium="image">
			<media:title type="html">Brock Whitten</media:title>
		</media:content>

		<media:content url="http://adronhall.smugmug.com/Software/Meetups-N-Conferences/Node-PDX-2013/i-mKbjXsb/0/O/NodePDX.png" medium="image" />
	<feedburner:origLink>http://compositecode.com/2013/05/12/node-pdx-introducing-adam-ulvi-aron-racho-christopher-meiklejohn-max-ogden-and-brock-whitten/</feedburner:origLink></item>
		<item>
		<title>Node PDX – Introducing Scott Hanselman, Tracy Abrahms, Matthew Lyons &amp; J Chris Anderson</title>
		<link>http://feedproxy.google.com/~r/LooselyCoupledHumanCodeFactory/~3/VEtHcm55xtM/</link>
		<comments>http://compositecode.com/2013/05/09/node-pdx-introducing-scott-hanselman-tracy-abrahms-matthew-lyons-j-chris-anderson/#comments</comments>
		<pubDate>Thu, 09 May 2013 16:08:03 +0000</pubDate>
		<dc:creator>Adron</dc:creator>
				<category><![CDATA[Awesome Coders]]></category>
		<category><![CDATA[Community]]></category>
		<category><![CDATA[Conferences]]></category>
		<category><![CDATA[node]]></category>
		<category><![CDATA[node pdx]]></category>
		<category><![CDATA[node.js]]></category>
		<category><![CDATA[nodejs]]></category>
		<category><![CDATA[nodepdx]]></category>

		<guid isPermaLink="false">http://compositecode.com/?p=8321</guid>
		<description><![CDATA[Welcome to iteration 3 of introductions. Scott Hanselman is presenting&#8230; Azure for the non-Microsoft Person &#8211; How and Why? Scott is a web developer who has been blogging at http://hanselman.com for over a decade. He works on Azure and ASP.NET for Microsoft out of his home office in Portland. Scott has three podcasts, http://hanselminutes.com for &#8230;<p><a href="http://compositecode.com/2013/05/09/node-pdx-introducing-scott-hanselman-tracy-abrahms-matthew-lyons-j-chris-anderson/" class="more-link">Read More</a></p><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=compositecode.com&#038;blog=14138691&#038;post=8321&#038;subd=compositecode&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>Welcome to iteration 3 of introductions.</p>
<p><em><strong>Scott Hanselman is presenting&#8230;</strong></em></p>
<h2>Azure for the non-Microsoft Person &#8211; How and Why?</h2>
<div class="wp-caption alignleft" style="width: 165px"><img class="   " alt="Scott Hanselman" src="http://adronhall.smugmug.com/Software/Meetups-N-Conferences/Node-PDX-2013/i-TfqKHZQ/0/S/34e9c96db3aa4ba531dd421d34b8b7d08eb01af4-t640-S.jpg" width="155" height="180" /><p class="wp-caption-text">Scott Hanselman</p></div>
<p>Scott is a web developer who has been blogging at <a href="http://hanselman.com" rel="nofollow">http://hanselman.com</a> for over a decade. He works on Azure and ASP.NET for Microsoft out of his home office in Portland. Scott has three podcasts, <a href="http://hanselminutes.com" rel="nofollow">http://hanselminutes.com</a> for tech talk, <a href="http://thisdeveloperslife.com" rel="nofollow">http://thisdeveloperslife.com</a> on developers&#8217; lives and loves, and <a href="http://ratchetandthegeek.com" rel="nofollow">http://ratchetandthegeek.com</a> for pop culture and tech media. He&#8217;s written a number of books and spoken in person to almost a half million developers worldwide.</p>
<p>For a dose of Scott, check out how to scale to infinity by doing <em>NOTHING</em>!</p>
<span class='embed-youtube' style='text-align:center; display: block;'><iframe class='youtube-player' type='text/html' width='640' height='360' src='http://www.youtube.com/embed/FS1mnISoG7U?version=3&#038;rel=0&#038;fs=1&#038;showsearch=0&#038;showinfo=1&#038;iv_load_policy=1&#038;wmode=transparent' frameborder='0'></iframe></span>
<p>Join Hanselman as he digs into the open source SDKs of Windows Azure. Let&#8217;s access Azure from the command line and deploy and redeploy with Git. We&#8217;ll fire up Linux VMs, setup Mongo and run node.js apps in the cloud. We&#8217;ll look at things like SendGrid and New Relic. The future of the cloud is open and it&#8217;s a hybrid. This very technical session will cover Windows and Mac, .NET as well as pinching pennies in the cloud.</p>
<p><em><strong>Tracy Abrahms is presenting&#8230;</strong></em></p>
<h2>Punching Rocks: my intimate adventure with rock climbing and becoming a programmer</h2>
<div class="wp-caption alignleft" style="width: 190px"><img class=" " alt="Tracy Abrahms" src="http://adronhall.smugmug.com/Software/Meetups-N-Conferences/Node-PDX-2013/i-LgJRvPG/0/S/15b27a69b0d4b0ae4e80f33b58b5fdd8-S.jpg" width="180" height="180" /><p class="wp-caption-text">Tracy Abrahms</p></div>
<p>Tracy tells a story, &#8220;<em>A funny thing happened at the rock gym&#8230; I kept running into programmers. Rock climbing is a constant challenge. Physical? Hardly. Tired muscles is a concern once you&#8217;re two pitches up and can&#8217;t figure out the next move. I&#8217;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?</em></p>
<p><em>Malcom Gladwell&#8217;s 10,000 hours&#8211;I&#8217;m not that far in. How are people learning to program nowadays? MOOCs, tutorials, workshops, communities(meetup.com), books, standard CS degrees(what of non-tech degrees?), internships, apprenticeships, code schools. What am I doing? What have I done? How many callouses have I build 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.</em></p>
<p><em>Finally, what can I do, along with knowledgeable 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?</em>&#8220;</p>
<p><em><strong>Matthew Lyon is presenting&#8230;</strong></em></p>
<h2>Let&#8217;s Make Music</h2>
<div class="wp-caption alignleft" style="width: 190px"><img class=" " alt="Matthew Lyon" src="http://adronhall.smugmug.com/Software/Meetups-N-Conferences/Node-PDX-2013/i-dLPLnk6/0/S/296146f0455f164a7798632412ce453a-S.jpg" width="180" height="180" /><p class="wp-caption-text">Matthew Lyon</p></div>
<p>I got to work with Matthew <a href="https://twitter.com/mattly" target="_blank">@mattly</a> for a short period while I was helping out at AppFog a while ago. I also have had the great fortune of catching Matthew talk about JavaScript magic and more!</p>
<p>Also a homebrewer, hacker, artist, photographer Mattew Lyon is coming to give us a lesson on making music. He describes his course as thus, &#8220;<em>Music happens over time and so does asynchronous code. Therefore, let&#8217;s write music in Javascript! We&#8217;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.</em>&#8220;</p>
<p><em><strong>J Chris Anderson presenting&#8230;</strong></em></p>
<h2>Hands On Realtime Text Analytics</h2>
<div class="wp-caption alignleft" style="width: 190px"><img class=" " alt="J Chris Anderson" src="http://adronhall.smugmug.com/Software/Meetups-N-Conferences/Node-PDX-2013/i-4cWn4hC/0/S/fc67805d4cb2c9d9e159702e943f9a7c-S.jpg" width="180" height="180" /><p class="wp-caption-text">J Chris Anderson</p></div>
<p>J Chris just recently <a href="http://jchris.ic.ht/drl/_design/sofa/_list/post/post-page?startkey=%5B%22Returning-to-Portland%22%5D" target="_blank">returned to Portland because of many different reasons</a> after hacking in the San Francisco area. If you know what <a href="http://jchris.ic.ht/drl/_design/sofa/_list/post/post-page?startkey=%5B%22Portland-and-livable-streets-We-re-just-getting-started%22%5D" target="_blank">livable streets</a> are (re: <a href="http://bikeportland.org/2013/04/12/reader-story-portland-and-livable-streets-%E2%80%94-were-just-getting-started-85393" target="_blank">Bike Portland</a> and if you intend to stay and live in Portland, you probably should get in on this, livable streets are too good to merely pass up), you&#8217;ll want to keep tabs on J Chris&#8217; efforts ongoing, I definitely will be! J Chris also refers to himself as a hacker dad, couchbase cofounder &amp; mobile architect.</p>
<p>With &#8220;Hands on Realtime Text Analytics&#8221; J Chris will present to us  as described:</p>
<p>&#8220;<em>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.</em></p>
<p><em>In this talk I&#8217;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.</em></p>
<p><em>We&#8217;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.</em></p>
<p><em>For instance a tweet in English from San Francisco might say &#8220;Go Giants&#8221; 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.</em>&#8220;</p>
<p style="text-align:center;"><a href="http://nodepdx.org/"><img class="aligncenter" alt="" src="http://adronhall.smugmug.com/Software/Meetups-N-Conferences/Node-PDX-2013/i-mKbjXsb/0/O/NodePDX.png" width="486" height="248" /></a>Are you signed up?  <a href="http://nodepdx.eventbrite.com/" target="_blank"><strong>BUY YOUR TICKET FOR NODE PDX HERE</strong></a></p>
<p>Want to learn more? <a href="http://nodepdx.org/" target="_blank">http://nodepdx.org/</a></p>
<p>Want to know the dates? <a href="http://nodepdx.org/" target="_blank">http://nodepdx.org/</a></p>
<p>Want to know who else is speaking? Stay tuned here or go check out <a href="http://nodepdx.org/" target="_blank">http://nodepdx.org/</a>!</p>
<p>Have a last minute request, idea, comment or a speaking proposal? <a href="http://nodepdx.org/" target="_blank">http://nodepdx.org/</a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/compositecode.wordpress.com/8321/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/compositecode.wordpress.com/8321/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=compositecode.com&#038;blog=14138691&#038;post=8321&#038;subd=compositecode&#038;ref=&#038;feed=1" width="1" height="1" /><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?a=VEtHcm55xtM:9qgX9yB9QqY:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?a=VEtHcm55xtM:9qgX9yB9QqY:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?a=VEtHcm55xtM:9qgX9yB9QqY:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?i=VEtHcm55xtM:9qgX9yB9QqY:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?a=VEtHcm55xtM:9qgX9yB9QqY:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?i=VEtHcm55xtM:9qgX9yB9QqY:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?a=VEtHcm55xtM:9qgX9yB9QqY:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?a=VEtHcm55xtM:9qgX9yB9QqY:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?i=VEtHcm55xtM:9qgX9yB9QqY:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?a=VEtHcm55xtM:9qgX9yB9QqY:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?a=VEtHcm55xtM:9qgX9yB9QqY:KwTdNBX3Jqk"><img src="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?i=VEtHcm55xtM:9qgX9yB9QqY:KwTdNBX3Jqk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?a=VEtHcm55xtM:9qgX9yB9QqY:l6gmwiTKsz0"><img src="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?d=l6gmwiTKsz0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?a=VEtHcm55xtM:9qgX9yB9QqY:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?i=VEtHcm55xtM:9qgX9yB9QqY:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?a=VEtHcm55xtM:9qgX9yB9QqY:TzevzKxY174"><img src="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?d=TzevzKxY174" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/LooselyCoupledHumanCodeFactory/~4/VEtHcm55xtM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://compositecode.com/2013/05/09/node-pdx-introducing-scott-hanselman-tracy-abrahms-matthew-lyons-j-chris-anderson/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<georss:point>47.601407 -122.335695</georss:point>
		<geo:lat>47.601407</geo:lat>
		<geo:long>-122.335695</geo:long>
		<media:content url="http://2.gravatar.com/avatar/b077605f4799abe20de52b6ded458e99?s=96&amp;d=http%3A%2F%2F2.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&amp;r=R" medium="image">
			<media:title type="html">adron</media:title>
		</media:content>

		<media:content url="http://adronhall.smugmug.com/Software/Meetups-N-Conferences/Node-PDX-2013/i-TfqKHZQ/0/S/34e9c96db3aa4ba531dd421d34b8b7d08eb01af4-t640-S.jpg" medium="image">
			<media:title type="html">Scott Hanselman</media:title>
		</media:content>

		<media:content url="http://adronhall.smugmug.com/Software/Meetups-N-Conferences/Node-PDX-2013/i-LgJRvPG/0/S/15b27a69b0d4b0ae4e80f33b58b5fdd8-S.jpg" medium="image">
			<media:title type="html">Tracy Abrahms</media:title>
		</media:content>

		<media:content url="http://adronhall.smugmug.com/Software/Meetups-N-Conferences/Node-PDX-2013/i-dLPLnk6/0/S/296146f0455f164a7798632412ce453a-S.jpg" medium="image">
			<media:title type="html">Matthew Lyon</media:title>
		</media:content>

		<media:content url="http://adronhall.smugmug.com/Software/Meetups-N-Conferences/Node-PDX-2013/i-4cWn4hC/0/S/fc67805d4cb2c9d9e159702e943f9a7c-S.jpg" medium="image">
			<media:title type="html">J Chris Anderson</media:title>
		</media:content>

		<media:content url="http://adronhall.smugmug.com/Software/Meetups-N-Conferences/Node-PDX-2013/i-mKbjXsb/0/O/NodePDX.png" medium="image" />
	<feedburner:origLink>http://compositecode.com/2013/05/09/node-pdx-introducing-scott-hanselman-tracy-abrahms-matthew-lyons-j-chris-anderson/</feedburner:origLink></item>
		<item>
		<title>Backup Riak – Learning About Distributed Databases :: Issue 001</title>
		<link>http://feedproxy.google.com/~r/LooselyCoupledHumanCodeFactory/~3/xGTDJCpAYHI/</link>
		<comments>http://compositecode.com/2013/05/08/distributed-databases-issue-001/#comments</comments>
		<pubDate>Wed, 08 May 2013 18:57:24 +0000</pubDate>
		<dc:creator>Adron</dc:creator>
				<category><![CDATA[AWS]]></category>
		<category><![CDATA[Basho]]></category>
		<category><![CDATA[Databases]]></category>
		<category><![CDATA[Distributed Things]]></category>
		<category><![CDATA[How-to]]></category>
		<category><![CDATA[Riak]]></category>
		<category><![CDATA[backup]]></category>
		<category><![CDATA[basho]]></category>
		<category><![CDATA[distributed database]]></category>
		<category><![CDATA[distributed systems]]></category>
		<category><![CDATA[riak]]></category>

		<guid isPermaLink="false">http://compositecode.com/?p=8273</guid>
		<description><![CDATA[I&#8217;ve got more than a few series in the queue, so why not another one eh! The intent is, I&#8217;ll grab a specific topic to break down and add details to related to distributed systems, primarily around Riak. I will however diverge into other distributed databases too, but I&#8217;ll primarily be sticking to Riak. Without &#8230;<p><a href="http://compositecode.com/2013/05/08/distributed-databases-issue-001/" class="more-link">Read More</a></p><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=compositecode.com&#038;blog=14138691&#038;post=8273&#038;subd=compositecode&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>I&#8217;ve got more than a few series in the queue, so why not another one eh! The intent is, I&#8217;ll grab a specific topic to break down and add details to related to distributed systems, primarily around Riak. I will however diverge into other distributed databases too, but I&#8217;ll primarily be sticking to Riak. Without more introduction, the first topic is&#8230;</p>
<h2>Backing Up and Recovery of Riak (Nodes)</h2>
<p><img class="alignright" alt="" src="http://adronhall.smugmug.com/Software/Misc-Images/Bad-Resume/i-5crkLQb/0/O/1368057009_data_backup.png" width="26" height="26" />I&#8217;ve been asked approximately 423,983,321.7 zillion times how this is done. So here&#8217;s a quick summary and respective links to the best ways to backup Riak, how to recover nodes.</p>
<p>When backing up Riak there are two key things that need copied to the backup storage; the ring and data directories. Each of these things are specific based on the backend used with Riak. In addition to the core backup containing the ring and data, another good thing to backup is the configuration directory. When recovering this comes in useful.</p>
<p>For the locations of data, it depends slightly based on the operating system being used. The two big variances are OS-X and Linux Distros. On OS-X the data path, ring data and configuration are located at the locations listed below:</p>
<ul>
<li><span style="line-height:12px;">Bitcask data: ./data/bitcask</span></li>
<li>LevelDB data: ./data/leveldb</li>
<li>Ring data: ./data/riak/ring</li>
<li>Configuration: ./etc</li>
</ul>
<p>For each specific distro, there are slight variations on where the locations are, for a full list check out the <a href="http://docs.basho.com/riak/latest/cookbooks/Backups/" target="_blank">Basho Riak docs on backups</a>. But on Linux distros the paths are as follows:</p>
<p>Debian and Ubuntu</p>
<ul>
<li><span style="line-height:1.5;font-style:inherit;">Bitcask data: /var/lib/riak/bitcask</span></li>
<li><span style="line-height:1.5;font-style:inherit;">LevelDB data: /var/lib/riak/leveldb</span></li>
<li><span style="line-height:1.5;font-style:inherit;">Ring data: /var/lib/riak/ring</span></li>
<li><span style="line-height:1.5;font-style:inherit;">Configuration: /etc/riak</span></li>
</ul>
<p>Fedora and RHEL</p>
<ul>
<li><span style="line-height:1.5;font-style:inherit;">Bitcask data: /var/lib/riak/bitcask</span></li>
<li><span style="line-height:1.5;font-style:inherit;">LevelDB data: /var/lib/riak/leveldb</span></li>
<li><span style="line-height:1.5;font-style:inherit;">Ring data: /var/lib/riak/ring</span></li>
<li><span style="line-height:1.5;font-style:inherit;">Configuration: /etc/riak</span></li>
</ul>
<p>Other Operating System Paths</p>
<p>Freebsd</p>
<ul>
<li><span style="line-height:1.5;font-style:inherit;">Bitcask data: /var/db/riak/bitcask</span></li>
<li><span style="line-height:1.5;font-style:inherit;">LevelDB data: /var/db/riak/leveldb</span></li>
<li><span style="line-height:1.5;font-style:inherit;">Ring data: /var/db/riak/ring</span></li>
<li><span style="line-height:1.5;font-style:inherit;">Configuration: /usr/local/etc/riak</span></li>
</ul>
<p>SmartOS</p>
<ul>
<li><span style="line-height:1.5;font-style:inherit;">Bitcask data: /var/db/riak/bitcask</span></li>
<li><span style="line-height:1.5;font-style:inherit;">LevelDB data: /var/db/riak/leveldb</span></li>
<li><span style="line-height:1.5;font-style:inherit;">Ring data: /var/db/riak/ring</span></li>
<li><span style="line-height:1.5;font-style:inherit;">Configuration: /opt/local/etc/riak</span></li>
</ul>
<p>Solaris</p>
<ul>
<li><span style="line-height:1.5;font-style:inherit;">Bitcask data: /opt/riak/data/bitcask</span></li>
<li><span style="line-height:1.5;font-style:inherit;">LevelDB data: /opt/riak/data/leveldb</span></li>
<li><span style="line-height:1.5;font-style:inherit;">Ring data: /opt/riak/ring</span></li>
<li><span style="line-height:1.5;font-style:inherit;">Configuration: /opt/riak/etc</span></li>
</ul>
<p>When backing things up, it&#8217;s important to note that each node could have slightly inconsistent data. The data however is rebuilt by the Riak read-repair system once it is recovered and brought into use.</p>
<p><strong>Backup Jobs</strong></p>
<p>One of the easiest ways to backup Riak is to setup a cron job with your choice of cp, rsync or tar. Then just get those files onto whatever your choice of backup medium. An example tar cron job to backup a <a href="http://docs.basho.com/riak/latest/tutorials/choosing-a-backend/Bitcask/" target="_blank">Bitcask</a> backend is shown below (snagged from the <a href="http://docs.basho.com/riak/latest/cookbooks/Backups/#Bitcask-Backups" target="_blank">documentation</a>) just to give you an idea of where to start.</p>
<pre class="brush: bash; title: ; notranslate">tar -czf /mnt/riak_backups/riak_data_`date +%Y%m%d_%H%M`.tar.gz /var/lib/riak/bitcask /var/lib/riak/ring /etc/riak
</pre>
<p>For a <a href="http://docs.basho.com/riak/latest/tutorials/choosing-a-backend/LevelDB/" target="_blank">leveldb</a> back end the most important thing to note is that the node must be stopped. The basic workflow of backing up a node in this manner is to stop the node, backup the data, ring and configuration and then start the node back up.</p>
<p><strong>Backup Recovery / Restoring</strong></p>
<p>When recovering data on a node that is replacing an existing node that has the same name (fully qualified or IP) then follow the steps below:</p>
<ol>
<li><span style="line-height:12px;">Install Riak</span></li>
<li>Restore the old node&#8217;s configuration, data &amp; ring.</li>
<li>Start the node</li>
</ol>
<p>Once you&#8217;ve got the node started back up it&#8217;s a good idea to do a ping or status against the node to verify it is in a good state.</p>
<p>If node names have been changed there are additional steps.</p>
<ol>
<li><span style="line-height:12px;"><span style="line-height:12px;">Mark the original instance down</span></span>
<pre class="brush: bash; title: ; notranslate">riak-admin down </pre>
</li>
<li>Join the restored cluster  
<pre class="brush: bash; title: ; notranslate">riak-admin join </pre>
</li>
<li>Replace the original with 
<pre class="brush: bash; title: ; notranslate">riak-admin cluster force-replcae  </pre>
</li>
<li>Get the cluster plan built 
<pre class="brush: bash; title: ; notranslate">riak-admin cluster plan</pre>
</li>
<li>Commit the changes 
<pre class="brush: bash; title: ; notranslate">riak-admin cluster commit</pre>
</li>
<li>Change the -name setting in the vm.args configuration file to match the new name.</li>
<li>Change &amp; verify that the IP reflects the instances IP in the app.config for http and protocol buffer interfaces.</li>
</ol>
<p><strong>Cluster Backups via Riak Enterprise Multi-Data Center (MDC)</strong></p>
<p>In the above sections I wrote about the traditional backup approaches. This is very similar to the way RDBMS are backed up. However, with a distributed system like Riak there is another great alternative if you&#8217;re utilizing multiple datacenters and Enterprise Riak. In this version of Riak, which is basically Riak with additional features and capabilities, one of the possible backup scenarios is to use the Multi-Data Center, or MDC, to replicate a duplicate cluster and use it as an active, real-time and always ready backup.</p>
<p>One workflow that is an exceptionally effective way to provide backups is to setup the &#8220;backup&#8221; cluster beside the current operative cluster. As an example, if your cluster is operational in AWS and it is running in X region and Y zone then you&#8217;d want to put the backup cluster in that same region and zone. Once you&#8217;ve setup Riak Enterprise and MDC, then just setup a full sync. Once the full sync is done you can then remove the backup cluster and it provides a point in time backup of the data.</p>
<pre class="brush: bash; title: ; notranslate">riak-repl start-fullsync</pre>
<p>It&#8217;s easy to schedule full sync operations to low usage periods and it is also possible to pause and resume full sync operations.</p>
<pre class="brush: bash; title: ; notranslate">riak-repl resume-fullsync&lt;br /&gt;riak-repl pause-fullsync</pre>
<p>The variations on backing up data with Riak Enterprise and MDC are pretty expansive. Doing a point in time, maintaining a secondary live copy of the data, using the replication as a data dump to another cluster or even just using the MDC replication to dump all of the data to a single instance.</p>
<h2>File System Snapshots</h2>
<p>One other technique that is extremely efficient, fast and thorough is <a href="http://en.wikipedia.org/wiki/Snapshot_(computer_storage)" target="_blank">snapshotting the file system</a>. The backup workflow for snapshots is extremely easy. First stop Riak, then snapshot, then start Riak again. Of all the methods, snapshotting is one of the easiest of the options. Just like setting up a cron job, automating snapshots based on some pre-defined schedule and meshing that with automated start and stop of Riak provides a very thorough backup.</p>
<p>With these options, have fun strategizing your stratagems into strategies for backups.</p>
<h2>Diskettes</h2>
<p><a href="http://en.wikipedia.org/wiki/Sarcasm"><img class="alignright" alt="" src="http://adronhall.smugmug.com/Software/Misc-Images/Bad-Resume/i-wcd4pJL/0/O/1368057001_3floppy_unmount.png" width="128" height="128" /></a>One of the oldest, tried and true backups is the old diskette. The bestest way to backup with diskettes is to backup each node on three diskettes each. The send one of each diskettes to a geographically dispersed to a bank lock box or other secure facility. Do this for each node, and if need be use as many diskettes for each node as needed. A particularly useful method is to use the sharded zip strategy to stripe a backup across many diskettes. Once each lock box has a copy of the node for each node in the cluster, you&#8217;ll have one of the most secure backups in existence. <a href="http://en.wikipedia.org/wiki/Sarcasm" target="_blank">Nothing compares to the diskette backup</a>!</p>
<p><strong style="line-height:1.5;font-style:inherit;"><span style="line-height:1.5;font-style:inherit;">References:</span></strong></p>
<ol style="line-height:12px;font-style:inherit;">
<li><a style="font-style:inherit;line-height:12px;" href="http://docs.basho.com/riak/latest/cookbooks/Backups/" target="_blank">Basho Docs &#8211; Backups</a></li>
<li><a href="http://docs.basho.com/riakee/latest/cookbooks/Multi-Data-Center-Replication-Scheduling-Full-Sync/" target="_blank">Basho Docs &#8211; MDC Full Sync</a></li>
</ol>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/compositecode.wordpress.com/8273/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/compositecode.wordpress.com/8273/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=compositecode.com&#038;blog=14138691&#038;post=8273&#038;subd=compositecode&#038;ref=&#038;feed=1" width="1" height="1" /><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?a=xGTDJCpAYHI:2lUja37FOQk:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?a=xGTDJCpAYHI:2lUja37FOQk:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?a=xGTDJCpAYHI:2lUja37FOQk:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?i=xGTDJCpAYHI:2lUja37FOQk:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?a=xGTDJCpAYHI:2lUja37FOQk:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?i=xGTDJCpAYHI:2lUja37FOQk:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?a=xGTDJCpAYHI:2lUja37FOQk:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?a=xGTDJCpAYHI:2lUja37FOQk:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?i=xGTDJCpAYHI:2lUja37FOQk:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?a=xGTDJCpAYHI:2lUja37FOQk:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?a=xGTDJCpAYHI:2lUja37FOQk:KwTdNBX3Jqk"><img src="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?i=xGTDJCpAYHI:2lUja37FOQk:KwTdNBX3Jqk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?a=xGTDJCpAYHI:2lUja37FOQk:l6gmwiTKsz0"><img src="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?d=l6gmwiTKsz0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?a=xGTDJCpAYHI:2lUja37FOQk:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?i=xGTDJCpAYHI:2lUja37FOQk:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?a=xGTDJCpAYHI:2lUja37FOQk:TzevzKxY174"><img src="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?d=TzevzKxY174" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/LooselyCoupledHumanCodeFactory/~4/xGTDJCpAYHI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://compositecode.com/2013/05/08/distributed-databases-issue-001/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<georss:point>47.379776 -122.232813</georss:point>
		<geo:lat>47.379776</geo:lat>
		<geo:long>-122.232813</geo:long>
		<media:content url="http://2.gravatar.com/avatar/b077605f4799abe20de52b6ded458e99?s=96&amp;d=http%3A%2F%2F2.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&amp;r=R" medium="image">
			<media:title type="html">adron</media:title>
		</media:content>

		<media:content url="http://adronhall.smugmug.com/Software/Misc-Images/Bad-Resume/i-5crkLQb/0/O/1368057009_data_backup.png" medium="image" />

		<media:content url="http://adronhall.smugmug.com/Software/Misc-Images/Bad-Resume/i-wcd4pJL/0/O/1368057001_3floppy_unmount.png" medium="image" />
	<feedburner:origLink>http://compositecode.com/2013/05/08/distributed-databases-issue-001/</feedburner:origLink></item>
		<item>
		<title>Node PDX – Introducing Jason Denizac, Thorsten Lorenz and Peter Braden</title>
		<link>http://feedproxy.google.com/~r/LooselyCoupledHumanCodeFactory/~3/AYOyWCrDrhM/</link>
		<comments>http://compositecode.com/2013/05/08/node-pdx-introducing-jason-denizac-thorsten-lorenz-eva-giselle-and-peter-braden/#comments</comments>
		<pubDate>Wed, 08 May 2013 17:44:28 +0000</pubDate>
		<dc:creator>Adron</dc:creator>
				<category><![CDATA[Awesome Coders]]></category>
		<category><![CDATA[Community]]></category>
		<category><![CDATA[Conferences]]></category>

		<guid isPermaLink="false">http://compositecode.com/?p=8300</guid>
		<description><![CDATA[Here&#8217;s the second of a series of introductions for the upcoming Node PDX Conference while I train ride up to Seattle today. Jason Denizac presenting&#8230; Programming With a Purpose I met Jason over a year ago while he was in Portland at a coding conference. Since then we&#8217;ve kept in touch, and everytime I&#8217;ve enjoyed &#8230;<p><a href="http://compositecode.com/2013/05/08/node-pdx-introducing-jason-denizac-thorsten-lorenz-eva-giselle-and-peter-braden/" class="more-link">Read More</a></p><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=compositecode.com&#038;blog=14138691&#038;post=8300&#038;subd=compositecode&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>Here&#8217;s the second of a series of introductions for the upcoming <a href="http://nodepdx.org/" target="_blank">Node PDX Conference</a> while I train ride up to Seattle today.</p>
<p><em><strong>Jason Denizac presenting&#8230;</strong></em></p>
<h2>Programming With a Purpose</h2>
<div class="wp-caption alignleft" style="width: 190px"><img class=" " alt="Jason Denizac" src="http://adronhall.smugmug.com/Software/Meetups-N-Conferences/Node-PDX-2013/i-4WrcrZK/0/S/1010f6c90927502fab03fb1c65db74f9-S.jpg" width="180" height="180" /><p class="wp-caption-text">Jason Denizac</p></div>
<p>I met Jason over a year ago while he was in Portland at a coding conference. Since then we&#8217;ve kept in touch, and everytime I&#8217;ve enjoyed seeing him speak. This guy is from a place far over the hills and valleys somewhere in that central part of the United States, but I&#8217;m stoked he&#8217;s out here on the west coast now bringing more brainpower to the region.</p>
<p>Jason described his talk, &#8220;<em>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.</em></p>
<p><em>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 &#8220;intractable&#8221; problem. If time and scheduling permits, I&#8217;d love to have a series of lightning talks in which people could introduce other developers to the problem domain.</em>&#8220;</p>
<p>This should be a good one.</p>
<p><em><strong>Thorsten Lorenz presenting&#8230;</strong></em></p>
<h2>Module Driven Programming</h2>
<div class="wp-caption alignleft" style="width: 190px"><img alt="Thorsten Lorenz" src="http://adronhall.smugmug.com/Software/Meetups-N-Conferences/Node-PDX-2013/i-QzW4f6V/0/S/1c9054d6242bffd5fd25ec652a2b79cc-S.jpg" width="180" height="180" /><p class="wp-caption-text">Thorsten Lorenz</p></div>
<p>Thorsten Lorenz has been creating nodejs projects for over two years mostly in his spare time. The main reason why he can&#8217;t (and won&#8217;t) stop is, that ideas can be transformed into something that works in a very short amount of time when implemented in JavaScript. Aside from these projects, he also contributes to projects important for the community, one of the recent additions is source map support to browserify. These source maps even allow debugging transpiled languages (i.e. CoffeeScript) right in the browser.</p>
<p>Thorsten threw a bullet point list of the key points for his presentation, which follows:</p>
<ul>
<li><span style="line-height:1.5;font-style:inherit;">what constitutes a module</span></li>
<li><span style="line-height:1.5;font-style:inherit;">why it is desirable to build smaller modules</span></li>
<li><span style="line-height:1.5;font-style:inherit;">challenges and patterns for separating the application into independent modules</span></li>
<li><span style="line-height:1.5;font-style:inherit;">process of pulling out a module from an application</span></li>
<li><span style="line-height:1.5;font-style:inherit;">replpad case study</span></li>
<li><span style="line-height:1.5;font-style:inherit;">how to become module driven phase1 and phase2</span></li>
<li><span style="line-height:1.5;font-style:inherit;">browserify and how it enables to even manage your client side modules with npm</span></li>
<li><span style="line-height:1.5;font-style:inherit;">quick primer on tools like npm init, pkginit, travisify and npm link that help with module driven development</span></li>
</ul>
<p><em><strong>Peter Braden presenting&#8230;</strong></em></p>
<h2>Teaching Robots to See With Javascript</h2>
<div class="wp-caption alignleft" style="width: 190px"><img alt="Peter Braden" src="http://adronhall.smugmug.com/Software/Meetups-N-Conferences/Node-PDX-2013/i-4ZJ6LW3/0/S/eba329506a1323a829f4369cf9b032f5-S.jpg" width="180" height="180" /><p class="wp-caption-text">Peter Braden</p></div>
<p>Peter Braden is the author of the node-opencv bindings that allow node scripts to interface with this powerful computer vision library. Peter related to us that he&#8217;s both excited and terrified for a future of seeing drones and robots. Currently he works as a web consultant-of-all-trades at frozenridge.co.</p>
<p>In his talk he&#8217;ll be diving into, &#8220;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&#8217;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 javascript. Whether it&#8217;s detecting and recognising faces, building a picture of surroundings from a video stream, or tracking shapes, we&#8217;ll look at how we can make our javascript programs see. And all going well, we&#8217;ll have a live demonstration of a drone navigating based on onboard camera data.&#8221;</p>
<p>&#8230;</p>
<p>&#8230;</p>
<p>&#8230;ready to get your tickets?</p>
<p style="text-align:center;"><a href="http://nodepdx.org/"><img class="aligncenter" alt="" src="http://adronhall.smugmug.com/Software/Meetups-N-Conferences/Node-PDX-2013/i-mKbjXsb/0/O/NodePDX.png" width="486" height="248" /></a>Are you signed up?  <a href="http://nodepdx.eventbrite.com/" target="_blank"><strong>BUY YOUR TICKET FOR NODE PDX HERE</strong></a></p>
<p>Want to learn more? <a href="http://nodepdx.org/" target="_blank">http://nodepdx.org/</a></p>
<p>Want to know the dates? <a href="http://nodepdx.org/" target="_blank">http://nodepdx.org/</a></p>
<p>Want to know who else is speaking? Stay tuned here or go check out <a href="http://nodepdx.org/" target="_blank">http://nodepdx.org/</a>!</p>
<p>Have a last minute request, idea, comment or a speaking proposal? <a href="http://nodepdx.org/" target="_blank">http://nodepdx.org/</a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/compositecode.wordpress.com/8300/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/compositecode.wordpress.com/8300/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=compositecode.com&#038;blog=14138691&#038;post=8300&#038;subd=compositecode&#038;ref=&#038;feed=1" width="1" height="1" /><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?a=AYOyWCrDrhM:tnMP-REaEpM:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?a=AYOyWCrDrhM:tnMP-REaEpM:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?a=AYOyWCrDrhM:tnMP-REaEpM:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?i=AYOyWCrDrhM:tnMP-REaEpM:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?a=AYOyWCrDrhM:tnMP-REaEpM:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?i=AYOyWCrDrhM:tnMP-REaEpM:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?a=AYOyWCrDrhM:tnMP-REaEpM:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?a=AYOyWCrDrhM:tnMP-REaEpM:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?i=AYOyWCrDrhM:tnMP-REaEpM:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?a=AYOyWCrDrhM:tnMP-REaEpM:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?a=AYOyWCrDrhM:tnMP-REaEpM:KwTdNBX3Jqk"><img src="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?i=AYOyWCrDrhM:tnMP-REaEpM:KwTdNBX3Jqk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?a=AYOyWCrDrhM:tnMP-REaEpM:l6gmwiTKsz0"><img src="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?d=l6gmwiTKsz0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?a=AYOyWCrDrhM:tnMP-REaEpM:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?i=AYOyWCrDrhM:tnMP-REaEpM:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?a=AYOyWCrDrhM:tnMP-REaEpM:TzevzKxY174"><img src="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?d=TzevzKxY174" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/LooselyCoupledHumanCodeFactory/~4/AYOyWCrDrhM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://compositecode.com/2013/05/08/node-pdx-introducing-jason-denizac-thorsten-lorenz-eva-giselle-and-peter-braden/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<georss:point>45.522405 -122.684155</georss:point>
		<geo:lat>45.522405</geo:lat>
		<geo:long>-122.684155</geo:long>
		<media:content url="http://2.gravatar.com/avatar/b077605f4799abe20de52b6ded458e99?s=96&amp;d=http%3A%2F%2F2.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&amp;r=R" medium="image">
			<media:title type="html">adron</media:title>
		</media:content>

		<media:content url="http://adronhall.smugmug.com/Software/Meetups-N-Conferences/Node-PDX-2013/i-4WrcrZK/0/S/1010f6c90927502fab03fb1c65db74f9-S.jpg" medium="image">
			<media:title type="html">Jason Denizac</media:title>
		</media:content>

		<media:content url="http://adronhall.smugmug.com/Software/Meetups-N-Conferences/Node-PDX-2013/i-QzW4f6V/0/S/1c9054d6242bffd5fd25ec652a2b79cc-S.jpg" medium="image">
			<media:title type="html">Thorsten Lorenz</media:title>
		</media:content>

		<media:content url="http://adronhall.smugmug.com/Software/Meetups-N-Conferences/Node-PDX-2013/i-4ZJ6LW3/0/S/eba329506a1323a829f4369cf9b032f5-S.jpg" medium="image">
			<media:title type="html">Peter Braden</media:title>
		</media:content>

		<media:content url="http://adronhall.smugmug.com/Software/Meetups-N-Conferences/Node-PDX-2013/i-mKbjXsb/0/O/NodePDX.png" medium="image" />
	<feedburner:origLink>http://compositecode.com/2013/05/08/node-pdx-introducing-jason-denizac-thorsten-lorenz-eva-giselle-and-peter-braden/</feedburner:origLink></item>
		<item>
		<title>Node PDX – Introducing Ward Cunningham, Nexxy, Jerry Seivert and Hannah Fousanon!</title>
		<link>http://feedproxy.google.com/~r/LooselyCoupledHumanCodeFactory/~3/lgyFTa6ubIw/</link>
		<comments>http://compositecode.com/2013/05/07/node-pdx-introducing-ward-cunningham-nexxy-jerry-seivert-and-hannah-fousanon/#comments</comments>
		<pubDate>Tue, 07 May 2013 23:52:49 +0000</pubDate>
		<dc:creator>Adron</dc:creator>
				<category><![CDATA[Awesome Coders]]></category>
		<category><![CDATA[Community]]></category>
		<category><![CDATA[Conferences]]></category>
		<category><![CDATA[conferences]]></category>
		<category><![CDATA[node]]></category>
		<category><![CDATA[node pdx]]></category>
		<category><![CDATA[node.js]]></category>
		<category><![CDATA[speakers]]></category>

		<guid isPermaLink="false">http://compositecode.com/?p=8298</guid>
		<description><![CDATA[Here&#8217;s the first of a series of introductions for the upcoming Node PDX Conference here in bright and sunny Portland, Oregon! &#8230;and no, that isn&#8217;t sarcasm, it&#8217;s the summer time now so we&#8217;re allowed to have sun and warm weather! With that, the speakers for Node PDX! Ward Cunningham presenting&#8230; My Sensors Love Node.js Who&#8217;s &#8230;<p><a href="http://compositecode.com/2013/05/07/node-pdx-introducing-ward-cunningham-nexxy-jerry-seivert-and-hannah-fousanon/" class="more-link">Read More</a></p><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=compositecode.com&#038;blog=14138691&#038;post=8298&#038;subd=compositecode&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>Here&#8217;s the first of a series of introductions for the upcoming <a href="http://nodepdx.org/" target="_blank">Node PDX Conference</a> here in bright and sunny Portland, Oregon!</p>
<p>&#8230;and no, that isn&#8217;t sarcasm, it&#8217;s the summer time now so we&#8217;re allowed to have sun and warm weather! With that, the speakers for <a href="http://nodepdx.org/" target="_blank">Node PDX</a>!</p>
<p><em><strong>Ward Cunningham presenting&#8230;</strong></em></p>
<h2>My Sensors Love Node.js</h2>
<div class="wp-caption alignleft" style="width: 190px"><img class=" " alt="Ward Cunningham" src="http://adronhall.smugmug.com/Software/Meetups-N-Conferences/Node-PDX-2013/i-B4Jx8z3/0/S/5c819321db181e77b9010369807df2f9-S.jpg" width="180" height="180" /><p class="wp-caption-text">Ward Cunningham</p></div>
<p>Who&#8217;s Ward? In his own findings, &#8220;<em>The Oregonian describes me as the Old Growth of the Silicon Forest. I appreciate the thought but move way too fast to be compared to trees. Think of me as your intellectual immune system separating good technology infections from bad. Ditch that fever. Go with node.</em>&#8220;</p>
<p>As Ward describes this presentation, &#8221;<em>I&#8217;ve tested a half-dozen home sensor integration technologies over as many years and learned something important about architecture with each generation. I&#8217;ve replaced Arduino hardware with Teensy which offers much better USB support. I&#8217;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&#8217;ve plotted results with ascii-art, java-2d, flot and now d3.js which can be a career in itself. I&#8217;ll share the good parts of each of these and suggest how you will know when it is time for you to move on.</em>&#8220;</p>
<p><em><strong>Nexxy presenting&#8230;</strong></em></p>
<h2>Realtime Hardware with Node.js</h2>
<div class="wp-caption alignleft" style="width: 190px"><img class=" " alt="Nexxy" src="http://adronhall.smugmug.com/Software/Meetups-N-Conferences/Node-PDX-2013/i-bgvZ7Wn/0/S/e1f89f747277cc59ef8f79567dffd9e6-S.jpg" width="180" height="180" /><p class="wp-caption-text">Nexxy</p></div>
<p>Key facts about Nexxy:</p>
<ul>
<li><span style="line-height:1.5;font-style:inherit;">Nexxy has been hacking on things in one way or another <em>SINCE THE BEGINNING OF TIME</em>.</span></li>
<li><span style="line-height:1.5;font-style:inherit;">Nexxy is also known for her occasional use of hyperbole as a literary device.</span></li>
<li><span style="line-height:1.5;font-style:inherit;">Nexxy first began hacking arduinos with node while she was working with a vegan strip club named Casa Diablo.</span></li>
<li><span style="line-height:1.5;font-style:inherit;">Nexxy is now enjoying her work with Ninja Blocks as they take over the world with the internet of things!</span></li>
<li><span style="line-height:1.5;font-style:inherit;">Nexxy inexplicably decided at the last second to write this section of the proposal in 3rd person, bullet form.</span></li>
</ul>
<p>&#8230;and I have recreated this proposal section here for your information!</p>
<p>Join Nexxy &amp; all for another installment of &#8220;Realtime Hardware with Node.js&#8221; 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.</p>
<p><em>* bribed with stickers</em></p>
<p><em><strong>Jerry Seivert presenting&#8230;</strong></em></p>
<h2>Know Your Environment</h2>
<div class="wp-caption alignleft" style="width: 190px"><img class=" " alt="Jerry Sievert" src="http://adronhall.smugmug.com/Software/Meetups-N-Conferences/Node-PDX-2013/i-TJpqjXj/0/S/69fcd5865713cf819ec3551924bac94b-S.png" width="180" height="180" /><p class="wp-caption-text">Jerry Sievert</p></div>
<p>Jerry is a conousier of fine beer, drinks and other assorted things. The relevant list of coarse includes Lego, trains and JavaScript. His own words of these things, being a drink or beautifully coded up application, &#8220;I love to build things!&#8221; summarizes up Jerry&#8217;s love of building perfectly!</p>
<p>Jerry will pose the question, &#8220;What if your software knew about its environment and could react?&#8221; 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 all &#8220;<em>teh aWeSOME</em>&#8220;!</p>
<p><em><strong>Hannah Fousanon presenting&#8230;</strong></em></p>
<h2>Optimizing Single-Page Javascript Websites for SEO</h2>
<div class="wp-caption alignleft" style="width: 176px"><img class="  " alt="Hannah" src="http://adronhall.smugmug.com/Software/Meetups-N-Conferences/Node-PDX-2013/i-MH2Rw46/0/M/tvyckfwt31t0e9a0boyz-M.jpg" width="166" height="216" /><p class="wp-caption-text">Hannah</p></div>
<p>Hannah Fouasnon is a cofounder and lead engineer at DJZ based in San Francisco. While a full time hacker, she&#8217;s currently focusing on creating DJZ&#8217;s next single-page javascript website optimized around playing media and games. Former projects include Luckysort, a big-data, text-analytics company based in Portland, OR, where she implemented a large portion of the node.js architecture.</p>
<p>Hannah will cover how to create single-page javascript websites and 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.</p>
<p>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).</p>
<p><a href="http://nodepdx.org/"><img class="aligncenter" alt="" src="http://adronhall.smugmug.com/Software/Meetups-N-Conferences/Node-PDX-2013/i-mKbjXsb/0/O/NodePDX.png" width="623" height="319" /></a>Are you signed up?  <a href="http://nodepdx.eventbrite.com/" target="_blank"><strong>BUY YOUR TICKET FOR NODE PDX HERE</strong></a></p>
<p>Want to learn more? <a href="http://nodepdx.org/" target="_blank">http://nodepdx.org/</a></p>
<p>Want to know the dates? <a href="http://nodepdx.org/" target="_blank">http://nodepdx.org/</a></p>
<p>Want to know who else is speaking? Stay tuned here or go check out <a href="http://nodepdx.org/" target="_blank">http://nodepdx.org/</a>!</p>
<p>Have a last minute request, idea, comment or a speaking proposal? <a href="http://nodepdx.org/" target="_blank">http://nodepdx.org/</a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/compositecode.wordpress.com/8298/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/compositecode.wordpress.com/8298/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=compositecode.com&#038;blog=14138691&#038;post=8298&#038;subd=compositecode&#038;ref=&#038;feed=1" width="1" height="1" /><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?a=lgyFTa6ubIw:4LSOlMOtI7k:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?a=lgyFTa6ubIw:4LSOlMOtI7k:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?a=lgyFTa6ubIw:4LSOlMOtI7k:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?i=lgyFTa6ubIw:4LSOlMOtI7k:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?a=lgyFTa6ubIw:4LSOlMOtI7k:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?i=lgyFTa6ubIw:4LSOlMOtI7k:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?a=lgyFTa6ubIw:4LSOlMOtI7k:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?a=lgyFTa6ubIw:4LSOlMOtI7k:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?i=lgyFTa6ubIw:4LSOlMOtI7k:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?a=lgyFTa6ubIw:4LSOlMOtI7k:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?a=lgyFTa6ubIw:4LSOlMOtI7k:KwTdNBX3Jqk"><img src="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?i=lgyFTa6ubIw:4LSOlMOtI7k:KwTdNBX3Jqk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?a=lgyFTa6ubIw:4LSOlMOtI7k:l6gmwiTKsz0"><img src="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?d=l6gmwiTKsz0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?a=lgyFTa6ubIw:4LSOlMOtI7k:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?i=lgyFTa6ubIw:4LSOlMOtI7k:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?a=lgyFTa6ubIw:4LSOlMOtI7k:TzevzKxY174"><img src="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?d=TzevzKxY174" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/LooselyCoupledHumanCodeFactory/~4/lgyFTa6ubIw" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://compositecode.com/2013/05/07/node-pdx-introducing-ward-cunningham-nexxy-jerry-seivert-and-hannah-fousanon/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<georss:point>45.522455 -122.677879</georss:point>
		<geo:lat>45.522455</geo:lat>
		<geo:long>-122.677879</geo:long>
		<media:content url="http://2.gravatar.com/avatar/b077605f4799abe20de52b6ded458e99?s=96&amp;d=http%3A%2F%2F2.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&amp;r=R" medium="image">
			<media:title type="html">adron</media:title>
		</media:content>

		<media:content url="http://adronhall.smugmug.com/Software/Meetups-N-Conferences/Node-PDX-2013/i-B4Jx8z3/0/S/5c819321db181e77b9010369807df2f9-S.jpg" medium="image">
			<media:title type="html">Ward Cunningham</media:title>
		</media:content>

		<media:content url="http://adronhall.smugmug.com/Software/Meetups-N-Conferences/Node-PDX-2013/i-bgvZ7Wn/0/S/e1f89f747277cc59ef8f79567dffd9e6-S.jpg" medium="image">
			<media:title type="html">Nexxy</media:title>
		</media:content>

		<media:content url="http://adronhall.smugmug.com/Software/Meetups-N-Conferences/Node-PDX-2013/i-TJpqjXj/0/S/69fcd5865713cf819ec3551924bac94b-S.png" medium="image">
			<media:title type="html">Jerry Sievert</media:title>
		</media:content>

		<media:content url="http://adronhall.smugmug.com/Software/Meetups-N-Conferences/Node-PDX-2013/i-MH2Rw46/0/M/tvyckfwt31t0e9a0boyz-M.jpg" medium="image">
			<media:title type="html">Hannah</media:title>
		</media:content>

		<media:content url="http://adronhall.smugmug.com/Software/Meetups-N-Conferences/Node-PDX-2013/i-mKbjXsb/0/O/NodePDX.png" medium="image" />
	<feedburner:origLink>http://compositecode.com/2013/05/07/node-pdx-introducing-ward-cunningham-nexxy-jerry-seivert-and-hannah-fousanon/</feedburner:origLink></item>
		<item>
		<title>Vagrant for VMware Fusion with plugin issues…  Part 2</title>
		<link>http://feedproxy.google.com/~r/LooselyCoupledHumanCodeFactory/~3/EQ-YtQwWlHM/</link>
		<comments>http://compositecode.com/2013/04/26/vagrant-for-vmware-fusion-with-plugin-issues-part-2/#comments</comments>
		<pubDate>Fri, 26 Apr 2013 21:03:53 +0000</pubDate>
		<dc:creator>Adron</dc:creator>
				<category><![CDATA[How-to]]></category>
		<category><![CDATA[Riak]]></category>
		<category><![CDATA[bosh]]></category>
		<category><![CDATA[riak]]></category>
		<category><![CDATA[vagrant]]></category>
		<category><![CDATA[vmware]]></category>

		<guid isPermaLink="false">http://compositecode.com/?p=8248</guid>
		<description><![CDATA[After the previous blog entry I wrote up, working through getting vagrant to spool up a vmware image I got a few other suggestions via Twitter. @adron Delete the “.vagrant” directory. &#8212; Mitchell Hashimoto (@mitchellh) April 26, 2013 @adron @mitchellh @jeffsussna @dberkholz @monkchips @sogrady did you delete your .vagrant subfolder and try again with &#8211;provider &#8230;<p><a href="http://compositecode.com/2013/04/26/vagrant-for-vmware-fusion-with-plugin-issues-part-2/" class="more-link">Read More</a></p><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=compositecode.com&#038;blog=14138691&#038;post=8248&#038;subd=compositecode&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>After the previous blog entry I wrote up, working through getting vagrant to spool up a vmware image I got a few other suggestions via Twitter.</p>
<blockquote class="twitter-tweet"><p>@<a href="https://twitter.com/adron">adron</a> Delete the “.vagrant” directory.</p>
<p>&mdash; Mitchell Hashimoto (@mitchellh) <a href="https://twitter.com/mitchellh/status/327863433192161280">April 26, 2013</a></p></blockquote>
<blockquote class="twitter-tweet"><p>@<a href="https://twitter.com/adron">adron</a> @<a href="https://twitter.com/mitchellh">mitchellh</a> @<a href="https://twitter.com/jeffsussna">jeffsussna</a> @<a href="https://twitter.com/dberkholz">dberkholz</a> @<a href="https://twitter.com/monkchips">monkchips</a> @<a href="https://twitter.com/sogrady">sogrady</a> did you delete your .vagrant subfolder and try again with &#8211;provider flag?</p>
<p>&mdash; Troy Howard (@thoward37) <a href="https://twitter.com/thoward37/status/327870593473069058">April 26, 2013</a></p></blockquote>
<p>With that quick delete of the hidden vagrant directory I gave it a shot again with the provider flagh.</p>
<pre class="brush: bash; title: ; notranslate">
rm -rf .vagrant/
$ vagrant up --provider=vmware_fusionBringing machine 'default' up with 'vmware_fusion' provider...
[default] VMware requires root privileges to make many of the changes
necessary for Vagrant to control it. In a moment, Vagrant will ask for
your administrator password in order to install a helper that will have
permissions to make these changes. Note that Vagrant itself continues
to run without administrative privileges.
Password:
[default] Box 'bosh-solo-0.6.4' was not found. Fetching box from specified URL for
the provider 'vmware_fusion'. Note that if the URL does not have
a box for this provider, you should interrupt Vagrant now and add
the box yourself. Otherwise Vagrant will attempt to download the
full box prior to discovering this error.
Downloading or copying the box...
</pre>
<p>Which this seemed to work. Downloading the helpers and such started and I waited patiently.</p>
<p><em>A Few Thoughts&#8230;</em></p>
<p>Needing to delete a hidden file struck me as one of those completely arbitrary and random solutions. It worked, which is awesome, but it working is a completely counter intuitive solution. I did a &#8216;destroy&#8217; previously along with a number of things that were somewhat not intuitive. At this point the steps were fine, I had to ask for help, and I got help really fast. That&#8217;s awesome, but needing to go through those steps was unfortunate and ties back around to <a href="http://twitter.com/jeffsussna" target="_blank">@jeffsussna</a>&#8216;s tweet earlier.</p>
<blockquote class="twitter-tweet"><p>Hey <a href="https://twitter.com/search/%23developersaskingmakers">#developersaskingmakers</a> dudes: how come UX for Dev/Ops tools still sucks? @<a href="https://twitter.com/dberkholz">dberkholz</a> @<a href="https://twitter.com/monkchips">monkchips</a> @<a href="https://twitter.com/sogrady">sogrady</a></p>
<p>&mdash; Jeff Sussna (@jeffsussna) <a href="https://twitter.com/jeffsussna/status/327822545472585729">April 26, 2013</a></p></blockquote>
<p>Anyway, as soon as I did this I decided Virtual Box it is. As it went through a 40 minute download of an image (??) it finished and displayed&#8230;</p>
<pre class="brush: bash; title: ; notranslate">
$ vagrant up --provider=vmware_fusionBringing machine 'default' up with 'vmware_fusion' provider...
[default] VMware requires root privileges to make many of the changes
necessary for Vagrant to control it. In a moment, Vagrant will ask for
your administrator password in order to install a helper that will have
permissions to make these changes. Note that Vagrant itself continues
to run without administrative privileges.
Password:
[default] Box 'bosh-solo-0.6.4' was not found. Fetching box from specified URL for
the provider 'vmware_fusion'. Note that if the URL does not have
a box for this provider, you should interrupt Vagrant now and add
the box yourself. Otherwise Vagrant will attempt to download the
full box prior to discovering this error.
Downloading or copying the box...
Extracting box...te: 119k/s, Estimated time remaining: --:--:--)
The box you attempted to add doesn't match the provider you specified.

Provider expected: vmware_fusion
Provider of box: virtualbox
</pre>
<p>&#8230; because the image isn&#8217;t available for vmware according to Vagrant, so for now, with some solutions and more questions I&#8217;m just going to go with the Virtual Box Solution and get back on track with the larger picture blog entry I&#8217;m writing. Thanks to <a href="http://twitter.com/brianmmclain" target="_blank">@brianmmclain</a>, <a href="http://twitter.com/mitchelh" target="_blank">@mitchelh</a>, <a href="http://twitter.com/jeffsussna" target="_blank">@jeffsussna</a> and <a href="http://twitter.com/thoward37" target="_blank">@thoward37</a>.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/compositecode.wordpress.com/8248/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/compositecode.wordpress.com/8248/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=compositecode.com&#038;blog=14138691&#038;post=8248&#038;subd=compositecode&#038;ref=&#038;feed=1" width="1" height="1" /><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?a=EQ-YtQwWlHM:kAH8MRVNZ9Y:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?a=EQ-YtQwWlHM:kAH8MRVNZ9Y:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?a=EQ-YtQwWlHM:kAH8MRVNZ9Y:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?i=EQ-YtQwWlHM:kAH8MRVNZ9Y:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?a=EQ-YtQwWlHM:kAH8MRVNZ9Y:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?i=EQ-YtQwWlHM:kAH8MRVNZ9Y:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?a=EQ-YtQwWlHM:kAH8MRVNZ9Y:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?a=EQ-YtQwWlHM:kAH8MRVNZ9Y:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?i=EQ-YtQwWlHM:kAH8MRVNZ9Y:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?a=EQ-YtQwWlHM:kAH8MRVNZ9Y:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?a=EQ-YtQwWlHM:kAH8MRVNZ9Y:KwTdNBX3Jqk"><img src="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?i=EQ-YtQwWlHM:kAH8MRVNZ9Y:KwTdNBX3Jqk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?a=EQ-YtQwWlHM:kAH8MRVNZ9Y:l6gmwiTKsz0"><img src="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?d=l6gmwiTKsz0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?a=EQ-YtQwWlHM:kAH8MRVNZ9Y:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?i=EQ-YtQwWlHM:kAH8MRVNZ9Y:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?a=EQ-YtQwWlHM:kAH8MRVNZ9Y:TzevzKxY174"><img src="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?d=TzevzKxY174" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/LooselyCoupledHumanCodeFactory/~4/EQ-YtQwWlHM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://compositecode.com/2013/04/26/vagrant-for-vmware-fusion-with-plugin-issues-part-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<georss:point>45.522405 -122.684155</georss:point>
		<geo:lat>45.522405</geo:lat>
		<geo:long>-122.684155</geo:long>
		<media:content url="http://2.gravatar.com/avatar/b077605f4799abe20de52b6ded458e99?s=96&amp;d=http%3A%2F%2F2.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&amp;r=R" medium="image">
			<media:title type="html">adron</media:title>
		</media:content>
	<feedburner:origLink>http://compositecode.com/2013/04/26/vagrant-for-vmware-fusion-with-plugin-issues-part-2/</feedburner:origLink></item>
		<item>
		<title>Vagrant for VMware Fusion with plugin issues…</title>
		<link>http://feedproxy.google.com/~r/LooselyCoupledHumanCodeFactory/~3/XvrtlcwcVpI/</link>
		<comments>http://compositecode.com/2013/04/26/vagrant-for-vmware-fusion/#comments</comments>
		<pubDate>Fri, 26 Apr 2013 19:01:23 +0000</pubDate>
		<dc:creator>Adron</dc:creator>
				<category><![CDATA[How-to]]></category>
		<category><![CDATA[Riak]]></category>
		<category><![CDATA[bosh]]></category>
		<category><![CDATA[riak]]></category>
		<category><![CDATA[vagrant]]></category>

		<guid isPermaLink="false">http://compositecode.com/?p=8231</guid>
		<description><![CDATA[I&#8217;ve started using Vagrant pretty regularly. I downloaded Virtual Box and been tinkering away with some of the vagrant packages. The one huge bummer was that I was under the delusion that it only worked with Vagrant. Then, I was told by a fellow coder that I needed to check out the VMware Fusion plugin. &#8230;<p><a href="http://compositecode.com/2013/04/26/vagrant-for-vmware-fusion/" class="more-link">Read More</a></p><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=compositecode.com&#038;blog=14138691&#038;post=8231&#038;subd=compositecode&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>I&#8217;ve started using Vagrant pretty regularly. I downloaded Virtual Box and been tinkering away with some of the vagrant packages. The one huge bummer was that I was under the delusion that it only worked with Vagrant. Then, I was told by a fellow coder that I needed to check out the VMware Fusion plugin. I immediately was stoked! Simply, have you&#8230;</p>
<pre class="brush: bash; title: ; notranslate">
$ vagrant plugin install vagrant-vmware-fusion
Installing the 'vagrant-vmware-fusion' plugin. This can take a few minutes...
Installed the plugin 'vagrant-vmware-fusion (0.6.1)'!
$ vagrant plugin license vagrant-vmware-fusion license.lic
Installing license for 'vagrant-vmware-fusion'...
The license for 'vagrant-vmware-fusion' was successfully installed!
$
</pre>
<p>Now mind you, you&#8217;ll need to go out and buy the VMware Fusion Plugin from <a href="http://www.hashicorp.com/" target="_blank">Hashi Corp</a>. From my perspective I was happy with this purchase just to get the stability improvements of VMware Fusion.</p>
<h2>Vagrant &amp; Riak</h2>
<p>For my first example of the new plugin I <a href="https://github.com/Adron/riak-boshrelease" target="_blank">forked and then cloned the Bosh Riak Repository</a>. Once that was cloned I simply opened a terminal and navigated to the path of the repository and tried&#8230;</p>
<pre class="brush: bash; title: ; notranslate">
vagrant up
</pre>
<p>&#8230;and immediately got the message, &#8220;Failed to load the &#8220;vagrant-vmware-fusion&#8221; plugin. View logs for more details.&#8221; Noooooooooooooooez! <img src='http://s0.wp.com/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' />  I was sad. But dove into the logs by executing vagrant up with&#8230;</p>
<pre class="brush: bash; title: ; notranslate">
VAGRANT_LOG=INFO vagrant up
</pre>
<p>&#8230;and there was the error amid the log was something about the VMware Plugin requiring Vagrant the latest version.</p>
<p>Doh! I&#8217;d forgotten to upgrade first. I installed the upgrade via the <a href="http://downloads.vagrantup.com/" target="_blank">downloads for 1.2.2</a>. Once I upgrade I ran into the same error. A quick &#8216;vagrant -v&#8217; to check the version showed 1.2.2 was installed. Not knowing the special secret sauce at this point, I figured I&#8217;d just reboot. It had been about 20-30 days since I had, so who knew what weird service or something needed to be restarted. I guessed correctly and after a restart vagrant kicked off the download of the vagrant image for the Bosh Riak deploy. It went by fast, and since it didn&#8217;t spit out an error about not loading the plugin I thought everything had worked&#8230;</p>
<pre class="brush: bash; title: ; notranslate">
$ vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
[default] Setting the name of the VM...
[default] Clearing any previously set forwarded ports...
[default] Creating shared folders metadata...
[default] Clearing any previously set network interfaces...
[default] Preparing network interfaces based on configuration...
[default] Forwarding ports...
[default] -- 22 =&gt; 2222 (adapter 1)
[default] Booting VM...
[default] Waiting for VM to boot. This can take a few minutes.

...more stuff here...
</pre>
<p>&#8230;or so I had thought. Scrolling back up through the log I realized Vagrant had NOT used the plugin for VMware Fusion. I was still stuck with VirtualBox. I went through the plugin install again to see if it just needed re-applied. At this point, since I&#8217;d already installed Virtual Box previously I figured maybe I&#8217;d just keep plunging forward and mess with the vmware plugin later, however I&#8217;d REALLY like to have all my virtualized images running via Fusion. Not sure what I missed I decided to give it one more try&#8230;</p>
<pre class="brush: bash; title: ; notranslate">
$ vagrant plugin install vagrant-vmware-fusion
Installing the 'vagrant-vmware-fusion' plugin. This can take a few minutes...
Installed the plugin 'vagrant-vmware-fusion (0.6.1)'!
Adrons-MacBook-Air-3:Downloads adronhall$ vagrant plugin license vagrant-vmware-fusion license.lic
Installing license for 'vagrant-vmware-fusion'...
The license for 'vagrant-vmware-fusion' was successfully installed!
$ cd ~/Codez/riak-release/
$ vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
</pre>
<p>Ugh&#8230; so I almost give up at this point. I read this, it seems ironic.</p>
<blockquote class="twitter-tweet"><p>@<a href="https://twitter.com/jeffsussna">jeffsussna</a> @<a href="https://twitter.com/dberkholz">dberkholz</a> @<a href="https://twitter.com/monkchips">monkchips</a> @<a href="https://twitter.com/sogrady">sogrady</a> I feel as though Vagrant’s UX is quite good. No? — Mitchell Hashimoto (@mitchellh) <a href="https://twitter.com/mitchellh/status/327823216724803584">April 26, 2013</a></p></blockquote>
<p>Being this isn&#8217;t the best user experience I stumble forward trying something else. I get a suggestion from a fellow coder (thx Brian) to try this.</p>
<pre class="brush: bash; title: ; notranslate">
$ vagrant up --provider=vmware_fusionAn active machine was found with a different provider. Vagrant
currently allows each machine to be brought up with only a single
provider at a time. A future version will remove this limitation.
Until then, please destroy the existing machine to up with a new
provider.

Machine name: default
Active provider: virtualbox
Requested provider: vmware_fusion
$
</pre>
<p>Well, that didn&#8217;t work either. It looks like maybe if I just blew away my VirtualBox images it would work? Well, funny, being I don&#8217;t have any VirtualBox images running or installed. Well, just to make sure I checked the VirtualBox directory. Nothing. I went ahead and deleted the entire VirtualBox Application. Tried again.</p>
<pre class="brush: bash; title: ; notranslate">
$ vagrant up --provider=vmware_fusionAn active machine was found with a different provider. Vagrant
currently allows each machine to be brought up with only a single
provider at a time. A future version will remove this limitation.
Until then, please destroy the existing machine to up with a new
provider.

Machine name: default
Active provider: virtualbox
Requested provider: vmware_fusion
$
</pre>
<p>Ok, I&#8217;ve no idea now. Any help would be greatly appreciated! This same thing appears to work fine under VirtualBox, but with the plugin added and VirtualBox removed I&#8217;m still not able to get this to work. Help!</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/compositecode.wordpress.com/8231/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/compositecode.wordpress.com/8231/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=compositecode.com&#038;blog=14138691&#038;post=8231&#038;subd=compositecode&#038;ref=&#038;feed=1" width="1" height="1" /><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?a=XvrtlcwcVpI:etAeNEQudjY:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?a=XvrtlcwcVpI:etAeNEQudjY:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?a=XvrtlcwcVpI:etAeNEQudjY:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?i=XvrtlcwcVpI:etAeNEQudjY:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?a=XvrtlcwcVpI:etAeNEQudjY:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?i=XvrtlcwcVpI:etAeNEQudjY:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?a=XvrtlcwcVpI:etAeNEQudjY:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?a=XvrtlcwcVpI:etAeNEQudjY:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?i=XvrtlcwcVpI:etAeNEQudjY:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?a=XvrtlcwcVpI:etAeNEQudjY:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?a=XvrtlcwcVpI:etAeNEQudjY:KwTdNBX3Jqk"><img src="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?i=XvrtlcwcVpI:etAeNEQudjY:KwTdNBX3Jqk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?a=XvrtlcwcVpI:etAeNEQudjY:l6gmwiTKsz0"><img src="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?d=l6gmwiTKsz0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?a=XvrtlcwcVpI:etAeNEQudjY:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?i=XvrtlcwcVpI:etAeNEQudjY:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?a=XvrtlcwcVpI:etAeNEQudjY:TzevzKxY174"><img src="http://feeds.feedburner.com/~ff/LooselyCoupledHumanCodeFactory?d=TzevzKxY174" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/LooselyCoupledHumanCodeFactory/~4/XvrtlcwcVpI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://compositecode.com/2013/04/26/vagrant-for-vmware-fusion/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<georss:point>45.504902 -122.654869</georss:point>
		<geo:lat>45.504902</geo:lat>
		<geo:long>-122.654869</geo:long>
		<media:content url="http://2.gravatar.com/avatar/b077605f4799abe20de52b6ded458e99?s=96&amp;d=http%3A%2F%2F2.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&amp;r=R" medium="image">
			<media:title type="html">adron</media:title>
		</media:content>
	<feedburner:origLink>http://compositecode.com/2013/04/26/vagrant-for-vmware-fusion/</feedburner:origLink></item>
	</channel>
</rss>
