<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	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/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Tapdancing Goats &#187; Web development</title>
	<atom:link href="http://www.tapdancinggoats.com/category/software-development/web-development/feed" rel="self" type="application/rss+xml" />
	<link>http://www.tapdancinggoats.com</link>
	<description>A parfait of physics, Linux, LaTeX, and coding tips large and small.</description>
	<lastBuildDate>Wed, 25 Jan 2012 03:14:39 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Double Pendulum Simulation</title>
		<link>http://www.tapdancinggoats.com/double-pendulum-simulation.htm</link>
		<comments>http://www.tapdancinggoats.com/double-pendulum-simulation.htm#comments</comments>
		<pubDate>Thu, 18 Aug 2011 07:53:27 +0000</pubDate>
		<dc:creator>Alex</dc:creator>
				<category><![CDATA[Flash]]></category>
		<category><![CDATA[Physics]]></category>
		<category><![CDATA[canvas]]></category>
		<category><![CDATA[double pendula]]></category>
		<category><![CDATA[html5]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[pendulum]]></category>

		<guid isPermaLink="false">http://www.tapdancinggoats.com/?p=714</guid>
		<description><![CDATA[I&#8217;ve been playing around with some of the new features in HTML5, particularly to see how the canvas stacks up to Flash. One of the things I wanted to test was javascript performance, so I ported this Flash toy I wrote a few years ago. It&#8217;s a physical simulation of a double pendulum system. It&#8217;s [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.tapdancinggoats.com/double-pendula"><img src="http://www.tapdancinggoats.com/wp-content/uploads/2011/08/pendula.png" alt="" title="Double Pendula" width="421" height="392" class="alignright size-full wp-image-715" /></a></p>

<p>I&#8217;ve been playing around with some of the new features in HTML5, particularly to see how the canvas stacks up to Flash.  One of the things I wanted to test was javascript performance, so I ported this Flash toy I wrote a few years ago.  It&#8217;s a physical simulation of a double pendulum system.  It&#8217;s interactive, and it can export the line drawing it produces as a PNG.</p>

<p>How did canvas+JS do?  The export was a lot easier: I had to write a PNG encoder in Actionscript for the original version!  Pretty much everything else was harder.  Canvas has features similar to Flash 5, and I missed modern Flash&#8217;s rich standard library.  CSS layout is still somewhat inferior to Flex for GUI design, as the layout options are less flexible.</p>

<p>One of the appeals of canvas is mobile support, but I was disappointed by the performance on my Motorola Droid.  Just clearing the background on a canvas larger than 500&#215;200 took the frame rate to single digits, and I couldn&#8217;t find a reliable way to make the canvas fill the screen if other elements were present (I didn&#8217;t look too hard, since a canvas that large was unusable).  The javascript performance was fine, it was just the drawing that caused problems.  Let me know if you get better results on different hardware, I&#8217;d love to know that this can work better.</p>

<p>Overall, canvas shows promise, but I don&#8217;t think it&#8217;s ready to replace Flash for complex graphical applications.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tapdancinggoats.com/double-pendulum-simulation.htm/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Spin: The Game</title>
		<link>http://www.tapdancinggoats.com/spin-the-game.htm</link>
		<comments>http://www.tapdancinggoats.com/spin-the-game.htm#comments</comments>
		<pubDate>Fri, 11 Mar 2011 07:12:23 +0000</pubDate>
		<dc:creator>Alex</dc:creator>
				<category><![CDATA[Flash]]></category>
		<category><![CDATA[Games]]></category>
		<category><![CDATA[Physics]]></category>
		<category><![CDATA[game]]></category>
		<category><![CDATA[physics simulation]]></category>

		<guid isPermaLink="false">http://www.tapdancinggoats.com/?p=617</guid>
		<description><![CDATA[Spin is a new Flash game I&#8217;ve been noodling on for a little while. It&#8217;s a Puzzle Bobble type game, except that the balls can freely spin like a pinwheel. The rotation is physically accurate, so as balls fall off of the board it changes speed and direction. When a ball hits the board the [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.tapdancinggoats.com/spin"><img src="http://www.tapdancinggoats.com/wp-content/uploads/2011/03/spin-pic_sm.png" alt="" title="Spin: The Game" width="300" height="269" class="alignright size-full wp-image-619" /></a>
<a href="http://www.tapdancinggoats.com/spin">Spin</a> is a new Flash game I&#8217;ve been noodling on for a little while.  It&#8217;s a <a href="http://en.wikipedia.org/wiki/Puzzle_Bobble">Puzzle Bobble</a> type game, except that the balls can freely spin like a pinwheel.  The rotation is physically accurate, so as balls fall off of the board it changes speed and direction.  When a ball hits the board the ball&#8217;s momentum is transferred to it, so if the board is turning slowly you can speed it up or make it turn the other way by firing the balls at it.</p>

<p>The feature list was miles long, but I&#8217;m getting too busy to work on it.  Look forward to a second version when I can get back to it.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tapdancinggoats.com/spin-the-game.htm/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Progress in Real Time Content Distribution</title>
		<link>http://www.tapdancinggoats.com/progress-in-real-time-content-distribution.htm</link>
		<comments>http://www.tapdancinggoats.com/progress-in-real-time-content-distribution.htm#comments</comments>
		<pubDate>Wed, 13 Oct 2010 17:47:15 +0000</pubDate>
		<dc:creator>Alex</dc:creator>
				<category><![CDATA[Links]]></category>
		<category><![CDATA[OSS]]></category>
		<category><![CDATA[Web development]]></category>
		<category><![CDATA[dave winer]]></category>
		<category><![CDATA[pubsubhubbub]]></category>
		<category><![CDATA[rss]]></category>
		<category><![CDATA[rsscloud]]></category>
		<category><![CDATA[xmpp]]></category>

		<guid isPermaLink="false">http://www.tapdancinggoats.com/?p=581</guid>
		<description><![CDATA[Dave Winer is doing some interesting work towards a new real-time content protocol he&#8217;s calling FeedHose. It&#8217;s like a feed aggregator combined with a subscription hub. It&#8217;s similar to the PubSubHubBub/rssCloud to XMPP bridge I made last year, but better. He&#8217;s pretty good at forming communities around his protocols, so hopefully this will gain some [...]]]></description>
			<content:encoded><![CDATA[<p>Dave Winer is doing some interesting work towards a new real-time content protocol he&#8217;s calling <a href="http://scripting.com/stories/2010/10/13/ericKiddsFeedhoseClientInJ.html">FeedHose</a>. It&#8217;s like a feed aggregator combined with a subscription hub.  It&#8217;s similar to the PubSubHubBub/rssCloud to XMPP bridge I made last year, but better. He&#8217;s pretty good at forming communities around his protocols, so hopefully this will gain some traction. We need some progress in open, real-time content distribution.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tapdancinggoats.com/progress-in-real-time-content-distribution.htm/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Better billboarding in Papervision3D</title>
		<link>http://www.tapdancinggoats.com/better-billboarding-in-papervision3d.htm</link>
		<comments>http://www.tapdancinggoats.com/better-billboarding-in-papervision3d.htm#comments</comments>
		<pubDate>Thu, 08 Nov 2007 02:42:30 +0000</pubDate>
		<dc:creator>Alex</dc:creator>
				<category><![CDATA[Flash]]></category>
		<category><![CDATA[3d]]></category>
		<category><![CDATA[billboard]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[example]]></category>
		<category><![CDATA[fix]]></category>
		<category><![CDATA[graphics]]></category>
		<category><![CDATA[Papervision3D]]></category>

		<guid isPermaLink="false">http://www.tapdancinggoats.com/better-billboarding-in-papervision3d.htm</guid>
		<description><![CDATA[The Papervision3D wiki has an example for making billboarded sprites with just three extra lines of code. Trouble is, it doesn&#8217;t really work. Anyone who&#8217;s tried it may have noticed that when the planes get too close to the camera, or if the camera rotates around it&#8217;s z-axis at all, the planes start rolling instead [...]]]></description>
			<content:encoded><![CDATA[<p>The <a href="http://wiki.papervision3d.org/">Papervision3D wiki</a> has an example for making billboarded sprites with just three extra lines of code. Trouble is, it doesn&#8217;t really work. Anyone who&#8217;s tried it may have noticed that when the planes get too close to the camera, or if the camera rotates around it&#8217;s z-axis at all, the planes start rolling instead of staying vertical.</p>

<p>The problem is that the lookAt method defaults to using the world y-axis as &#8220;up&#8221; for the billboards, which isn&#8217;t usually correct.  Of course we don&#8217;t really care about the world y-axis with billboards.  We just want them to be vertical in the camera.  Here&#8217;s some code that does it.</p>

<div class="dean_ch" style="white-space: wrap;"><span class="co1">// calculate the camera vertical in world coordinates</span><br />
<span class="kw2">var</span> <span class="kw3">up</span> : Number3D = <span class="kw2">new</span> Number3D<span class="br0">&#40;</span><span class="nu0">0</span>, <span class="nu0">1</span>, <span class="nu0">0</span><span class="br0">&#41;</span>;<br />
Matrix3D.<span class="me1">rotateAxis</span><span class="br0">&#40;</span><span class="kw3">camera</span>.<span class="me1">transform</span>, <span class="kw3">up</span><span class="br0">&#41;</span>;<br />
<br />
<span class="co1">// billboard is the plane you want to billboard.</span><br />
billboard.<span class="me1">lookAt</span><span class="br0">&#40;</span>viewpoint, <span class="kw3">up</span><span class="br0">&#41;</span>;<br />
billboard.<span class="me1">roll</span><span class="br0">&#40;</span><span class="nu0">180</span><span class="br0">&#41;</span>;<br />
billboard.<span class="me1">pitch</span><span class="br0">&#40;</span><span class="nu0">180</span><span class="br0">&#41;</span>;</div>
]]></content:encoded>
			<wfw:commentRss>http://www.tapdancinggoats.com/better-billboarding-in-papervision3d.htm/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Silly Jessica Simpson Game, Pizza Hut Codes</title>
		<link>http://www.tapdancinggoats.com/silly-jessica-simpson-game.htm</link>
		<comments>http://www.tapdancinggoats.com/silly-jessica-simpson-game.htm#comments</comments>
		<pubDate>Sun, 04 Feb 2007 19:46:57 +0000</pubDate>
		<dc:creator>Alex</dc:creator>
				<category><![CDATA[Flash]]></category>
		<category><![CDATA[Games]]></category>
		<category><![CDATA[game]]></category>
		<category><![CDATA[Pizza Hut]]></category>

		<guid isPermaLink="false">http://tapdancinggoats.com/?p=11</guid>
		<description><![CDATA[I don&#8217;t get it, but my wife loves the celebrity gossip, so when all this stuff about Jessica Simpson started coming out I whipped up this little game to make her laugh. It&#8217;s an homage to an old Mac game I haven&#8217;t seen in years called &#8220;Slick Willie.&#8221; I&#8217;m also keeping track of Pizza Hut&#8217;s [...]]]></description>
			<content:encoded><![CDATA[<p>I don&#8217;t get it, but my wife loves the celebrity gossip, so when all this stuff about Jessica Simpson started coming out I whipped up this little game to make her laugh.  It&#8217;s an homage to an old Mac game I haven&#8217;t seen in years called &#8220;Slick Willie.&#8221;  I&#8217;m also keeping track of <a href="http://www.pizzahut.com/hunt/" title="Cheesy Hunt">Pizza Hut&#8217;s sweepstakes codes</a> here.  Have fun.</p>

<p>
Click on &#8220;more&#8221; to play the game.
</p>

<p><span id="more-11"></span>
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0" width="550" height="400" id="munching" align="middle"><param name="allowScriptAccess" value="sameDomain" /><param name="movie" value="http://www.tapdancinggoats.com/flash/munchies/munching.swf" /><param name="quality" value="high" /><param name="bgcolor" value="#ffffff" /><embed src="http://www.tapdancinggoats.com/flash/munchies/munching.swf" quality="high" bgcolor="#ffffff" width="550" height="400" name="munching" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" /></object></p>

<p>
  <h3>This week&#8217;s Pizza Hut code</h3>
  Send the word &#8220;WIN&#8221; to <tt>843488</tt> with your cell phone (the kids call it &#8220;texting&#8221;) to enter to win a new car, an entertainment center, free pizza, and more prizes. <a href="http://www.pizzahut.com/hunt/" title="Cheesy Hunt">Learn more.</a>
</p>

<p>
  Here&#8217;s what they&#8217;re giving away:
  <ul>
    <li>$30k for a car</li>
    <li>5 entertainment centers worth $4k each</li>

    <li>20 $400 Pizza Hut gift cards</li>
    <li>500 $5 music download gift cards</li>
  </ul>
</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tapdancinggoats.com/silly-jessica-simpson-game.htm/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Flash 9 in Linux</title>
		<link>http://www.tapdancinggoats.com/flash-9-in-linux.htm</link>
		<comments>http://www.tapdancinggoats.com/flash-9-in-linux.htm#comments</comments>
		<pubDate>Sun, 21 Jan 2007 01:53:33 +0000</pubDate>
		<dc:creator>Alex</dc:creator>
				<category><![CDATA[Flash]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[AMD64]]></category>

		<guid isPermaLink="false">http://tapdancinggoats.com/?p=8</guid>
		<description><![CDATA[Those of you in the know already know that Adobe recently released Flash 9 for Linux. An official, honest to god, up to date version. The best part? It actually works. I&#8217;ve had problems with Flash since I switched to Linux, because I foolishly chose the AMD64 version of Kubuntu. After messing around with a [...]]]></description>
			<content:encoded><![CDATA[<p>Those of you in the know already know that <a title="Flash 9 for Linux" href="http://blogs.adobe.com/penguin.swf/2007/01/flash_player_9_for_linux_x86.html">Adobe recently released Flash 9 for Linux</a>.  An official, honest to god, up to date version.  The best part?  It actually works.</p>

<p>I&#8217;ve had problems with Flash since I switched to Linux, because I foolishly chose the AMD64 version of Kubuntu.  After messing around with a 32-bit chroot for awhile, I finally discovered <a title="Swiftfox" href="http://getswiftfox.com/">Swiftfox</a>, a version of Firefox compiled to use 32-bit libraries but optimized for, and compatible with, 64-bit systems.  I could watch Flash movies again.  Sound didn&#8217;t work, but who needs to hear them anyway?  Oh, and since Macromedia never released Flash 8 for Linux, there were more and more SWF&#8217;s that I couldn&#8217;t watch.  And it crashed the browser a lot.</p>

<p>Okay, so it totally sucked.</p>

<p>Even so, I was pretty disappointed after I upgraded to Swiftfox 2 and found that Flash stopped working.  Imagine my surprise when I clicked on the missing plugin button and saw that Flash 9 was available.  I knew Flash 9 for Linux was out, but I&#8217;ve never had the plugin search feature actually work correctly.  Then, right before my eyes, Flash 9 installed, the page reloaded, and the SWF started playing.  With sound.  &#8220;Thus Spoke Zarathustra&#8221; came on the radio, the sun broke through the clouds of winter storms, and a chorus of angels heralded, or trumpeted, or whatever it is that choruses of angels do.</p>

<p>It&#8217;s almost as if big companies are starting to take Linux seriously.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tapdancinggoats.com/flash-9-in-linux.htm/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>KPAX, SLIME, and SBCL</title>
		<link>http://www.tapdancinggoats.com/kpax-slime-and-sbcl.htm</link>
		<comments>http://www.tapdancinggoats.com/kpax-slime-and-sbcl.htm#comments</comments>
		<pubDate>Sun, 24 Sep 2006 03:56:19 +0000</pubDate>
		<dc:creator>Alex</dc:creator>
				<category><![CDATA[Emacs]]></category>
		<category><![CDATA[Lisp]]></category>
		<category><![CDATA[Web development]]></category>
		<category><![CDATA[fix]]></category>
		<category><![CDATA[KPAX]]></category>
		<category><![CDATA[SBCL]]></category>
		<category><![CDATA[SLIME]]></category>

		<guid isPermaLink="false">http://tapdancinggoats.com/?p=5</guid>
		<description><![CDATA[I&#8217;ve been struggling on and off to get KPAX to work for the past few days. It turns out that the default method SLIME uses to communicate with the Lisp interpreter causes problems with the way s-sysdeps sets up the socket listening function in SBCL. The workaround is to set swank:communication-style to :fd-handler, but it [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been struggling on and off to get KPAX to work for the past few days.  It turns out that the default method SLIME uses to communicate with the Lisp interpreter causes problems with the way s-sysdeps sets up the socket listening function in SBCL.  The workaround is to set swank:<em>communication-style</em> to :fd-handler, but it has to be set before SLIME starts, so put the following form in ~/.swank.lisp</p>

<p><code>(defparameter swank:<em>communication-style</em> :fd-handler)</code></p>

<p>Now to get KPAX to work with mod_lisp&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tapdancinggoats.com/kpax-slime-and-sbcl.htm/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

