{"id":2143,"date":"2014-11-02T12:42:57","date_gmt":"2014-11-02T11:42:57","guid":{"rendered":"http:\/\/www.blue-bears.com\/blog\/?p=2143"},"modified":"2014-11-02T22:00:35","modified_gmt":"2014-11-02T21:00:35","slug":"unity-et-node-js","status":"publish","type":"post","link":"http:\/\/www.blue-bears.com\/blog\/?p=2143","title":{"rendered":"Unity et Node.js"},"content":{"rendered":"<ul>\n<li><a title=\"http:\/\/nodejs.org\/\" href=\"http:\/\/nodejs.org\/\" target=\"_blank\">Node.js<\/a> est un serveur cod\u00e9 en Javascript qui permet d&rsquo;\u00e9tablir un flux de communication avec un browser, en temps r\u00e9el. Cela permet par exemple de r\u00e9cup\u00e9rer en temps r\u00e9el les donn\u00e9es d&rsquo;orientation des acc\u00e9l\u00e9rom\u00e8tres d&rsquo;un t\u00e9l\u00e9phone mobile quelque soit son mod\u00e8le. L&rsquo;utilisateur charge une page web et le streaming d\u00e9marre.<\/li>\n<\/ul>\n<p><!--more--><\/p>\n<ul>\n<li><strong><span style=\"color: #ff0000;\">Stop &#8230;<\/span> <\/strong>je suis tomb\u00e9 depuis la dessus :<\/li>\n<li><a title=\"http:\/\/www.youtube.com\/watch?feature=player_embedded&amp;v=sjwy3oGPu6Y\" href=\"http:\/\/www.youtube.com\/watch?feature=player_embedded&amp;v=sjwy3oGPu6Y\" target=\"_blank\">http:\/\/www.youtube.com\/watch?feature=player_embedded&amp;v=sjwy3oGPu6Y<\/a><\/li>\n<li><strong><span style=\"color: #ff0000;\">On repart sur Node.js;<\/span><\/strong>\n<ul>\n<li>l&rsquo;autre solution semble un peu lourde \u00e0 mettre en place : 3 appli en cascades !! Dont une en d\u00e9mo =&gt; stop 20 secondes toutes les 10 minutes.<\/li>\n<\/ul>\n<\/li>\n<li>Au passage Doc interface INPUT de Unity\u00a0 :\n<ul>\n<li><a title=\"http:\/\/docs.unity3d.com\/ScriptReference\/Input.html\" href=\"http:\/\/docs.unity3d.com\/ScriptReference\/Input.html\" target=\"_blank\">http:\/\/docs.unity3d.com\/ScriptReference\/Input.html<\/a><\/li>\n<li>\u00c7a peu servir.<\/li>\n<\/ul>\n<\/li>\n<li><a title=\"http:\/\/www.albertosarullo.com\/blog\/javascript-accelerometer-demo-source\" href=\"http:\/\/www.albertosarullo.com\/blog\/javascript-accelerometer-demo-source\" target=\"_blank\">http:\/\/www.albertosarullo.com\/blog\/javascript-accelerometer-demo-source<\/a>\n<ul>\n<li>Un code de capture en Javascript des donn\u00e9es du Gyro =&gt; Safari (Apple\/Iphone\/Ipad) only. A ouvrir dans <a title=\"http:\/\/www.albertosarullo.com\/demos\/accelerometer\/\" href=\"http:\/\/www.albertosarullo.com\/demos\/accelerometer\/\" target=\"_blank\">le browser Safari d&rsquo;un mobile<\/a>.<\/li>\n<\/ul>\n<ul>\n<li>Reference des fonctions Safari\u00a0 : <a title=\"https:\/\/developer.apple.com\/library\/safari\/documentation\/SafariDOMAdditions\/Reference\/DeviceMotionEventClassRef\/DeviceMotionEvent\/DeviceMotionEvent.html\" href=\"https:\/\/developer.apple.com\/library\/safari\/documentation\/SafariDOMAdditions\/Reference\/DeviceMotionEventClassRef\/DeviceMotionEvent\/DeviceMotionEvent.html\" target=\"_blank\">DeviceMotionEvent<\/a> &amp;<a title=\"https:\/\/developer.apple.com\/library\/safari\/documentation\/SafariDOMAdditions\/Reference\/DeviceOrientationEventClassRef\/DeviceOrientationEvent\/DeviceOrientationEvent.html\" href=\"https:\/\/developer.apple.com\/library\/safari\/documentation\/SafariDOMAdditions\/Reference\/DeviceOrientationEventClassRef\/DeviceOrientationEvent\/DeviceOrientationEvent.html\" target=\"_blank\"> DeviceOrientationEvent<\/a><\/li>\n<li>[pastacode lang=\u00a0\u00bbmarkup\u00a0\u00bb message=\u00a0\u00bbIphone Sensor Accelero\u00a0\u00bb highlight=\u00a0\u00bb\u00a0\u00bb provider=\u00a0\u00bbmanual\u00a0\u00bb]\n<pre><code>&lt;!DOCTYPE html&gt;\r\n&lt;html xmlns=&#34;http:\/\/www.w3.org\/1999\/xhtml&#34;&gt;\r\n&lt;head&gt;\r\n&lt;title&gt;Accelerometer Javascript Test&lt;\/title&gt;\r\n&lt;meta name=&#34;viewport&#34; content=&#34;width=device-width,user-scalable=yes&#34; \/&gt;\r\n&lt;style&gt;\r\nbody {\r\n\tfont-family: helvetica, arial, sans serif;\r\n}\r\n#sphere {\r\n\tposition: absolute;\t\r\n\twidth: 50px;\r\n\theight: 50px;\r\n\tborder-radius: 50px;\r\n\t-webkit-radius: 50px;\r\n\tbackground-color: blue;\r\n}\r\n&lt;\/style&gt;\r\n&lt;\/head&gt;\r\n\r\n&lt;body&gt;\r\n&lt;div id=&#34;content&#34;&gt;\r\n    &lt;h1&gt;Accelerometer Javascript Test&lt;\/h1&gt;\r\n    &lt;div id=&#34;sphere&#34;&gt;&lt;\/div&gt;\r\n&lt;ul&gt;\r\n\t&lt;li&gt;acceleration x: &lt;span id=&#34;accelerationX&#34;&gt;&lt;\/span&gt;g&lt;\/li&gt;\r\n\t&lt;li&gt;acceleration y: &lt;span id=&#34;accelerationY&#34;&gt;&lt;\/span&gt;g&lt;\/li&gt;\r\n\t&lt;li&gt;acceleration z: &lt;span id=&#34;accelerationZ&#34;&gt;&lt;\/span&gt;g&lt;\/li&gt;\r\n\t&lt;li&gt;rotation alpha: &lt;span id=&#34;rotationAlpha&#34;&gt;&lt;\/span&gt;degree&lt;\/li&gt;\r\n\t&lt;li&gt;rotation beta: &lt;span id=&#34;rotationBeta&#34;&gt;&lt;\/span&gt;degree&lt;\/li&gt;\r\n\t&lt;li&gt;rotation gamma: &lt;span id=&#34;rotationGamma&#34;&gt;&lt;\/span&gt;degree&lt;\/li&gt;\r\n&lt;\/ul&gt;\r\n\r\ntest: &lt;span id=&#34;test&#34;&gt;&lt;\/span&gt;\r\n&lt;\/div&gt;\r\n&lt;script type=&#34;text\/javascript&#34;&gt;\r\n\r\nvar x = 0, y = 0,\r\n    vx = 0, vy = 0,\r\n\tax = 0, ay = 0;\r\n\t\r\nvar sphere = document.getElementById(&#34;sphere&#34;);\r\n\r\nif (window.DeviceMotionEvent != undefined) {\r\n\twindow.ondevicemotion = function(e) {\r\n\t\tax = event.accelerationIncludingGravity.x * 5;\r\n\t\tay = event.accelerationIncludingGravity.y * 5;\r\n\t\tdocument.getElementById(&#34;accelerationX&#34;).innerHTML = e.accelerationIncludingGravity.x;\r\n\t\tdocument.getElementById(&#34;accelerationY&#34;).innerHTML = e.accelerationIncludingGravity.y;\r\n\t\tdocument.getElementById(&#34;accelerationZ&#34;).innerHTML = e.accelerationIncludingGravity.z;\r\n\r\n\t\tif ( e.rotationRate ) {\r\n\t\t\tdocument.getElementById(&#34;rotationAlpha&#34;).innerHTML = e.rotationRate.alpha;\r\n\t\t\tdocument.getElementById(&#34;rotationBeta&#34;).innerHTML = e.rotationRate.beta;\r\n\t\t\tdocument.getElementById(&#34;rotationGamma&#34;).innerHTML = e.rotationRate.gamma;\r\n\t\t}\t\t\r\n\t}\r\n\r\n\tsetInterval( function() {\r\n\t\tvar landscapeOrientation = window.innerWidth\/window.innerHeight &gt; 1;\r\n\t\tif ( landscapeOrientation) {\r\n\t\t\tvx = vx + ay;\r\n\t\t\tvy = vy + ax;\r\n\t\t} else {\r\n\t\t\tvy = vy - ay;\r\n\t\t\tvx = vx + ax;\r\n\t\t}\r\n\t\tvx = vx * 0.98;\r\n\t\tvy = vy * 0.98;\r\n\t\ty = parseInt(y + vy \/ 50);\r\n\t\tx = parseInt(x + vx \/ 50);\r\n\t\t\r\n\t\tboundingBoxCheck();\r\n\t\t\r\n\t\tsphere.style.top = y + &#34;px&#34;;\r\n\t\tsphere.style.left = x + &#34;px&#34;;\r\n\t\t\r\n\t}, 25);\r\n} \r\n\r\n\r\nfunction boundingBoxCheck(){\r\n\tif (x&lt;0) { x = 0; vx = -vx; }\r\n\tif (y&lt;0) { y = 0; vy = -vy; }\r\n\tif (x&gt;document.documentElement.clientWidth-20) { x = document.documentElement.clientWidth-20; vx = -vx; }\r\n\tif (y&gt;document.documentElement.clientHeight-20) { y = document.documentElement.clientHeight-20; vy = -vy; }\r\n\t\r\n}\r\n\r\n&lt;\/script&gt;\r\n\r\n&lt;\/body&gt;\r\n&lt;\/html&gt;<\/code><\/pre>\n<p>[\/pastacode]<\/li>\n<\/ul>\n<\/li>\n<li><a title=\"http:\/\/www.peterfriese.de\/how-to-use-the-gyroscope-of-your-iphone-in-a-mobile-web-app\/\" href=\"http:\/\/www.peterfriese.de\/how-to-use-the-gyroscope-of-your-iphone-in-a-mobile-web-app\/\" target=\"_blank\">\u00a0http:\/\/www.peterfriese.de\/how-to-use-the-gyroscope-of-your-iphone-in-a-mobile-web-app\/<\/a><\/li>\n<li>Ici <a title=\"http:\/\/demos.peterfriese.de\/gyro\/gyro.html\" href=\"http:\/\/demos.peterfriese.de\/gyro\/gyro.html\" target=\"_blank\">du code Html\/Javascript (cf infra)<\/a> pour r\u00e9cup\u00e9rer les Acc\u00e9l\u00e9rom\u00e8tres et les Gyro.<\/li>\n<li>[pastacode lang=\u00a0\u00bbmarkup\u00a0\u00bb message=\u00a0\u00bbIphone Sensor Accelero + Gyro\u00a0\u00bb highlight=\u00a0\u00bb\u00a0\u00bb provider=\u00a0\u00bbmanual\u00a0\u00bb]\n<pre><code>&lt;!DOCTYPE html&gt; \r\n&lt;html xmlns=&#34;http:\/\/www.w3.org\/1999\/xhtml&#34;&gt; \r\n\t&lt;head&gt; \r\n\t\t&lt;meta http-equiv=&#34;Content-Type&#34; content=&#34;text\/html; charset=UTF-8&#34; \/&gt; \r\n\t\t&lt;link rel=&#34;apple-touch-icon&#34; href=&#34;apple-touch-icon.png&#34; \/&gt;\r\n\t\t&lt;title&gt;Peter Friese&#039;s Gyro Demo&lt;\/title&gt; \r\n\t\t&lt;meta name=&#34;apple-touch-fullscreen&#34; content=&#34;yes&#34; \/&gt;\r\n\t\t&lt;meta name=&#34;apple-mobile-web-app-capable&#34; content=&#34;yes&#34; \/&gt;\r\n\t\t&lt;meta name=&#34;viewport&#34; content=&#34;width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no&#34; \/&gt;\r\n\t\t&lt;style&gt; \r\n\t\t#no {\r\n\t\t\tdisplay: none;\t\r\n\t\t}\r\n\t\t\r\n\t\t@media screen {\r\n\t\t\thtml, body, div, span {\r\n\t\t\t\tmargin: 0;\r\n\t\t\t  padding: 0;\r\n\t\t\t  border: 0;\r\n\t\t\t  outline: 0;\r\n\t\t\t  font-size: 100%;\r\n\t\t\t  vertical-align: baseline;\r\n\t\t\t}\t\t\t\r\n\t\t\tbody {\r\n\t\t\t\theight: auto;\r\n\t\t  \t-webkit-text-size-adjust:none;\r\n\t\t  \tfont-family:Helvetica, Arial, Verdana, sans-serif;\r\n\t\t  \tpadding:0px;\r\n\t\t\t\toverflow-x: hidden;\t\t\r\n\t\t\t}\t\t\r\n\t\t\t\r\n\t\t\t.outer {\r\n\t\t\t\tbackground: rgba(123, 256, 245, 0.9);\r\n\t\t\t\tpadding: 0px;\r\n\t\t\t\tmin-height: 48px;\r\n\t\t\t\t\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\t.box {\r\n\t\t\t\tposition: relative;\r\n\t\t\t\tfloat: left;\r\n\t\t\t\twidth: 45%;\r\n\t\t\t\tpadding: 7px;\r\n\t\t\t\tborder: 1px solid rgba(255, 255, 255, 0.6);\r\n\t\t\t\tbackground: rgba(178,215,255,0.75);\r\n\t\t\t\tmin-height: 160px;\r\n\t\t\t}\t\r\n\t\t\t\r\n\t\t\t.box2 {\r\n\t\t\t\tposition: relative;\r\n\t\t\t\tfloat: left;\r\n\t\t\t\twidth: 45%;\r\n\t\t\t\tpadding: 7px;\r\n\t\t\t\tborder: 1px solid rgba(255, 255, 255, 0.6);\r\n\t\t\t\tbackground: rgba(178,215,255,0.75);\r\n\t\t\t}\t\r\n\t\t\t\r\n\t\t\t.box span {\r\n\t\t\t\tdisplay: block;\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\tspan.head {\r\n\t\t\t\tfont-weight: bold;\t\t\t\t\r\n\t\t\t}\r\n\t\t\r\n\t\t}\r\n\t\t&lt;\/style&gt; \r\n\t&lt;\/head&gt; \r\n\r\n\t&lt;body&gt;\r\n\t\t&lt;div id=&#34;yes&#34;&gt; \r\n\t\t\t\t&lt;div class=&#34;box&#34; id=&#34;accel&#34;&gt;\r\n\t\t\t\t\t&lt;span class=&#34;head&#34;&gt;Accelerometer&lt;\/span&gt;\r\n\t\t\t\t\t&lt;span id=&#34;xlabel&#34;&gt;&lt;\/span&gt;\r\n\t\t\t\t\t&lt;span id=&#34;ylabel&#34;&gt;&lt;\/span&gt;\r\n\t\t\t\t\t&lt;span id=&#34;zlabel&#34;&gt;&lt;\/span&gt;\r\n\t\t\t\t\t&lt;span id=&#34;ilabel&#34;&gt;&lt;\/span&gt;\t\t\t\t\t\r\n\t\t\t\t\t&lt;span id=&#34;arAlphaLabel&#34;&gt;&lt;\/span&gt;\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t&lt;span id=&#34;arBetaLabel&#34;&gt;&lt;\/span&gt;\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t&lt;span id=&#34;arGammaLabel&#34;&gt;&lt;\/span&gt;\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t&lt;\/div&gt;\t\t\r\n\t\t\t\r\n\t\t\t\t&lt;div class=&#34;box&#34; id=&#34;gyro&#34;&gt;\r\n\t\t\t\t\t&lt;span class=&#34;head&#34;&gt;Gyroscope&lt;\/span&gt;\r\n\t\t\t\t\t&lt;span id=&#34;alphalabel&#34;&gt;&lt;\/span&gt;\t\t\t\r\n\t\t\t\t\t&lt;span id=&#34;betalabel&#34;&gt;&lt;\/span&gt;\r\n\t\t\t\t\t&lt;span id=&#34;gammalabel&#34;&gt;&lt;\/span&gt;\r\n\t\t\t\t&lt;\/div&gt;\r\n\t\t\t\t\r\n\t\t\t\t&lt;div class=&#34;box2&#34; id=&#34;accelcolor&#34;&gt;\r\n\t\t\t\t\t&lt;span class=&#34;head&#34;&gt;Color&lt;\/span&gt;\r\n\t\t\t\t&lt;\/div&gt;\r\n\t\t\t\t&lt;div class=&#34;box2&#34; id=&#34;gyrocolor&#34;&gt;\r\n\t\t\t\t\t&lt;span class=&#34;head&#34;&gt;Color&lt;\/span&gt;\r\n\t\t\t\t&lt;\/div&gt;\r\n\t\t\t\t\r\n\t\t&lt;\/div&gt;\r\n\t\t&lt;div id=&#34;no&#34;&gt;\r\n\t\t\tYour browser does not support Device Orientation and Motion API. Try this sample with iPhone, iPod or iPad with iOS 4.2+.    \r\n\t\t&lt;\/div&gt;\r\n\t\t\r\n\t\t&lt;script&gt; \r\n\t\t\t\/\/ Position Variables\r\n\t\t\tvar x = 0;\r\n\t\t\tvar y = 0;\r\n\t\t\tvar z = 0;\r\n\r\n\t\t\t\/\/ Speed - Velocity\r\n\t\t\tvar vx = 0;\r\n\t\t\tvar vy = 0;\r\n\t\t\tvar vz = 0;\r\n\r\n\t\t\t\/\/ Acceleration\r\n\t\t\tvar ax = 0;\r\n\t\t\tvar ay = 0;\r\n\t\t\tvar az = 0;\r\n\t\t\tvar ai = 0;\r\n\t\t\tvar arAlpha = 0;\r\n\t\t\tvar arBeta = 0;\r\n\t\t\tvar arGamma = 0;\r\n\r\n\t\t\tvar delay = 100;\r\n\t\t\tvar vMultiplier = 0.01;\t\t\tvar alpha = 0;\r\n\t\t\r\n\t\t\tvar alpha = 0;\r\n\t\t\tvar beta = 0;\r\n\t\t\tvar gamma = 0;\r\n\t\t\t\r\n\t\t\t\r\n\t\t\tif (window.DeviceMotionEvent==undefined) {\r\n\t\t\t\tdocument.getElementById(&#34;no&#34;).style.display=&#34;block&#34;;\r\n\t\t\t\tdocument.getElementById(&#34;yes&#34;).style.display=&#34;none&#34;;\r\n\t\t\t} \r\n\t\t\telse {\r\n\t\t\t\twindow.ondevicemotion = function(event) {\r\n\t\t\t\t\tax = Math.round(Math.abs(event.accelerationIncludingGravity.x * 1));\r\n\t\t\t\t\tay = Math.round(Math.abs(event.accelerationIncludingGravity.y * 1));\r\n\t\t\t\t\taz = Math.round(Math.abs(event.accelerationIncludingGravity.z * 1));\t\t\r\n\t\t\t\t\tai = Math.round(event.interval * 100) \/ 100;\r\n\t\t\t\t\trR = event.rotationRate;\r\n\t\t\t\t\tif (rR != null) {\r\n\t\t\t\t\t\tarAlpha = Math.round(rR.alpha);\r\n\t\t\t\t\t\tarBeta = Math.round(rR.beta);\r\n\t\t\t\t\t\tarGamma = Math.round(rR.gamma);\r\n\t\t\t\t\t}\r\n\r\n\/*\t\t\t\t\t\r\n\t\t\t\t\tax = Math.abs(event.acceleration.x * 1000);\r\n\t\t\t\t\tay = Math.abs(event.acceleration.y * 1000);\r\n\t\t\t\t\taz = Math.abs(event.acceleration.z * 1000);\t\t\r\n\t*\/\t\t\t\t\r\n\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\twindow.ondeviceorientation = function(event) {\r\n\t\t\t\t\talpha = Math.round(event.alpha);\r\n\t\t\t\t\tbeta = Math.round(event.beta);\r\n\t\t\t\t\tgamma = Math.round(event.gamma);\r\n\t\t\t\t}\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\tfunction d2h(d) {return d.toString(16);}\r\n\t\t\t\tfunction h2d(h) {return parseInt(h,16);}\r\n\t\t\t\t\r\n\t\t\t\tfunction makecolor(a, b, c) {\r\n\t\t\t\t\tred = Math.abs(a) % 255;\r\n\t\t\t\t\tgreen = Math.abs(b) % 255;\r\n\t\t\t\t\tblue = Math.abs(c) % 255;\r\n\t\t\t\t\treturn &#34;#&#34; + d2h(red) + d2h(green) + d2h(blue);\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t\tfunction makeacceleratedcolor(a, b, c) {\r\n\t\t\t\t\tred = Math.round(Math.abs(a + az) % 255);\r\n\t\t\t\t\tgreen = Math.round(Math.abs(b + ay) % 255);\r\n\t\t\t\t\tblue = Math.round(Math.abs(c + az) % 255);\r\n\t\t\t\t\treturn &#34;#&#34; + d2h(red) + d2h(green) + d2h(blue);\r\n\t\t\t\t}\r\n \r\n\t\t\t\tsetInterval(function() {\r\n\t\t\t\t\tdocument.getElementById(&#34;xlabel&#34;).innerHTML = &#34;X: &#34; + ax;\r\n\t\t\t\t\tdocument.getElementById(&#34;ylabel&#34;).innerHTML = &#34;Y: &#34; + ay;\r\n\t\t\t\t\tdocument.getElementById(&#34;zlabel&#34;).innerHTML = &#34;Z: &#34; + az;\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\tdocument.getElementById(&#34;ilabel&#34;).innerHTML = &#34;I: &#34; + ai;\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\tdocument.getElementById(&#34;arAlphaLabel&#34;).innerHTML = &#34;arA: &#34; + arAlpha;\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\tdocument.getElementById(&#34;arBetaLabel&#34;).innerHTML = &#34;arB: &#34; + arBeta;\r\n\t\t\t\t\tdocument.getElementById(&#34;arGammaLabel&#34;).innerHTML = &#34;arG: &#34; + arGamma;\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\tdocument.getElementById(&#34;alphalabel&#34;).innerHTML = &#34;Alpha: &#34; + alpha;\r\n\t\t\t\t\tdocument.getElementById(&#34;betalabel&#34;).innerHTML = &#34;Beta: &#34; + beta;\r\n\t\t\t\t\tdocument.getElementById(&#34;gammalabel&#34;).innerHTML = &#34;Gamma: &#34; + gamma;\r\n\r\n\t\t\t\t\tdocument.getElementById(&#34;accelcolor&#34;).innerHTML = &#34;Color: &#34; + makecolor(ax, ay, az);\r\n\t\t\t\t\tdocument.getElementById(&#34;accelcolor&#34;).style.background = makecolor(ax, ay, az);\r\n\t\t\t\t\tdocument.getElementById(&#34;accelcolor&#34;).style.color = &#34;#FFFFFF&#34;;\r\n\t\t\t\t\tdocument.getElementById(&#34;accelcolor&#34;).style.fontWeight = &#34;bold&#34;;\r\n\r\n\t\t\t\t\tdocument.getElementById(&#34;gyrocolor&#34;).innerHTML = &#34;Color: &#34; + makecolor(alpha, beta, gamma);\r\n\t\t\t\t\tdocument.getElementById(&#34;gyrocolor&#34;).style.background = makecolor(alpha, beta, gamma);\r\n\t\t\t\t\tdocument.getElementById(&#34;gyrocolor&#34;).style.color = &#34;#FFFFFF&#34;;\r\n\t\t\t\t\tdocument.getElementById(&#34;gyrocolor&#34;).style.fontWeight = &#34;bold&#34;;\r\n\r\n\t\t\t\t\tdocument.bgColor = makecolor(arAlpha, arBeta, arGamma);\r\n\r\n\t\t\t\t}, delay);\r\n\t\t\t} \r\n\t\t\t&lt;\/script&gt; \r\n\t\t&lt;\/body&gt; \r\n&lt;\/html&gt; \r\n<\/code><\/pre>\n<p>[\/pastacode]<\/p>\n<p>INSTALLATION de NODE.JS sur le serveur Blue-Bears.<\/p>\n<ul>\n<li><a title=\"https:\/\/gist.github.com\/isaacs\/579814\" href=\"https:\/\/gist.github.com\/isaacs\/579814\" target=\"_blank\">https:\/\/gist.github.com\/isaacs\/579814<\/a><\/li>\n<li>La premi\u00e8re proc\u00e9dure a fonctionn\u00e9.<\/li>\n<li>[pastacode lang=\u00a0\u00bbmarkup\u00a0\u00bb message=\u00a0\u00bbNode.js en 30 secondes\u00a0\u00bb highlight=\u00a0\u00bb\u00a0\u00bb provider=\u00a0\u00bbmanual\u00a0\u00bb]\n<pre><code>echo &#039;export PATH=$HOME\/local\/bin:$PATH&#039; &gt;&gt; ~\/.bashrc\r\n. ~\/.bashrc\r\nmkdir ~\/local\r\nmkdir ~\/node-latest-install\r\ncd ~\/node-latest-install\r\ncurl http:\/\/nodejs.org\/dist\/node-latest.tar.gz | tar xz --strip-components=1\r\n.\/configure --prefix=~\/local\r\nmake install # ok, fine, this step probably takes more than 30 seconds...\r\ncurl https:\/\/www.npmjs.org\/install.sh | sh<\/code><\/pre>\n<p>[\/pastacode]<\/li>\n<\/ul>\n<\/li>\n<li>L&rsquo;excellent (comme toujours) Developpez.com sur Node.js\n<ul>\n<li><a title=\"http:\/\/nodejs.developpez.com\/tutoriels\/javascript\/node-js-livre-debutant\/\" href=\"http:\/\/nodejs.developpez.com\/tutoriels\/javascript\/node-js-livre-debutant\/\" target=\"_blank\">http:\/\/nodejs.developpez.com\/tutoriels\/javascript\/node-js-livre-debutant\/<\/a><\/li>\n<\/ul>\n<\/li>\n<li>Le script : server.js plac\u00e9 en \/Root est lanc\u00e9 par la console : node server.js\n<ul>\n<li>\u00ab\u00a0Hello World\u00a0\u00bb sur le port 8888 comme pr\u00e9vu :\u00a0 RHAAAAA LOVELY !<\/li>\n<li>Refaire l&rsquo;install sur un User moins \u00ab\u00a0chaud\u00a0\u00bb.<\/li>\n<\/ul>\n<\/li>\n<li>Importer un flux dans unity : BitStream\n<ul>\n<li><a title=\"http:\/\/docs.unity3d.com\/ScriptReference\/BitStream.html\" href=\"http:\/\/docs.unity3d.com\/ScriptReference\/BitStream.html\" target=\"_blank\">http:\/\/docs.unity3d.com\/ScriptReference\/BitStream.html<\/a><\/li>\n<li><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Node.js est un serveur cod\u00e9 en Javascript qui permet d&rsquo;\u00e9tablir un flux de communication avec un browser, en temps r\u00e9el. Cela permet [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-2143","post","type-post","status-publish","format-standard","hentry","category-non-classe"],"_links":{"self":[{"href":"http:\/\/www.blue-bears.com\/blog\/index.php?rest_route=\/wp\/v2\/posts\/2143","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/www.blue-bears.com\/blog\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.blue-bears.com\/blog\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.blue-bears.com\/blog\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.blue-bears.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=2143"}],"version-history":[{"count":12,"href":"http:\/\/www.blue-bears.com\/blog\/index.php?rest_route=\/wp\/v2\/posts\/2143\/revisions"}],"predecessor-version":[{"id":2161,"href":"http:\/\/www.blue-bears.com\/blog\/index.php?rest_route=\/wp\/v2\/posts\/2143\/revisions\/2161"}],"wp:attachment":[{"href":"http:\/\/www.blue-bears.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2143"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.blue-bears.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=2143"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.blue-bears.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=2143"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}