Get p2b browser to work again.

You can now pipe data from shell to the browser!

This CL:
* Updates jspm, polymer, bower, and dependencies.
* Uses jspm to link veyron from $VEYRON_ROOT (NOTE: This step is very
  slow, and currently runs every time you serve.  I need to fix that.)
* Removes unneeded code, like config.js and shame.js.
* Updates the veyron-specific code to use the newer veyron.js apis.
* Fix neighborhood view

Change-Id: Id0a4c91cba0f3c9ad3ff07388f4d3aacb3f33635
diff --git a/.gitignore b/.gitignore
index 2e1f380..ed67a05 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,2 +1,6 @@
+browser/build.js*
+browser/index.html
+browser/third-party
 go/bin
 go/pkg
+node_modules
diff --git a/Makefile b/Makefile
index 0d74399..a0b7d79 100644
--- a/Makefile
+++ b/Makefile
@@ -1,4 +1,4 @@
-export PATH:=$(VANADIUM_ROOT)/environment/cout/node/bin:node_modules/.bin:$(PATH)
+export PATH:=$(VANADIUM_ROOT)/environment/cout/node/bin:$(PWD)/node_modules/.bin:$(PATH)
 export GOPATH=$(PWD)/go
 export VDLPATH=$(GOPATH)
 
@@ -27,35 +27,36 @@
 	npm prune
 	npm install
 	touch node_modules
-	export
-
-# Build and copies Veyron from local source
-browser/third-party/veyron: node_modules
-	cp -rf $</veyron/dist/ $@
 
 # Install JSPM and Bower packages as listed in browser/package.json from JSPM and browser/bower.json from bower
-browser/third-party: browser/package.json browser/bower.json
-	cd browser; \
-	jspm install -h; \
-	bower prune; \
+browser/third-party: browser/package.json browser/bower.json node_modules
+	cd browser && \
+	jspm install -y
+# Link a local copy of veyron.js.
+# TODO(nlacasse): Remove this and put veyron.js in package.json once we can get
+# it from npm
+	cd $(VANADIUM_ROOT)/release/javascript/core && \
+	jspm link -y npm:veyronjs@0.0.1
+	cd browser && \
+	jspm install -y -link npm:veyronjs && \
+	bower prune && \
 	bower install
 	touch browser/third-party
 
 # Bundle whole app and third-party JavaScript into a single build.js
-browser/build.js: $(JS_FILES)
+browser/build.js: $(JS_FILES) browser/third-party node_modules
 	cd browser; \
 	jspm setmode local; \
 	jspm bundle app build.js
-	touch browser/third-party
 
 # Bundle all app web components and third-party web components into a single index.html
-browser/index.html: $(HTML_FILES)
+browser/index.html: $(HTML_FILES) browser/build.js node_modules
 	cd browser; \
 	vulcanize -o index.html app.html
 
 # Serve
-start:
-	./services.sh
+start: browser/index.html
+	serve browser/. --port 8000
 
 # Continuously watch for changes to .js, .html or .css files.
 # Rebundle the appropriate file (build.js and/or index.html) when local files change
diff --git a/browser/app.html b/browser/app.html
index 4bf859c..f3cac9b 100644
--- a/browser/app.html
+++ b/browser/app.html
@@ -8,14 +8,9 @@
   <meta name="description" content="Pipe To Browser (p2b) is a utility built with veyron technology that allows piping of stdout and std from console into local or remote browser windows. Different plugins exist to format the incoming data and display them in an appropriate and interactive format.">
   <title>Pipe To Browser - because life is too short to stare at unformatted stdout text, and is hard enough already not to have a spell-checker for stdin</title>
 
-  <script src="third-party/platform/platform.js"></script>
-  <!-- TODO(aghassemi) use CJS version of Veyron and provide an ES6 shim -->
-  <script src="third-party/veyron/release/javascript/core"></script>
-
-  <script src="third-party/traceur-runtime@0.0.49.js"></script>
-  <script src="third-party/system@0.6.js"></script>
+  <script src="third-party/traceur-runtime.js"></script>
+  <script src="third-party/system.js"></script>
   <script src="config.js"></script>
-  <script src="shame.js"></script>
   <script src="build.js"></script>
 
   <link rel="import" href="views/page/component.html"/>
diff --git a/browser/bower.json b/browser/bower.json
index 0217621..177d881 100644
--- a/browser/bower.json
+++ b/browser/bower.json
@@ -2,8 +2,14 @@
   "name": "pipe-to-browser",
   "version": "0.0.1",
   "dependencies": {
-    "polymer": "Polymer/polymer#~0.3.4",
-    "core-elements": "Polymer/core-elements#~0.3.4",
-    "paper-elements": "Polymer/paper-elements#~0.3.4"
+    "polymer": "Polymer/polymer#~0.5.4",
+    "core-elements": "Polymer/core-elements#~0.5.4",
+    "paper-elements": "Polymer/paper-elements#~0.5.4"
+  },
+  "resolutions": {
+    "polymer": "^0.5",
+    "core-meta": "^0.5",
+    "core-transition": "^0.5",
+    "core-component-page": "^0.5"
   }
 }
diff --git a/browser/config.js b/browser/config.js
index 4206c8a..0bc8f5e 100644
--- a/browser/config.js
+++ b/browser/config.js
@@ -8,80 +8,434 @@
     "stream-helpers": "libs/utils/stream-helpers.js",
     "web-component-loader": "libs/utils/web-component-loader.js",
     "formatting": "libs/utils/formatting.js",
