Mercurial > hg > nodescore
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;"><section data-markdown> - ## 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). -</section> - </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><head></code> using a <code><link></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 < 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="#">◄</a> - <a class="right" href="#">►</a> - <a class="up" href="#">▲</a> - <a class="down" href="#">▼</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><script src="/socket.io/socket.io.js"> </script> + </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><audio>,<video></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="#">◄</a> + <a class="right" href="#">►</a> + <a class="up" href="#">▲</a> + <a class="down" href="#">▼</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>