<?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>Daryl Teo&#039;s Blog &#187; Experiments</title>
	<atom:link href="http://darylteo.com/blog/category/experiments/feed/" rel="self" type="application/rss+xml" />
	<link>http://darylteo.com/blog</link>
	<description>Personal Views on Software Development</description>
	<lastBuildDate>Thu, 02 Sep 2010 01:02:09 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Revisiting Papervision3D</title>
		<link>http://darylteo.com/blog/2008/03/09/revisiting-papervision3d/</link>
		<comments>http://darylteo.com/blog/2008/03/09/revisiting-papervision3d/#comments</comments>
		<pubDate>Mon, 10 Mar 2008 05:33:00 +0000</pubDate>
		<dc:creator>Daryl</dc:creator>
				<category><![CDATA[Experiments]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[GUI]]></category>
		<category><![CDATA[Papervision3D]]></category>
		<category><![CDATA[user interface]]></category>
		<category><![CDATA[userability]]></category>
		<category><![CDATA[websites]]></category>

		<guid isPermaLink="false">http://darylteo.com/blog/2008/03/09/revisiting-papervision3d/</guid>
		<description><![CDATA[I subscribe to the Papervision3D RSS feed, and once in awhile something interesting comes along and gets me thinking. This recent entry was as such: a gallery of sites that utilise Papervision3D to create new, innovative graphical user interfaces for their users. Looking at them got me psyched up to start on my own (long [...]]]></description>
			<content:encoded><![CDATA[<p>I subscribe to the Papervision3D RSS feed, and once in awhile something interesting comes along and gets me thinking. This <a href="http://blog.papervision3d.org/2008/03/05/16-ways-to-organize-information-in-3d/">recent entry</a> was as such: a gallery of sites that utilise Papervision3D to create new, innovative graphical user interfaces for their users. Looking at them got me psyched up to start on my own (long overdue) site.</p>
<p>However, going through some of the sites raised a common issue, and that issue is one of <strong>userability</strong>.</p>
<p><strong>History</strong></p>
<p>As someone in the comments noted, History repeats itself. Looking back to the early days of gratuitous .gif animations, unusable Flash websites, and then to the more recent AJAX revolution of Web2.0. Whenever something innovative comes forward, people struggle to find &#8220;proper&#8221; use for it, and instead end up throwing it all at the user in the hope that they will be &#8220;shocked and awed&#8221; by it. Perhaps, in the Dark Ages of Web1.0, this strategy would have worked (and it did, for a time). However, people on the internet are now tech-savvy: they want their stuff, and they know how to get it. To prevent them from doing so in any way would be a death-sentence to any website.<span id="more-64"></span></p>
<p>And yet even now, designers (and developers too) fall into the same trap of fancy (and I dare say artistic-wannabe) sites, but poor userability. So lets look at a few examples.</p>
<p><strong>Case Study: <a href="http://www.officinanessuno.com/">Officinanessuno</a></strong></p>
<p>A simple use of Papervision3D. The site itself is mainly 2 dimensional, but its navigation utilises Papervision3D. Unfortunately, this exposes the biggest flaw of this site. It is nearly impossible to navigate!</p>
<p><img src="http://farm4.static.flickr.com/3046/2323318054_fdbc45ee3b_o.jpg" alt="An example of Bad Navigation" width="411" height="271" /><br style="clear:both" /></p>
<p>A screenshot. Notice how the designers decided that humans had the ability to turn their necks 90 degrees without trouble. Also note that items that are further to the back have less visibility: the designers have inadvertently reduced the amount of traffic to that particular section! So not only is it already hard to read a link, you can&#8217;t see all of them. </p>
<p>Luckily, there is a &#8220;Quick Navigation&#8221; button, but you shouldn&#8217;t ever need it.</p>
<p><em>Rule #1 : Navigation must be be a smooth experience.</em></p>
<p>If you look at the rule on its own, it seems to make sense. If navigation was such a pain, chances are you&#8217;ll get irritated that you had to put in that extra bit of effort whenever you had to transition to another part of a site. Navigation should require little effort on the user. You want to facilitate movement around your site, not lock them down at the front page! </p>
<p><strong>Case Study: <a href="http://www.varywell.com/">Varywell</a></strong></p>
<p>Not one of the 16 sites in the gallery, but a good example nevertheless.</p>
<p>Personally, I like this site. It is minimalistic, without the clutter of information that might put some people off. There&#8217;s just 1 little niggle: its too bare. Look at this link.</p>
<p><img src="http://farm3.static.flickr.com/2158/2322578131_5a9dd8e459_o.jpg" width="515" height="387" alt="A Link. Can you tell?" /><br style="clear:both;" /></p>
<p>Could you tell that was a Link? Perhaps. Now, where does that Link take you? A quick rollover will tell you:</p>
<p><img src="http://farm3.static.flickr.com/2233/2322578213_e246935692_o.jpg" width="515" height="387" alt="Oh so THAT'S what it is." /><br style="clear:both;" /></p>
<p>Ah, so that&#8217;s what I&#8217;m looking at. But what about the other boxes? </p>
<p>Hopefully you, the reader, will understand the issue I&#8217;m highlighting here, which brings me to Rule #2.</p>
<p><em>Rule #2 : Links must be visible, and users must know what they do. </em></p>
<p>Rollover ToolTips are unforgivable, and this has to be the Number 1 userability trap common to many sites. Why should I, the User, be forced to work harder whenever I want to get information? Information should be freely and easily available, while Navigation facilitates the User&#8217;s movement through various parts of information. This is ESPECIALLY important for Portfolios. Imagine a potential user viewing your site, and wants to refer a particular work to his friend. How does he do it? If you&#8217;re using Flash, he cannot send a URL. If you had Rollover ToolTips? Now he can&#8217;t even give his superiors a proper link. (&#8220;Just click that 4th blue box from the left. You have to press the Right Cursor key 2 times. If you rollover it you will see &#8216;This Title&#8217;.&#8221;) </p>
<p>All is not lost for this site, however, for there is actually an effective use of Papervision3D in this site. One that enhances the feel and experience of the site, without reducing userability. </p>
<p><img src="http://farm3.static.flickr.com/2126/2322591713_39e1956a54_o.jpg" width="511" height="452" alt="Revisiting Papervision3D 4" /><br style="clear:both;" /></p>
<p>It is also worth noting that this feature is not linked to Navigation in any way. Which should be a big hint as to which section of a site you should and should not touch.</p>
<p><strong>Final Case Study: <a href="http://www.truthinengineering.com/">Truth in Engineering (Audi)</a></strong></p>
<p>This site&#8217;s navigation suffers from the same problems above, and this case simply highlights just how bad it can get, although it is my belief that the people who designed this mini-site probably went the route of &#8220;shock-and-awe&#8221; and decided that userability wasn&#8217;t a big deal.</p>
<p><img src="http://farm3.static.flickr.com/2391/2323454438_26f616b486_o.jpg" width="533" height="412" alt="Revisiting Papervision3D 5" /><br style="clear:both;" /></p>
<p>Here we see infringements on both rules. Firstly, Navigation is not smooth. Sure, the effects, and the movements are cool, but the depth-of-field effect obscures the labels at the back (Problem #1), making them hard to read. The easiest way to read the labels without going crosseyed is to rollover the link (Problem #2). However, even that is not without its worries.</p>
<p><img src="http://farm3.static.flickr.com/2162/2322635537_9445220593_o.jpg" width="533" height="412" alt="Revisiting Papervision3D 6" /><br style="clear:both;" /></p>
<p>Here we see what happens when you rollover a link. It EXPANDS (Problem #3). One of the biggest no-nos ever. The first reason is that expanding Symbols usually have a sweet spot which causes the Symbol to &#8220;spaz-out&#8221;; repeatedly and rapidly expand and contract. Not very pretty. This site does not suffer severely from it, thankfully. </p>
<p>The next problem is that when something expands, the chance of something being obscured from view is very high. From the screenshot, you can see that links at the back are obscured from view. Not only that, upon rollover, all other links CONTRACT (Problem #4). Where is the logic in that? Not only have you covered links, you&#8217;ve made it harder for people to see other links. When I&#8217;m using a site for the first time, and I&#8217;m faced with blurred out links that I had to rollover to figure out what they did, and the site does this to me? I leave.</p>
<p><strong>Conclusion</strong></p>
<p>As previously noted, History Repeats Itself. Despite poor starts by most innovative products, many will eventually learn to do without, or master it and produce something of great value for us all. Hopefully it will be the latter which will push us closer towards true Web2.0. In the case of Papervision3D, a truely great framework that pushes new boundaries in Flash, it should be used only where it is appropriate. A great 3 dimensional User Interface is a worthy goal, but without taking note of the fundamental flaws in design that others have made, we will fail to make progress in the future.</p>
<p>Thus, I hope those who read this article will benefit from my observations thus far, and make their own observations as to what works and what doesn&#8217;t. </p>
<p>Comments are, as always, welcome.</p>
]]></content:encoded>
			<wfw:commentRss>http://darylteo.com/blog/2008/03/09/revisiting-papervision3d/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Labs: Line-Of-Sight</title>
		<link>http://darylteo.com/blog/2007/11/23/labs-line-of-sight/</link>
		<comments>http://darylteo.com/blog/2007/11/23/labs-line-of-sight/#comments</comments>
		<pubDate>Sat, 24 Nov 2007 02:57:00 +0000</pubDate>
		<dc:creator>Daryl</dc:creator>
				<category><![CDATA[Experiments]]></category>
		<category><![CDATA[AS3]]></category>
		<category><![CDATA[Flash]]></category>

		<guid isPermaLink="false">http://darylteo.com/blog/2007/11/23/labs-line-of-sight/</guid>
		<description><![CDATA[Did a quick little experiment with Line-Of-Sight Calculations in AS3.0. I&#8217;m not too happy with it at the moment, and trying to find a balance between performance and accuracy, but you can see what I have done so far in the Labs. Experiment Focus: flash.geom.Point; Line of Sight View Experiment]]></description>
			<content:encoded><![CDATA[<p>Did a quick little experiment with Line-Of-Sight Calculations in AS3.0. I&#8217;m not too happy with it at the moment, and trying to find a balance between performance and accuracy, but you can see what I have done so far in the Labs.</p>
<p>Experiment Focus: </p>
<ul>
<li>flash.geom.Point;</li>
<li>Line of Sight</li>
</ul>
<p><a href="http://darylteo.com/labs/line-of-sight/">View Experiment</a></p>
]]></content:encoded>
			<wfw:commentRss>http://darylteo.com/blog/2007/11/23/labs-line-of-sight/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Totally Forgot My Labs</title>
		<link>http://darylteo.com/blog/2007/05/02/totally-forgot-my-labs-2/</link>
		<comments>http://darylteo.com/blog/2007/05/02/totally-forgot-my-labs-2/#comments</comments>
		<pubDate>Wed, 02 May 2007 11:21:00 +0000</pubDate>
		<dc:creator>Daryl</dc:creator>
				<category><![CDATA[Experiments]]></category>

		<guid isPermaLink="false">http://darylteo.com/blog/2007/05/02/totally-forgot-my-labs-2/</guid>
		<description><![CDATA[A nice person pointed out to me that my Labs wasn&#8217;t working. It seems I totally forgot I actually spent money buying a hosting package with Dreamhost! How silly. I have updated all my previous posts, and updated my links. Hope you guys enjoy!]]></description>
			<content:encoded><![CDATA[<p>A nice person pointed out to me that my Labs wasn&#8217;t working. It seems I totally forgot I actually spent money buying a hosting package with Dreamhost! How silly.</p>
<p>I have updated all my previous posts, and updated my links. Hope you guys enjoy!</p>
]]></content:encoded>
			<wfw:commentRss>http://darylteo.com/blog/2007/05/02/totally-forgot-my-labs-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Labs: Camera Fun ReDux</title>
		<link>http://darylteo.com/blog/2006/12/21/labs-camera-fun-redux/</link>
		<comments>http://darylteo.com/blog/2006/12/21/labs-camera-fun-redux/#comments</comments>
		<pubDate>Wed, 20 Dec 2006 18:18:57 +0000</pubDate>
		<dc:creator>Daryl</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[Experiments]]></category>
		<category><![CDATA[AS3]]></category>
		<category><![CDATA[Flash]]></category>

		<guid isPermaLink="false">http://darylteo.com/blog/?p=16</guid>
		<description><![CDATA[Okay, so not really Camera. I know not everyone has a Webcam to use, so I decided: why don&#8217;t I make one that uses a .flv? So I sat down again, and tweaked my code a little to use a .flv instead of a camera. And boy did that stump me for awhile. Talk about [...]]]></description>
			<content:encoded><![CDATA[<p>Okay, so not really Camera.</p>
<p>I know not everyone has a Webcam to use, so I decided: why don&#8217;t I make one that uses a .flv? So I sat down again, and tweaked my code a little to use a .flv instead of a camera. And boy did that stump me for awhile. Talk about hitting your head against a brick wall.</p>
<p><span id="more-16"></span><br />
Of course, for me to work with video, I had to understand the mechanics of it in AVM2.</p>
<p>Working with flv comes in 3 lovely parts:</p>
<ol>
<li>flash.media.Video();</li>
<li>flash.net.NetConnection();</li>
<li>flash.net.NetStream();</li>
</ol>
<p>Now, simply put, your NetConnection is basically the URLRequest of your URLLoader class. You need to establish a connection to the internet first, before telling NetStream to connect through that connection (seems silly to me).</p>
<div class="codecolorer-container text twitlight" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">myNetStream = new NetStream(myConnection);</div></td></tr></tbody></table></div>
<p>So once you&#8217;ve done that, you then have to call NetStream.play(path) to load the .flv. Strangely enough, you do not need to use URLRequest for this. I find this slightly offputting. But hey, I figured it out soon enough.</p>
<p>Of course now we get more confusing parts. NetStream has a little property called Client. This allows you to pass through an object which holds several Event Handlers (onMetaEvent for example), and uses it as a callBack. Is this only me that finds it inconsistent? This must be the most inconsistent class I&#8217;ve come across so far. Not to mention that some events that NetStream dispatches (NetStatusEvents) comes from the NetStream itself, and doesn&#8217;t need a object callback!</p>
<p>But of course, setting the client to the &#8220;<em>this</em>&#8221; was simple enough. So I got through eventually. Putting aside my little attempt to load a Youtube video (sorry GoogleTube! I won&#8217;t do it again. Please don&#8217;t sue me with your 1.65b capital) and fiddling around with policyFiles I ended up uploading a .flv myself which you can find at my labs.</p>
<p>On a side-note, I&#8217;m really getting into the graphics API. Except for any major tweening, I now do everything in AS. Go Me!</p>
<p><a href="http://dazzer.wordpress.com/files/2006/12/flv_fun.JPG" title="FLV Fun"><img src="http://dazzer.wordpress.com/files/2006/12/flv_fun.thumbnail.JPG" alt="FLV Fun" /></a></p>
<p>Experiment Focus:</p>
<ul>
<li>flash.net.NetConnection();</li>
<li>flash.net.NetStream();</li>
</ul>
<p><a href="/labs/flv/index.html" title="FLV Fun">View Experiment</a></p>
]]></content:encoded>
			<wfw:commentRss>http://darylteo.com/blog/2006/12/21/labs-camera-fun-redux/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Labs: Camera Fun</title>
		<link>http://darylteo.com/blog/2006/12/20/labs-camera-fun/</link>
		<comments>http://darylteo.com/blog/2006/12/20/labs-camera-fun/#comments</comments>
		<pubDate>Tue, 19 Dec 2006 17:59:12 +0000</pubDate>
		<dc:creator>Daryl</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[Experiments]]></category>
		<category><![CDATA[AS3]]></category>
		<category><![CDATA[Flash]]></category>

		<guid isPermaLink="false">http://darylteo.com/blog/?p=14</guid>
		<description><![CDATA[I&#8217;ve seen alot of things out there that show off various things. Stuff like FlashGuru&#8217;s Webcam Mosaic for example. So I decided to throw down the gloves and put forward one of my own amatuerish experiments. Its a small quick little ditty. You will need a webcam though. Just explore a bit and hopefully give [...]]]></description>
			<content:encoded><![CDATA[<p align="left">I&#8217;ve seen alot of things out there that show off various things. Stuff like FlashGuru&#8217;s <a href="http://www.flashguru.co.uk/maelstrom/?example=webcam%20mosaic" title="Webcam Mosaic">Webcam Mosaic</a> for example. So I decided to throw down the gloves and put forward one of my own amatuerish experiments. <span id="more-14"></span></p>
<p align="left"> Its a small quick little ditty. You will need a webcam though. Just explore a bit and hopefully give some comments!</p>
<p align="left">Experiment Focus :</p>
<ul>
<li>getCamera();</li>
<li>bitmapData</li>
</ul>
<p align="left">&nbsp;</p>
<p align="left"><a href="/labs/camera/index.html" title="View Camera Fun">View Experiment</a></p>
]]></content:encoded>
			<wfw:commentRss>http://darylteo.com/blog/2006/12/20/labs-camera-fun/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Labs: Vexations</title>
		<link>http://darylteo.com/blog/2006/12/18/labs-vexations/</link>
		<comments>http://darylteo.com/blog/2006/12/18/labs-vexations/#comments</comments>
		<pubDate>Mon, 18 Dec 2006 07:44:05 +0000</pubDate>
		<dc:creator>Daryl</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[Experiments]]></category>
		<category><![CDATA[AS3]]></category>
		<category><![CDATA[Flash]]></category>

		<guid isPermaLink="false">http://darylteo.com/blog/?p=13</guid>
		<description><![CDATA[Had a little fun with Vexations, by Erik Satie. Vexations is a seemingly short piece for solo piano, if it weren&#8217;t for the open performance directions: &#8220;Pour se jouer 840 fois de suite ce motif, il sera bon de se prÃ©parer au prÃ©alable, et dans le plus grand silence, par des immobilitÃ©s sÃ©rieuses&#8220; This loosely [...]]]></description>
			<content:encoded><![CDATA[<p>Had a little fun with Vexations, by Erik Satie.</p>
<p>Vexations is a seemingly short piece for solo piano, if it weren&#8217;t for the open performance directions:</p>
<blockquote><p>&#8220;<em>Pour se jouer 840 fois de suite ce motif, il sera bon de se prÃ©parer au prÃ©alable, et dans le plus grand silence, par des immobilitÃ©s sÃ©rieuses</em>&#8220;</p></blockquote>
<p>This loosely translates to &#8220;To play this piece 840 times by yourself, it is advised that you immobilise yourself in preparation&#8221;. A live performance of this was conducted by a team of pianist cum contemporary composers (the only people insane enough to attempt such a feat) including John Cage, composer of the infamous &#8220;<em> 4&#8217;33&#8221;</em> &#8220;. The performance had only 1 member in the audience: Andy Warhol.<span id="more-13"></span></p>
<p>This little app plays the piece, and repeats as many times as long as you keep it open. I finally got to experimenting with the computeSpectrum() method, which was highly interesting.</p>
<p>I couldn&#8217;t get embedFont working, so I gave up and stuck to device fonts.</p>
<p>Experimental Focus:</p>
<ul>
<li>SoundMixer.computeSpectrum()</li>
<li>Sound</li>
<li>TextField<a href="http://" title="Vexations"><br />
</a></li>
</ul>
<p><a href="/labs/vexations/index.html" title="Vexations">View the experiment </a></p>
]]></content:encoded>
			<wfw:commentRss>http://darylteo.com/blog/2006/12/18/labs-vexations/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
