diff www/p/index.html @ 43:7f0485e0d0ff

updates via ljubljana
author tzara <rc-web@kiben.net>
date Sat, 08 Sep 2012 08:25:19 +0000
parents 49c94f63b8b0
children 8fc7155aa3ac
line wrap: on
line diff
--- a/www/p/index.html	Tue Sep 04 07:25:49 2012 +0000
+++ b/www/p/index.html	Sat Sep 08 08:25:19 2012 +0000
@@ -1,12 +1,12 @@
 <!doctype html>  
 <html lang="en">
-	
+
 	<head>
 		<meta charset="utf-8">
 		
 		<title>nodescore</title>
 
-		<meta name="nodescore" content="bla">
+		<meta name="nodescore" content="nodescore">
 		<meta name="author" content="Rob Canning">
 
 		<meta name="apple-mobile-web-app-capable" content="yes" />
@@ -15,7 +15,7 @@
 		<link href='http://fonts.googleapis.com/css?family=Lato:400,700,400italic,700italic' rel='stylesheet' type='text/css'>
 		
 		<link rel="stylesheet" href="css/main.css">
-		<link rel="stylesheet" href="css/theme/default.css" id="theme">
+		<link rel="stylesheet" href="css/theme/sky.css" id="theme">
 
 		<!-- For syntax highlighting -->
 		<link rel="stylesheet" href="lib/css/zenburn.css">
@@ -32,299 +32,277 @@
 	
 	<body>
 		
-		<div class="reveal">
+	  <div class="reveal">
+	    
+	    <!-- Used to fade in a background when a specific slide state is reached -->
+	    <div class="state-background"></div>
+	    
+	    <!-- Any section element inside of this container is displayed as a slide -->
+	    <div class="slides">
+	      <section>
+		
+		<h3>REALTIME WEB TECHNOLOGIES IN THE NETWORKED PERFORMANCE ENVIRONMENT</h3>
+		<p>
+		  
+		  <i><small>- <a href="http://rob.kiben.net">http://rob.kiben.net</a> <a href="rob@kiben.net">rob@kiben.net</a> -</small></i>
+		</p>
+	      </section>
+	      
+	      <section>
+		<h2>NODESCORE</h2>
+		<p>
+		  NodeScore is a web based framework to facilitate networked ensemble performance.
+		</p>
+		<ul>
+		  <li>Scores assembled in HTML5</li>
+		  <li>Musicians displays controled remotely</li>
+		  <li>Not all-in-one solution - Modular Approach</li>
+		  <li>Runs alongside other streams: media, OSC automation etc.</li>
+		</ul>
 
-			<!-- Used to fade in a background when a specific slide state is reached -->
-			<div class="state-background"></div>
-			
-			<!-- Any section element inside of this container is displayed as a slide -->
-			<div class="slides">
-				<section>
-					<h1>ICMC 2012</h1>
-					<h3>REALTIME WEB TECHNOLOGIES IN THE NETWORKED PERFORMANCE ENVIRONMENT</h3>
-					<p>
-					  
-					  <i><small>- <a href="http://rob.kiben.net">http://rob.kiben.net</a> <a href="rob@kiben.net">rob@kiben.net</a> -</small></i>
-					</p>
-				</section>
-				
-				<section>
-					<h2>NODESCORE</h2>
-					<p>
-NodeScore is a web based framework to facilitate networked telematic ensemble performance.
-					</p>
-				
-					<aside class="notes">
-						Oh hey, these are some notes. They'll be hidden in your presentation, but you can see them if you run the speaker notes server.
-					</aside>
-				</section>
-				
-				<!-- Example of nested vertical slides -->
-				<section>
-					<section>
-						<h2>Vertical Slides</h2>
-						<p>
-							Slides can be nested inside of other slides,
-							try pressing <a href="#/2/1">down</a>.
-						</p>
-						<a href="#/2/1" class="image">
-							<img width="178" height="238" src="https://s3.amazonaws.com/hakim-static/reveal-js/arrow.png" alt="Down arrow">
-						</a>
-					</section>
-					<section>
-						<h2>Basement Level 1</h2>
-						<p>Press down or up to navigate.</p>
-					</section>
-					<section>
-						<h2>Basement Level 2</h2>
-						<p>Cornify</p>
-						<a class="test" href="http://cornify.com">
-							<img width="280" height="326" src="https://s3.amazonaws.com/hakim-static/reveal-js/cornify.gif" alt="Unicorn">
-						</a>
-					</section>
-					<section>
-						<h2>Basement Level 3</h2>
-						<p>That's it, time to go back up.</p>
-						<a href="#/2" class="image">
-							<img width="178" height="238" src="https://s3.amazonaws.com/hakim-static/reveal-js/arrow.png" alt="Up arrow" style="-webkit-transform: rotate(180deg);">
-						</a>
-					</section>
-				</section>
+		<aside class="notes">
+		  Oh hey, these are some notes. They'll be hidden in your presentation, but you can see them if you run the speaker notes server.
+		</aside>
+	      </section>
 
