<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>This'N'That</title>
	
	<link>http://samhassan.co.uk/blog</link>
	<description>A blog about Web, Dev, Design, Fun and Food</description>
	<lastBuildDate>Wed, 20 Jan 2010 18:17:12 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/co/samhassan" /><feedburner:info uri="co/samhassan" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
		<title>Storing an ActionScript Object class in SQLite with AIR</title>
		<link>http://feedproxy.google.com/~r/co/samhassan/~3/3p5b8Kghl8U/</link>
		<comments>http://samhassan.co.uk/blog/2010/01/20/storing-an-actionscript-object-class-in-sqlite-with-air/#comments</comments>
		<pubDate>Wed, 20 Jan 2010 18:17:12 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Air]]></category>
		<category><![CDATA[SQLite]]></category>

		<guid isPermaLink="false">http://samhassan.co.uk/blog/?p=255</guid>
		<description><![CDATA[In my last post I shared the types of data allowed in SQLite using AIR and I was quite intrigued by the possibilities of storing an Object in a database.
Why would I use this?
Let’s say you need to store some setting data for your AIR application, you could do it in XML but why not [...]]]></description>
			<content:encoded><![CDATA[<p><a title="SQLite data types" href="http://samhassan.co.uk/blog/2009/11/30/sqlite-data-types/">In my last post I shared the types of data allowed in SQLite using AIR</a> and I was quite intrigued by the possibilities of storing an Object in a database.</p>
<p><strong>Why would I use this?</strong><br />
Let’s say you need to store some setting data for your AIR application, you could do it in XML but why not use SQLite as you can secure it and it’s not really that hard to get a database going in AIR.<br />
Storing data as custom data object classes would make it really easy to pass the data around and I like having data typed.</p>
<p>So I made a little test application…</p>
<p><a href="http://samhassan.co.uk/blog/wp-content/uploads/2010/01/airSqliteObject.jpg"><img class="alignnone size-medium wp-image-268" title="AIR Sqlite Object test app" src="http://samhassan.co.uk/blog/wp-content/uploads/2010/01/airSqliteObject-300x285.jpg" alt="application interface" width="300" height="285" /></a></p>
<p><strong>What it does:</strong><br />
It adds custom data objects: “DataVO” to the database, which has a string “name” and an int “number”</p>
<p>The name string comes from the text input and the number is generated at random</p>
<p>There are 2 buttons:<br />
“Show all data” – displays all the data in the database on the left in a text field and puts the last item in the text at the bottom of the screen under “last data:”<br />
“Add data” – adds the data in the fields above</p>
<p>The DataVO is very simple and looks like this:</p>
<pre>package {
        public class DataVO extends Object{
                public var name:String = "";
                public var number:int;
                public function DataVO() {
                }
        }
}
</pre>
<p>The other class in this application is the controller which does all the leg work.</p>
<pre>package {
	import flash.data.SQLConnection;
	import flash.data.SQLResult;
	import flash.data.SQLStatement;
	import flash.display.MovieClip;
	import flash.errors.SQLError;
	import flash.events.MouseEvent;
	import flash.events.SQLErrorEvent;
	import flash.events.SQLEvent;
	import flash.filesystem.File;
	import flash.net.registerClassAlias;
	import flash.text.TextField;

	/**
	 * @author Sam Hassan - Bashing out the code!!!
	 */
	public class Controller extends MovieClip {
		private var theDB : SQLConnection;
		private var dbStatement : SQLStatement;
		private var addDataStatment : SQLStatement;
		private var allTheData:Array = [];
		private var getDataStatment : SQLStatement;

              // the movieClips on the stage
		public var btn1:MovieClip;
		public var btn2:MovieClip;
              // the textFields on the stage
		public var nameTxt:TextField;
		public var numberTxt:TextField;
		public var nameOutTxt:TextField;
		public var numberOutTxt:TextField;
                public var output:TextField;

		public function Controller() {
			trace("\nCLASS Controller");
			 registerClassAlias("DataVO", DataVO); /// this is the key for casting the object to work
//			make the database
			makeDataBase();
		}

		private function makeDataBase() : void {
			var dbFile:File = File.applicationStorageDirectory.resolvePath("dataStore.db");
			trace("\n FUNCTION makeDataBase  - dbFile: "+dbFile.nativePath);
            dbStatement = new SQLStatement();
			theDB = new SQLConnection();
            dbStatement.sqlConnection = theDB;
            theDB.addEventListener(SQLEvent.OPEN, onDatabaseOpen);
            theDB.addEventListener(SQLErrorEvent.ERROR, errorHandler);
            theDB.open(dbFile);
		}

		 private function onDatabaseOpen(event:SQLEvent):void {
            dbStatement.text = "CREATE TABLE IF NOT EXISTS info (id INTEGER PRIMARY KEY AUTOINCREMENT, data OBJECT)";
            dbStatement.addEventListener(SQLEvent.RESULT, tabelCreated);
            dbStatement.addEventListener(SQLErrorEvent.ERROR, createError);
            dbStatement.execute();
		}

		private function tabelCreated(event : SQLEvent) : void {
			trace("\n FUNCTION Controller.tabelCreated");
			// create the add data statment
			addDataStatment = new SQLStatement();
          	addDataStatment.addEventListener(SQLErrorEvent.ERROR, createError);
          	addDataStatment.sqlConnection = theDB;
          	addDataStatment.text = "INSERT INTO info ( data) VALUES (@data)";

			// create the statment to get all the data
			 getDataStatment = new SQLStatement();
          	getDataStatment.sqlConnection = theDB;
          	// build the sql
          	getDataStatment.text = "SELECT * FROM info";
            getDataStatment.addEventListener(SQLEvent.RESULT, handleAllDataResult);
            getDataStatment.addEventListener(SQLErrorEvent.ERROR, createError);

			// add the button listener
			btn1.addEventListener(MouseEvent.CLICK, doSomething);
			btn2.addEventListener(MouseEvent.CLICK, getAllTheData);
		}

		private function doSomething(event : MouseEvent) : void {
			// add some new data
			var newData:DataVO = new DataVO();
			newData.name += nameTxt.text;
			newData.number = randRange(0,200);
			numberTxt.text = String(newData.number);
			addTheData(newData);
		}

		private function addTheData(newData : DataVO) : void {
//			 registerClassAlias("DataVO", DataVO); // could have this here before the object gets added - but i have it @ the top
			addDataStatment.parameters["@data"] =newData;
			trace("addDataStatment.text = " +addDataStatment.text);
            addDataStatment.execute();
		}

		public static function randRange(minNum:Number, maxNum:Number):Number {
				      return (Math.floor(Math.random() * (maxNum - minNum + 1)) + minNum);
		}

		public function getAllTheData(event : MouseEvent):void{
			trace("\n FUNCTION Controller.getAllTheData");
			 getDataStatment.execute();
		}
		private function handleAllDataResult(event : SQLEvent) : void {
//			 registerClassAlias("DataVO", DataVO); // could have this here before the object comes back from the database - but i have it @ the top
			trace("\n FUNCTION Controller.handleAllDataResult");
			var result:SQLResult = SQLStatement(event.target).getResult();
			allTheData = result.data;
			if(allTheData){
				trace("\n Controller.handleAllDataResult var: allTheData = "+allTheData);
				var dataString:String = "";
				var newData:DataVO;
				for (var i : int = 0; i &lt; allTheData.length; i++) {
					newData = allTheData[i].data;
					dataString +='\n'+ newData.name;
					dataString += newData.number;
				}

				trace(allTheData[0].data is DataVO); // returns true
				output.text = dataString;
				// show the last results
				nameOutTxt.text = DataVO(allTheData[(allTheData.length-1)].data ).name;
				numberOutTxt.text = String(DataVO(allTheData[(allTheData.length-1)].data).number);
			}else{
				output.text = "no data --- click the add button ";
			}
		}

		private function errorHandler(error:SQLError):void{
                trace("Error Occurred with id: " + error.errorID  + " operation " + error.operation + " message " + error.message);
       	}
        private function createError(event:SQLErrorEvent):void{
               trace("Error Occurred with id: " + event.error.errorID  + " message " + event.error.message);
        }
	}
}
</pre>
<p>I had one issue when I made this test; it was with casting the object returned from the SQL query.<br />
When the object came back I could get the values out by using the dot syntax (result[0].name)  but I like to work with typed objects inside eclipse so I can get code completion</p>
<p>When I tried to cast the object from the SQLResult as a DataVO object I would get:</p>
<pre>DataVO(result[0]) // this would cause a “TypeError: Error #1034: Type Coercion failed: cannot convert Object@4a02881 to DataVO.”

(result[0] as DataVO) // this returns null
</pre>
<p>After some searching and going back to the documentation I found this:</p>
<p>“Before storing a custom class instance, you must register an alias for the class using the flash.net.registerClassAlias() method (or in Flex by adding [RemoteObject] metadata to the class declaration). Also, before retrieving that data you must register the same alias for the class. Any data that can&#8217;t be deserialized properly, either because the class inherently can&#8217;t be deserialized or because of a missing or mismatched class alias, is returned as an anonymous object (an Object class instance) with properties and values corresponding to the original instance as stored.”</p>
<p>So basically you need to register the class alias before you add the object to the database or remove it.<br />
To do this I added this line:</p>
<pre> //registerClassAlias("com.example.eg", ExampleClass);
registerClassAlias("DataVO", DataVO);
</pre>
<p>As I’m only using on class to do the leg work I only need this line at the top of the application but I could have it in the ‘addTheData’ function and the ‘handleAllDataResult’.<br />
It might even work it you just have this line in one place at the start of your application but would have to test that.<br />
While researching this problem I came across a couple of blog posts about having problems with storing ActionScript Objects in SQLite and doing so would crash AIR in OSX, I’ve tested my example on Snow leopard I think and it worked fine, but if anyone tests it and there are issues please let me know.</p>
<p>Here are all the files you need including the .air file in the deploy folder and all code: <strong><a title="AIR SQLite object example files" href="http://samhassan.co.uk/blog post files/Air test SQLite.rar">Air test SQLite.rar</a></strong></p>
<p>Hope this helps someone.</p>
<img src="http://feeds.feedburner.com/~r/co/samhassan/~4/3p5b8Kghl8U" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://samhassan.co.uk/blog/2010/01/20/storing-an-actionscript-object-class-in-sqlite-with-air/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		<feedburner:origLink>http://samhassan.co.uk/blog/2010/01/20/storing-an-actionscript-object-class-in-sqlite-with-air/</feedburner:origLink></item>
		<item>
		<title>SQLite data types</title>
		<link>http://feedproxy.google.com/~r/co/samhassan/~3/ucHs_6-cNxo/</link>
		<comments>http://samhassan.co.uk/blog/2009/11/30/sqlite-data-types/#comments</comments>
		<pubDate>Mon, 30 Nov 2009 12:56:23 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Air]]></category>
		<category><![CDATA[SQLite]]></category>

		<guid isPermaLink="false">http://samhassan.co.uk/blog/?p=211</guid>
		<description><![CDATA[After searching the web for a clear list of the data types allowed in SQLite with Adobe AIR I found this link:  http://livedocs.adobe.com/flex/3/langref/localDatabaseSQLSupport.html#dataTypes (from the flex 3 docs – I hope it gets updated for AIR 2.0)
It has information on the types allowed.
Here are the main points:
The following column affinity types are not supported by [...]]]></description>
			<content:encoded><![CDATA[<p>After searching the web for a clear list of the data types allowed in SQLite with Adobe AIR I found this link:  <a title="Data types in Adobe AIR" href="http://livedocs.adobe.com/flex/3/langref/localDatabaseSQLSupport.html#dataTypes">http://livedocs.adobe.com/flex/3/langref/localDatabaseSQLSupport.html#dataTypes</a> (from the flex 3 docs – I hope it gets updated for AIR 2.0)<br />
It has information on the types allowed.</p>
<p><strong>Here are the main points:</strong></p>
<p>The following column affinity types are not supported by default in SQLite, but are supported in Adobe AIR:</p>
<ul>
<li>STRING: corresponding to the String class (equivalent to the TEXT column affinity).</li>
<li>NUMBER: corresponding to the Number class (equivalent to the REAL column affinity).</li>
<li>BOOLEAN: corresponding to the Boolean class.</li>
<li>DATE: corresponding to the Date class.</li>
<li>XML: corresponding to the ActionScript (E4X) XML class.</li>
<li>XMLLIST: corresponding to the ActionScript (E4X) XMLList class.</li>
<li>OBJECT: corresponding to the Object class or any subclass that can be serialized and deserialized using AMF3. (This includes most classes including custom classes, but excludes some classes including display objects and objects that include display objects as properties.)</li>
</ul>
<p>The following literal values are not supported by default in SQLite, but are supported in Adobe AIR:</p>
<ul>
<li>true: used to represent the literal boolean value true, for working with BOOLEAN columns.</li>
<li>false: used to represent the literal boolean value false, for working with BOOLEAN columns.</li>
</ul>
<p>Each column in the database is assigned one of the following type affinities:</p>
<ul>
<li>TEXT (or STRING)</li>
<li>NUMERIC</li>
<li>INTEGER</li>
<li>REAL (or NUMBER)</li>
<li>BOOLEAN</li>
<li>DATE</li>
<li>XML</li>
<li>XMLLIST</li>
<li>OBJECT</li>
<li>NONE</li>
</ul>
<p>For a full description of the above see the docs: <a title="Data types in Adobe AIR" href="http://livedocs.adobe.com/flex/3/langref/localDatabaseSQLSupport.html#dataTypes">http://livedocs.adobe.com/flex/3/langref/localDatabaseSQLSupport.html#dataTypes</a></p>
<p>I&#8217;m quite excited that you can store an ActionScript Object in a table; I&#8217;ll have to do some experiments to see how good this is.</p>
<img src="http://feeds.feedburner.com/~r/co/samhassan/~4/ucHs_6-cNxo" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://samhassan.co.uk/blog/2009/11/30/sqlite-data-types/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		<feedburner:origLink>http://samhassan.co.uk/blog/2009/11/30/sqlite-data-types/</feedburner:origLink></item>
		<item>
		<title>Lightning fast summary of SQLite in Adobe AIR</title>
		<link>http://feedproxy.google.com/~r/co/samhassan/~3/bCzY-cD_Fh0/</link>
		<comments>http://samhassan.co.uk/blog/2009/11/30/lightning-fast-summary-of-sqlite-in-adobe-air/#comments</comments>
		<pubDate>Mon, 30 Nov 2009 12:45:08 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Air]]></category>
		<category><![CDATA[I like]]></category>
		<category><![CDATA[SQLite]]></category>

		<guid isPermaLink="false">http://samhassan.co.uk/blog/?p=206</guid>
		<description><![CDATA[Peter Elst has posted a video of his 15 minute lightning talk on using SQLite in Adobe AIR

All information should be done like this, fast and to the point, with no extended information to make you switch off.
Then you can go into depth about a certain part in your own time.
I’m currently working on my [...]]]></description>
			<content:encoded><![CDATA[<p><a title="Lightning fast summary of SQLite in Adobe AIR " href="http://www.peterelst.com/blog/2009/11/29/sqlite-in-adobe-air-adobe-devsummit-chennai/" target="_self">Peter Elst has posted a video of his 15 minute lightning talk on using SQLite in Adobe AIR</a></p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="344" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowScriptAccess" value="always" /><param name="src" value="http://www.youtube.com/v/ZMOu-B8zDUw&amp;color1=0xb1b1b1&amp;color2=0xcfcfcf&amp;hl=en_US&amp;feature=player_embedded&amp;fs=1" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="425" height="344" src="http://www.youtube.com/v/ZMOu-B8zDUw&amp;color1=0xb1b1b1&amp;color2=0xcfcfcf&amp;hl=en_US&amp;feature=player_embedded&amp;fs=1" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<p>All information should be done like this, fast and to the point, with no extended information to make you switch off.<br />
Then you can go into depth about a certain part in your own time.</p>
<p>I’m currently working on my second project that takes advantage of SQLite in AIR and this video has highlighted a few aspects I need to look into.</p>
<p>Nice work Peter.</p>
<img src="http://feeds.feedburner.com/~r/co/samhassan/~4/bCzY-cD_Fh0" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://samhassan.co.uk/blog/2009/11/30/lightning-fast-summary-of-sqlite-in-adobe-air/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://samhassan.co.uk/blog/2009/11/30/lightning-fast-summary-of-sqlite-in-adobe-air/</feedburner:origLink></item>
		<item>
		<title>Onedotzero_adventures in motion</title>
		<link>http://feedproxy.google.com/~r/co/samhassan/~3/0q-j1a7dLsc/</link>
		<comments>http://samhassan.co.uk/blog/2009/09/13/onedotzero_adventures-in-motion/#comments</comments>
		<pubDate>Sun, 13 Sep 2009 21:50:08 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[I like]]></category>
		<category><![CDATA[Mobile]]></category>
		<category><![CDATA[Multi Touch]]></category>
		<category><![CDATA[New Tech]]></category>
		<category><![CDATA[Ramblings]]></category>
		<category><![CDATA[Onedotzero]]></category>

		<guid isPermaLink="false">http://samhassan.co.uk/blog/?p=168</guid>
		<description><![CDATA[Yesterday I went down to the BFI Southbank for the onedotzero adventures in motion exhibition.
When I got there a talk had just started “nokia: the art of open source workshop”, which showcased the development potential of the maemo platform for high end Nokia phones,  so I sat in on it not really know what to [...]]]></description>
			<content:encoded><![CDATA[<p>Yesterday I went down to the BFI Southbank for the<a title="onedotzero adventures in motion" href="http://www.onedotzero.com/event.php?id=31216"> onedotzero adventures in motion exhibition</a>.</p>
<p>When I got there a talk had just started “nokia: the art of open source workshop”, which showcased the development potential of the <a title="maemo" href="http://maemo.org/">maemo</a> platform for high end Nokia phones,  so I sat in on it not really know what to expect. It was quite interesting but did get a bit too geeky for me, talking about abstract concepts behind the design of the <a title="nokia n900" href="http://www.nokian900.com/">N900 </a>device rather than showing how to develop for it and more of what can be/has been done with the technology.<br />
It did inspire me to checkout<a title="maemo" href="http://maemo.org/"> maemo.org</a> and I would like to develop for such a device but am put off by it being linux based and by not having a handset to test on. I might have to consider one of the handsets for my next upgrade, especially when they get multi touch support.</p>
<p>The main installation at the exhibition, the “onedotzero identity” was using the N900.</p>
<p><a href="http://samhassan.co.uk/blog/wp-content/uploads/2009/09/DSC00813.JPG"><img class="alignnone size-full wp-image-174" title="onedotzero identity" src="http://samhassan.co.uk/blog/wp-content/uploads/2009/09/DSC00813.JPG" alt="onedotzero identity" width="300" height="225" /></a><a href="http://samhassan.co.uk/blog/wp-content/uploads/2009/09/DSC00811.JPG"><img class="alignnone size-full wp-image-173" title="onedotzero identity" src="http://samhassan.co.uk/blog/wp-content/uploads/2009/09/DSC00811.JPG" alt="onedotzero identity" width="300" height="225" /></a><br />
Here is a demo:</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="400" height="225" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://vimeo.com/moogaloop.swf?clip_id=6417194&amp;server=vimeo.com&amp;show_title=0&amp;show_byline=0&amp;show_portrait=0&amp;color=ff9933&amp;fullscreen=1" /><embed type="application/x-shockwave-flash" width="400" height="225" src="http://vimeo.com/moogaloop.swf?clip_id=6417194&amp;server=vimeo.com&amp;show_title=0&amp;show_byline=0&amp;show_portrait=0&amp;color=ff9933&amp;fullscreen=1" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<p>I had a go on the device in the evening, it was really responsive and a good concept that has given me a few commercial ideas that I might put together a prototype for if I get some time soon.</p>
<p><strong>There were also a couple of other interactive pieces around the BFI:</strong></p>
<p><strong>Glowing Pathfinder Bugs by <a title="Squidsoup" href="http://squidsoup.org/">squidsoup.org</a></strong> was a really nice piece, I had a chat to the guys behind it about the technology; it used a 3d camera with 2 lenses to work out the depth of the sand,  and a projector. I was quite surprised that the application was built in Director, but that’s what the developer was happy with and it could access some native stuff.<br />
Glowing Pathfinder Bugs in action:<br />
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="400" height="300" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://vimeo.com/moogaloop.swf?clip_id=3457605&amp;server=vimeo.com&amp;show_title=0&amp;show_byline=0&amp;show_portrait=0&amp;color=000000&amp;fullscreen=1" /><embed type="application/x-shockwave-flash" width="400" height="300" src="http://vimeo.com/moogaloop.swf?clip_id=3457605&amp;server=vimeo.com&amp;show_title=0&amp;show_byline=0&amp;show_portrait=0&amp;color=000000&amp;fullscreen=1" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<p>There was a multi touch table with the program of events and some related media on it, this was the first multi touch table I have had a chance to play with. I found it a bit hard to control but it was quite responsive, think the main problem was the design of the menu. It wasn’t very stable as I did see flash player 10 crash message.</p>
<p>By far the least impressive and most pointless installation was “graffonic: virtual spraypaint”.  It was basically using <span style="text-decoration: line-through;">an irLED</span> a laser to draw a line, but the worst part was that the display and style changed every 10 seconds so you couldn’t actually draw anything, just a line that was removed from the screen as fast as it appeared.<br />
I have seen much better thought out and produced digital graffiti installations, like a prototype by my friend and colleague <a title="Andrew Myher" href="http://andrewmyhre.com/">Andrew Myher</a> that uses a wii remote as a controller, this is me playing with it:<br />
Digital wall:<br />
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="344" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/Z7gHDhv2s60&amp;hl=en&amp;fs=1&amp;rel=0&amp;color1=0x3a3a3a&amp;color2=0x999999" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="425" height="344" src="http://www.youtube.com/v/Z7gHDhv2s60&amp;hl=en&amp;fs=1&amp;rel=0&amp;color1=0x3a3a3a&amp;color2=0x999999" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<p>I also saw an amazing film preview while I was there: “<a title="Mary and Max" href="http://www.maryandmax.com/">Mary and Max</a>”, its not on general release in the UK but I would recommend seeing it, the onedotzero site describes it perfectly:<br />
“Mary and max is an exceptional film that deals with little people and their big issues in a compassionate and entertaining way. It is funny, warm, moving and sad all at the same time, and will once and for all dispel the notion that animation can only deal with fluffy and trivial issues.”<br />
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="560" height="340" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/MgRjB8PEDkM&amp;hl=en&amp;fs=1&amp;rel=0&amp;color1=0x3a3a3a&amp;color2=0x999999" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="560" height="340" src="http://www.youtube.com/v/MgRjB8PEDkM&amp;hl=en&amp;fs=1&amp;rel=0&amp;color1=0x3a3a3a&amp;color2=0x999999" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<img src="http://feeds.feedburner.com/~r/co/samhassan/~4/0q-j1a7dLsc" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://samhassan.co.uk/blog/2009/09/13/onedotzero_adventures-in-motion/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://samhassan.co.uk/blog/2009/09/13/onedotzero_adventures-in-motion/</feedburner:origLink></item>
		<item>
		<title>Hot Italian Model</title>
		<link>http://feedproxy.google.com/~r/co/samhassan/~3/CwuED0rS3ps/</link>
		<comments>http://samhassan.co.uk/blog/2009/09/13/hot-italian-model/#comments</comments>
		<pubDate>Sun, 13 Sep 2009 21:47:28 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Mashup]]></category>
		<category><![CDATA[Papervision3D]]></category>
		<category><![CDATA[Work]]></category>
		<category><![CDATA[Google Maps]]></category>
		<category><![CDATA[YouTube]]></category>

		<guid isPermaLink="false">http://samhassan.co.uk/blog/?p=183</guid>
		<description><![CDATA[This is the latest website that I have had the pleasure of being part of the development team for. I took the lead on this project, lots of hours were involved in getting this one out the door in time, 70 hours in 7 days, that’s about 9 days work in a week.
I had to [...]]]></description>
			<content:encoded><![CDATA[<p>This is the latest website that I have had the pleasure of being part of the development team for. I took the lead on this project, lots of hours were involved in getting this one out the door in time, 70 hours in 7 days, that’s about 9 days work in a week.</p>
<p>I had to employ some third-party API’s, <a title="Hot Italian Model - store locator" href="http://www.hotitalianmodel.com/index.mvc/store">Google maps for the store locator</a> and <a title="Hot Italian Model - out and about" href="http://www.hotitalianmodel.com/index.mvc/out">YouTube videos in a couple of places</a>.</p>
<p><a href="http://samhassan.co.uk/blog/wp-content/uploads/2009/09/hot.jpg"><img class="alignnone size-medium wp-image-180" title="Hot Italian Model - home" src="http://samhassan.co.uk/blog/wp-content/uploads/2009/09/hot-300x188.jpg" alt="Hot Italian Model - home" width="300" height="188" /></a></p>
<p><a href="http://samhassan.co.uk/blog/wp-content/uploads/2009/09/hot2.jpg"><img class="alignnone size-medium wp-image-181" title="Hot Italian Model - YouTube" src="http://samhassan.co.uk/blog/wp-content/uploads/2009/09/hot2-300x188.jpg" alt="Hot Italian Model - YouTube" width="300" height="188" /></a></p>
<p><a href="http://samhassan.co.uk/blog/wp-content/uploads/2009/09/hot3.jpg"><img class="alignnone size-medium wp-image-182" title="Hot Italian Model - Google Maps" src="http://samhassan.co.uk/blog/wp-content/uploads/2009/09/hot3-300x191.jpg" alt="Hot Italian Model - Google Maps" width="300" height="191" /></a><br />
The site also incorporates the standard social bookmarking functionality, twitter feed, papervision and competition entry forms.</p>
<p><a title="Hot Italian Model" href="http://www.hotitalianmodel.com/">The site is here but I don’t think it will be up for that long.</a></p>
<img src="http://feeds.feedburner.com/~r/co/samhassan/~4/CwuED0rS3ps" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://samhassan.co.uk/blog/2009/09/13/hot-italian-model/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://samhassan.co.uk/blog/2009/09/13/hot-italian-model/</feedburner:origLink></item>
		<item>
		<title>Block Swap – Flash Lite Mobile Game</title>
		<link>http://feedproxy.google.com/~r/co/samhassan/~3/sAHfGbVdOcY/</link>
		<comments>http://samhassan.co.uk/blog/2009/06/03/block-swap-flash-lite-mobile-game/#comments</comments>
		<pubDate>Wed, 03 Jun 2009 11:40:29 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Game]]></category>
		<category><![CDATA[Mobile]]></category>
		<category><![CDATA[Adobe Distribution Player Solution]]></category>
		<category><![CDATA[Block Swap]]></category>
		<category><![CDATA[Developer Challenge]]></category>
		<category><![CDATA[Flash Lite]]></category>
		<category><![CDATA[mobile game]]></category>

		<guid isPermaLink="false">http://samhassan.co.uk/blog/?p=154</guid>
		<description><![CDATA[The past couple of weeks I have been creating a mobile game whenever I get some free time.
I decided to give mobile game development a go for a couple of reasons;

One was to try out The Adobe Distribution Player Solution. Which was a bit of a nightmare to get started with, as I installed the [...]]]></description>
			<content:encoded><![CDATA[<p>The past couple of weeks I have been creating a mobile game whenever I get some free time.</p>
<p>I decided to give mobile game development a go for a couple of reasons;</p>
<ul>
<li>One was to try out <a title="The Adobe Distribution Player Solution" href="http://labs.adobe.com/technologies/distributableplayer/">The Adobe Distribution Player Solution</a>. Which was a bit of a nightmare to get started with, as I installed the software and all the extra SDK&#8217;s, it didn&#8217;t work so I read the guide and found that I had installed the wrong version of one of the SDK&#8217;s, reinstalled everything several times but I couldn&#8217;t create a Symbian certificate. After messing around with that for a couple of days I decided to swap to a clean computer to start from scratch and that worked fine.<br />
I had one other big issue with The Adobe Distribution Player Solution – the flash player wouldn&#8217;t download over Wifi or mobile internet in the UK, I tried it on Nokia N95 and HTC Touch Diamond with no luck. Has anyone got the over the air download to work??</li>
<li>Another was to enter <a title="The Flash Lite Developer Challenge" href="http://www.flashlitedeveloperchallenge.com/">The Flash Lite Developer Challenge</a>, which I have done but I don&#8217;t think I have much chance as the game is very basic.</li>
<li>And also because I play a lot of mobile games and have had an idea for a game for some time now. This however is just one abstracted part of the final game I have in mind and if I keep going I should have a final version in about 6 months (I have already started developing a second generation of this game).</li>
</ul>
<h2>This is what the game looks like :</h2>
<p><a href="http://samhassan.co.uk/blog/wp-content/uploads/2009/06/blockswap-title.jpg"><img class="alignnone size-full wp-image-156" title="Block Swap title screen" src="http://samhassan.co.uk/blog/wp-content/uploads/2009/06/blockswap-title.jpg" alt="Block Swap title screen" width="240" height="320" /> </a><a href="http://samhassan.co.uk/blog/wp-content/uploads/2009/06/809_adobedevicecentral_snapshot_000001_0.png"><img class="alignnone size-full wp-image-159" title="Help screen" src="http://samhassan.co.uk/blog/wp-content/uploads/2009/06/809_adobedevicecentral_snapshot_000001_0.png" alt="Help screen" width="240" height="320" /></a></p>
<p><a href="http://samhassan.co.uk/blog/wp-content/uploads/2009/06/level1.jpg"><img class="alignnone size-full wp-image-157" title="level1" src="http://samhassan.co.uk/blog/wp-content/uploads/2009/06/level1.jpg" alt="level1" width="240" height="320" /></a> <a href="http://samhassan.co.uk/blog/wp-content/uploads/2009/06/level4.jpg"><img class="alignnone size-full wp-image-158" title="level4" src="http://samhassan.co.uk/blog/wp-content/uploads/2009/06/level4.jpg" alt="level4" width="240" height="318" /></a></p>
<p>The Idea I thought was simple and too the instructions but some people had a little trouble grasping the idea, you basically join up the small blocks around the outside with block of that colour. Each level has one solution so if the level doesn&#8217;t end you haven&#8217;t completed the puzzle.</p>
<p>I have tested the game via The Adobe Distribution Player Solution on the Nokia N95 and HTC Touch Diamond. The game has also been tested in the Flash Lite player 2.1 on the Sony Ericsson C905.</p>
<h2>You can download it here &#8211; Please select you download form the options below :</h2>
<p><a title="Block Swap S60 download" href="http://www.samhassan.co.uk/swfs/mobile/blockswap/blockSwap_signed.sis"><strong>Mobile Platform: S60: Download</strong></a><br />
Nokia 6120c<br />
Nokia E51<br />
Nokia E65<br />
Nokia E71<br />
Nokia N73<br />
Nokia N78<br />
Nokia N82<br />
Nokia N95<br />
Nokia N95 8GB<br />
Nokia N81<br />
Nokia N81 8GB<br />
Nokia N96</p>
<p><a title="Block Swap Windows Mobile download" href="http://www.samhassan.co.uk/swfs/mobile/blockswap/blockSwap.cab"><strong>Mobile Platform: Windows Mobile: Download</strong></a><br />
HTC S740<br />
HTC HERA11000<br />
HTC S621<br />
HTC Touch Diamond P3700<br />
HTC Kaiser<br />
Motorola MotoQ<br />
Motorola MotoQ Norman<br />
Motorola MotoQ9m<br />
Palm Treo 700w<br />
Palm Treo 750<br />
Palm Treo 850<br />
HTC Polaris<br />
Samsung SGH-i607<br />
Samsung SGH-i617<br />
Samsung SGH-i780<br />
HTC T-Mobile Dash</p>
<p><a title="Block Swap All phones download" href="http://www.samhassan.co.uk/swfs/mobile/blockswap/blockSwap.swf"><strong>All other phones &#8211; swf only</strong></a><br />
If your phone has flash lite 2.0 or above you can use this file, however it will only show up in your file system and not in the game menu (will only work on a mobile device).</p>
<p>Please not that when you download the applicable file above (not the swf only version) and install it you will be requested to download Adobe Flash Lite.<br />
This download will be done over your mobile internet access, if this is not successful please follow the links below (you may need to download the file on a computer and transfer to your mobile)</p>
<ul>
<li><a href="http://download.macromedia.com/pub/labs/distributableplayer/distributableplayer_flashlite_wm5ppc_en.zip">Download the Developer edition for Windows Mobile 5.0 Pocket PC</a> (ZIP, 930 KB)</li>
<li><a href="http://download.macromedia.com/pub/labs/distributableplayer/distributableplayer_flashlite_wm5sp_en.zip">Download the Developer edition for Windows Mobile 5.0 Smartphone</a> (ZIP, 926 KB)</li>
<li><a href="http://download.macromedia.com/pub/labs/distributableplayer/distributableplayer_flashlite_wm6_en.zip">Download the Developer edition for Windows Mobile 6 Professional</a> (ZIP, 928 KB)</li>
<li><a href="http://download.macromedia.com/pub/labs/distributableplayer/distributableplayer_flashlite_s60_en.sis">Download the Developer edition for S60 devices </a>(SIS, 675 KB)</li>
</ul>
<p>Enjoy!</p>
<img src="http://feeds.feedburner.com/~r/co/samhassan/~4/sAHfGbVdOcY" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://samhassan.co.uk/blog/2009/06/03/block-swap-flash-lite-mobile-game/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://samhassan.co.uk/blog/2009/06/03/block-swap-flash-lite-mobile-game/</feedburner:origLink></item>
	</channel>
</rss>
