<?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>AJBIS is an Illustrator + Designer + Developer »&#160;</title>
	<atom:link href="http://www.ajbis.co.uk/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.ajbis.co.uk</link>
	<description>Portfolio and developer musings</description>
	<lastBuildDate>Sat, 27 Apr 2013 16:15:15 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	
		<item>
		<title>21 day sketching challenge</title>
		<link>http://www.ajbis.co.uk/2013/02/23/21-day-sketching-challenge/</link>
		<comments>http://www.ajbis.co.uk/2013/02/23/21-day-sketching-challenge/#comments</comments>
		<pubDate>Sat, 23 Feb 2013 14:50:11 +0000</pubDate>
		<dc:creator>ajbis</dc:creator>
				<category><![CDATA[Illustrator]]></category>
		<category><![CDATA[Accordion]]></category>
		<category><![CDATA[Anchor]]></category>
		<category><![CDATA[Animals]]></category>
		<category><![CDATA[Badger]]></category>
		<category><![CDATA[Bone]]></category>
		<category><![CDATA[Bunny]]></category>
		<category><![CDATA[Chick]]></category>
		<category><![CDATA[Cute]]></category>
		<category><![CDATA[Doddo]]></category>
		<category><![CDATA[Dog]]></category>
		<category><![CDATA[Easter egg]]></category>
		<category><![CDATA[Goldfish]]></category>
		<category><![CDATA[Honey bear]]></category>
		<category><![CDATA[Kitten]]></category>
		<category><![CDATA[Monkey]]></category>
		<category><![CDATA[Octopus]]></category>
		<category><![CDATA[Paper]]></category>
		<category><![CDATA[Pencil]]></category>
		<category><![CDATA[Quokka]]></category>
		<category><![CDATA[Rhino]]></category>
		<category><![CDATA[Robin]]></category>
		<category><![CDATA[Seahorse]]></category>
		<category><![CDATA[Sketching]]></category>
		<category><![CDATA[Snake]]></category>
		<category><![CDATA[Squirrel]]></category>
		<category><![CDATA[Stork]]></category>
		<category><![CDATA[Turtle]]></category>
		<category><![CDATA[Weasel]]></category>
		<category><![CDATA[Worm]]></category>

		<guid isPermaLink="false">http://www.ajbis.co.uk/?p=1334</guid>
		<description><![CDATA[2013 is all about 21 day challenges. Each month has a goal to do something every day for 21 days. In January I did a Treehouse badge a day. For February the goal was to draw a cute animal every day. Here are the results! I carried around an A6 spiral bound notebook of nice [...]]]></description>
				<content:encoded><![CDATA[<div id="attachment_1347" class="wp-caption alignnone" style="width: 670px"><a href="http://www.ajbis.co.uk/wp-content/uploads/2013/02/FebSketches_Feature.jpg"><img src="http://www.ajbis.co.uk/wp-content/uploads/2013/02/FebSketches_Feature.jpg" alt="Final three sketches - monkey playing accordion, honey bear with&hellip; well honey &amp; a little seahorse" width="660" class="size-full wp-image-1347" /></a><p class="wp-caption-text">Final three sketches &#8211; monkey playing accordion, honey bear with&hellip; well honey &amp; a little seahorse</p></div>
<p>2013 is all about 21 day challenges. Each month has a goal to do something every day for 21 days. In January I did a <a href="http://teamtreehouse.com/">Treehouse</a> badge a day. For February the goal was to draw a cute animal every day. Here are the results!</p>
<p><span id="more-1334"></span></p>
<div class="clearfix"></div>
<div id="attachment_1348" class="wp-caption alignnone" style="width: 670px"><a href="http://www.ajbis.co.uk/wp-content/uploads/2013/02/FebSketches_Set3.jpg"><img src="http://www.ajbis.co.uk/wp-content/uploads/2013/02/FebSketches_Set3.jpg" alt="A worm, goldfish, robin red breast, doddo, turtle &amp; quokka!" width="660" class="size-full wp-image-1348" /></a><p class="wp-caption-text">A worm, goldfish, robin red breast, doddo, turtle &amp; quokka!</p></div>
<p>I carried around an A6 spiral bound notebook of nice paper and a pencil. The very first, octopus on an anchor, was done on the 55 bus. That&rsquo;s why it&rsquo;s a bit wobbly!</p>
<div class="clearfix"></div>
<div id="attachment_1354" class="wp-caption alignnone" style="width: 670px"><a href="http://www.ajbis.co.uk/wp-content/uploads/2013/02/FebSketches_Set2.jpg"><img src="http://www.ajbis.co.uk/wp-content/uploads/2013/02/FebSketches_Set2.jpg" alt="A stork delivering baby, beaver, a lovely snake, chick in egg, baby rhino and a weasel!" width="660" class="size-full wp-image-1354" /></a><p class="wp-caption-text">A stork delivering baby, beaver, a lovely snake, chick in egg, baby rhino and a weasel!</p></div>
<p>I think I&rsquo;ll vector up my favourites and post them to <a href="http://www.istockphoto.com/">istockphoto</a>. All flat colour like the cute baby <a href="http://www.istockphoto.com/stock-illustration-18164458-cute-baby-bat-asleep-on-pumpkin.php">bat</a> on a pumpkin and the little <a href="http://www.istockphoto.com/stock-illustration-19942450-little-owl-reading-a-book.php?st=59d0dc0">owl</a> reading a book (That reminds me&#8230; I&rsquo;ll post about that one soon). They can be a set :-)</p>
<div class="clearfix"></div>
<div id="attachment_1356" class="wp-caption alignnone" style="width: 670px"><a href="http://www.ajbis.co.uk/wp-content/uploads/2013/02/FebSketches_Set1.jpg"><img src="http://www.ajbis.co.uk/wp-content/uploads/2013/02/FebSketches_Set1.jpg" alt="A badger with paint brush (go figure?), squirrel, dog &amp; bone, kitten, bunny with giant Easter egg, octopus on an anchor!" width="660" class="size-full wp-image-1356" /></a><p class="wp-caption-text">A badger with paint brush (go figure?), squirrel, dog &amp; bone, kitten, bunny with giant Easter egg, octopus on an anchor!</p></div>
<p>The bunny hugging an Easter egg and tiny chick in half a shell can be first ready for Easter. Watch this space.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ajbis.co.uk/2013/02/23/21-day-sketching-challenge/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Peugeot Dutch Facebook Page with JQuery</title>
		<link>http://www.ajbis.co.uk/2013/01/05/peugeot-dutch-facebook-page-with-jquery/</link>
		<comments>http://www.ajbis.co.uk/2013/01/05/peugeot-dutch-facebook-page-with-jquery/#comments</comments>
		<pubDate>Sat, 05 Jan 2013 21:56:16 +0000</pubDate>
		<dc:creator>ajbis</dc:creator>
				<category><![CDATA[Developer]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Facebook]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[Peugeot]]></category>
		<category><![CDATA[TBG]]></category>

		<guid isPermaLink="false">http://www.ajbis.co.uk/?p=1307</guid>
		<description><![CDATA[In November 2012 I left an amazing bunch of people and a comfortable job at VCCP to start freelancing. Another ex-VCCP’er Sarah Bainbridge said come and help out at TBG Digital. They were busy building Facebook pages in the run up to Christmas.   Peugeot Carbon Offsetter The guys and gals at TBG had an idea. [...]]]></description>
				<content:encoded><![CDATA[<div id="attachment_1321" class="wp-caption alignnone" style="width: 670px"><a href="http://www.ajbis.co.uk/2013/01/05/peugeot-dutch-facebook-page-with-jquery/peugeotcarbonoffsetter_feature/" rel="attachment wp-att-1321"><img src="http://www.ajbis.co.uk/wp-content/uploads/2013/01/PeugeotCarbonOffsetter_Feature.jpg" alt="Peugeot’s Carbon Offsetter in action" width="660" class="size-full wp-image-1321" /></a><p class="wp-caption-text">Peugeot’s Carbon Offsetter in action</p></div>
<p>In November 2012 I left an amazing bunch of people and a comfortable job at <a href="http://www.vccp.com/">VCCP</a> to start freelancing. Another ex-VCCP’er Sarah Bainbridge said come and help out at <a href="http://www.tbgdigital.com/">TBG Digital</a>. They were busy building Facebook pages in the run up to Christmas.</p>
<p><span id="more-1307"></span></p>
<p> </p>
<h2>Peugeot Carbon Offsetter</h2>
<div class="clearfix"></div>
<div id="attachment_1320" class="wp-caption alignnone" style="width: 670px"><a href="http://www.ajbis.co.uk/2013/01/05/peugeot-dutch-facebook-page-with-jquery/peugeotcarbonoffsetter_facebook/" rel="attachment wp-att-1320"><img src="http://www.ajbis.co.uk/wp-content/uploads/2013/01/PeugeotCarbonOffsetter_Facebook.jpg" alt="Peugoet Nederlands CO2-Compensator Page" width="660" class="size-full wp-image-1320" /></a><p class="wp-caption-text">Peugoet Nederlands CO2-Compensator Page</p></div>
<p>The guys and gals at TBG had an idea. Peugeot would offset the carbon footprint of those who ‘liked’ the page. Drawing comparisons to the green friendly efforts they are putting into their cars. A dynamic and informative Facebook page would show users how much was offset so far and link them to more information.</p>
<div class="clearfix"></div>
<div id="attachment_1322" class="wp-caption alignnone" style="width: 670px"><a href="http://www.ajbis.co.uk/2013/01/05/peugeot-dutch-facebook-page-with-jquery/peugeotcarbonoffsetter_reveal/" rel="attachment wp-att-1322"><img src="http://www.ajbis.co.uk/wp-content/uploads/2013/01/PeugeotCarbonOffsetter_Reveal.jpg" alt="The BIG reveal. Cue sliding PNGs!" width="660" class="size-full wp-image-1322" /></a><p class="wp-caption-text">The BIG reveal. Cue sliding PNGs!</p></div>
<p> </p>
<h2>JQuery all the way</h2>
<p>Originally this Facebook page was to be in <a href="http://www.adobe.com/uk/products/flash.html">Adobe Flash</a>, but with a small budget it was decided that HTML &#038; CSS would be best. The signed off designs however look like they should move. I felt it wouldn t cut it with users if things were static. This page looked like it should move. JQuery and a bunch of plugins were the answer for a quick development time. Here’s a list of the tools* used:</p>
<ul>
<li><a href="http://jquery.com/">JQuery</a> JavaScript Library</li>
<li><a href="http://jqueryui.com/">JQuery UI</a>, required by some other tools</li>
<li>JQuery Image Loader</li>
<li><a href="http://ricostacruz.com/jquery.transit/">JQuery Transit</a>, mostly for rotating stuff</li>
</ul>
<p class="note">* We added <a href="http://raphaeljs.com/" title="Raphaël JavaScript Library">Raphaël</a> later to rotate the carbon offset dial in Internet Explorer 8.</p>
<div class="clearfix"></div>
<div id="attachment_1319" class="wp-caption alignnone" style="width: 670px"><a href="http://www.ajbis.co.uk/2013/01/05/peugeot-dutch-facebook-page-with-jquery/peugeotcarbonoffsetter_dial/" rel="attachment wp-att-1319"><img src="http://www.ajbis.co.uk/wp-content/uploads/2013/01/PeugeotCarbonOffsetter_Dial.jpg" alt="Peugoet’s Facebook carbon offset dial!" width="660" class="size-full wp-image-1319" /></a><p class="wp-caption-text">Peugoet’s Facebook carbon offset dial!</p></div>
<p> </p>
<p>You can see the Peugeot Carbon Offsetter <a href="http://www.facebook.com/peugeotnederland/app_451624728233019" title="Peugeot Carbon Offsetter, Facebook">here</a>. Or if you prefer not to visit Facebook there’s a version without all the FB code <a href="http://www.ajbis.co.uk/ajbis2012_folio/PeugeotCarbonOffsetter//confirmed.html">here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ajbis.co.uk/2013/01/05/peugeot-dutch-facebook-page-with-jquery/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>&#8216;B&#8217; is for Bull!</title>
		<link>http://www.ajbis.co.uk/2013/01/03/b-is-for-bull/</link>
		<comments>http://www.ajbis.co.uk/2013/01/03/b-is-for-bull/#comments</comments>
		<pubDate>Thu, 03 Jan 2013 19:29:09 +0000</pubDate>
		<dc:creator>ajbis</dc:creator>
				<category><![CDATA[Illustrator]]></category>
		<category><![CDATA[Adobe Illustrator]]></category>
		<category><![CDATA[Alphabet Animals]]></category>
		<category><![CDATA[Bull]]></category>
		<category><![CDATA[Flare]]></category>
		<category><![CDATA[iStockPhoto]]></category>
		<category><![CDATA[Salesperson]]></category>
		<category><![CDATA[Sketchbook Pro]]></category>
		<category><![CDATA[Vector]]></category>

		<guid isPermaLink="false">http://www.ajbis.co.uk/?p=1294</guid>
		<description><![CDATA[This is the second in my series of Alphabet Animals. It plays on the well known saying, &#8220;Like a bull in a China shop!&#8221;, but with a twist. You can see the first one for &#8216;A&#8217;&#160;here. &#160; Bull Salesperson I wanted this bull to feel right at home in the shop. There&#8217;s plenty of space [...]]]></description>
				<content:encoded><![CDATA[<div id="attachment_1301" class="wp-caption alignnone" style="width: 670px"><a href="http://www.ajbis.co.uk/2013/01/03/b-is-for-bull/bullsalesperson_feature/" rel="attachment wp-att-1301"><img src="http://www.ajbis.co.uk/wp-content/uploads/2013/01/BullSalesperson_Feature.jpg" alt="&quot;B&quot; for Bull, &quot;S&quot; for Salesperson" width="660" class="size-full wp-image-1301" /></a><p class="wp-caption-text">&quot;B&quot; for Bull, &quot;S&quot; for Salesperson</p></div>
<p>This is the second in my series of Alphabet Animals. It plays on the well known saying, &ldquo;Like a bull in a China shop!&rdquo;, but with a twist. You can see the first one for &lsquo;A&rsquo;&nbsp;<a href="http://www.ajbis.co.uk/2012/09/21/a-z-alphabet-animals/" title="Albatross Quartermaster">here</a>. </p>
<p><span id="more-1294"></span></p>
<p>&nbsp;</p>
<h2>Bull Salesperson</h2>
<p>I wanted this bull to feel right at home in the shop. There&rsquo;s plenty of space so he won&rsquo;t knock anything over (Maybe it&rsquo; a Department Store). He&rsquo; prissy, well turned out, and dressed to match the d&eacute;cor. And if that&rsquo;s not enough to get that accross I&rsquo;ve got him doing that most delicate of tasks, wrapping!</p>
<div class="clearfix"></div>
<div id="attachment_1300" class="wp-caption alignnone" style="width: 670px"><a href="http://www.ajbis.co.uk/2013/01/03/b-is-for-bull/bullsalesperson_full/" rel="attachment wp-att-1300"><img src="http://www.ajbis.co.uk/wp-content/uploads/2013/01/BullSalesperson_Full.jpg" alt="Bull Salesperson poster" width="660" class="size-full wp-image-1300" /></a><p class="wp-caption-text">Bull Salesperson poster</p></div>
<p>Unlike the Albatross drawing which is a direct &lsquo;front&nbsp;on&rsquo; scene, this scene is looking down like CCTV (which fits with the shop concept). I feel this help promote the mildness of our friend the bull. It also shows off all the items of the counter, <a href="http://en.wikipedia.org/wiki/Pierre_Bonnard" title="Pierre Bonnard, Wikipedia">Bonnard</a>&nbsp;styley!</p>
<p>&nbsp;</p>
<h2>A bit about the process</h2>
<p>This follows my usual vector illustration workflow. A detailed pencil sketch in <a href="http://www.autodesk.co.uk/adsk/servlet/pc/index?siteID=452932&#038;id=16038973" title="Autodesk&rsquo;s Sketching, Painting and Drawing App">Sketchbook Pro</a>, then into <a href="http://www.adobe.com/uk/products/illustrator.html" title="Adobe&rsquo;s vector drawing app">Adobe Illustrator</a> for path making and colours.</p>
<p>Final illustration, before the <a href="http://flareapp.com/" title="Add effects and textures to your photos">Flare</a> &lsquo;old poster&rsquo; effect, follows iStockPhoto&rsquo;s strict no transparency policy (saving to Illustrator&nbsp;8 EPS). This made the glass front of the counter an interesting challenge! There&rsquo;s no masks, all the shapes layering up to create the impression of depth inside the&nbsp;cabinet.</p>
<p>The final vector is available to buy on <a href="http://www.istockphoto.com/stock-illustration-16120780-a-z-animal-bull-sales-person.php"title="A-Z Animal, Bull Salesperson stock vector available to buy">iStockPhoto</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ajbis.co.uk/2013/01/03/b-is-for-bull/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Taking a line for a walk</title>
		<link>http://www.ajbis.co.uk/2012/12/28/taking-a-line-for-a-walk/</link>
		<comments>http://www.ajbis.co.uk/2012/12/28/taking-a-line-for-a-walk/#comments</comments>
		<pubDate>Fri, 28 Dec 2012 22:07:36 +0000</pubDate>
		<dc:creator>ajbis</dc:creator>
				<category><![CDATA[Designer]]></category>
		<category><![CDATA[Developer]]></category>
		<category><![CDATA[Illustrator]]></category>
		<category><![CDATA[Adobe Flash]]></category>
		<category><![CDATA[Animation]]></category>
		<category><![CDATA[AS3]]></category>
		<category><![CDATA[Line Drawings]]></category>
		<category><![CDATA[O2]]></category>
		<category><![CDATA[Touch screen]]></category>

		<guid isPermaLink="false">http://www.ajbis.co.uk/?p=1144</guid>
		<description><![CDATA[Before Niggles &#38; Narks, in 2009, VCCP created an interim look and feel for O2&#8217;s broadband offering. This was fairly much a scribbly line drawing of a house with an equally scribbly headline. O2 wanted to show their broadband deals in-store, so I was teamed with a freelance Copywriter (Hi Dianne :-)), and we went [...]]]></description>
				<content:encoded><![CDATA[<div id="attachment_1272" class="wp-caption alignnone" style="width: 670px"><a href="http://www.ajbis.co.uk/2012/12/28/taking-a-line-for-a-walk/o2homebroadband_tv/" rel="attachment wp-att-1272"><img src="http://www.ajbis.co.uk/wp-content/uploads/2012/10/O2HomeBroadband_TV.jpg" alt="O2 Home Broadband Start screen" width="660" class="size-full wp-image-1272" /></a><p class="wp-caption-text">O2 Home Broadband Start screen</p></div>
<p>Before <a href="http://www.youtube.com/watch?v=JEZTvnX1n2k">Niggles &amp; Narks</a>, in 2009, <a href="http://www.vccp.com">VCCP</a> created an interim look and feel for O2&rsquo;s broadband offering. This was fairly much a scribbly line drawing of a house with an equally scribbly headline. O2 wanted to show their broadband deals in-store, so I was teamed with a freelance Copywriter (Hi Dianne :-)), and we went about creating a sequence of screens for 19&quot; touchscreens. Expanding and animating this simple&nbsp;identity.</p>
<p><span id="more-1144"></span></p>
<p>&nbsp;</p>
<h2>So what the idea?</h2>
<p>Seeing that simple line drawing in the poster reminded me off a cartoon I saw growing up. With a bit of searching I found it on YouTube <a href="http://www.youtube.com/watch?v=RglhWkcqolo" title="La Linea">here</a>. It was the way the character animated out from the single line. What if our O2 house, and other broadband related items, formed from a single scribbly line as the viewer selected different screens. What these scribbly lines needed to be vibrant was a hand-drawn shake like <a href="http://www.youtube.com/watch?v=I4aVXeDg3U4" title="YouTube">Roobarb And&nbsp;Custard</a>.</p>
<div class="clearfix"></div>
<div id="attachment_1251" class="wp-caption alignnone" style="width: 930px"><a href="http://www.ajbis.co.uk/2012/12/28/taking-a-line-for-a-walk/o2homebroadband_switch/" rel="attachment wp-att-1251"><img src="http://www.ajbis.co.uk/wp-content/uploads/2012/10/O2HomeBroadband_Switch.jpg" alt="Switch Easily scamp with light switch line drawing" width="920" height="560" class="size-full wp-image-1251" /></a><p class="wp-caption-text">Switch Easily scamp with light switch line&nbsp;drawing</p></div>
<p>Dianne and I sat and mapped out some ideas for the screens. Then I scamped them up. A heart for home, a beatbox for music, space invaders for games and a light switch for&nbsp;&lsquo;switching.&rsquo;</p>
<div class="clearfix"></div>
<div id="attachment_1249" class="wp-caption alignnone" style="width: 670px"><a href="http://www.ajbis.co.uk/2012/12/28/taking-a-line-for-a-walk/o2homebroadband_drawings/" rel="attachment wp-att-1249"><img src="http://www.ajbis.co.uk/wp-content/uploads/2012/10/O2HomeBroadband_Drawings.jpg" alt="Home, music, games and WiFi line drawings" width="660" class="size-full wp-image-1249" /></a><p class="wp-caption-text">Home, music, games and WiFi line drawings</p></div>
<p>&nbsp;</p>
<h2>Screen design</h2>
<p>Screens were designed specifically for 1280x1024px resolution (Although I did create some flexibility in Flash as I was sure this would eventually be needed on a different size screen!).</p>
<div class="clearfix"></div>
<div id="attachment_1267" class="wp-caption alignnone" style="width: 670px"><a href="http://www.ajbis.co.uk/2012/12/28/taking-a-line-for-a-walk/o2homebroadband_music/" rel="attachment wp-att-1267"><img src="http://www.ajbis.co.uk/wp-content/uploads/2012/10/O2HomeBroadband_Music.jpg" alt="O2 Home Broadband Start screen with boombox" width="660" class="size-full wp-image-1267" /></a><p class="wp-caption-text">O2 Home Broadband Start screen with boombox</p></div>
<p>The scribbly line remains at the same level throughout. The hand-drawn aniation effect was also applied to the borders of buttons to help destinguish between content and interaction points.</p>
<div class="clearfix"></div>
<p><div id="attachment_1266" class="wp-caption alignnone" style="width: 670px"><a href="http://www.ajbis.co.uk/2012/12/28/taking-a-line-for-a-walk/o2homebroadband_find/" rel="attachment wp-att-1266"><img src="http://www.ajbis.co.uk/wp-content/uploads/2012/10/O2HomeBroadband_Find.jpg" alt="Find Your Perfect Package screen" width="660" class="size-full wp-image-1266" /></a><p class="wp-caption-text">Find Your Perfect Package screen</p></div><br />
<div id="attachment_1268" class="wp-caption alignnone" style="width: 670px"><a href="http://www.ajbis.co.uk/2012/12/28/taking-a-line-for-a-walk/o2homebroadband_pro/" rel="attachment wp-att-1268"><img src="http://www.ajbis.co.uk/wp-content/uploads/2012/10/O2HomeBroadband_Pro.jpg" alt="Pro Homebroadband package with badge in corner" width="660" class="size-full wp-image-1268" /></a><p class="wp-caption-text">Pro Homebroadband package with badge in corner</p></div></p>
<p>To add to the hand-drawn &lsquo;feel&rsquo; I added chalk board style &lsquo;rubbing away&rsquo; transitions between screens.</p>
<div class="clearfix"></div>
<div id="attachment_1269" class="wp-caption alignnone" style="width: 670px"><a href="http://www.ajbis.co.uk/2012/12/28/taking-a-line-for-a-walk/o2homebroadband_scrub/" rel="attachment wp-att-1269"><img src="http://www.ajbis.co.uk/wp-content/uploads/2012/10/O2HomeBroadband_Scrub.jpg" alt="&lsquo;Rubbing away&rsquo; transition between screens" width="660" class="size-full wp-image-1269" /></a><p class="wp-caption-text">&lsquo;Rubbing away&rsquo; transition between screens</p></div>
<p>&nbsp;</p>
<h2>Using BitmapData to &lsquo;Rub away&rsquo; the screen</h2>
<p>To create the chalk board style &lsquo;rub away&rsquo; tranisition I painted 48 PNGs using a rough brush in <a href="http://www.corel.com/corel/product/index.jsp?pid=prod4030123">Coral Painter</a>. These PNGs were then imported into Adobe Flash as a sequence of keyframes in MovieClip <code>MaskMC</code>. When the the user changes screens the function <code>updateAndSwapToBitmap</code> and the current content is stores as <code>BitmapData</code>.</p>
<pre>
&hellip;
private var _page:Page;
private var _maskRef:MaskMC;
private var _canvas:BitmapData;
private var _ref:BitmapData;
private var _bitmap:Bitmap;
private var _mask:Bitmap;

public function updateAndSwapToBitmap():void
{
  clearRefBitmap();
  _ref.draw(_page);
  _bitmap.bitmapData = _ref;
  _bitmap.smoothing = true;
  _page.visible = false;
  _maskRef.wipe(false);	
}

private function clearRefBitmap():void
{
  _bitmap.bitmapData.dispose();
  _bitmap.visible = true;
  _ref.dispose();
  _ref = null;
  _ref = new BitmapData(1280, 1024, true, 0x00000000);	
}
&hellip;
</pre>
<p>The mask MovieClip when activivated by the <code>wipe</code> function will play through the frame updating the <code>BitmapData</code> mask as it goes. When the playhead reaches the last frame the content is swapped by calling <code>swapToPageMC</code> and the playhead reversed to reveal the new&nbsp;screen.</p>
<pre>
&hellip;
public function wipe(forward:Boolean):void
{
  _forward = forward;
  addEventListener(Event.ENTER_FRAME, onEnterFrame);
  (_forward) ? nextFrame() : prevFrame();
	
}

private function onEnterFrame(e:Event):void
{
  _loc.updateMask();
  if (currentFrame==totalFrames)
  {
    removeEventListener(Event.ENTER_FRAME, onEnterFrame);
    _loc.swapToPageMC();
  }
  else if (this.currentFrame==1)
  {
    removeEventListener(Event.ENTER_FRAME, onEnterFrame);
    dispatchEvent(new WaitForMask(WaitForMask.WAIT_FOR_MASK));  
  }
  else
  {
    (_forward) ? nextFrame() : prevFrame();
  } 
}
&hellip;
public function updateMask():void
{
  _canvas.fillRect(_canvas.rect, 0);
  _canvas.draw(_maskRef);
  _mask.bitmapData.fillRect(_canvas.rect, 0);
  _mask.bitmapData = _canvas;
}
&hellip;
</pre>
<p>Finally. When the playhead has returned to frame one the custom event <code>WaitForMask</code> is fired informing ther presentation that it is to return to its interactive state and&nbsp;continue.</p>
<p>&nbsp;</p>
<p>If you have Adobe Flash Player you can see a demo of the touch screen presentation <a href="http://www.ajbis.co.uk/ajbis2012_folio/O2HomeBroadband/O2HomeBroadbandDemo.swf" title="O2 Home Broadband Demo">here</a>. Remember it&rsquo;s designed for fullscreen and local PC use, so please be patient while it loads. :-)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ajbis.co.uk/2012/12/28/taking-a-line-for-a-walk/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Halloween can be cute</title>
		<link>http://www.ajbis.co.uk/2012/10/27/halloween-can-be-cute/</link>
		<comments>http://www.ajbis.co.uk/2012/10/27/halloween-can-be-cute/#comments</comments>
		<pubDate>Sat, 27 Oct 2012 21:06:33 +0000</pubDate>
		<dc:creator>ajbis</dc:creator>
				<category><![CDATA[Illustrator]]></category>
		<category><![CDATA[Adobe Illustrator]]></category>
		<category><![CDATA[Bat]]></category>
		<category><![CDATA[Cute]]></category>
		<category><![CDATA[Halloween]]></category>
		<category><![CDATA[iStockPhoto]]></category>
		<category><![CDATA[Sketchbook Pro]]></category>
		<category><![CDATA[Vector]]></category>

		<guid isPermaLink="false">http://www.ajbis.co.uk/?p=1196</guid>
		<description><![CDATA[In 2011 I draw a little bat asleep on pumpkin for Halloween. One year on I thought I&#8217;d add it here :-). I only used flat colour and no outlines. It&#8217;s a style I will be using more of in the future. Simple, clean shapes that lean towards being a bit geometric. Keeping it super [...]]]></description>
				<content:encoded><![CDATA[<div id="attachment_1207" class="wp-caption alignnone" style="width: 670px"><a href="http://www.ajbis.co.uk/wp-content/uploads/2012/10/CuteBatOnPumpkin_Vector.jpg"><img src="http://www.ajbis.co.uk/wp-content/uploads/2012/10/CuteBatOnPumpkin_Vector.jpg" alt="Happy Halloween, a cute little bat asleep on a pumpkin ;-)" title="Happy Halloween, a cute little bat asleep on a pumpkin ;-)" width="660" class="size-full wp-image-1207" /></a><p class="wp-caption-text">Happy Halloween, a cute little bat asleep on a pumpkin ;-)</p></div>
<p>In 2011 I draw a little bat asleep on  pumpkin for Halloween. One year on I thought I&rsquo;d add it here :-). I only used flat colour and no outlines. It&rsquo;s a style I will be using more of in the future. Simple, clean shapes that lean towards being a bit geometric. Keeping it super cute. An animal and a&nbsp;prop.</p>
<p><span id="more-1196"></span></p>
<p>Ideas were drawn up in <a href="http://www.autodesk.co.uk/adsk/servlet/pc/index?siteID=452932&#038;id=16038973" title="Autodesk">Sketchbook Pro</a>. Then recreated in <a href="http://www.adobe.com/uk/products/illustrator.html">Adobe Illustrator</a> with mostly Pen tool and Path Finder options. The lovely wobbly line for the bat&#8217;s fur was done with the Distort &amp; Transform &gt; Zig&nbsp;Zag&hellip; filter.</p>
<div class="clearfix"></div>
<div id="attachment_1206" class="wp-caption alignnone" style="width: 670px"><a href="http://www.ajbis.co.uk/wp-content/uploads/2012/10/CuteBatOnPumpkin_Sktech.jpg"><img src="http://www.ajbis.co.uk/wp-content/uploads/2012/10/CuteBatOnPumpkin_Sktech.jpg" alt="Sketched out in Autodesk Sketchbook Pro" title="Sketched out in Autodesk Sketchbook Pro" width="660" class="size-full wp-image-1206" /></a><p class="wp-caption-text">Sketched out in Autodesk Sketchbook Pro</p></div>
<p>&nbsp;</p>
<p>I put this up on iStockPhoto, so it&rsquo;s available for for use for a wee small fee. Bwoowahaa! &hellip; Looks like Halloween got the better of me there. Find it&nbsp;<a href="" title="iStockPhoto, Cute Baby Bat Asleep on Pumpkin">here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ajbis.co.uk/2012/10/27/halloween-can-be-cute/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Priority Sports YouTube Masthead</title>
		<link>http://www.ajbis.co.uk/2012/10/07/priority-sports-youtube-masthead/</link>
		<comments>http://www.ajbis.co.uk/2012/10/07/priority-sports-youtube-masthead/#comments</comments>
		<pubDate>Sun, 07 Oct 2012 14:07:54 +0000</pubDate>
		<dc:creator>ajbis</dc:creator>
				<category><![CDATA[Developer]]></category>
		<category><![CDATA[Adobe Flash]]></category>
		<category><![CDATA[AS3]]></category>
		<category><![CDATA[Banners]]></category>
		<category><![CDATA[DoubleClick]]></category>
		<category><![CDATA[O2]]></category>
		<category><![CDATA[Priority Sports]]></category>
		<category><![CDATA[Video]]></category>
		<category><![CDATA[YouTube]]></category>

		<guid isPermaLink="false">http://www.ajbis.co.uk/?p=1073</guid>
		<description><![CDATA[O2 Priority Sports YouTube Masthead The YouTube Masthead is the large expandable banner on their homepage. Advertisers are encouraged to use YouTube video content using Doubleclick&#8217;s YTPlayer component. The launch of O2 Priority Sports showcases VCCP&#8217;s beautiful TV ad filling the whole 970&#160;x&#160;500 pixel space. The launch of Priority Sports was a huge integrated campaign [...]]]></description>
				<content:encoded><![CDATA[<div id="attachment_1165" class="wp-caption alignnone" style="width: 660px">
<video width="660" controls><source src="http://www.ajbis.co.uk/wp-content/uploads/2012/10/PMSport_YT_web_18fps.mp4" type='video/mp4; codecs="avc1.42E01E, mp4a.40.2"' /><source src="http://www.ajbis.co.uk/wp-content/uploads/2012/10/PMSport_YT_web_12fps1.webm" type='video/webm; codecs="vp8, vorbis"' /><source src="http://www.ajbis.co.uk/wp-content/uploads/2012/10/PMSport_YT_web_15fps.theora.ogv" type='video/ogg; codecs="theora, vorbis"' /><a href="http://www.ajbis.co.uk/wp-content/uploads/2012/10/PMSport_Masthead.jpg"><img src="http://www.ajbis.co.uk/wp-content/uploads/2012/10/PMSport_Masthead.jpg" alt="O2 Priority Sports YouTube Masthead" title="O2 Priority Sports YouTube Masthead" width="660" class="size-full wp-image-1085" /></a><br />
</video>
<p class="wp-caption-text">O2 Priority Sports YouTube Masthead</p>
</div>
<p>The <a href="https://support.google.com/richmedia/bin/answer.py?hl=en&#038;answer=2560792" title="What is a YouTube masthead?">YouTube Masthead</a> is the large expandable banner on their homepage. Advertisers are encouraged to use YouTube video content using Doubleclick&rsquo;s YTPlayer component. The launch of O2 Priority Sports showcases VCCP&rsquo;s beautiful TV ad filling the whole 970&nbsp;x&nbsp;500 pixel space.</p>
<p><span id="more-1073"></span></p>
<div class="clearfix"></div>
<p><div id="attachment_1176" class="wp-caption alignnone" style="width: 670px"><a href="http://www.ajbis.co.uk/wp-content/uploads/2012/10/PMSports_Contracted_Intro.jpg"><img src="http://www.ajbis.co.uk/wp-content/uploads/2012/10/PMSports_Contracted_Intro.jpg" alt="O2 Priority Sports&hellip; big logo, so you know what this is about!" title="O2 Priority Sports&hellip; big logo, so you know what this is about!" width="660" class="size-full wp-image-1176" /></a><p class="wp-caption-text">O2 Priority Sports&hellip; big logo, so you know what this is about!</p></div><br />
<div id="attachment_1175" class="wp-caption alignnone" style="width: 670px"><a href="http://www.ajbis.co.uk/wp-content/uploads/2012/10/PMSports_Contracted_Begin.jpg"><img src="http://www.ajbis.co.uk/wp-content/uploads/2012/10/PMSports_Contracted_Begin.jpg" alt="Find the blue halos to discover Priority Sports" title="Find the blue halos to discover Priority Sports" width="660" class="size-full wp-image-1175" /></a><p class="wp-caption-text">Find the blue halos to discover Priority Sports</p></div></p>
<p>The launch of Priority Sports was a huge integrated campaign for <a href="http://www.vccp.com">VCCP</a>. The YouTube Masthead being the centrepiece if the digital offering. The banners, posters and even the TV ad were designed to encourage users to download the app for their smartphone. All the banners had a form to submit your phone number and receive a text. The contents of the text would depend on whether you are an O2 customer and have a phone that supports the&nbsp;app.</p>
<div class="clearfix"></div>
<div id="attachment_1180" class="wp-caption alignnone" style="width: 670px"><a href="http://www.ajbis.co.uk/wp-content/uploads/2012/10/PMSports_Expanded_Paula_Content.jpg"><img src="http://www.ajbis.co.uk/wp-content/uploads/2012/10/PMSports_Expanded_Paula_Content.jpg" alt="Form on the right. Send your mobile number and get the app" title="Form on the right. Send your mobile number and get the app" width="660" class="size-full wp-image-1180" /></a><p class="wp-caption-text">Form on the right. Send your mobile number and get the app</p></div>
<p>Possible form responses:</p>
<ol>
<li>Invalid Subscriber</li>
<li>Invalid Handset</li>
<li>Duplicate Entry</li>
<li>Success</li>
</ol>
<p>&nbsp;</p>
<h2>A banners of many parts</h2>
<p>Initial load for the banner is 50k. There&rsquo;s some quite heavy content before the ad is expanded so I imported a polite loaded SWF containing the video assets and end screen. The expandable&rsquo;s loaded SWF has the interactive carousel of phone screens and a copy of the form. Here&rsquo;s how it was put together.</p>
<div class="clearfix"></div>
<div id="attachment_1192" class="wp-caption alignnone" style="width: 670px"><a href="http://www.ajbis.co.uk/wp-content/uploads/2012/10/PMSports_Outline.jpg"><img src="http://www.ajbis.co.uk/wp-content/uploads/2012/10/PMSports_Outline.jpg" alt="DoubleClick polite and expanding imported SWFs" title="DoubleClick polite and expanding imported SWFs" width="660" class="size-full wp-image-1192" /></a><p class="wp-caption-text">DoubleClick polite and expanding imported SWFs</p></div>
<p>&nbsp;</p>
<h2>Adding the hot spots</h2>
<div class="clearfix"></div>
<div id="attachment_1183" class="wp-caption alignnone" style="width: 670px"><a href="http://www.ajbis.co.uk/wp-content/uploads/2012/10/PMSports_Expanded_Paula.jpg"><img src="http://www.ajbis.co.uk/wp-content/uploads/2012/10/PMSports_Expanded_Paula.jpg" alt="Hotspots on the video reveal content" title="Hotspots on the video reveal content" width="660" class="size-full wp-image-1183" /></a><p class="wp-caption-text">Hotspots on the video reveal content</p></div>
<p>Hot spots were added to the video prompting the view to see content. I set up a <code>Vector</code> in the <code>Model</code> with data for start time, end time and coordinates for each&nbsp;one.</p>
<pre>
private var _targetData:Vector.&lt;TargetVO&gt; = Vector.&lt;TargetVO&gt;([
  &hellip;
  new TargetVO(new Point(200, 250), 12.8, 15.8, FrameRefs.NIKE_FUELBAND),
  &hellip;
]);

public function getTargetVO(num:uint):TargetVO
{
  return _targetData[num];
}
</pre>
<p>Here&rsquo;s the <code>TargetVO<code>:</p>
<pre>
public class TargetVO
{
  private var _coords:Point;
  private var _timeIn:Number;
  private var _timeOut:Number;
  private var _frame:String;

  public function TargetVO(coords:Point, timeIn:Number, timeOut:Number, frame:String)
  {
    _coords = coords;
    _timeIn = timeIn;
    _timeOut = timeOut;
    _frame = frame;
  }

  public function get coords():Point {  return _coords;  }
  public function get timeIn():Number {  return _timeIn;  }
  public function get timeOut():Number {  return _timeOut;  }
  public function get frame():String {  return _frame;  }
}
</pre>
<p>The Target&rsquo;s view listens to the <code>Controller</code> and responds to the current video time (which is reported every 40 milliseconds).</p>
<pre>
&hellip;
_controller.addEventListener(VideoTimerEvent.TIME, checkIfActive);
&hellip;
private function checkIfActive(event:VideoTimerEvent):void
{
// current visibility
var vis:Boolean = visible;

visible =  (event.time &gt; _vo.timeIn &amp;&amp; event.time &lt; _vo.timeOut) ? true : false;

// test if newly active
if (visible &amp;&amp; !vis)
  {
  var dur:Number = _vo.timeOut-_vo.timeIn;
  var d:Number = dur &gt;= 3 ? 1 : dur/3;
  alpha = 0;
  TweenLite.to(this, d, {  alpha: 1  });

  // lets move from a random position to coords over duration of visibility
  TweenLite.to(this, dur, {  x: (Math.random()*100-50).toString(), ease: Quad.easeIn, overwrite: 0  });
  TweenLite.to(this, dur, {  y: (Math.random()*100-50).toString(), ease: Quad.easeOut, overwrite: 0  });

  // fadeout
  TweenLite.to(this, d, {  delay: dur-d, alpha: 0, overwrite: 0  });
  }
}
&hellip;
</pre>
<p>&nbsp;</p>
<h2>Bitmaps &amp; sandboxes</h2>
<div class="clearfix"></div>
<div id="attachment_1186" class="wp-caption alignnone" style="width: 670px"><a href="http://www.ajbis.co.uk/wp-content/uploads/2012/10/PMSports_Expanded_Gate.jpg"><img src="http://www.ajbis.co.uk/wp-content/uploads/2012/10/PMSports_Expanded_Gate.jpg" alt="Two copies of the YTPlayer are used to open the &lsquo;gate&rsquo;" title="Two copies of the YTPlayer are used to open the &lsquo;gate&rsquo;" width="660" class="size-full wp-image-1186" /></a><p class="wp-caption-text">Two copies of the YTPlayer are used to open the &lsquo;gate&rsquo;</p></div>
<p>When reviewing the scamps and seeing the video open like a gate I thought &ldquo;Easy enough. I&rsquo;ll create an snapshot when the viewer clicks on the video and use the <code>BitmapData</code> to animate the two halves open.&rdquo; Well some testing early on suggested otherwise. Flash was blocking the <code>BitmapData.draw</code> as a sandbox violation.</p>
<p>The solution was to set up two <code>YTPlayer</code> components. One visible, the other muted and hidden. When the user clicked on the video it was paused, masks rearranged, and the second video made visible for the animated gate sequence.</p>
<p>&nbsp;</p>
<div class="clearfix"></div>
<div id="attachment_1189" class="wp-caption alignnone" style="width: 670px"><a href="http://www.ajbis.co.uk/wp-content/uploads/2012/10/PMSports_Expanded_End.jpg"><img src="http://www.ajbis.co.uk/wp-content/uploads/2012/10/PMSports_Expanded_End.jpg" alt="O2 Priority Sports end screen" title="O2 Priority Sports end screen" width="660" class="size-full wp-image-1189" /></a><p class="wp-caption-text">O2 Priority Sports end screen</p></div>
<p>This is one of those projects that made doing banners enjoyable.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ajbis.co.uk/2012/10/07/priority-sports-youtube-masthead/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="http://www.ajbis.co.uk/wp-content/uploads/2012/10/PMSport_YT_web_12fps1.webm" length="7676607" type="video/webm" />
<enclosure url="http://www.ajbis.co.uk/wp-content/uploads/2012/10/PMSport_YT_web_18fps.mp4" length="7573702" type="video/mp4" />
<enclosure url="http://www.ajbis.co.uk/wp-content/uploads/2012/10/PMSport_YT_web_15fps.theora.ogv" length="7885485" type="video/ogg" />
		</item>
		<item>
		<title>Greymail game for Kinect</title>
		<link>http://www.ajbis.co.uk/2012/09/29/greymail-game-for-kinect/</link>
		<comments>http://www.ajbis.co.uk/2012/09/29/greymail-game-for-kinect/#comments</comments>
		<pubDate>Sat, 29 Sep 2012 22:20:18 +0000</pubDate>
		<dc:creator>ajbis</dc:creator>
				<category><![CDATA[Developer]]></category>
		<category><![CDATA[AIR]]></category>
		<category><![CDATA[AIRKinect]]></category>
		<category><![CDATA[AS3]]></category>
		<category><![CDATA[FDT]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Flash Builder]]></category>
		<category><![CDATA[Hotmail]]></category>
		<category><![CDATA[Kinect]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[OmniGraffle]]></category>

		<guid isPermaLink="false">http://www.ajbis.co.uk/?p=1068</guid>
		<description><![CDATA[Greymail Kinect game, arms flailing lol Microsoft were announcing new features for Hotmail for what they called Greymail. That&#8217;s all the unwanted newsletters and the like that&#8217;s not spam and filling up your inbox. So VCCP decided to make a Kinect game for the various Hotmail events that Microsoft hold at Universities and the like. [...]]]></description>
				<content:encoded><![CDATA[<div id="attachment_1085" class="wp-caption alignnone" style="width: 660px">
<video width="660" controls><source src="http://www.ajbis.co.uk/wp-content/uploads/2012/10/Greymail_32secs_web.mp4" type='video/mp4; codecs="avc1.42E01E, mp4a.40.2"' /><source src="http://www.ajbis.co.uk/wp-content/uploads/2012/10/Greymail_32secs_web.webm" type='video/webm; codecs="vp8, vorbis"' /><source src="http://www.ajbis.co.uk/wp-content/uploads/2012/10/Greymail_32secs_web.theora.ogv" type='video/ogg; codecs="theora, vorbis"' /><a href="http://www.ajbis.co.uk/wp-content/uploads/2012/09/MicrosoftGreymail_GameAdvanced.jpg"><img src="http://www.ajbis.co.uk/wp-content/uploads/2012/09/MicrosoftGreymail_GameAdvanced.jpg" alt="Greymail Kinect game, arms flailing lol" title="Greymail Kinect game, arms flailing lol" width="660" class="size-full wp-image-1085" /></a><br />
</video>
<p class="wp-caption-text">Greymail Kinect game, arms flailing lol</p>
</div>
<p>Microsoft were announcing new features for Hotmail for what they called Greymail. That&rsquo;s all the unwanted newsletters and the like that&rsquo;s not spam and filling up your inbox. So <a href="http://www.vccp.com">VCCP</a> decided to make a Kinect game for the various Hotmail events that Microsoft hold at Universities and the like. Our Creative Tech had done a quick prototype and it was decided that the game would be written in ActionScript and published as an Adobe AIR&nbsp;app.</p>
<p><span id="more-1068"></span></p>
<div class="clearfix"></div>
<div id="attachment_1109" class="wp-caption alignnone" style="width: 670px"><a href="http://www.ajbis.co.uk/wp-content/uploads/2012/09/MicrosoftGreymail_Play.jpg"><img src="http://www.ajbis.co.uk/wp-content/uploads/2012/09/MicrosoftGreymail_Play.jpg" alt="AIRKinect&rsquo;s SelectableHandle runs a timer before confirming a hit" title="AIRKinect&rsquo;s SelectableHandle runs a timer before confirming a hit" width="660" class="size-full wp-image-1109" /></a><p class="wp-caption-text">AIRKinect&rsquo;s SelectableHandle runs a timer before confirming a hit</p></div>
<div id="attachment_1106" class="wp-caption alignnone" style="width: 670px"><a href="http://www.ajbis.co.uk/wp-content/uploads/2012/09/MicrosoftGreymail_Countdown.jpg"><img src="http://www.ajbis.co.uk/wp-content/uploads/2012/09/MicrosoftGreymail_Countdown.jpg" alt="A quick massage while the game counts in" title="A quick massage while the game counts in" width="660" class="size-full wp-image-1106" /></a><p class="wp-caption-text">A quick massage while the game counts in</p></div>
<p>I was on lead coding duties, with the database integration handed over by a fellow dev. Games screens designed by Simon Bostock, with some assets like badges and sounds supplied by a third&nbsp;party.</p>
<div class="clearfix"></div>
<div id="attachment_1107" class="wp-caption alignnone" style="width: 670px"><a href="http://www.ajbis.co.uk/wp-content/uploads/2012/09/MicrosoftGreymail_Initials.jpg"><img src="http://www.ajbis.co.uk/wp-content/uploads/2012/09/MicrosoftGreymail_Initials.jpg" alt="A fancy widget for inputting initials by waving your hands about" title="A fancy widget for inputting initials by waving your hands about" width="660" class="size-full wp-image-1107" /></a><p class="wp-caption-text">A fancy widget for inputting initials by waving your hands about</p></div>
<div id="attachment_1110" class="wp-caption alignnone" style="width: 670px"><a href="http://www.ajbis.co.uk/wp-content/uploads/2012/09/MicrosoftGreymail_Score.jpg"><img src="http://www.ajbis.co.uk/wp-content/uploads/2012/09/MicrosoftGreymail_Score.jpg" alt="The XML lists score ranges for achievement badges" title="The XML lists score ranges for achievement badges" width="660" class="size-full wp-image-1110" /></a><p class="wp-caption-text">The XML lists score ranges for achievement badges</p></div>
<p>&nbsp;</p>
<h2>Set up</h2>
<p>It was time to boot into Boot Camp on my mac for some Windows 7 love. After installing the <a href="http://www.microsoft.com/en-us/kinectforwindows/">Kinect for Windows SDK</a> I then installed <a href="http://www.adobe.com/uk/products/flash-builder.html">Adobe Flash Builder</a>. I&rsquo;m usually an <a href="http://fdt.powerflasher.com/">FDT</a> coder, but version 5.6 wasn&rsquo;t out yet and <a href="http://www.as3nui.com/air-kinect/" title="as3NUI">AIRKinect</a> uses a .ane native extension to receive data from the Kinect.</p>
<p>&nbsp;</p>
<h2>Code base</h2>
<p>I used a simple MVC pattern. It&rsquo;s really similar to the <a href="http://www.ajbis.co.uk/2012/07/04/chedd-off/" title="Chedd Off!, post on this blog">Chedds</a> game I built last year. You can get an idea about how it&rsquo;s set up and all linked together below.</p>
<div class="clearfix"></div>
<div id="attachment_1127" class="wp-caption alignnone" style="width: 670px"><a href="http://www.ajbis.co.uk/wp-content/uploads/2012/09/MicrosoftGreymail_Outline.jpg"><img src="http://www.ajbis.co.uk/wp-content/uploads/2012/09/MicrosoftGreymail_Outline.jpg" alt="This is all wrapped up in an AIR app" title="This is all wrapped up in an AIR app" width="660" class="size-full wp-image-1127" /></a><p class="wp-caption-text">This is all wrapped up in an AIR app</p></div>
<p>Essentially there&rsquo;s an invisible button covering the whole screen. When the player reaches forward (measuring the hand to shoulder z distance) the coordinates are sent via a command and picked up by the game area. Then there&rsquo;s a quick loop through list of onscreen targets with a bounding box only collision test. If the hand hits a target the state changes for that&nbsp;hand.</p>
<p>&nbsp;</p>
<h2>AirKinect &amp; the hands</h2>
<p>Using AirKinect to control the hands is relatively straightforward. Each hand has properties for:</p>
<ol>
<li>Active. The hand is extended forward.</li>
<li>Locked. The hand has grabbed a target.</li>
</ol>
<p>&nbsp;</p>
<p>Information is read from the skeleton every frame (using AIRKinect&rsquo;s SkeletonFrameEvent). The <code>pad</code> modifier is applied to let players reach the corners of the screen. The results are passed to <code>CursorController</code> to be picked up by various parts of the&nbsp;game. Here&rsquo;s the <code>onSkeletonFrame</code> so you can see it&rsquo;s mostly about reading the numbers and applying them to the game.</p>
<pre>
private function onSkeletonFrame(event:SkeletonFrameEvent):void
{
  var numSkeletons:uint = event.skeletonFrame.numSkeletons;
  &hellip;
  if (_skeleton != null)
  {
    _leftHandJoint = _skeleton.getJoint(AIRKinectSkeleton.HAND_LEFT);
    _rightHandJoint = _skeleton.getJoint(AIRKinectSkeleton.HAND_RIGHT);

    _rightShoulderJoint = _skeleton.getJoint(AIRKinectSkeleton.SHOULDER_RIGHT);
    _leftShoulderJoint = _skeleton.getJoint(AIRKinectSkeleton.SHOULDER_LEFT);

    var pad:Number = _cursorModel.pad;

    _leftHandJoint.x -= pad;
    _leftHandJoint.x /= (1 - pad) - pad;
    _leftHandJoint.y -= pad;
    _leftHandJoint.y /= (1 - pad) - pad;

    _rightHandJoint.x -= pad;
    _rightHandJoint.x /= (1 - pad) - pad;
    _rightHandJoint.y -= pad;
    _rightHandJoint.y /= (1 - pad) - pad;

    var m:Number = _cursorModel.distanceMultiplier;

    _leftHandCursor.update(_leftHandJoint.x, _leftHandJoint.y, _leftHandJoint.z);
    _rightHandCursor.update(_rightHandJoint.x, _rightHandJoint.y, _rightHandJoint.z);

    _xyLeft.x = _leftHandCursor.x * _sizeModel.width;
    _xyLeft.y = _leftHandCursor.y * _sizeModel.height;
    _xyRight.x = _rightHandCursor.x * _sizeModel.width;
    _xyRight.y = _rightHandCursor.y * _sizeModel.height;
    _cursorController.leftHandPosUpdated(_xyLeft);
    _cursorController.rightHandPosUpdated(_xyRight);

    // test grabbing state
    var grabRight:Boolean = _rightShoulderJoint.z - _rightHandJoint.z &gt; 0.2;
    var grabLeft:Boolean = _leftShoulderJoint.z - _leftHandJoint.z &gt; 0.2;
	
    // apply grabbing results
    if ((grabRight &#124;&#124; grabLeft) &amp;&amp; !_cursorModel.rightHandActive &amp;&amp; !_cursorModel.leftHandActive) _cursorController.startGrabbing();
    else if (!grabRight &amp;&amp; !grabLeft &amp;&amp; (_cursorModel.rightHandActive &#124;&#124; _cursorModel.leftHandActive)) _cursorController.stopGrabbing();

    if (_rightHandCursor.enabled)
    {
      if (grabRight &amp;&amp; !_cursorModel.rightHandActive) _cursorController.announceRightHandActive();
      else if (!grabRight &amp;&amp; _cursorModel.rightHandActive) _cursorController.announceRightHandInactive();
    }

    if (_leftHandCursor.enabled)
    {
      if (grabLeft &amp;&amp; !_cursorModel.leftHandActive) _cursorController.announceLeftHandActive();
      else if (!grabLeft &amp;&amp; _cursorModel.leftHandActive) _cursorController.announceLeftHandInactive();
    }
  }
  &hellip;
}
</pre>
<div class="clearfix"></div>
<div id="attachment_1108" class="wp-caption alignnone" style="width: 670px"><a href="http://www.ajbis.co.uk/wp-content/uploads/2012/09/MicrosoftGreymail_Leaderboard.jpg"><img src="http://www.ajbis.co.uk/wp-content/uploads/2012/09/MicrosoftGreymail_Leaderboard.jpg" alt="Top ten are saved to a database in local storage" title="Top ten are saved to a database in local storage" width="660" class="size-full wp-image-1108" /></a><p class="wp-caption-text">Top ten are saved to a database in local storage</p></div>
<p>&nbsp;</p>
<p>It was a lot of fun using AIRKinect and even more fun testing the game. Hopefully next time I can build something for the Kinect with <a href="http://msdn.microsoft.com/en-us/library/aa970268.aspx" title="Introduction to WPF, MSDN Library">WPF</a> :-).</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ajbis.co.uk/2012/09/29/greymail-game-for-kinect/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="http://www.ajbis.co.uk/wp-content/uploads/2012/10/Greymail_32secs_web.mp4" length="4803780" type="video/mp4" />
<enclosure url="http://www.ajbis.co.uk/wp-content/uploads/2012/10/Greymail_32secs_web.webm" length="3036463" type="video/webm" />
<enclosure url="http://www.ajbis.co.uk/wp-content/uploads/2012/10/Greymail_32secs_web.theora.ogv" length="2299045" type="video/ogg" />
		</item>
		<item>
		<title>A-Z Alphabet Animals</title>
		<link>http://www.ajbis.co.uk/2012/09/21/a-z-alphabet-animals/</link>
		<comments>http://www.ajbis.co.uk/2012/09/21/a-z-alphabet-animals/#comments</comments>
		<pubDate>Fri, 21 Sep 2012 18:27:59 +0000</pubDate>
		<dc:creator>ajbis</dc:creator>
				<category><![CDATA[Illustrator]]></category>
		<category><![CDATA[Adobe Illustrator]]></category>
		<category><![CDATA[Albatross]]></category>
		<category><![CDATA[Alphabet Animals]]></category>
		<category><![CDATA[Flare]]></category>
		<category><![CDATA[iStockPhoto]]></category>
		<category><![CDATA[Nautical]]></category>
		<category><![CDATA[Quartermaster]]></category>
		<category><![CDATA[Sketchbook Pro]]></category>
		<category><![CDATA[Vector]]></category>

		<guid isPermaLink="false">http://www.ajbis.co.uk/?p=1025</guid>
		<description><![CDATA[I&#8217;ve started a personal project to illustrate animals in professions, one for each letter of the alphabet. I&#8217;m drawing them in alphabetical order. So far I&#8217;ve done four. An albatross, bull, cat and dog. This is &#34;A&#34; for Ablatross. I&#8217;ll post about the others later. When I have all 26 done I&#8217;ll also have a [...]]]></description>
				<content:encoded><![CDATA[<div id="attachment_1054" class="wp-caption alignnone" style="width: 670px"><a href="http://www.ajbis.co.uk/wp-content/uploads/2012/09/AlbatrossQuatermaster_Feature.jpg"><img src="http://www.ajbis.co.uk/wp-content/uploads/2012/09/AlbatrossQuatermaster_Feature.jpg" alt="&quot;A&quot; for Albatross, &quot;Q&quot; for Quatermaster" title="&quot;A&quot; for Albatross, &quot;Q&quot; for Quatermaster" width="660" class="size-full wp-image-1054" /></a><p class="wp-caption-text">&quot;A&quot; for Albatross, &quot;Q&quot; for Quatermaster</p></div>
<p>I&rsquo;ve started a personal project to illustrate animals in professions, one for each letter of the alphabet. I&rsquo;m drawing them in alphabetical order. So far I&rsquo;ve done four. An albatross, bull, cat and dog. This is &quot;A&quot; for Ablatross. I&rsquo;ll post about the others later. When I have all 26 done I&rsquo;ll also have a complete set of alphabet professions :-).</p>
<p><span id="more-1025"></span></p>
<p>&nbsp;</p>
<h2>Albatross Quartermaster</h2>
<p>Before I started I already had a strong picture in my mind. &quot;A&quot; for Ablatross would be first and I wanted it to have a nautical theme. It was an early oportunity to do &quot;Q&quot; in the professions. Quartermaster has two potential, and quite different, descriptions.</p>
<dl>
<dt>Quartermaster</dt>
<dd>A military officer responsible for providing quarters, rations, clothing, and other supplies.</dd>
<dt>Quartermaster</dt>
<dd>A naval petty officer with particular responsibility for steering and signals.</dd>
</dl>
<p>Instead of trying to show the albatross playing out the Quartermaster role in a semi-realistic manner I cast him in a romanticised setting full of nautical iconography. Sunset, waves, steam ship, decks of an ocean liner, marine propellor (Why is it on deck? Let&rsquo;s call it artistic licence!), an old fashion ship&rsquo;s wheel, a compass and sextant.</p>
<div class="clearfix"></div>
<div id="attachment_1055" class="wp-caption alignnone" style="width: 670px"><a href="http://www.ajbis.co.uk/wp-content/uploads/2012/09/AlbatrossQuatermaster_Full.jpg"><img src="http://www.ajbis.co.uk/wp-content/uploads/2012/09/AlbatrossQuatermaster_Full.jpg" alt="Albatross Quatermaster poster" title="Albatross Quatermaster poster" width="660" class="size-full wp-image-1055" /></a><p class="wp-caption-text">Albatross Quatermaster poster</p></div>
<p>As the first in the series the Albatross Quartermaster also sets the style and level of detail. The nautical theme and lovely flat vector shapes add a little Art Deco (only a hint). If you like Art Deco check out <a href="http://www.cassandre.fr/" title="A.M. Cassandre, official website">Cassandre&rsquo;s</a> posters.</p>
<p>&nbsp;</p>
<h2>A bit about the process</h2>
<p>I like to start in <a href="http://www.autodesk.co.uk/adsk/servlet/pc/index?siteID=452932&#038;id=16038973" title="Autodesk&rsquo;s Sketching, Painting and Drawing App">Sketchbook Pro</a> where I can get a nice pencil mark. Firstly exploring the relationship between the character and the scene. Then outlining all the details. Sorting out all this upfront lets me concentrate on path making and colours in <a href="http://www.adobe.com/uk/products/illustrator.html" title="Adobe&rsquo;s vector drawing app">Adobe Illustrator</a>.</p>
<p>The whole thing is done without transparency to keep within the limitations of Illustrator&nbsp;8 EPS. The final vector is available on <a href="http://www.istockphoto.com/stock-illustration-16113990-a-z-animal-albatross-quartermaster.php" title="A-Z Animal, Albatross Quartermaster stock vector available to buy">iStockPhoto</a>. As a final touch I used a small app called <a href="http://flareapp.com/" title="Add effects and textures to your photos">Flare</a> to add an old poster effect.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ajbis.co.uk/2012/09/21/a-z-alphabet-animals/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>HTML 5 Validation &amp; WordPress</title>
		<link>http://www.ajbis.co.uk/2012/09/19/html-5-validation-wordpress/</link>
		<comments>http://www.ajbis.co.uk/2012/09/19/html-5-validation-wordpress/#comments</comments>
		<pubDate>Wed, 19 Sep 2012 14:05:16 +0000</pubDate>
		<dc:creator>ajbis</dc:creator>
				<category><![CDATA[Developer]]></category>
		<category><![CDATA[HTML 5]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Validation]]></category>
		<category><![CDATA[W3C]]></category>
		<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://www.ajbis.co.uk/?p=928</guid>
		<description><![CDATA[I recently ran this blog&#8217;s homepage through W3C&#8217;s Markup Validation Service. There were five errors. Two of them repeating over and over again as they where in posts pushing the total errors to a scary 36! A bit of Googling revealed that they were pretty common. Below are the tweaks I added to pass with [...]]]></description>
				<content:encoded><![CDATA[<div id="attachment_949" class="wp-caption alignnone" style="width: 670px"><a href="http://www.ajbis.co.uk/wp-content/uploads/2012/09/W3CValidation.jpg"><img src="http://www.ajbis.co.uk/wp-content/uploads/2012/09/W3CValidation.jpg" alt="W3C Markup Validation Service, ajbis.co.uk has passed!" title="W3C Markup Validation Service, ajbis.co.uk has passed!" width="660" class="size-full wp-image-949" /></a><p class="wp-caption-text">W3C Markup Validation Service, ajbis.co.uk has passed!</p></div>
<p>I recently ran this blog&rsquo;s homepage through W3C&rsquo;s <a href="http://validator.w3.org/">Markup Validation Service</a>. There were five errors. Two of them repeating over and over again as they where in posts pushing the total errors to a scary 36! A bit of Googling revealed that they were pretty common. Below are the tweaks I added to pass with flying colours ;-).</p>
<p><span id="more-928"></span></p>
<p>&nbsp;</p>
<h2>1. Profile attribute is obsolete</h2>
<p><q cite="http://validator.w3.org/">The profile attribute on the head element is obsolete. To declare which meta terms are used in the document, instead register the names as meta extensions. To trigger specific UA behaviors, use a link element instead.</q></p>
<p>That&rsquo;s this bit&hellip;</p>
<pre>
&lt;head profile=&quot;http://gmpg.org/xfn/11&quot;&gt;
</pre>
<p>The WordPress Codex explains what <a href="http://gmpg.org/xfn/" title="XHTML Friends Network">XFN</a> is about and why it is included <a href="http://codex.wordpress.org/Defining_Relationships_with_XFN" title="Defining Relationships with XFN">here</a>. In short it helps define relationships between your blog and the links you use. The suggested <code>link</code> tag would look like this&hellip;</p>
<pre>
&lt;link rel=&quot;profile&quot; href=&quot;http://gmpg.org/xfn/11&quot; /&gt;
</pre>
<p>Adding <code>rel</code> attributes to links however comes with rules in HTML&nbsp;5. I have decided to exclude the XFN profile and avoid any questionable <code>rel</code> values being added to the site. Maybe I&rsquo;ll add it back in later once I&rsquo; researched XFN and know I can fully control the relationships. Either way I have a custom header PHP file in my child theme and have replaced the default <code>thematic_head_profile</code> with <code>ajbis_head_profile</code> to write in the opening <code>head</code>&nbsp;tag.</p>
<pre>
function ajbis_head_profile()
{
    $content = '&lt;head&gt;' . &quot;\n&quot;;
    echo apply_filters('ajbis_head_profile', $content );
}
</pre>
<p>&nbsp;</p>
<h2>2. Bad value on meta tag</h2>
<p><q cite="http://validator.w3.org/">Bad value X-UA-Compatible for attribute http-equiv on element meta.</q> This line of code is part of <a href="http://html5boilerplate.com/">HTML5 Boilerplate</a>.</p>
<pre>
&lt;meta http-equiv=&quot;X-UA-Compatible&quot; content=&quot;IE=edge,chrome=1&quot;&gt;
</pre>
<p>What is &lsquo;<code>X-UA-Compatible</code>&rsquo; anyway? Well it&rsquo;s there to tell Internet Explorer how to render the page. There&rsquo;s some great documentation on this over at <a href="http://msdn.microsoft.com" title="Microsoft Developer Network">MSDN</a>. If you are really interested then I&rsquo; recommend reading <a href="http://msdn.microsoft.com/en-us/library/cc288325(v=vs.85).aspx" title="Defining Document Compatibility, MSDN Library">Defining Document Compatibility</a>.</p>
<p>This <code>meta</code> tag can be removed and the <code>X-UA-Compatible</code> header placed in your root level .htacess. Add the following:</p>
<pre>
Header set X-UA-Compatible &quot;IE=edge,chrome=1&quot;
</pre>
<p>&nbsp;</p>
<h2>3. Datetime value on time tag</h2>
<p>Ten errors. One for each post. Here the first one listed in the validation output. <q cite="http://validator.w3.org/">Bad value 2012-08-17T17:52:39+0100 for attribute datetime on element time: The literal did not satisfy the date format. The literal did not satisfy the datetime with timezone format. The literal did not satisfy the date or time format.</q></p>
<p>Lots of words for such a little error ;-). Thematic&rsquo;s <code>thematic_time_title</code> includes seconds (Marked in bold below).</p>
<pre>
&lt;time datetime=&quot;2012-08-17T17:52<strong>:39</strong>+0100&quot;&gt;17th August, 2012&nbsp;&lt;/time&gt;
</pre>
<p>A quick read at the WordPress Codex &lsquo;<a href="http://codex.wordpress.org/Formatting_Date_and_Time">Formatting Date and Time</a>&rsquo; and you&rsquo; find the required format. That would be ISO&nbsp;8601. I have already added <code>childtheme_override_postheader</code> to create my HTML&nbsp;5 friendly date and category strip in the header. All I had to do was change the format string passed to <code>get_the_time</code>.</p>
<pre>
&hellip;
echo '&lt;h4&gt;&lt;time datetime=&quot;' . get_the_time(<strong>'c'</strong>) . '&quot;&gt;';
echo thematic_postmeta_entrydate();
echo '&nbsp;&lt;/time&gt;&lt;span&gt;&raquo; ' . get_the_category_list(', ') . '&lt;/span&gt;&lt;/h4&gt;' . &quot;\n&quot;;
&hellip;
</pre>
<p>&nbsp;</p>
<h2>4. Keyword category is not registered</h2>
<p><q cite="http://validator.w3.org/">Bad value category tag for attribute rel on element a: Keyword category is not registered. Here&rsquo;s an example.</q></p>
<pre>
&lt;a href=&quot;http://www.ajbis.co.uk/category/designer/&quot; title=&quot;View all posts in Designer&quot; rel=&quot;<strong>category</strong> tag&quot;&gt;Designer&lt;/a&gt;
</pre>
<p>My WordPress loop adds a list of categories associated with a post (that&rsquo;s pretty standard). Each link has a <code>rel</code> attribute of <code>&quot;category tag&quot;</code>. The <code>rel</code> attribute in HTML 4 can be anything. It&rsquo;s just there to help give a little context. <a href="http://www.w3schools.com/tags/att_a_rel.asp">W3C&nbsp;School</a> defines <code>rel</code> as &ldquo;The relationship between the current document and the linked document.&rdquo; HTML&nbsp;5 has a bunch of proposed acceptable values. Category is not one of them :-(.</p>
<p>I&rsquo;ve added a filter to my child-theme&rsquo;s functions.php that replaces all instances of <code>&quot;category tag&quot;</code> in <code>the_category</code>.</p>
<pre>
function rel_cat_fix($content) {
  $content = str_replace('rel=&quot;category tag&quot;', 'rel=&quot;tag&quot;', $content);
  return $content;
}
add_filter('the_category','rel_cat_fix');
</pre>
<p>&nbsp;</p>
<h2>5. Keyword generator is not registered</h2>
<p><q cite="http://validator.w3.org/">Bad value generator for attribute rel on element a: Keyword generator is not registered.</q> This is another unlisted <code>rel</code> option. This time in the footer. Yep. You guessed it, &ldquo;Powered by WordPress.&rdquo;</p>
<pre>
&lt;a class=&quot;wp-link&quot; href=&quot;http://WordPress.org/&quot; title=&quot;WordPress&quot; rel=&quot;<strong>generator</strong>&quot;&gt;WordPress&lt;/a&gt;
</pre>
<p>The quick solution here was to create a new shortcode and replace the <code>&#91;wp-link&#93;</code> in the &lsquo;Text in Footer&rsquo; box found under Appearance &gt; Theme Options. Like so&hellip;</p>
<pre>
Powered by &#91;html5_wp_link&#93;. Built on the &#91;theme-link&#93;.
</pre>
<p>The shortcode was added my Thematic child-theme&rsquo;s functions.php. In this instance I&rsquo;ve swapped the offending keyword <code>generator</code> for <code>author</code>.</p>
<pre>
function html5_wp_link_func($atts)
{
  return '&lt;a class=&quot;wp-link&quot; href=&quot;http://WordPress.org/&quot; title=&quot;WordPress&quot; rel=&quot;author&quot;&gt;WordPress&lt;/a&gt;';
}
add_shortcode('html5_wp_link', 'html5_wp_link_func');
</pre>
<p>&nbsp;</p>
<p>Now that the homepage is valid HTML&nbsp;5 I can check out the other pages. I&rsquo;m sure there&rsquo;s a few more suspect <code>rel</code> values floating around (Like trackback!). Remember that the specifications for HTML&nbsp;5 are not finalised and subject to change (We&rsquo;ll at least not at the time I wrote this). Fab if anyone finds this post useful :-).</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ajbis.co.uk/2012/09/19/html-5-validation-wordpress/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Microsoft Advertising Ad Vision Tool</title>
		<link>http://www.ajbis.co.uk/2012/08/17/microsoft-advertising-ad-vision-tool/</link>
		<comments>http://www.ajbis.co.uk/2012/08/17/microsoft-advertising-ad-vision-tool/#comments</comments>
		<pubDate>Fri, 17 Aug 2012 17:52:39 +0000</pubDate>
		<dc:creator>ajbis</dc:creator>
				<category><![CDATA[Designer]]></category>
		<category><![CDATA[Developer]]></category>
		<category><![CDATA[Adobe Illustrator]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[Expression Blend]]></category>
		<category><![CDATA[Expression Design]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[MVVM Lite]]></category>
		<category><![CDATA[Video]]></category>
		<category><![CDATA[Visual Studio]]></category>
		<category><![CDATA[XAML]]></category>
		<category><![CDATA[XML]]></category>

		<guid isPermaLink="false">http://www.ajbis.co.uk/?p=834</guid>
		<description><![CDATA[Last July I had the pleasure of creating my second Silverlight app for Microsoft Advertising (You can read about the first one here) while working at VCCP. This Silverlight tool lets you view and filter videos from the Ad Vision series in an easy to use and visually engaging way. &#160; Turning scamps into designs [...]]]></description>
				<content:encoded><![CDATA[<div id="attachment_882" class="wp-caption alignnone" style="width: 950px"><a href="http://www.ajbis.co.uk/wp-content/uploads/2012/08/MicrosoftAdVision_App.jpg"><img src="http://www.ajbis.co.uk/wp-content/uploads/2012/08/MicrosoftAdVision_App.jpg" alt="Microsoft Ad Vision Tool, made with Silverlight" title="Microsoft Ad Vision Tool, made with Silverlight" width="940" height="538" class="size-full wp-image-882" /></a><p class="wp-caption-text">Microsoft Ad Vision Tool, made with Silverlight</p></div>
<p>Last July I had the pleasure of creating my second Silverlight app for <a href="http://advertising.microsoft.com/uk">Microsoft Advertising</a> (You can read about the first one <a href="http://www.ajbis.co.uk/2012/07/01/microsoft-advertising-audience-insights-tool/" title="My blog post about Microsoft Advertising Audience Insights Tool">here</a>) while working at <a href="http://www.vccp.com">VCCP</a>. This Silverlight tool lets you view and filter videos from the Ad Vision series in an easy to use and visually engaging way.
<p><span id="more-834"></span></p>
<p>&nbsp;</p>
<h2>Turning scamps into designs</h2>
<p>This time around a creative team was involved and came to the briefing with a scamp (Thanks Ant &amp; Rich!). &#8220;We&rsquo;d like the videos to float in 3D space&hellip; and can you put some controls down the left to filter them according to date or who is in them.&#8221; Sure, that sounds great ;-).</p>
<p>Here&rsquo;s the designs exported from Adobe Illustrator.</p>
<div class="clearfix"></div>
<div id="attachment_852" class="wp-caption alignnone" style="width: 670px"><a href="http://www.ajbis.co.uk/wp-content/uploads/2012/08/MicrosoftAdVision_Collapsed.jpg"><img src="http://www.ajbis.co.uk/wp-content/uploads/2012/08/MicrosoftAdVision_Collapsed.jpg" alt="Ad Vision Tool design with videos floating in 3D space" title="Ad Vision Tool design with videos floating in 3D space" width="660" class="size-full wp-image-852" /></a><p class="wp-caption-text">Ad Vision Tool design with videos floating in 3D space</p></div>
<p>If you don&rsquo;t want to filter the videos the panel on the left will slide out of the way so you can enjoy the videos clutter free.</p>
<div class="clearfix"></div>
<div id="attachment_853" class="wp-caption alignnone" style="width: 670px"><a href="http://www.ajbis.co.uk/wp-content/uploads/2012/08/MicrosoftAdVision_Hover.jpg"><img src="http://www.ajbis.co.uk/wp-content/uploads/2012/08/MicrosoftAdVision_Hover.jpg" alt="Filter the videos with options on the left" title="Filter the videos with options on the left" width="660" class="size-full wp-image-853" /></a><p class="wp-caption-text">Filter the videos with options on the left</p></div>
<p>Note the inclusion of the search box. This was removed in development. Unless the users were familiar with the speakers, or we included topics in the tagging, it wasn&rsquo;t that useful.</p>
<div class="clearfix"></div>
<div id="attachment_854" class="wp-caption alignnone" style="width: 952px"><a href="http://www.ajbis.co.uk/wp-content/uploads/2012/08/MicrosoftAdVision_Quote.jpg"><img src="http://www.ajbis.co.uk/wp-content/uploads/2012/08/MicrosoftAdVision_Quote.jpg" alt="Interesting quotes from the videos are highlighted" title="Interesting quotes from the videos are highlighted" width="942" height="540" class="size-full wp-image-854" /></a><p class="wp-caption-text">Interesting quotes from the videos are highlighted</p></div>
<p>Actually the zoomed in &lsquo;quote&rsquo; plaque didn&#8217;t make it into the development. Clicking the plaque takes you to the video that the quote is from.</p>
<div class="clearfix"></div>
<div id="attachment_855" class="wp-caption alignnone" style="width: 670px"><a href="http://www.ajbis.co.uk/wp-content/uploads/2012/08/MicrosoftAdVision_Video.jpg"><img src="http://www.ajbis.co.uk/wp-content/uploads/2012/08/MicrosoftAdVision_Video.jpg" alt="Watch videos streamed from MSN Video" title="Watch videos streamed from MSN Video" width="660" class="size-full wp-image-855" /></a><p class="wp-caption-text">Watch videos streamed from MSN Video</p></div>
<p>All videos are hosted on <a href="http://video.in.msn.com/">MSN Video</a> and streamed in by the custom XAML video player. With some visual trickery the plaque in space is tweened using a XAML storyboard animation and swapped to the fixed position video player at the&nbsp;end.</p>
<p>&nbsp;</p>
<h2>Linq, XML and plaques</h2>
<p><a href="http://msdn.microsoft.com/en-us/library/bb397926.aspx" title="Find out about Linq on msdn ;-)">Linq</a> is great for importing XML. All the plaque data and text (including buttons) are stored and updated in XML. Here&rsquo;s a sample.</p>
<pre>
&lt;plaque ref="plaque7" type="quote"&gt;
  &lt;quote&gt;&lt;![CDATA["I'm most excited about the merging of the physical and digital world.&quot;]]&gt;&lt;/quote&gt;
  &lt;cite&gt;&lt;![CDATA[Trevor Kaufman]]&gt;&lt;/cite&gt;
&lt;/plaque&gt;

&lt;plaque ref="plaque7" type="hidden"&gt;
  &lt;title&gt;&lt;![CDATA[Interview with Trevor Kaufman, CEO of Possible Worldwide]]&gt;&lt;/title&gt;
  &lt;desc&gt;&lt;![CDATA[Trevor Kaufman on the future of digital creativity and keeping up with the pace of change.]]&gt;&lt;/desc&gt;
  &lt;video&gt;&lt;![CDATA[mms://&hellip;.wmv]]&gt;&lt;/video&gt;
  &lt;speaker&gt;&lt;![CDATA[Trevor Kaufman]]&gt;&lt;/speaker&gt;
  &lt;thumb&gt;&lt;![CDATA[/images/thumbs/thumb_7.jpg]]&gt;&lt;/thumb&gt;
  &lt;tag&gt;&lt;![CDATA[Interviews]]&gt;&lt;/tag&gt;
  &lt;date year="2011" month="5" day="17" /&gt;
&lt;/plaque&gt;
</pre>
<p>There are three types of plaques, <code>quote</code>, <code>hidden</code> and <code>video</code>. When clicked a quote plaque will use the <code>ref</code> attribute to animate to a video. The reference should match a hidden plaque&rsquo;s reference. Hidden plaques are otherwise the same as the video ones.</p>
<p>The <code>speaker</code>, <code>tag</code> and <code>date</code> nodes are used by the filtering tools.</p>
<p>&nbsp;</p>
<h2>Zoom slider</h2>
<p>The most exciting part of this project was creating the custom slider for zooming through the videos in 3D space. This was done by extending the default Slider control, appropriately named &lsquo;ZoomSlider&rsquo;. An extra dependency property (<code>UpdateTicksHeight</code>) was added to update the height, and tick marks along the slider, whenever the videos are filtered. Here&rsquo;s the C#.</p>
<pre>
&hellip;
namespace AdVisionTool.View
{
  public class ZoomSlider : Slider
  {
    public static readonly DependencyProperty UpdateTicksHeightProperty = DependencyProperty.Register(&quot;UpdateTicksHeight&quot;, typeof(double), typeof(ZoomSlider), new PropertyMetadata(UpdateTicksHeight_Changed));

    private double _height { get; set; }

    public double UpdateTicksHeight
    {
      get { return (double)GetValue(UpdateTicksHeightProperty); }
      set { SetValue(UpdateTicksHeightProperty, value); }
    }

    public ZoomSlider()
    {
      DefaultStyleKey = typeof(ZoomSlider);
      this.Loaded += new RoutedEventHandler(ZoomSlider_Loaded);
    }

    private void ZoomSlider_Loaded(object sender, RoutedEventArgs e)
    {
      _height = base.ActualHeight;
    }

    public override void OnApplyTemplate()
    {
      AddOrUpdateTicks();
      base.OnApplyTemplate();
    }

    private void ZoomSlider_LayoutUpdated(object sender, EventArgs e)
    {
      AddOrUpdateTicks();
    }

    private void AddOrUpdateTicks()
    {
      Grid ticksOuter = (Grid)GetTemplateChild(&quot;VerticalTrackTicksOuter&quot;);
      Grid ticksInner = (Grid)GetTemplateChild(&quot;VerticalTrackTicksInner&quot;);
      Thumb thumb = (Thumb)GetTemplateChild(&quot;VerticalThumb&quot;);

      if (ticksOuter != null &#038;&#038; ticksInner != null)
      {
        // remove any ticks from previous updates
        if (ticksOuter.Children.Count &gt; 0)
          while (ticksOuter.Children.Count &gt; 0) 
            ticksOuter.Children.RemoveAt(0);

        if (ticksInner.Children.Count &gt; 0)
          while (ticksInner.Children.Count &gt; 0) 
            ticksInner.Children.RemoveAt(0);

        GradientStopCollection stops = new GradientStopCollection();
        GradientStop stop1 = new GradientStop();
        GradientStop stop2 = new GradientStop();
        stop1.Color = Color.FromArgb(255, 242, 242, 242);
        stop2.Color = Color.FromArgb(255, 204, 204, 204);
        stop1.Offset = 0;
        stop1.Offset = 1;
        stops.Add(stop1);
        stops.Add(stop2);
        LinearGradientBrush grad = new LinearGradientBrush(stops, 90);

        int h = Convert.ToInt32(Math.Floor(_height / 20));

        // add ticks 
        for (int i = 0; i &lt; h; i++)
        {
          Rectangle r = new Rectangle();
          r.SetValue(NameProperty, &quot;TickOuter_&quot; + i);
          r.Height = 3;
          r.Width = 11;
          r.HorizontalAlignment = HorizontalAlignment.Center;
          r.VerticalAlignment = VerticalAlignment.Top;
          if (i==0)
             r.Margin = new Thickness(0, 4, 0, 0);
          else
            r.Margin = new Thickness(0,i*((_height-11)/(h-1))+4,0,0);
          r.Fill = grad;
          ticksOuter.Children.Add(r);

          Rectangle g = new Rectangle();
          g.SetValue(NameProperty, &quot;TickInner_&quot; + i);
          g.Height = 1;
          g.Width = 9;
          g.HorizontalAlignment = HorizontalAlignment.Center;
          g.VerticalAlignment = VerticalAlignment.Top;
          if (i == 0)
            g.Margin = new Thickness(0, 5, 0, 0);
          else
            g.Margin = new Thickness(0,i*((_height-11)/(h-1))+5,0,0);
          g.Fill = new SolidColorBrush(Colors.Black);
          ticksInner.Children.Add(g);
        }
      }
    }

    public static void UpdateTicksHeight_Changed(DependencyObject d, DependencyPropertyChangedEventArgs e)
    {
      ZoomSlider slider = (ZoomSlider)d;
      slider._height = (double)e.NewValue;
      slider.AddOrUpdateTicks();
    }

  }
}
</pre>
<p>&nbsp;</p>
<p>Most of the Microsoft Advertising website has gone all HTML&nbsp;5. The Ad Vision Tool is no longer available. For those of you with the Silverlight 4 or higher plug-in I&rsquo;ve placed a copy <a href="http://www.ajbis.co.uk/ajbis2012_folio/MicrosoftAdVision/TestPage.html" title="Microsoft Advertising Ad Vision Tool">link</a>. :-)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ajbis.co.uk/2012/08/17/microsoft-advertising-ad-vision-tool/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
