<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: Metatunnel 1k Demo: JS vs. OS</title>
	<atom:link href="http://ajaxian.com/archives/metatunnel-1k-demo-js-vs-os/feed" rel="self" type="application/rss+xml" />
	<link>http://ajaxian.com/archives/metatunnel-1k-demo-js-vs-os</link>
	<description>Cleaning up the web with Ajax</description>
	<lastBuildDate>Thu, 17 May 2012 07:43:39 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
	<item>
		<title>By: PauloFalcao</title>
		<link>http://ajaxian.com/archives/metatunnel-1k-demo-js-vs-os/comment-page-1#comment-272821</link>
		<dc:creator>PauloFalcao</dc:creator>
		<pubDate>Tue, 14 Apr 2009 18:41:32 +0000</pubDate>
		<guid isPermaLink="false">http://ajaxian.com/?p=6544#comment-272821</guid>
		<description>Wow! I was on vacations, and so many stuff happened :) jseidelin very nice optimizations! sev, your Actionscript is very interesting, using Actionscript for rendering was definitely something to try, also a nice stuff to do if flash is to use a Pixel Bender Kernel Program to do the rendering, in flash 10 it will also run in software but it will use a especial compiler for it.</description>
		<content:encoded><![CDATA[<p>Wow! I was on vacations, and so many stuff happened :) jseidelin very nice optimizations! sev, your Actionscript is very interesting, using Actionscript for rendering was definitely something to try, also a nice stuff to do if flash is to use a Pixel Bender Kernel Program to do the rendering, in flash 10 it will also run in software but it will use a especial compiler for it.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: sev</title>
		<link>http://ajaxian.com/archives/metatunnel-1k-demo-js-vs-os/comment-page-1#comment-272760</link>
		<dc:creator>sev</dc:creator>
		<pubDate>Mon, 13 Apr 2009 10:23:29 +0000</pubDate>
		<guid isPermaLink="false">http://ajaxian.com/?p=6544#comment-272760</guid>
		<description>Here a quick port to Actionscript:
http://blog.betabong.com/2009/04/13/metatunnel-1k-demo-as-vs-js/</description>
		<content:encoded><![CDATA[<p>Here a quick port to Actionscript:<br />
<a href="http://blog.betabong.com/2009/04/13/metatunnel-1k-demo-as-vs-js/" rel="nofollow">http://blog.betabong.com/2009/04/13/metatunnel-1k-demo-as-vs-js/</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: hansschmucker</title>
		<link>http://ajaxian.com/archives/metatunnel-1k-demo-js-vs-os/comment-page-1#comment-272754</link>
		<dc:creator>hansschmucker</dc:creator>
		<pubDate>Sat, 11 Apr 2009 19:27:01 +0000</pubDate>
		<guid isPermaLink="false">http://ajaxian.com/?p=6544#comment-272754</guid>
		<description>Both is fine with me... I&#039;m just used to SVN. Question: Can Gist show the current version directly or do you have to checkout first?</description>
		<content:encoded><![CDATA[<p>Both is fine with me&#8230; I&#8217;m just used to SVN. Question: Can Gist show the current version directly or do you have to checkout first?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: hansschmucker</title>
		<link>http://ajaxian.com/archives/metatunnel-1k-demo-js-vs-os/comment-page-1#comment-272751</link>
		<dc:creator>hansschmucker</dc:creator>
		<pubDate>Sat, 11 Apr 2009 18:22:24 +0000</pubDate>
		<guid isPermaLink="false">http://ajaxian.com/?p=6544#comment-272751</guid>
		<description>Thank you! God, we really need an SVN for these spontaneous collaborations.</description>
		<content:encoded><![CDATA[<p>Thank you! God, we really need an SVN for these spontaneous collaborations.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: jseidelin</title>
		<link>http://ajaxian.com/archives/metatunnel-1k-demo-js-vs-os/comment-page-1#comment-272749</link>
		<dc:creator>jseidelin</dc:creator>
		<pubDate>Sat, 11 Apr 2009 12:07:29 +0000</pubDate>
		<guid isPermaLink="false">http://ajaxian.com/?p=6544#comment-272749</guid>
		<description>Neat demo! Some more quick optimizations, mostly inlining to save function calls and reusing calculated values (it&#039;s not very pretty), almost running real time on my crappy pc now (FF3.1 and Chrome). Also, use Q and W keys to adjust quality. http://www.nihilogic.dk/labs/js.metatunnel/</description>
		<content:encoded><![CDATA[<p>Neat demo! Some more quick optimizations, mostly inlining to save function calls and reusing calculated values (it&#8217;s not very pretty), almost running real time on my crappy pc now (FF3.1 and Chrome). Also, use Q and W keys to adjust quality. <a href="http://www.nihilogic.dk/labs/js.metatunnel/" rel="nofollow">http://www.nihilogic.dk/labs/js.metatunnel/</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: hansschmucker</title>
		<link>http://ajaxian.com/archives/metatunnel-1k-demo-js-vs-os/comment-page-1#comment-272748</link>
		<dc:creator>hansschmucker</dc:creator>
		<pubDate>Sat, 11 Apr 2009 08:50:15 +0000</pubDate>
		<guid isPermaLink="false">http://ajaxian.com/?p=6544#comment-272748</guid>
		<description>Oops, didn&#039;t think the overhead would be so high for Math.pow... I&#039;ve replaced it with a*a again. I was still seeing a really significant speed update before, maybe because I&#039;m on a later FF build than you.

About threads: There are so called worker threads. They have some severe limitations (most importantly, they can not share any data with the page and have to communicate via string messages), but they&#039;d probably still give multicore systems quite a boost.

https://developer.mozilla.org/En/Using_DOM_workers</description>
		<content:encoded><![CDATA[<p>Oops, didn&#8217;t think the overhead would be so high for Math.pow&#8230; I&#8217;ve replaced it with a*a again. I was still seeing a really significant speed update before, maybe because I&#8217;m on a later FF build than you.</p>
<p>About threads: There are so called worker threads. They have some severe limitations (most importantly, they can not share any data with the page and have to communicate via string messages), but they&#8217;d probably still give multicore systems quite a boost.</p>
<p><a href="https://developer.mozilla.org/En/Using_DOM_workers" rel="nofollow">https://developer.mozilla.org/En/Using_DOM_workers</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: PauloFalcao</title>
		<link>http://ajaxian.com/archives/metatunnel-1k-demo-js-vs-os/comment-page-1#comment-272747</link>
		<dc:creator>PauloFalcao</dc:creator>
		<pubDate>Sat, 11 Apr 2009 01:27:27 +0000</pubDate>
		<guid isPermaLink="false">http://ajaxian.com/?p=6544#comment-272747</guid>
		<description>Wow! Very, very nice optimizations hasschmucker! :) But all the speed you gain was lost because you changed sqr() to Math.pow which is a lot slower LOL :P  
After changing your code to use the custom sqr instead of Math.pow, all the browsers run the demo about 100% faster, but with firefox 3.1b3 the speed increase was fantastic! From 5 FPS to 17 FPS :P  
One way to speed up more is rendering 1 line per thread, with two cores speed would be about 2x faster, with 4 cores 4x faster, etc is possible to use threads, or something like threads in javascript?</description>
		<content:encoded><![CDATA[<p>Wow! Very, very nice optimizations hasschmucker! :) But all the speed you gain was lost because you changed sqr() to Math.pow which is a lot slower LOL :P<br />
After changing your code to use the custom sqr instead of Math.pow, all the browsers run the demo about 100% faster, but with firefox 3.1b3 the speed increase was fantastic! From 5 FPS to 17 FPS :P<br />
One way to speed up more is rendering 1 line per thread, with two cores speed would be about 2x faster, with 4 cores 4x faster, etc is possible to use threads, or something like threads in javascript?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: hansschmucker</title>
		<link>http://ajaxian.com/archives/metatunnel-1k-demo-js-vs-os/comment-page-1#comment-272744</link>
		<dc:creator>hansschmucker</dc:creator>
		<pubDate>Fri, 10 Apr 2009 22:38:17 +0000</pubDate>
		<guid isPermaLink="false">http://ajaxian.com/?p=6544#comment-272744</guid>
		<description>Still takes about half a minute to render a 1280x1280 image (resized to 640x640 to simulate antialiasing), but at least it looks nice :)

http://www.tapper-ware.net/devel/js/js.metatunnel/image.png</description>
		<content:encoded><![CDATA[<p>Still takes about half a minute to render a 1280&#215;1280 image (resized to 640&#215;640 to simulate antialiasing), but at least it looks nice :)</p>
<p><a href="http://www.tapper-ware.net/devel/js/js.metatunnel/image.png" rel="nofollow">http://www.tapper-ware.net/devel/js/js.metatunnel/image.png</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: hansschmucker</title>
		<link>http://ajaxian.com/archives/metatunnel-1k-demo-js-vs-os/comment-page-1#comment-272743</link>
		<dc:creator>hansschmucker</dc:creator>
		<pubDate>Fri, 10 Apr 2009 22:24:54 +0000</pubDate>
		<guid isPermaLink="false">http://ajaxian.com/?p=6544#comment-272743</guid>
		<description>Paulo, I&#039;ve uploaded a version with minimal optimizations (eliminating unused variables, initialize only once, switch to putImageData for drawing) and I&#039;m already seeing a speed increase by a factor of 5 or so:

http://www.tapper-ware.net/devel/js/js.metatunnel/

Would be interesting to see how much speed we could get out of it if we really started optimizing :)</description>
		<content:encoded><![CDATA[<p>Paulo, I&#8217;ve uploaded a version with minimal optimizations (eliminating unused variables, initialize only once, switch to putImageData for drawing) and I&#8217;m already seeing a speed increase by a factor of 5 or so:</p>
<p><a href="http://www.tapper-ware.net/devel/js/js.metatunnel/" rel="nofollow">http://www.tapper-ware.net/devel/js/js.metatunnel/</a></p>
<p>Would be interesting to see how much speed we could get out of it if we really started optimizing :)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: jhuni</title>
		<link>http://ajaxian.com/archives/metatunnel-1k-demo-js-vs-os/comment-page-1#comment-272741</link>
		<dc:creator>jhuni</dc:creator>
		<pubDate>Fri, 10 Apr 2009 20:56:32 +0000</pubDate>
		<guid isPermaLink="false">http://ajaxian.com/?p=6544#comment-272741</guid>
		<description>It is true that the web is approaching the Desktop that is why people like me have made full online Desktops. https://launchpad.net/gold-os/

I still agree with Douglas Crockford when he said &quot;the web is the most hostile software engineering environment imaginable&quot; partly because their is no unified JavaScript package management system and now YUI 3.0 is implementing their own. What this means is using YUI, Dojo, and other major non-obtrusive frameworks together is not a good idea. Also, the prototype-obtrusive ones like Prototype and MooTools clearly cannot coexist.</description>
		<content:encoded><![CDATA[<p>It is true that the web is approaching the Desktop that is why people like me have made full online Desktops. <a href="https://launchpad.net/gold-os/" rel="nofollow">https://launchpad.net/gold-os/</a></p>
<p>I still agree with Douglas Crockford when he said &#8220;the web is the most hostile software engineering environment imaginable&#8221; partly because their is no unified JavaScript package management system and now YUI 3.0 is implementing their own. What this means is using YUI, Dojo, and other major non-obtrusive frameworks together is not a good idea. Also, the prototype-obtrusive ones like Prototype and MooTools clearly cannot coexist.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: PauloFalcao</title>
		<link>http://ajaxian.com/archives/metatunnel-1k-demo-js-vs-os/comment-page-1#comment-272736</link>
		<dc:creator>PauloFalcao</dc:creator>
		<pubDate>Fri, 10 Apr 2009 19:12:20 +0000</pubDate>
		<guid isPermaLink="false">http://ajaxian.com/?p=6544#comment-272736</guid>
		<description>WebReflection, Chrome is more than a multi thread a browser, is multi-process browser http://blog.chromium.org/2008/09/multi-process-architecture.html :)</description>
		<content:encoded><![CDATA[<p>WebReflection, Chrome is more than a multi thread a browser, is multi-process browser <a href="http://blog.chromium.org/2008/09/multi-process-architecture.html" rel="nofollow">http://blog.chromium.org/2008/09/multi-process-architecture.html</a> :)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: WebReflection</title>
		<link>http://ajaxian.com/archives/metatunnel-1k-demo-js-vs-os/comment-page-1#comment-272735</link>
		<dc:creator>WebReflection</dc:creator>
		<pubDate>Fri, 10 Apr 2009 19:01:24 +0000</pubDate>
		<guid isPermaLink="false">http://ajaxian.com/?p=6544#comment-272735</guid>
		<description>PauloFalcao, chrome is multi thread, if you have a blocking JS in a tab, others will always work without problems</description>
		<content:encoded><![CDATA[<p>PauloFalcao, chrome is multi thread, if you have a blocking JS in a tab, others will always work without problems</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: PauloFalcao</title>
		<link>http://ajaxian.com/archives/metatunnel-1k-demo-js-vs-os/comment-page-1#comment-272731</link>
		<dc:creator>PauloFalcao</dc:creator>
		<pubDate>Fri, 10 Apr 2009 17:20:39 +0000</pubDate>
		<guid isPermaLink="false">http://ajaxian.com/?p=6544#comment-272731</guid>
		<description>Well, i made this just for fun, and did not optimize the code much further, it was almost a direct conversion from my pure C multithread version (without GPU/GLSL) , by the way thanks TNO for your tips in javascript... :). It&#039;s very interesting to compare the behavior of different browsers, my version of firefox (3.0.8) was slower and almost blocked the other tabs, chrome (2.0.173.1) on the other hand was faster and the others tabs continue to work perfectly.    
Using Canvas3d is a very nice idea, although it will only work on few browsers, and is necessary to have a GPU that runs GLSL. But will probably be very fast,  i belive the speed will be similar to the original version, because like the original, the core part of the work will be done on the gpu using GLSL.</description>
		<content:encoded><![CDATA[<p>Well, i made this just for fun, and did not optimize the code much further, it was almost a direct conversion from my pure C multithread version (without GPU/GLSL) , by the way thanks TNO for your tips in javascript&#8230; :). It&#8217;s very interesting to compare the behavior of different browsers, my version of firefox (3.0.8) was slower and almost blocked the other tabs, chrome (2.0.173.1) on the other hand was faster and the others tabs continue to work perfectly.<br />
Using Canvas3d is a very nice idea, although it will only work on few browsers, and is necessary to have a GPU that runs GLSL. But will probably be very fast,  i belive the speed will be similar to the original version, because like the original, the core part of the work will be done on the gpu using GLSL.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ben Galbraith</title>
		<link>http://ajaxian.com/archives/metatunnel-1k-demo-js-vs-os/comment-page-1#comment-272724</link>
		<dc:creator>Ben Galbraith</dc:creator>
		<pubDate>Fri, 10 Apr 2009 13:15:21 +0000</pubDate>
		<guid isPermaLink="false">http://ajaxian.com/?p=6544#comment-272724</guid>
		<description>Comparing the Ajax and Desktop versions is really more of a joke. The desktop version is written in assembler and passes a shader directly to an OpenGL card. The real test would be to see how well canvas 3D handles it...</description>
		<content:encoded><![CDATA[<p>Comparing the Ajax and Desktop versions is really more of a joke. The desktop version is written in assembler and passes a shader directly to an OpenGL card. The real test would be to see how well canvas 3D handles it&#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: TNO</title>
		<link>http://ajaxian.com/archives/metatunnel-1k-demo-js-vs-os/comment-page-1#comment-272721</link>
		<dc:creator>TNO</dc:creator>
		<pubDate>Fri, 10 Apr 2009 12:33:41 +0000</pubDate>
		<guid isPermaLink="false">http://ajaxian.com/?p=6544#comment-272721</guid>
		<description>Speed would be less of an issue if better code was written for this purpose:
.
use sin, cos, sqrt lookup tables
.
Use a hidden canvas to draw the scene with, and set the visible canvas globalCompositeOperation = &quot;copy&quot;,
.
For Firefox add moz-opaque to the canvas tags
.
In the draw() routine remove the non repeating calculations, such as 
canvas.width=maxr*2;
canvas.height=maxr*2;
.
Use a proper setTimeout call and don&#039;t pass a string.
.
There is probably more but I&#039;m a bit jaded at the moment...</description>
		<content:encoded><![CDATA[<p>Speed would be less of an issue if better code was written for this purpose:<br />
.<br />
use sin, cos, sqrt lookup tables<br />
.<br />
Use a hidden canvas to draw the scene with, and set the visible canvas globalCompositeOperation = &#8220;copy&#8221;,<br />
.<br />
For Firefox add moz-opaque to the canvas tags<br />
.<br />
In the draw() routine remove the non repeating calculations, such as<br />
canvas.width=maxr*2;<br />
canvas.height=maxr*2;<br />
.<br />
Use a proper setTimeout call and don&#8217;t pass a string.<br />
.<br />
There is probably more but I&#8217;m a bit jaded at the moment&#8230;</p>
]]></content:encoded>
	</item>
</channel>
</rss>