-				<section>
-					<h2>Holistic Overview</h2>
-					<p>
-						Press <strong>ESC</strong> to enter the slide overview!
-					</p>
-				</section>
 
-				<section>
-					<h2>Works in Mobile Safari</h2>
-					<p>
-						Try it out! You can swipe through the slides pinch your way to the overview.
-					</p>
-				</section>
+	      <section>
+		<h2>NODESCORE</h2>
+		<p>
 
-				<section>
-					<h2>Marvelous Unordered List</h2>
-					<ul>
-						<li>No order here</li>
-						<li>Or here</li>
-						<li>Or here</li>
-						<li>Or here</li>
-					</ul>
-				</section>
-				
-				<section>
-					<h2>Fantastic Ordered List</h2>
-					<ol>
-						<li>One is smaller than...</li>
-						<li>Two is smaller than...</li>
-						<li>Three!</li>
-					</ol>
-				</section>
+		</p>
 
-				<section data-markdown>
-					## Markdown support
-					
-					For those of you who like that sort of thing. Instructions and a bit more info available [here](https://github.com/hakimel/reveal.js#markdown).
 
-					<pre><code contenteditable style="margin-top: 20px;">&lt;section data-markdown&gt;
-  ## Markdown support
+		<img width="250" height="250" src="images/directed.png" alt="BreakDOM game screenshot">
+		
+		<img width="250" height="250" src="images/democracy.png" alt="BreakDOM game screenshot">
+		  
+		<aside class="notes">
+		  Oh hey, these are some notes. They'll be hidden in your presentation, but you can see them if you run the speaker notes server.
+		</aside>
+	      </section>
 
-  For those of you who like that sort of thing. 
-  Instructions and a bit more info available [here](https://github.com/hakimel/reveal.js#markdown).
-&lt;/section&gt;
-					</code></pre>
-				</section>
 
-				<section>
-					<h2>Transition Styles</h2>
-					<p>
-						You can select from different transitions, like: <br>
-						<a href="http://lab.hakim.se/reveal-js/?transition=cube">Cube</a> -
-						<a href="http://lab.hakim.se/reveal-js/?transition=page">Page</a> -
-						<a href="http://lab.hakim.se/reveal-js/?transition=concave">Concave</a> -
-						<a href="http://lab.hakim.se/reveal-js/?transition=linear">Linear</a>
-					</p>
-				</section>
+	      
+	      <section>
+		<h2>Standards Complient</h2>
 
-				<section>
-					<h2>Themes</h2>
-					<p>
-						Reveal.js comes with a few themes built in: <br>
-						<a href="http://lab.hakim.se/reveal-js/?theme=sky">Sky</a> -
-						<a href="http://lab.hakim.se/reveal-js/?theme=beige">Beige</a> -
-						<a href="http://lab.hakim.se/reveal-js/?theme=simple">Simple</a> -
-						<a href="http://lab.hakim.se/reveal-js/">Default</a>
-					</p>
-					<p>
-						<small>
-							* Theme demos are loaded after the presentation which leads to flicker. In production you should load your theme in the <code>&lt;head&gt;</code> using a <code>&lt;link&gt;</code>.
-						</small>
-					</p>
-				</section>
+		    <img width="300" src="images/tim.jpg" alt="BreakDOM game screenshot">
 
-				<section>
-					<section data-state="alert">
-						<h2>Global State</h2>
-						<p>
-							Set <code>data-state="something"</code> on a slide and <code>"something"</code>
-							will be added as a class to the document element when the slide is open. This lets you
-							apply broader style changes, like switching the background.
-						</p>
-						<a href="#/7/1" class="image">
-							<img width="178" height="238" src="https://s3.amazonaws.com/hakim-static/reveal-js/arrow.png" alt="Down arrow">
-						</a>
-					</section>
-					<section data-state="blackout">
-						<h2>"blackout"</h2>
-						<a href="#/7/2" class="image">
-							<img width="178" height="238" src="https://s3.amazonaws.com/hakim-static/reveal-js/arrow.png" alt="Down arrow">
-						</a>
-					</section>
-					<section data-state="soothe">
-						<h2>"soothe"</h2>
-						<a href="#/7/0" class="image">
-							<img width="178" height="238" src="https://s3.amazonaws.com/hakim-static/reveal-js/arrow.png" alt="Up arrow" style="-webkit-transform: rotate(180deg);">
-						</a>
-					</section>
-				</section>
+		<ul>
+		  <li>HTML5</li>
+		  <li>CSS3</li>
+		  <li>(JAVASCRIPT)</li>
+		  <li>WEBSOCKETS</li>
+		</ul>
+		<br><br>
+		<p>
+		  Open Source - No Plugins <br>(Flash, Flex, Shockwave, Java)
+		</p>
+	      </section>
+	      
+	      <section>
+		<h2>WEBSOCKETS</h2>
+	
+	  <p>
+		  Server Push Technology<br>
+		  </p>		 
+	  <a class="image" href="http://hakim.se/experiments/html5/breakdom/" target="_blank">
+		    <img width="250" height="250" src="images/websockets.png" alt="BreakDOM game screenshot">
+		  </a>
+		<ul>
+		  <li>More efficient than AJAX/Comet Programming</li>
+		  <li>Persistant bidirectional TCP socket</li>
+		  <li>REQUEST/RESPONSE handshakes elimintated</li>
+		</ul>
+	
 
-				<section data-state="customevent">
-					<h2>Custom Events</h2>
-					<p>
-						Additionally custom events can be triggered on a per slide basis by binding to the <code>data-state</code> name.
-					</p>
-					<pre><code contenteditable style="font-size: 18px; margin-top: 20px;">Reveal.addEventListener( 'customevent', function() {
-	console.log( '"customevent" has fired' );
-} );
-					</code></pre>
-				</section>
 
-				<section>
-					<h2>Clever Quotes</h2>
-					<p>
-						These guys come in two forms, inline: <q cite="http://searchservervirtualization.techtarget.com/definition/Our-Favorite-Technology-Quotations">
-						The nice thing about standards is that there are so many to choose from</q> and block:
-					</p>
-					<blockquote cite="http://searchservervirtualization.techtarget.com/definition/Our-Favorite-Technology-Quotations">
-						For years there has been a theory that millions of monkeys typing at random on millions of typewriters would 
-						reproduce the entire works of Shakespeare. The Internet has proven this theory to be untrue.
-					</blockquote>
-				</section>
-				
-				<section>
-					<h2>Pretty Code</h2>
-					<pre><code contenteditable>
-function linkify( selector ) {
-  if( supports3DTransforms ) {
-    
-    var nodes = document.querySelectorAll( selector );
+		<aside class="notes">
+		  Oh hey, these are some notes. They'll be hidden in your presentation, but you can see them if you run the speaker notes server.
+		</aside>
+	      </section>
 
-    for( var i = 0, len = nodes.length; i &lt; len; i++ ) {
-      var node = nodes[i];
 
-      if( !node.className ) ) {
-        node.className += ' roll';
-      }
-    };
-  }
-}
-					</code></pre>
-					<p>Courtesy of <a href="http://softwaremaniacs.org/soft/highlight/en/description/">highlight.js</a>.</p>
-				</section>
-				
-				<section>
-					<h2>Intergalactic Interconnections</h2>
-					<p>
-						You can link between slides internally,
-						<a href="#/2/3">like this</a>.
-					</p>
-				</section>
+	      <section>
+		<h2>HTTP://SOCKET.IO</h2>
 
-				<section>
-					<h2>Fragmented Views</h2>
-					<p>Hit the next arrow...</p>
-					<p class="fragment">... to step through ...</p>
-					<ol>
-						<li class="fragment"><code>any type</code></li>
-						<li class="fragment"><em>of view</em></li>
-						<li class="fragment"><strong>fragments</strong></li>
-					</ol>
-				</section>
-				
-				<section>
-					<h2>Spectacular image!</h2>
-					<a class="image" href="http://hakim.se/experiments/html5/breakdom/" target="_blank">
-						<img width="320" height="412" src="https://s3.amazonaws.com/hakim-static/reveal-js/breakdom.png" alt="BreakDOM game screenshot">
-					</a>
-				</section>
-				
-				<section>
-					<h2>Export to PDF</h2>
-					<p>Presentations can be <a href="https://github.com/hakimel/reveal.js#pdf-export">exported to PDF</a>, below is an example that's been uploaded to SlideShare.</p>
-					<iframe id="slideshare" src="http://www.slideshare.net/slideshow/embed_code/13872948" width="455" height="356" style="margin:0;overflow:hidden;border:1px solid #CCC;border-width:1px 1px 0;margin-bottom:5px" allowfullscreen> </iframe>
-					<script>
-						document.getElementById('slideshare').attributeName = 'allowfullscreen';
-					</script>
-				</section>
-				
-				<section>
-					<h2>Stellar Links</h2>
-					<ul>
-						<li><a href="https://github.com/hakimel/reveal.js">Source code on github</a></li>
-						<li><a href="http://hakim.se/projects/reveal-js">Read more on my site</a></li>
-						<li><a href="http://twitter.com/hakimel">Follow me on Twitter</a></li>
-					</ul>
-				</section>
-				
-				<section>
-					<h1>THE END</h1>
-					<h3>BY Hakim El Hattab / hakim.se</h3>
-				</section>
-			</div>
+		<p>Socket.IO simplifies the WebSocket API and unifies the APIs of its fallback transports.</p>
+		  <a class="image" href="http://hakim.se/experiments/html5/breakdom/" target="_blank">
+		    <img height="250" src="images/socketio.png" alt="BreakDOM game screenshot">
+		  </a>
 
-			<!-- The navigational controls UI -->
-			<aside class="controls">
-				<a class="left" href="#">&#x25C4;</a>
-				<a class="right" href="#">&#x25BA;</a>
-				<a class="up" href="#">&#x25B2;</a>
-				<a class="down" href="#">&#x25BC;</a>
-			</aside>
+		<aside class="notes">
+		<p>Racket/PHP Alternative</p>
+		</aside>
+	      </section>
 
-			<!-- Presentation progress bar -->
-			<div class="progress"><span></span></div>
-			
-		</div>
 
-		<script src="lib/js/head.min.js"></script>
-		<script src="js/reveal.min.js"></script>
 
-		<script>
-			
-			// Full list of configuration options available here:
-			// https://github.com/hakimel/reveal.js#configuration
-			Reveal.initialize({
-				controls: true,
-				progress: true,
-				history: true,
-				
-				theme: Reveal.getQueryHash().theme || 'default', // available themes are in /css/theme
-				transition: Reveal.getQueryHash().transition || 'default', // default/cube/page/concave/linear(2d)
+	      <section>
+		<h2>Serverside Javascript</h2>
+		<h3>NodeJS Server</h3>
+		<pre><code contenteditable>var sio = require('socket.io')
+, http = require('http'), fs = require('fs'), static = require('node-static');
 
-				// Optional libraries used to extend on reveal.js
-				dependencies: [
-					{ src: 'lib/js/highlight.js', async: true, callback: function() { window.hljs.initHighlightingOnLoad(); } },
-					{ src: 'lib/js/classList.js', condition: function() { return !document.body.classList; } },
-					{ src: 'lib/js/showdown.js', condition: function() { return !!document.querySelector( '[data-markdown]' ); } },
-					{ src: 'lib/js/data-markdown.js', condition: function() { return !!document.querySelector( '[data-markdown]' ); } },
-					{ src: 'socket.io/socket.io.js', async: true, condition: function() { return window.location.host === 'localhost:1947'; } },
-					{ src: 'plugin/speakernotes/client.js', async: true, condition: function() { return window.location.host === 'localhost:1947'; } },
-				]
-			});
-			
-		</script>
+var clientFiles = new static.Server('./www');
+var httpServer = http.createServer(
+    function(request, response) {
+	request.addListener('end', function () {
+	    clientFiles.serve(request, response);
+	    process.setMaxListeners(0);
+	});    
+    }); httpServer.listen(8889);
 
+var io = sio.listen(httpServer);
+io.set('log level', 1); // reduce logging                                                                
+io.sockets.on('connection', function (socket) {</code></pre>
+
+	      </section>
+
+<section>
+		<h2>Client Plumbing</h2>
+
+		// load the sockets lib
+		<pre><code contenteditable>&lt;script src="/socket.io/socket.io.js"&gt &lt;/script&gt
+		</code></pre>
+// connect to socket
+<pre><code contenteditable>
+var socket = io.connect();
+</code></pre> 
+
+//send something down the pipe
+<pre><code contenteditable>
+function startChr() { socket.emit("startChr") }                                                          </code></pre> 
+     </section>
+
+	      <section>
+		<h2>CLIENT->SERVER->CLIENT</h2>
+Chronometer on server pushes -> client
+	<pre><code contenteditable>// instruction from "director" client executed on server
+socket.on('startChr', function () { startChr();}); 
+function startChr() { if (chronstate !== 1) { 
+   chronstate = 1; chronometer();} }
+	    ---snip--- 
+	    setTimeout(function(){chronometer()}, 100);
+	    socket.broadcast.emit('chronFromServer', chron)
+	    socket.emit('chronFromServer', chron) 
+	    ---snip---
+// update chron value on the clients in line with server
+socket.on("chronFromServer", function(chron) {
+    $("div#client_chronometer").text(chron);
+}); </code></pre>
+
+	      </section>
+
+	      <section>
+		<h2>NODESCORE: INFO PANEL</h2>
+<a class="image" href="http://hakim.se/experiments/html5/breakdom/" target="_blank">
+		    <img width="800" src="images/nodescore-infopanel.png" alt="screenshot">
+		  </a>
+
+		<p>
+		</p>
+	      </section>
+
+	      <section>
+		<h2>NODESCORE: CHAT PANEL</h2>
+<a class="image" href="http://hakim.se/experiments/html5/breakdom/" target="_blank">
+		    <img width="800" src="images/nodescore-chat.png" alt="screenshot">
+		  </a>
+
+		<p>
+		</p>
+	      </section>
+
+	      <section>
+		<h2>NODESCORE: NEXUS7 CSS</h2>
+<a class="image" href="http://hakim.se/experiments/html5/breakdom/" target="_blank">
+		    <img width="800" src="images/nodescore-nexus.png" alt="screenshot">
+		  </a>
+
+		<p>
+		</p>
+	      </section>
+
+
+	      <section>
+		<h2>Future Work</h2>
+		<p>the TODO list...</p>
+		<ol>
+		  <li class="fragment"><stron>trials room->field->world</strong></li>
+		  <li class="fragment"><em>Animated SVG, WebGL, <code>&lt;audio&gt;,&lt;video&gt;</em></code></li>
+		  
+		  <li class="fragment">
+		    <code>stop coding start composing</code><br>
+		  </li>
+
+		</ol>
+	      </section>
+	      
+
+
+		</ul>
+	      </section>
+	      
+	      <section>
+		<h2>links</h2>
+		<a href="http://nodescore.kiben.net/p/">This Presentation: http://nodescore.kiben.net/p/</a><br><br>
+
+		<a href="http://nodescore.kiben.net">http://nodescore.kiben.net</a><br><br>
+
+                <a href="http://nodescore.kiben.net/p/canning_netscores_shortpaper-2012.pdf">ICMC2012 Paper</a><br><br>
+		<a href="http://gitorious.org/nodescore">Source Code on Gitorious</a><br><br>
+          
+		<a href="mailto:rc-web@kiben.net">rc-web@kiben.net</a><br><br>
+		<a href="http://uk.linkedin.com/pub/rob-canning/35/9b5/481">
+		  <img src="http://www.linkedin.com/img/webpromo/btn_liprofile_blue_80x15.png" width="80" height="15" border="0" alt="View Rob Canning's profile on LinkedIn">  
+		</a><br><br>
+
+		
+	      </section>
+	    </div>
+	    
+	    <!-- The navigational controls UI -->
+	    <aside class="controls">
+	      <a class="left" href="#">&#x25C4;</a>
+	      <a class="right" href="#">&#x25BA;</a>
+	      <a class="up" href="#">&#x25B2;</a>
+	      <a class="down" href="#">&#x25BC;</a>
+	    </aside>
+	    
+	    <!-- Presentation progress bar -->
+	    <div class="progress"><span></span></div>
+	    
+	  </div>
+	  
+	  <script src="lib/js/head.min.js"></script>
+	  <script src="js/reveal.min.js"></script>
+	  
+	  <script>
+	    
+	    // Full list of configuration options available here:
+	    // https://github.com/hakimel/reveal.js#configuration
+	    Reveal.initialize({
+	    controls: true,
+	    progress: true,
+	    history: true,
+	    
+	    theme: Reveal.getQueryHash().theme || 'default', // available themes are in /css/theme
+	    transition: Reveal.getQueryHash().transition || 'default', // default/cube/page/concave/linear(2d)
+	    
+	    // Optional libraries used to extend on reveal.js
+	    dependencies: [
+	    { src: 'lib/js/highlight.js', async: true, callback: function() { window.hljs.initHighlightingOnLoad(); } },
+	    { src: 'lib/js/classList.js', condition: function() { return !document.body.classList; } },
+	    { src: 'lib/js/showdown.js', condition: function() { return !!document.querySelector( '[data-markdown]' ); } },
+	    { src: 'lib/js/data-markdown.js', condition: function() { return !!document.querySelector( '[data-markdown]' ); } },
+	    { src: 'socket.io/socket.io.js', async: true, condition: function() { return window.location.host === 'localhost:1947'; } },
+	    { src: 'plugin/speakernotes/client.js', async: true, condition: function() { return window.location.host === 'localhost:1947'; } },
+	    ]
+	    });
+	    
+	  </script>
+	  
 	</body>
 </html>