<?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>Acumen Development &#187; Paul Hayes</title>
	<atom:link href="http://www.acumendevelopment.net/author/paulhayes/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.acumendevelopment.net</link>
	<description>Software to inspire.</description>
	<lastBuildDate>Wed, 02 Jun 2010 16:39:25 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0-alpha</generator>
		<item>
		<title>Seed to Plate</title>
		<link>http://www.acumendevelopment.net/reaping-what-weve-sown/</link>
		<comments>http://www.acumendevelopment.net/reaping-what-weve-sown/#comments</comments>
		<pubDate>Tue, 17 Feb 2009 04:09:58 +0000</pubDate>
		<dc:creator>Paul Hayes</dc:creator>
				<category><![CDATA[Releases]]></category>

		<guid isPermaLink="false">http://www.acumendevelopment.net/?p=86</guid>
		<description><![CDATA[ ]]></description>
			<content:encoded><![CDATA[<p>Today saw the launch of the Seed to Plate site, a place for everyday people to get growing their own vegtables. Acumen are proud to have built the plot designer for this original new product, a wizard system for creating your own garden plot on the basis of your likes and dislikes.</p>
<p>You can access the Seed to Plate site at <a href="http://www.seedtoplate.co.uk/">http://www.seedtoplate.co.uk</a>.</p>
<p>The Seed to Plate site was jointly developed by Acumen and <a href="http://builtbybuffalo.com/">Buffalo</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.acumendevelopment.net/reaping-what-weve-sown/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Actionscript 3 Twirl Filter</title>
		<link>http://www.acumendevelopment.net/actionscript-3-twirl-filter/</link>
		<comments>http://www.acumendevelopment.net/actionscript-3-twirl-filter/#comments</comments>
		<pubDate>Tue, 18 Nov 2008 12:27:29 +0000</pubDate>
		<dc:creator>Paul Hayes</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://www.acumendevelopment.net/?p=73</guid>
		<description><![CDATA[ ]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m releasing this filter as I couldn&#8217;t find an appropriate one out there. It lets you twirl a spiral into any Actionscript display object, and is fast enough to allow it to be animated.</p>
<p><!--start_raw--><br />
<script type="text/javascript"><!--
swfobject.embedSWF("http://www.acumendevelopment.net/wp-content/uploads/2008/11/animatedexample1.swf", "twirlExample", "420", "280", "9.0.0",'expressInstall.swf',{},{},{id:'twirlExample'});
// --></script></p>
<div id="twirlExample"></div>
<p><!--end_raw--></p>
<p>You can get the source from <a href="http://www.acumendevelopment.net/wp-content/uploads/2008/11/twirlfilterexample.zip">here</a>, both an animated and static examples are included.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.acumendevelopment.net/actionscript-3-twirl-filter/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Affine Transformations in Actionscript</title>
		<link>http://www.acumendevelopment.net/affine-transformations-in-actionscript/</link>
		<comments>http://www.acumendevelopment.net/affine-transformations-in-actionscript/#comments</comments>
		<pubDate>Mon, 17 Nov 2008 17:03:04 +0000</pubDate>
		<dc:creator>Paul Hayes</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[actionscript]]></category>
		<category><![CDATA[affine transformations]]></category>
		<category><![CDATA[matrices]]></category>

		<guid isPermaLink="false">http://www.acumendevelopment.net/?p=65</guid>
		<description><![CDATA[Rotations and reflections are easy enough with the Actionscript 3 Matrix class as long as you want a reflection whose mirror line passes through the origin, or a rotation about the origin.
However I recently was stumped with producing transformation matrices that included rotations about any point and reflection along any line. As there was little [...]]]></description>
			<content:encoded><![CDATA[<p>Rotations and reflections are easy enough with the Actionscript 3 Matrix class as long as you want a reflection whose mirror line passes through the origin, or a rotation about the origin.</p>
<p>However I recently was stumped with producing transformation matrices that included rotations about any point and reflection along any line. As there was little example code out there for this, I&#8217;ve decided to publish the two methods I&#8217;ve written to perform this. Both methods take the Matrix to set the transformation to as the first argument.</p>
<pre class="brush: java;">
/**
* Constructs an affine rotation matrix.
*
* @param m The matrix to set the affine rotation to.
* @param angle The angle of rotation in radian.
* @param ox center of rotation in the x axis
* @param oy center of rotation in the y axis
*
*/
private function rotation(m:Matrix,angle:Number=0,ox:Number=0,oy:Number=0):void
{
m.rotate(angle);
m.tx=ox-(m.a*ox)+(m.b*oy);
m.ty=oy+(m.c*ox)-(m.d*oy);
}

/**
* Constructs an affine reflection matrix. The line of reflection
* is defined by the last three parameters of the method.
* @param m Matrix The matrix to set the affine reflection to.
* @param angle Number The angle of rotation in radians.
* @param ox Number The reflection lines relative position from the origin.
* @param oy Number The reflection lines relative position from the origin.
*
*/
private function reflection(m:Matrix,angle:Number=0,ox:Number=0,oy:Number=0):void
{
m.a= Math.cos(2*angle);
m.b= Math.sin(2*angle);
m.c= Math.sin(2*angle);
m.d= -Math.cos(2*angle);

m.tx=ox-(m.a*ox)+(m.b*oy);
m.ty=oy+(m.c*ox)-(m.d*oy);
}
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.acumendevelopment.net/affine-transformations-in-actionscript/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Viva Adobe, Viva Linux!</title>
		<link>http://www.acumendevelopment.net/viva-adobe-viva-linux/</link>
		<comments>http://www.acumendevelopment.net/viva-adobe-viva-linux/#comments</comments>
		<pubDate>Mon, 27 Oct 2008 18:16:17 +0000</pubDate>
		<dc:creator>Paul Hayes</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[actionscript]]></category>
		<category><![CDATA[flex]]></category>
		<category><![CDATA[linux]]></category>

		<guid isPermaLink="false">http://www.acumendevelopment.net/?p=64</guid>
		<description><![CDATA[My eye balls nearly popped out of my head when I stumbled across Adobe&#8217;s alpha of flex builder for Linux. I say beta, but it does everything I want, is faster and seems even more stable than flex builder in windows. The fact this is released as a plugin for eclipse (the windows and mac [...]]]></description>
			<content:encoded><![CDATA[<p>My eye balls nearly popped out of my head when I stumbled across <a href="http://labs.adobe.com/technologies/flex/flexbuilder_linux/">Adobe&#8217;s alpha of flex builder for Linux</a>. I say beta, but it does everything I want, is faster and seems even more stable than flex builder in windows. The fact this is released as a plugin for <a href="http://www.eclipse.org/">eclipse</a> (the windows and mac versions of flex builder are built on eclipse) is quite a break from Adobe&#8217;s previous behaviour. But then so was releasing the flex SDK for free!</p>
<p>Anyway as a native Ubuntu user I&#8217;ve been enjoying this immensely. The only disappointing thing is that Adobe have seen fit once again to only bless Linux users with 32bit binaries. Now I think that it&#8217;s pretty hard to get a new pc or laptop that doesn&#8217;t have 64bit support, so why the reluctance?</p>
<p>I managed to get it working in the end of course. But it meant taking off my 64bit version of eclipse, and installing 32bit version of this and Firefox. The instructions were all clear enough on adobe&#8217;s site. What makes me laugh is the fact it might have just been easier for them to build a 64bit version rather than wasting time writing a detailed HowTo.</p>
<p>In other related 64bit Linux news, I got my dirty little paws on a 64bit Ubuntu package! Great stuff Skype, glad to see you listened to everyone who relentlessly bombed your forums.</p>
<p>Ok this is my last Ubuntu fanboy post for a while I promise. I just wanted to spread the love.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.acumendevelopment.net/viva-adobe-viva-linux/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Can&#8217;t stop raving about Ubuntu</title>
		<link>http://www.acumendevelopment.net/cant-stop-raving-about-ubuntu/</link>
		<comments>http://www.acumendevelopment.net/cant-stop-raving-about-ubuntu/#comments</comments>
		<pubDate>Wed, 16 Apr 2008 19:46:59 +0000</pubDate>
		<dc:creator>Paul Hayes</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[os]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://www.acumendevelopment.net/archives/61</guid>
		<description><![CDATA[Ok it&#8217;s a problem. It&#8217;s the effect of having been stuck in Windows for so many years. Trying time and again to change to linux but always having problems with cross platform compatibility, portability, finding and implementing functionality. Now a lot of these problems haven&#8217;t been solved by Ubuntu itself, in fact all flavours of [...]]]></description>
			<content:encoded><![CDATA[<p>Ok it&#8217;s a problem. It&#8217;s the effect of having been stuck in Windows for so many years. Trying time and again to change to linux but always having problems with cross platform compatibility, portability, finding and implementing functionality. Now a lot of these problems haven&#8217;t been solved by Ubuntu itself, in fact all flavours of Linux have come a huge way in the past 5 years in improving the general user experience. Addtionally exotic hardware support has been growing too, so don&#8217;t get me wrong, I know that all the perks are not because of Ubuntu, but it&#8217;s stepped into the fray at exactly the right time.</p>
<p>This is the first <acronym title="Operating System">OS</acronym> that I can show to inexperienced people with pride, showing that features can be added by them with no help by me. But most of all this is the first OS <span style="text-decoration: underline;">I&#8217;ve</span> enjoyed using, my laptop now makes me happy, not frustrated. All those little things, like having ssh filesystem access from the desktop, that just makes my job so easy. It helps now and again being an old hand with the <acronym title="Command Line Interface">CLI</acronym>, which always intimidates new users who want to go a bit deeper into Linux.</p>
<p>My next adventure will be installing kvm, I&#8217;m going to set up a freebsd testbed on my laptop. Reports here later as to my success.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.acumendevelopment.net/cant-stop-raving-about-ubuntu/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP StopWatch Class</title>
		<link>http://www.acumendevelopment.net/php-stopwatch/</link>
		<comments>http://www.acumendevelopment.net/php-stopwatch/#comments</comments>
		<pubDate>Wed, 16 Apr 2008 15:15:15 +0000</pubDate>
		<dc:creator>Paul Hayes</dc:creator>
				<category><![CDATA[Open Source]]></category>
		<category><![CDATA[debugging]]></category>
		<category><![CDATA[performance]]></category>
		<category><![CDATA[stopwatch]]></category>

		<guid isPermaLink="false">http://www.acumendevelopment.net/archives/59</guid>
		<description><![CDATA[Just a simple little class to play around with. I quickly threw it together because I got fed up of writing performance debugging code into perfectly clean classes, and then having to strip it out again later. The stop watch allows you to set callback methods to receive any calls to the stopwatches mark method, [...]]]></description>
			<content:encoded><![CDATA[<p>Just a simple little class to play around with. I quickly threw it together because I got fed up of writing performance debugging code into perfectly clean classes, and then having to strip it out again later. The stop watch allows you to set callback methods to receive any calls to the stopwatches mark method, which as it&#8217;s a singleton can be called just about anywhere. Additionally it uses sprintf() strings to format the message and time.</p>
<p>Additionally this shows how in two lines you can be notified of the scripts entire execution time using StopWatch.</p>
<pre class="brush: php;">
&lt;?php
include('StopWatch.class.php');
$stopWatch=StopWatch::getInstance();
$stopWatch-&amp;amp;amp;gt;setFinishMessage('script executed in %01.2f seconds');
sleep(2);
?&gt;
</pre>
<p>And here&#8217;s the source <a title="StopWatch PHP Class" href="http://www.acumendevelopment.net/wp-content/uploads/2008/04/stopwatch.zip">stopwatch.zip</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.acumendevelopment.net/php-stopwatch/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Javascript boolean evaluations</title>
		<link>http://www.acumendevelopment.net/javascript-boolean-evaluations/</link>
		<comments>http://www.acumendevelopment.net/javascript-boolean-evaluations/#comments</comments>
		<pubDate>Fri, 29 Feb 2008 09:28:23 +0000</pubDate>
		<dc:creator>Paul Hayes</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[javascript]]></category>

		<guid isPermaLink="false">http://acumendevelopment.net.paul.proto1.acumensystems.net/?p=55</guid>
		<description><![CDATA[It&#8217;s a surprising little bit of info this, after all we take the results of evaluations like this to be self evident, but quite a few of these results where surprising for me.

[[[include:javascriptBooleanTest.php]]]
]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s a surprising little bit of info this, after all we take the results of evaluations like this to be self evident, but quite a few of these results where surprising for me.<br />
<code><br />
[[[include:javascriptBooleanTest.php]]]</code></p>
]]></content:encoded>
			<wfw:commentRss>http://www.acumendevelopment.net/javascript-boolean-evaluations/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Vector for php, surely not?</title>
		<link>http://www.acumendevelopment.net/vector-for-php-surely-not/</link>
		<comments>http://www.acumendevelopment.net/vector-for-php-surely-not/#comments</comments>
		<pubDate>Thu, 21 Feb 2008 16:42:46 +0000</pubDate>
		<dc:creator>Paul Hayes</dc:creator>
				<category><![CDATA[Open Source]]></category>
		<category><![CDATA[performance]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[vector]]></category>

		<guid isPermaLink="false">http://acumendevelopment.net.paul.proto1.acumensystems.net/?p=40</guid>
		<description><![CDATA[Ok before you try to hit me let me explain. This is not just a boring Object Orientated wrapper for storing PHP object in an array. It&#8217;s a multi-indexed,  self sufficient class.

Too many times I&#8217;ve seen my code swell with foreach loops, looking for elements with a certain property, or to call a function [...]]]></description>
			<content:encoded><![CDATA[<p>Ok before you try to hit me let me explain. This is not just a boring Object Orientated wrapper for storing PHP object in an array. It&#8217;s a multi-indexed,  self sufficient class.</p>
<p><span id="more-40"></span></p>
<p>Too many times I&#8217;ve seen my code swell with foreach loops, looking for elements with a certain property, or to call a function of each object in an array. Additionally making sure the keys of an array match one particular property and stay in sink with them. So to try and side step all these I&#8217;m started Vector, I&#8217;m sure others have done similar, but reinvention is one of the fun things about being a programmer (and one of the few things which make it similar to being an artist).</p>
<p>So here&#8217;s how you use Vector currently:</p>
<p><code>&lt;?php </code></p>
<p><code>require_once('Vector.class.php');<br />
require_once('User.example.class.php');</code></p>
<p><code><br />
<font color="#99cc00"> //initialize a Vector and add a index that uses the username field of each object entered into the array<br />
</font> $users=new Vector();<br />
$users-&gt;addIndex('username');</code></p>
<p><code><br />
<font color="#99cc00"> //add two objects of class User into the vector<br />
</font> $users-&gt;addObject($frank=new User('frank.n.stein','monster'));<br />
$users-&gt;addObject($vlad=new User('count.dracula','vampire'));</code></p>
<p><code><br />
<font color="#99cc00"> //call the checkpassword method of the object whose username is count.dracula<br />
</font> if($users-&gt;exists('username','count.dracula') &amp;&amp; $users-&gt;username['count.dracula']-&gt;checkPassword('vampire'))<br />
{<br />
echo 'password correct!';<br />
}<br />
else<br />
{<br />
echo 'password false';<br />
}<br />
?&gt;</code></p>
<p>I hope to include more features later. But it&#8217;s a start.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.acumendevelopment.net/vector-for-php-surely-not/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Minified using disk
Page Caching using memcached

Served from: www.acumendevelopment.net @ 2010-07-30 09:46:27 -->