-    "npm:*": "third-party/npm/*.js",
-    "github:*": "third-party/github/*.js"
+    "app/*": "lib/*.js",
+    "github:*": "third-party/github/*.js",
+    "npm:*": "third-party/npm/*.js"
   }
 });
 
 System.config({
   "map": {
-    "npm:humanize": "npm:humanize@^0.0.9",
-    "npm:event-stream": "npm:event-stream@^3.1.5",
-    "nodelibs": "github:jspm/nodelibs@master",
-    "npm:event-stream@3.1.5": {
-      "from": "npm:from@0",
-      "map-stream": "npm:map-stream@0.1",
+    "buffer": "github:jspm/nodelibs-buffer@0.1.0",
+    "npm:event-stream": "npm:event-stream@3.2.2",
+    "npm:humanize": "npm:humanize@0.0.9",
+    "stream": "github:jspm/nodelibs-stream@0.1.0",
+    "veyronjs": "npm:veyronjs@0.0.1",
+    "github:jspm/nodelibs-assert@0.1.0": {
+      "assert": "npm:assert@1.3.0"
+    },
+    "github:jspm/nodelibs-buffer@0.1.0": {
+      "buffer": "npm:buffer@3.0.1"
+    },
+    "github:jspm/nodelibs-console@0.1.0": {
+      "console-browserify": "npm:console-browserify@1.1.0"
+    },
+    "github:jspm/nodelibs-constants@0.1.0": {
+      "constants-browserify": "npm:constants-browserify@0.0.1"
+    },
+    "github:jspm/nodelibs-crypto@0.1.0": {
+      "crypto-browserify": "npm:crypto-browserify@3.9.12"
+    },
+    "github:jspm/nodelibs-events@0.1.0": {
+      "events-browserify": "npm:events-browserify@0.0.1"
+    },
+    "github:jspm/nodelibs-http@1.7.0": {
+      "Base64": "npm:Base64@0.2.1",
+      "events": "github:jspm/nodelibs-events@0.1.0",
+      "inherits": "npm:inherits@2.0.1",
+      "stream": "github:jspm/nodelibs-stream@0.1.0",
+      "url": "github:jspm/nodelibs-url@0.1.0",
+      "util": "github:jspm/nodelibs-util@0.1.0"
+    },
+    "github:jspm/nodelibs-https@0.1.0": {
+      "https-browserify": "npm:https-browserify@0.0.0"
+    },
+    "github:jspm/nodelibs-os@0.1.0": {
+      "os-browserify": "npm:os-browserify@0.1.2"
+    },
+    "github:jspm/nodelibs-path@0.1.0": {
+      "path-browserify": "npm:path-browserify@0.0.0"
+    },
+    "github:jspm/nodelibs-process@0.1.1": {
+      "process": "npm:process@0.10.0"
+    },
+    "github:jspm/nodelibs-punycode@0.1.0": {
+      "punycode": "npm:punycode@1.3.2"
+    },
+    "github:jspm/nodelibs-querystring@0.1.0": {
+      "querystring": "npm:querystring@0.2.0"
+    },
+    "github:jspm/nodelibs-stream@0.1.0": {
+      "stream-browserify": "npm:stream-browserify@1.0.0"
+    },
+    "github:jspm/nodelibs-string_decoder@0.1.0": {
+      "string_decoder": "npm:string_decoder@0.10.31"
+    },
+    "github:jspm/nodelibs-timers@0.1.0": {
+      "timers-browserify": "npm:timers-browserify@1.3.0"
+    },
+    "github:jspm/nodelibs-tty@0.1.0": {
+      "tty-browserify": "npm:tty-browserify@0.0.0"
+    },
+    "github:jspm/nodelibs-url@0.1.0": {
+      "url": "npm:url@0.10.2"
+    },
+    "github:jspm/nodelibs-util@0.1.0": {
+      "util": "npm:util@0.10.3"
+    },
+    "github:jspm/nodelibs-vm@0.1.0": {
+      "vm-browserify": "npm:vm-browserify@0.0.4"
+    },
+    "github:jspm/nodelibs-zlib@0.1.0": {
+      "browserify-zlib": "npm:browserify-zlib@0.1.4"
+    },
+    "npm:asn1.js-rfc3280@1.0.0": {
+      "asn1.js": "npm:asn1.js@1.0.3"
+    },
+    "npm:asn1.js@1.0.3": {
+      "assert": "github:jspm/nodelibs-assert@0.1.0",
+      "bn.js": "npm:bn.js@1.3.0",
+      "buffer": "github:jspm/nodelibs-buffer@0.1.0",
+      "inherits": "npm:inherits@2.0.1",
+      "minimalistic-assert": "npm:minimalistic-assert@1.0.0",
+      "vm": "github:jspm/nodelibs-vm@0.1.0"
+    },
+    "npm:assert@1.3.0": {
+      "util": "npm:util@0.10.3"
+    },
+    "npm:bluebird@2.9.8": {
+      "process": "github:jspm/nodelibs-process@0.1.1"
+    },
+    "npm:browserify-aes@1.0.0": {
+      "buffer": "github:jspm/nodelibs-buffer@0.1.0",
+      "create-hash": "npm:create-hash@1.1.0",
+      "crypto": "github:jspm/nodelibs-crypto@0.1.0",
+      "fs": "github:jspm/nodelibs-fs@0.1.1",
+      "inherits": "npm:inherits@2.0.1",
+      "stream": "github:jspm/nodelibs-stream@0.1.0",
+      "systemjs-json": "github:systemjs/plugin-json@0.1.0"
+    },
+    "npm:browserify-rsa@1.1.1": {
+      "bn.js": "npm:bn.js@1.3.0",
+      "buffer": "github:jspm/nodelibs-buffer@0.1.0",
+      "constants": "github:jspm/nodelibs-constants@0.1.0",
+      "crypto": "github:jspm/nodelibs-crypto@0.1.0"
+    },
+    "npm:browserify-sign@2.8.0": {
+      "bn.js": "npm:bn.js@1.3.0",
+      "browserify-rsa": "npm:browserify-rsa@1.1.1",
+      "buffer": "github:jspm/nodelibs-buffer@0.1.0",
+      "crypto": "github:jspm/nodelibs-crypto@0.1.0",
+      "elliptic": "npm:elliptic@1.0.1",
+      "inherits": "npm:inherits@2.0.1",
+      "parse-asn1": "npm:parse-asn1@2.0.0",
+      "stream": "github:jspm/nodelibs-stream@0.1.0"
+    },
+    "npm:browserify-zlib@0.1.4": {
+      "assert": "github:jspm/nodelibs-assert@0.1.0",
+      "buffer": "github:jspm/nodelibs-buffer@0.1.0",
+      "pako": "npm:pako@0.2.5",
+      "process": "github:jspm/nodelibs-process@0.1.1",
+      "readable-stream": "npm:readable-stream@1.1.13",
+      "util": "github:jspm/nodelibs-util@0.1.0"
+    },
+    "npm:buffer@3.0.1": {
+      "base64-js": "npm:base64-js@0.0.8",
+      "ieee754": "npm:ieee754@1.1.4",
+      "is-array": "npm:is-array@1.0.1"
+    },
+    "npm:commander@2.1.0": {
+      "child_process": "github:jspm/nodelibs-child_process@0.1.0",
+      "events": "github:jspm/nodelibs-events@0.1.0",
+      "fs": "github:jspm/nodelibs-fs@0.1.1",
+      "path": "github:jspm/nodelibs-path@0.1.0",
+      "process": "github:jspm/nodelibs-process@0.1.1"
+    },
+    "npm:console-browserify@1.1.0": {
+      "assert": "github:jspm/nodelibs-assert@0.1.0",
+      "date-now": "npm:date-now@0.1.4",
+      "util": "github:jspm/nodelibs-util@0.1.0"
+    },
+    "npm:constants-browserify@0.0.1": {
+      "systemjs-json": "github:systemjs/plugin-json@0.1.0"
+    },
+    "npm:core-util-is@1.0.1": {
+      "buffer": "github:jspm/nodelibs-buffer@0.1.0"
+    },
+    "npm:create-ecdh@1.0.3": {
+      "bn.js": "npm:bn.js@1.3.0",
+      "buffer": "github:jspm/nodelibs-buffer@0.1.0",
+      "crypto": "github:jspm/nodelibs-crypto@0.1.0",
+      "elliptic": "npm:elliptic@1.0.1"
+    },
+    "npm:create-hash@1.1.0": {
+      "buffer": "github:jspm/nodelibs-buffer@0.1.0",
+      "crypto": "github:jspm/nodelibs-crypto@0.1.0",
+      "fs": "github:jspm/nodelibs-fs@0.1.1",
+      "inherits": "npm:inherits@2.0.1",
+      "ripemd160": "npm:ripemd160@1.0.0",
+      "sha.js": "npm:sha.js@2.3.6",
+      "stream": "github:jspm/nodelibs-stream@0.1.0"
+    },
+    "npm:create-hmac@1.1.3": {
+      "buffer": "github:jspm/nodelibs-buffer@0.1.0",
+      "create-hash": "npm:create-hash@1.1.0",
+      "crypto": "github:jspm/nodelibs-crypto@0.1.0",
+      "inherits": "npm:inherits@2.0.1",
+      "stream": "github:jspm/nodelibs-stream@0.1.0"
+    },
+    "npm:crypto-browserify@3.9.12": {
+      "browserify-aes": "npm:browserify-aes@1.0.0",
+      "browserify-sign": "npm:browserify-sign@2.8.0",
+      "create-ecdh": "npm:create-ecdh@1.0.3",
+      "create-hash": "npm:create-hash@1.1.0",
+      "create-hmac": "npm:create-hmac@1.1.3",
+      "diffie-hellman": "npm:diffie-hellman@3.0.1",
+      "inherits": "npm:inherits@2.0.1",
+      "pbkdf2-compat": "npm:pbkdf2-compat@3.0.1",
+      "public-encrypt": "npm:public-encrypt@1.1.2",
+      "randombytes": "npm:randombytes@2.0.1"
+    },
+    "npm:diffie-hellman@3.0.1": {
+      "bn.js": "npm:bn.js@1.3.0",
+      "buffer": "github:jspm/nodelibs-buffer@0.1.0",
+      "crypto": "github:jspm/nodelibs-crypto@0.1.0",
+      "miller-rabin": "npm:miller-rabin@1.1.5",
+      "process": "github:jspm/nodelibs-process@0.1.1",
+      "randombytes": "npm:randombytes@2.0.1",
+      "systemjs-json": "github:systemjs/plugin-json@0.1.0"
+    },
+    "npm:duplexer@0.1.1": {
+      "stream": "github:jspm/nodelibs-stream@0.1.0"
+    },
+    "npm:elliptic@1.0.1": {
+      "bn.js": "npm:bn.js@1.3.0",
+      "brorand": "npm:brorand@1.0.5",
+      "hash.js": "npm:hash.js@1.0.2",
+      "inherits": "npm:inherits@2.0.1",
+      "systemjs-json": "github:systemjs/plugin-json@0.1.0"
+    },
+    "npm:es6-shim@0.20.4": {
+      "process": "github:jspm/nodelibs-process@0.1.1"
+    },
+    "npm:event-stream@3.2.2": {
+      "buffer": "github:jspm/nodelibs-buffer@0.1.0",
+      "duplexer": "npm:duplexer@0.1.1",
+      "from": "npm:from@0.1.3",
+      "map-stream": "npm:map-stream@0.1.0",
       "pause-stream": "npm:pause-stream@0.0.11",
-      "duplexer": "npm:duplexer@^0.1.1",
-      "through": "npm:through@^2.3.1",
-      "split": "npm:split@0.2",
-      "stream-combiner": "npm:stream-combiner@^0.0.4"
+      "process": "github:jspm/nodelibs-process@0.1.1",
+      "split": "npm:split@0.3.3",
+      "stream": "github:jspm/nodelibs-stream@0.1.0",
+      "stream-combiner": "npm:stream-combiner@0.0.4",
+      "through": "npm:through@2.3.6",
+      "util": "github:jspm/nodelibs-util@0.1.0"
     },
-    "npm:humanize@0.0.9": {},
-    "npm:from@0.1.3": {},
-    "npm:stream-combiner@0.0.4": {
-      "duplexer": "npm:duplexer@^0.1.1"
+    "npm:events-browserify@0.0.1": {
+      "process": "github:jspm/nodelibs-process@0.1.1"
     },
-    "npm:duplexer@0.1.1": {},
-    "npm:map-stream@0.1.0": {},
+    "npm:from@0.1.3": {
+      "process": "github:jspm/nodelibs-process@0.1.1",
+      "stream": "github:jspm/nodelibs-stream@0.1.0"
+    },
+    "npm:hash.js@1.0.2": {
+      "inherits": "npm:inherits@2.0.1"
+    },
+    "npm:https-browserify@0.0.0": {
+      "http": "github:jspm/nodelibs-http@1.7.0"
+    },
+    "npm:humanize@0.0.9": {
+      "process": "github:jspm/nodelibs-process@0.1.1"
+    },
+    "npm:inherits@2.0.1": {
+      "util": "github:jspm/nodelibs-util@0.1.0"
+    },
+    "npm:map-stream@0.1.0": {
+      "process": "github:jspm/nodelibs-process@0.1.1",
+      "stream": "github:jspm/nodelibs-stream@0.1.0",
+      "util": "github:jspm/nodelibs-util@0.1.0"
+    },
+    "npm:miller-rabin@1.1.5": {
+      "bn.js": "npm:bn.js@1.3.0",
+      "brorand": "npm:brorand@1.0.5"
+    },
+    "npm:minimatch@1.0.0": {
+      "lru-cache": "npm:lru-cache@2.5.0",
+      "path": "github:jspm/nodelibs-path@0.1.0",
+      "process": "github:jspm/nodelibs-process@0.1.1",
+      "sigmund": "npm:sigmund@1.0.0"
+    },
+    "npm:nan@1.0.0": {
+      "path": "github:jspm/nodelibs-path@0.1.0"
+    },
+    "npm:options@0.0.6": {
+      "fs": "github:jspm/nodelibs-fs@0.1.1"
+    },
+    "npm:os-browserify@0.1.2": {
+      "os": "github:jspm/nodelibs-os@0.1.0"
+    },
+    "npm:pako@0.2.5": {
+      "buffer": "github:jspm/nodelibs-buffer@0.1.0",
+      "fs": "github:jspm/nodelibs-fs@0.1.1",
+      "path": "github:jspm/nodelibs-path@0.1.0",
+      "process": "github:jspm/nodelibs-process@0.1.1",
+      "util": "github:jspm/nodelibs-util@0.1.0",
+      "zlib": "github:jspm/nodelibs-zlib@0.1.0"
+    },
+    "npm:parse-asn1@2.0.0": {
+      "asn1.js": "npm:asn1.js@1.0.3",
+      "asn1.js-rfc3280": "npm:asn1.js-rfc3280@1.0.0",
+      "buffer": "github:jspm/nodelibs-buffer@0.1.0",
+      "pemstrip": "npm:pemstrip@0.0.1",
+      "systemjs-json": "github:systemjs/plugin-json@0.1.0"
+    },
+    "npm:path-browserify@0.0.0": {
+      "process": "github:jspm/nodelibs-process@0.1.1"
+    },
     "npm:pause-stream@0.0.11": {
-      "through": "npm:through@2.3"
+      "through": "npm:through@2.3.6"
     },
-    "npm:split@0.2.10": {
-      "through": "npm:through@2"
+    "npm:pbkdf2-compat@3.0.1": {
+      "buffer": "github:jspm/nodelibs-buffer@0.1.0",
+      "child_process": "github:jspm/nodelibs-child_process@0.1.0",
+      "create-hmac": "npm:create-hmac@1.1.3",
+      "crypto": "github:jspm/nodelibs-crypto@0.1.0",
+      "path": "github:jspm/nodelibs-path@0.1.0",
+      "process": "github:jspm/nodelibs-process@0.1.1",
+      "systemjs-json": "github:systemjs/plugin-json@0.1.0"
     },
-    "npm:through@2.3.4": {},
-    "github:jspm/nodelibs@0.0.2": {
-      "ieee754": "npm:ieee754@^1.1.1",
-      "base64-js": "npm:base64-js@^0.0.4",
-      "Base64": "npm:Base64@0.2",
-      "inherits": "npm:inherits@^2.0.1",
-      "json": "github:systemjs/plugin-json@master"
+    "npm:public-encrypt@1.1.2": {
+      "bn.js": "npm:bn.js@1.3.0",
+      "browserify-rsa": "npm:browserify-rsa@1.1.1",
+      "buffer": "github:jspm/nodelibs-buffer@0.1.0",
+      "crypto": "github:jspm/nodelibs-crypto@0.1.0",
+      "parse-asn1": "npm:parse-asn1@2.0.0"
     },
-    "npm:base64-js@0.0.4": {},
-    "npm:ieee754@1.1.3": {},
-    "npm:Base64@0.2.1": {},
-    "npm:inherits@2.0.1": {},
-    "github:jspm/nodelibs@master": {
-      "Base64": "npm:Base64@0.2",
-      "base64-js": "npm:base64-js@^0.0.4",
-      "ieee754": "npm:ieee754@^1.1.1",
-      "inherits": "npm:inherits@^2.0.1",
-      "json": "github:systemjs/plugin-json@master"
+    "npm:punycode@1.3.2": {
+      "process": "github:jspm/nodelibs-process@0.1.1"
+    },
+    "npm:randombytes@2.0.1": {
+      "buffer": "github:jspm/nodelibs-buffer@0.1.0",
+      "crypto": "github:jspm/nodelibs-crypto@0.1.0",
+      "process": "github:jspm/nodelibs-process@0.1.1"
+    },
+    "npm:readable-stream@1.1.13": {
+      "buffer": "github:jspm/nodelibs-buffer@0.1.0",
+      "core-util-is": "npm:core-util-is@1.0.1",
+      "events": "github:jspm/nodelibs-events@0.1.0",
+      "inherits": "npm:inherits@2.0.1",
+      "isarray": "npm:isarray@0.0.1",
+      "process": "github:jspm/nodelibs-process@0.1.1",
+      "stream": "npm:stream-browserify@1.0.0",
+      "string_decoder": "npm:string_decoder@0.10.31",
+      "util": "github:jspm/nodelibs-util@0.1.0"
+    },
+    "npm:ripemd160@1.0.0": {
+      "buffer": "github:jspm/nodelibs-buffer@0.1.0",
+      "process": "github:jspm/nodelibs-process@0.1.1"
+    },
+    "npm:sha.js@2.3.6": {
+      "buffer": "github:jspm/nodelibs-buffer@0.1.0",
+      "fs": "github:jspm/nodelibs-fs@0.1.1",
+      "inherits": "npm:inherits@2.0.1",
+      "process": "github:jspm/nodelibs-process@0.1.1"
+    },
+    "npm:sigmund@1.0.0": {
+      "http": "github:jspm/nodelibs-http@1.7.0",
+      "util": "github:jspm/nodelibs-util@0.1.0"
+    },
+    "npm:split@0.3.3": {
+      "process": "github:jspm/nodelibs-process@0.1.1",
+      "string_decoder": "github:jspm/nodelibs-string_decoder@0.1.0",
+      "through": "npm:through@2.3.6",
+      "util": "github:jspm/nodelibs-util@0.1.0"
+    },
+    "npm:stream-browserify@1.0.0": {
+      "events": "github:jspm/nodelibs-events@0.1.0",
+      "inherits": "npm:inherits@2.0.1",
+      "readable-stream": "npm:readable-stream@1.1.13"
+    },
+    "npm:stream-combiner@0.0.4": {
+      "duplexer": "npm:duplexer@0.1.1"
+    },
+    "npm:string_decoder@0.10.31": {
+      "buffer": "github:jspm/nodelibs-buffer@0.1.0"
+    },
+    "npm:through@2.3.6": {
+      "process": "github:jspm/nodelibs-process@0.1.1",
+      "stream": "github:jspm/nodelibs-stream@0.1.0"
+    },
+    "npm:timers-browserify@1.3.0": {
+      "process": "npm:process@0.10.0"
+    },
+    "npm:url@0.10.2": {
+      "assert": "github:jspm/nodelibs-assert@0.1.0",
+      "punycode": "npm:punycode@1.3.2",
+      "querystring": "github:jspm/nodelibs-querystring@0.1.0",
+      "util": "github:jspm/nodelibs-util@0.1.0"
+    },
+    "npm:util@0.10.3": {
+      "inherits": "npm:inherits@2.0.1",
+      "process": "github:jspm/nodelibs-process@0.1.1"
+    },
+    "npm:veyronjs@0.0.1": {
+      "assert": "github:jspm/nodelibs-assert@0.1.0",
+      "bluebird": "npm:bluebird@2.9.8",
+      "buffer": "github:jspm/nodelibs-buffer@0.1.0",
+      "child_process": "github:jspm/nodelibs-child_process@0.1.0",
+      "console": "github:jspm/nodelibs-console@0.1.0",
+      "constants": "github:jspm/nodelibs-constants@0.1.0",
+      "crypto": "github:jspm/nodelibs-crypto@0.1.0",
+      "dgram": "github:jspm/nodelibs-dgram@0.1.0",
+      "dns": "github:jspm/nodelibs-dns@0.1.0",
+      "es6-shim": "npm:es6-shim@0.20.4",
+      "eventemitter2": "npm:eventemitter2@0.4.14",
+      "events": "github:jspm/nodelibs-events@0.1.0",
+      "fs": "github:jspm/nodelibs-fs@0.1.1",
+      "http": "github:jspm/nodelibs-http@1.7.0",
+      "https": "github:jspm/nodelibs-https@0.1.0",
+      "is-browser": "npm:is-browser@2.0.1",
+      "lru-cache": "npm:lru-cache@2.5.0",
+      "minimatch": "npm:minimatch@1.0.0",
+      "module": "github:jspm/nodelibs-module@0.1.0",
+      "net": "github:jspm/nodelibs-net@0.1.0",
+      "os": "github:jspm/nodelibs-os@0.1.0",
+      "path": "github:jspm/nodelibs-path@0.1.0",
+      "process": "github:jspm/nodelibs-process@0.1.1",
+      "punycode": "github:jspm/nodelibs-punycode@0.1.0",
+      "querystring": "github:jspm/nodelibs-querystring@0.1.0",
+      "stream": "github:jspm/nodelibs-stream@0.1.0",
+      "string_decoder": "github:jspm/nodelibs-string_decoder@0.1.0",
+      "systemjs-json": "github:systemjs/plugin-json@0.1.0",
+      "timers": "github:jspm/nodelibs-timers@0.1.0",
+      "tls": "github:jspm/nodelibs-tls@0.1.0",
+      "tty": "github:jspm/nodelibs-tty@0.1.0",
+      "url": "github:jspm/nodelibs-url@0.1.0",
+      "util": "github:jspm/nodelibs-util@0.1.0",
+      "vm": "github:jspm/nodelibs-vm@0.1.0",
+      "ws": "npm:ws@0.4.32",
+      "xtend": "npm:xtend@4.0.0",
+      "zlib": "github:jspm/nodelibs-zlib@0.1.0"
+    },
+    "npm:vm-browserify@0.0.4": {
+      "indexof": "npm:indexof@0.0.1"
+    },
+    "npm:ws@0.4.32": {
+      "buffer": "github:jspm/nodelibs-buffer@0.1.0",
+      "commander": "npm:commander@2.1.0",
+      "crypto": "github:jspm/nodelibs-crypto@0.1.0",
+      "events": "github:jspm/nodelibs-events@0.1.0",
+      "http": "github:jspm/nodelibs-http@1.7.0",
+      "https": "github:jspm/nodelibs-https@0.1.0",
+      "nan": "npm:nan@1.0.0",
+      "options": "npm:options@0.0.6",
+      "process": "github:jspm/nodelibs-process@0.1.1",
+      "stream": "github:jspm/nodelibs-stream@0.1.0",
+      "tinycolor": "npm:tinycolor@0.0.1",
+      "tls": "github:jspm/nodelibs-tls@0.1.0",
+      "url": "github:jspm/nodelibs-url@0.1.0",
+      "util": "github:jspm/nodelibs-util@0.1.0"
     }
   }
 });
 
-System.config({
-  "versions": {
-    "npm:humanize": "0.0.9",
-    "npm:event-stream": "3.1.5",
-    "npm:from": "0.1.3",
-    "npm:map-stream": "0.1.0",
-    "npm:pause-stream": "0.0.11",
-    "npm:duplexer": "0.1.1",
-    "npm:through": "2.3.4",
-    "npm:split": "0.2.10",
-    "npm:stream-combiner": "0.0.4",
-    "github:jspm/nodelibs": [
-      "master",
-      "0.0.2"
-    ],
-    "npm:ieee754": "1.1.3",
-    "npm:base64-js": "0.0.4",
-    "npm:Base64": "0.2.1",
-    "npm:inherits": "2.0.1",
-    "github:systemjs/plugin-json": "master"
-  }
-});
-
diff --git a/browser/config/config.js b/browser/config/config.js
deleted file mode 100644
index 4c97664..0000000
--- a/browser/config/config.js
+++ /dev/null
@@ -1,14 +0,0 @@
-/*
- * App configuration
- * @fileoverview
- */
-var veyronLogLevels = Veyron.logLevels;
-
-export var config = {
-  veyron: {
-    proxy: 'http://localhost:7776',
-    logLevel: veyronLogLevels.INFO
-  },
-  namespaceRoot: '/proxy.envyor.com:8101',
-  publishNamePrefix: 'google/p2b'
-}
diff --git a/browser/libs/utils/byte-object-stream-adapter.js b/browser/libs/utils/byte-object-stream-adapter.js
index 90593e1..bb051c2 100644
--- a/browser/libs/utils/byte-object-stream-adapter.js
+++ b/browser/libs/utils/byte-object-stream-adapter.js
@@ -1,5 +1,5 @@
-import { default as Stream } from "nodelibs/stream"
-import { default as buffer } from "nodelibs/buffer"
+import { default as Stream } from "stream"
+import { default as buffer } from "buffer"
 
 var Transform = Stream.Transform;
 var Buffer = buffer.Buffer;
diff --git a/browser/libs/utils/stream-byte-counter.js b/browser/libs/utils/stream-byte-counter.js
index eef02ee..2a0b422 100644
--- a/browser/libs/utils/stream-byte-counter.js
+++ b/browser/libs/utils/stream-byte-counter.js
@@ -1,4 +1,4 @@
-import { default as Stream } from "nodelibs/stream"
+import { default as Stream } from "stream"
 
 var Transform = Stream.Transform;
 /*
diff --git a/browser/libs/utils/stream-copy.js b/browser/libs/utils/stream-copy.js
index c940213..1a99414 100644
--- a/browser/libs/utils/stream-copy.js
+++ b/browser/libs/utils/stream-copy.js
@@ -1,5 +1,5 @@
-import { default as Stream } from "nodelibs/stream"
-import { default as buffer } from "nodelibs/buffer"
+import { default as Stream } from "stream"
+import { default as buffer } from "buffer"
 
 var Transform = Stream.Transform;
 var PassThrough = Stream.PassThrough;
diff --git a/browser/package.json b/browser/package.json
index 51b1fc5..24954fa 100644
--- a/browser/package.json
+++ b/browser/package.json
@@ -2,11 +2,14 @@
   "registry": "jspm",
   "main": "app",
   "directories": {
-    "jspmPackages": "third-party"
+    "jspmPackages": "third-party",
+    "lib": "lib",
+    "packages": "third-party"
   },
   "dependencies": {
-    "npm:event-stream": "^3.1.5",
-    "npm:humanize": "^0.0.9",
-    "nodelibs": "master"
+    "buffer": "^0.1.0",
+    "npm:event-stream": "npm:event-stream@^3.1.5",
+    "npm:humanize": "npm:humanize@^0.0.9",
+    "stream": "^0.1.0"
   }
 }
diff --git a/browser/pipe-viewers/manager.js b/browser/pipe-viewers/manager.js
index 4c7dea0..b088835 100644
--- a/browser/pipe-viewers/manager.js
+++ b/browser/pipe-viewers/manager.js
@@ -16,9 +16,9 @@
  * This is kind of a hack as it simply exposes a path to these
  * plugins so that build bundler finds them and bundles them with the reset of the app
  */
-import { default as plugin } from './builtin/vlog/plugin'
-import { default as plugin } from './builtin/image/plugin'
-import { default as plugin } from './builtin/console/plugin'
+import { default as vlogPlugin } from './builtin/vlog/plugin'
+import { default as imagePlugin } from './builtin/image/plugin'
+import { default as consolePlugin } from './builtin/console/plugin'
 
 var log = new Logger('pipe-viewer/manager');
 
diff --git a/browser/services/pipe-to-browser-client.js b/browser/services/pipe-to-browser-client.js
index 0781021..f2c43c7 100644
--- a/browser/services/pipe-to-browser-client.js
+++ b/browser/services/pipe-to-browser-client.js
@@ -3,10 +3,9 @@
  * @fileoverview
  */
 import { Logger } from 'libs/logs/logger'
-import { config } from 'config/config'
+import veyron from 'veyronjs'
 
 var log = new Logger('services/p2b-client');
-var veyron = new Veyron(config.veyron);
 
 /*
  * Pipes a stream of data to the P2B service identified
@@ -16,10 +15,14 @@
  * @return {Promise} Promise indicating if piping was successful or not
  */
 export function pipe(name, stream) {
-  var client = veyron.newClient();
-  return client.bindTo(name).then((remote) => {
-    var remoteStream = remote.pipe().stream;
-    stream.pipe(remoteStream);
-    return Promise.resolve();
+  return veyron.init().then((runtime) => {
+    var client = runtime.newClient();
+    var ctx = runtime.getContext().withTimeout(5000);
+    ctx.waitUntilDone(function(){});
+    return client.bindTo(ctx, name).then((remote) => {
+      var remoteStream = remote.pipe(ctx).stream;
+      stream.pipe(remoteStream);
+      return Promise.resolve();
+    });
   });
 }
diff --git a/browser/services/pipe-to-browser-namespace.js b/browser/services/pipe-to-browser-namespace.js
index 2271b93..df1a7c0 100644
--- a/browser/services/pipe-to-browser-namespace.js
+++ b/browser/services/pipe-to-browser-namespace.js
@@ -4,11 +4,9 @@
  * @fileoverview
  */
 import { Logger } from 'libs/logs/logger'
-import { config } from 'config/config'
+import veyron from 'veyronjs'
 
 var log = new Logger('services/p2b-namespace');
-var veyron = new Veyron(config.veyron);
-var client = veyron.newClient();
 
 /*
  * Finds all the P2B services that are published by querying the namespace.
@@ -16,8 +14,12 @@
  * P2B services
  */
 export function getAll() {
-  return client.bindTo(config.namespaceRoot).then((namespace) => {
-    var globResult = namespace.glob('google/p2b/*');
+  return veyron.init().then((runtime) => {
+    var namespace = runtime.namespace();
+    var ctx = runtime.getContext().withTimeout(5000);
+    ctx.waitUntilDone(function(){});
+
+    var globResult = namespace.glob(ctx, 'google/p2b/*');
     var p2bServices = [];
     globResult.stream.on('data', (p2bServiceName) => {
       p2bServices.push(p2bServiceName.name);
@@ -25,6 +27,7 @@
 
     // wait until all the data arrives then return the collection
     return globResult.then(() => {
+      ctx.cancel();
       return p2bServices;
     });
   });
diff --git a/browser/services/pipe-to-browser-server.js b/browser/services/pipe-to-browser-server.js
index d9c2c9b..6229d37 100644
--- a/browser/services/pipe-to-browser-server.js
+++ b/browser/services/pipe-to-browser-server.js
@@ -5,10 +5,10 @@
  * @fileoverview
  */
 import { Logger } from 'libs/logs/logger'
-import { config } from 'config/config'
 import { ByteObjectStreamAdapter } from 'libs/utils/byte-object-stream-adapter'
 import { StreamByteCounter } from 'libs/utils/stream-byte-counter'
 import { StreamCopy } from 'libs/utils/stream-copy'
+import veyron from 'veyronjs'
 
 var log = new Logger('services/p2b-server');
 var server;
@@ -46,16 +46,14 @@
  */
 export function publish(name, pipeRequestHandler) {
   log.debug('publishing under name:', name);
-  var veyron = new Veyron(config.veyron);
-  server = veyron.newServer();
   /*
    * Veyron pipe to browser service implementation.
    * Implements the p2b VDL.
    */
   var p2b = {
-    pipe($suffix, $stream) {
+    pipe(ctx, $stream) {
       return new Promise(function(resolve, reject) {
-        log.debug('received pipe request for:', $suffix);
+        log.debug('received pipe request for:', ctx.suffix);
         var numBytesForThisCall = 0;
 
         var bufferStream = new ByteObjectStreamAdapter();
@@ -86,7 +84,7 @@
 
         state.numPipes++;
         try {
-          pipeRequestHandler($suffix, stream);
+          pipeRequestHandler(ctx.suffix, stream);
         } catch(e) {
           // TODO(aghassemi) envyor issue #50
           // we want to reject but because of #50 we can't
@@ -94,22 +92,31 @@
           log.debug('pipeRequestHandler error', e);
           resolve();
         }
-
       });
     }
   };
 
   state.publishing = true;
 
-  return server.serve(config.publishNamePrefix + '/' + name, p2b).then((endpoint) => {
-    log.debug('published with endpoint:', endpoint);
+  return veyron.init().then((runtime) => {
+    server = runtime.newServer();
+    var serviceName = 'google/p2b/' + name;
 
-    state.published = true;
-    state.publishing = false;
-    state.fullServiceName = config.publishNamePrefix + '/' + name;
-    state.date = new Date();
+    // TODO(nlacasee,sadovsky): Our current authorization policy never returns
+    // any errors, i.e. everyone is authorized!
+    var openAuthorizer = function(){ return null; };
+    var options = {authorizer: openAuthorizer};
 
-    return endpoint;
+    return server.serve(serviceName, p2b, options).then(() => {
+      log.debug('published!');
+
+      state.published = true;
+      state.publishing = false;
+      state.fullServiceName = serviceName;
+      state.date = new Date();
+
+      return;
+    });
   }).catch((err) => { state.reset(); throw err; });
 }
 
diff --git a/browser/shame.js b/browser/shame.js
deleted file mode 100644
index 10cb74f..0000000
--- a/browser/shame.js
+++ /dev/null
@@ -1,5 +0,0 @@
-//TODO(aghassemi) Ugly random identity hack until we have proper identity
-var id= '_4EEGgFCAP-DNBoBQwEudmV5cm9uL3J1bnRpbWVzL2dvb2dsZS9zZWN1cml0eS5jaGFpblByaXZhdGVJRAD_hUIYAQIBRAEIUHVibGljSUQAAQQBBlNlY3JldAABJHZleXJvbjIvc2VjdXJpdHkvd2lyZS5DaGFpblByaXZhdGVJRAD_hzoYAQEBRQEMQ2VydGlmaWNhdGVzAAEjdmV5cm9uMi9zZWN1cml0eS93aXJlLkNoYWluUHVibGljSUQA_4kEEgFGAP-LWBgBBAEDAQROYW1lAAFHAQlQdWJsaWNLZXkAAUgBB0NhdmVhdHMAAUkBCVNpZ25hdHVyZQABIXZleXJvbjIvc2VjdXJpdHkvd2lyZS5DZXJ0aWZpY2F0ZQD_jTYYAQIBSgEFQ3VydmUAAQQBAlhZAAEfdmV5cm9uMi9zZWN1cml0eS93aXJlLlB1YmxpY0tleQD_kyQQATIBHnZleXJvbjIvc2VjdXJpdHkvd2lyZS5LZXlDdXJ2ZQD_jwQSAUsA_5U4GAECAUwBB1NlcnZpY2UAAQQBBUJ5dGVzAAEcdmV5cm9uMi9zZWN1cml0eS93aXJlLkNhdmVhdAD_lycQAQMBIXZleXJvbjIvc2VjdXJpdHkuUHJpbmNpcGFsUGF0dGVybgD_kTEYAQIBBAEBUgABBAEBUwABH3ZleXJvbjIvc2VjdXJpdHkvd2lyZS5TaWduYXR1cmUA_4L-Ae4BAwEBAgETdmV5cm9uX3AyYl9pZGVudGl0eQECQQSX1W2szGUlXbia28KqD7tzpVIHappQOKvixbijDauOdV6YrygMAmky5vLetcPzmf2Kz4QQfjf-_XpaiH2vJ3SFAAIBIEQgGWkP4DbWtZkKobftfkqE7-hPhldI1E7WM-9NHqwEASB_4e5WDr35ffYa16HkDm2pxoICFc2HemwTXgl-n5u1iQAAAQpyYW5kb206NTQwAQJBBPDpM7apzfyfgANbP3HKIo_vCTc2Jq4KbmHE8_OGjF7hkS5Do4nh6_Q-SBB1nnqSkpslgBU1kGXUCeh0P0Jza3kAAQEBASoB_4P_gQQaAUIA_4NAGAECAUMBCUlzc3VlVGltZQABQwEKRXhwaXJ5VGltZQABHXZleXJvbi9zZWN1cml0eS9jYXZlYXQuRXhwaXJ5AP-FDxABBAEJdGltZS5UaW1lAP-CJAEBDwEAAAAOy1ic8jYxcFX-XAEPAQAAAA7LWKsCNjFwVf5cAAABASBOr9ic8ql0ZSmb3HA1Z3yEJHmt62SqXHjrDT99E8buFwEgFjrqh7PJdSs8hQxl3eKyYhGfvCcULfzX0mrWBp-k_v0AAAABIML_mzA_ofWsFLMlvFukoE6vkZBJh3b7rOIxFK0HENPcAA==';
-Veyron.prototype._getIdentityPromise = function() {
-  return Promise.resolve(id);
-};
diff --git a/browser/views/namespace-list/component.html b/browser/views/namespace-list/component.html
index 709cc04..1f4b89b 100644
--- a/browser/views/namespace-list/component.html
+++ b/browser/views/namespace-list/component.html
@@ -5,13 +5,11 @@
 <polymer-element name="p2b-namespace-list" attributes="names selectable">
   <template>
     <link rel="stylesheet" href="component.css">
-    <template if="{{_items.length > 0}}">
-      <core-list selectable?="{{selectable}}" height="40" on-core-activate="{{fireSelectEvent}}" data="{{_items}}" height="20">
-        <template>
-          <core-item class="{{ {selected: selected} | tokenList }}" label="{{name}}"></core-item>
-        </template>
-      </core-list>
-    </template>
+    <core-list selectable?="{{selectable}}" on-core-activate="{{fireSelectEvent}}" data="{{_items}}" height="20" style="height: 200px">
+      <template>
+        <core-item class="{{ {selected: selected} | tokenList }}" label="{{model.name}}"></core-item>
+      </template>
+    </core-list>
   </template>
   <script>
     Polymer('p2b-namespace-list', {
diff --git a/go/src/p2b/main.go b/go/src/p2b/main.go
index cc359ec..e9f7e20 100644
--- a/go/src/p2b/main.go
+++ b/go/src/p2b/main.go
@@ -8,6 +8,7 @@
 	"io"
 	"os"
 
+	_ "v.io/core/veyron/profiles/static"
 	"v.io/core/veyron2"
 	"v.io/core/veyron2/vlog"
 
@@ -28,7 +29,7 @@
 
 	or
 
-	cat cat.jpg | google/p2b/jane/image
+	cat cat.jpg | p2b google/p2b/jane/image
 
   where <name> (google/p2b/jane) is the object name where p2b
   service is running in the browser. <viewer> (console, image) specifies what
@@ -60,6 +61,7 @@
 }
 
 func main() {
+	flag.Parse()
 	flag.Usage = Usage
 
 	if flag.NArg() != 1 {
diff --git a/package.json b/package.json
index 7e1b621..0209ac6 100644
--- a/package.json
+++ b/package.json
@@ -2,13 +2,15 @@
   "name": "pipe-to-browser",
   "version": "0.0.1",
   "description": "P2B allows one to pipe anything from shell console to the browser. Data being piped to the browser then is displayed in a graphical and formatted way by a 'viewer' Viewers are pluggable pieces of code that know how to handle and display a stream of data.",
-  "dependencies": {
-    "veyron": "git+ssh://git@github.com:veyron/release/javascript/core.git"
-  },
   "devDependencies": {
-    "jspm": "~0.6.7",
-    "vulcanize": "~0.3.0",
+    "jspm": "0.12.0",
+    "vulcanize": "~0.7.9",
     "serve": "~1.4.0",
-    "bower": "~1.3.8"
+    "bower": "~1.3.12"
+  },
+  "jspm": {
+    "directories": {
+      "lib": "lib"
+    }
   }
 }
diff --git a/services.sh b/services.sh
deleted file mode 100755
index 094733b..0000000
--- a/services.sh
+++ /dev/null
@@ -1,23 +0,0 @@
-#!/bin/bash
-
-source "${VANADIUM_ROOT}/scripts/lib/shell.sh"
-
-export PATH="node_modules/.bin:${VANADIUM_ROOT}/release/go/bin:${PATH}"
-
-main() {
-  local -r VEYRON_PROXY_ADDR=proxy.envyor.com:8100
-  local -r VEYRON_WSPR_PORT=7776
-  local -r HTTP_PORT=8080
-  local -r NAMESPACE_ROOT=/proxy.envyor.com:8101
-
-  trap "kill -TERM 0" SIGINT SIGTERM EXIT
-
-  export VEYRON_CREDENTIALS="${TMPDIR-/tmp}/p2b_credentials"
-  export NAMESPACE_ROOT="${NAMESPACE_ROOT}"
-  wsprd --v=1 -alsologtostderr=true -vproxy="${VEYRON_PROXY_ADDR}" --port "${VEYRON_WSPR_PORT}" &
-  serve browser/. --port "${HTTP_PORT}" --compress
-
-  wait
-}
-
-main "$@"