<?xml version="1.0" encoding="UTF-8"?>
<!--Generated by Squarespace Site Server v5.11.81 (http://www.squarespace.com/) on Fri, 24 Feb 2012 10:37:26 GMT--><rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:rss="http://purl.org/rss/1.0/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:admin="http://webns.net/mvcb/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:cc="http://web.resource.org/cc/"><rss:channel rdf:about="http://www.frodosghost.com/blog/"><rss:title>Blog</rss:title><rss:link>http://www.frodosghost.com/blog/</rss:link><rss:description></rss:description><dc:language>en-AU</dc:language><dc:date>2012-02-24T10:37:26Z</dc:date><admin:generatorAgent rdf:resource="http://www.squarespace.com/">Squarespace Site Server v5.11.81 (http://www.squarespace.com/)</admin:generatorAgent><rss:items><rdf:Seq><rdf:li rdf:resource="http://www.frodosghost.com/blog/2012/1/11/installing-phing-on-os-x.html"/><rdf:li rdf:resource="http://www.frodosghost.com/blog/2011/12/13/estimating-or-how-to-explain-your-time-before-spending-any-a-3.html"/><rdf:li rdf:resource="http://www.frodosghost.com/blog/2011/8/30/fixing-quarantined-files-on-osx.html"/><rdf:li rdf:resource="http://www.frodosghost.com/blog/2011/5/27/easing-launch-stress.html"/><rdf:li rdf:resource="http://www.frodosghost.com/blog/2011/5/16/extending-prototype-for-aborting-ajax-requests.html"/><rdf:li rdf:resource="http://www.frodosghost.com/blog/2011/4/18/phpunit-installed-on-mac-osx.html"/><rdf:li rdf:resource="http://www.frodosghost.com/blog/2010/9/16/the-production-server-has-bad-code-and-the-bad-code-is-yours.html"/><rdf:li rdf:resource="http://www.frodosghost.com/blog/2010/8/11/test-your-apache-configuration.html"/><rdf:li rdf:resource="http://www.frodosghost.com/blog/2010/5/14/social-media-and-short-attention-what-was-that-again.html"/><rdf:li rdf:resource="http://www.frodosghost.com/blog/2010/5/7/facilitating-technological-growth-and-industrial-design.html"/></rdf:Seq></rss:items></rss:channel><rss:item rdf:about="http://www.frodosghost.com/blog/2012/1/11/installing-phing-on-os-x.html"><rss:title>Installing phing on OS X</rss:title><rss:link>http://www.frodosghost.com/blog/2012/1/11/installing-phing-on-os-x.html</rss:link><dc:creator>James</dc:creator><dc:date>2012-01-11T01:40:21Z</dc:date><dc:subject>Web Programming apple mac osx phing php</dc:subject><content:encoded><![CDATA[<p>Install phing on Mac OS X</p>
]]></content:encoded></rss:item><rss:item rdf:about="http://www.frodosghost.com/blog/2011/12/13/estimating-or-how-to-explain-your-time-before-spending-any-a-3.html"><rss:title>Estimating: or how to explain your time before spending any at all</rss:title><rss:link>http://www.frodosghost.com/blog/2011/12/13/estimating-or-how-to-explain-your-time-before-spending-any-a-3.html</rss:link><dc:creator>James</dc:creator><dc:date>2011-12-13T11:39:55Z</dc:date><dc:subject>Articles estimating learning management project quoting time</dc:subject><content:encoded><![CDATA[<p>Putting a value on a task before you start is something that fails more times that it succeeds. Learning how to do this is important for great project management, and a skill that should be acquired.</p>
]]></content:encoded></rss:item><rss:item rdf:about="http://www.frodosghost.com/blog/2011/8/30/fixing-quarantined-files-on-osx.html"><rss:title>Fixing Quarantined Files on OSX</rss:title><rss:link>http://www.frodosghost.com/blog/2011/8/30/fixing-quarantined-files-on-osx.html</rss:link><dc:creator>James</dc:creator><dc:date>2011-08-30T08:50:48Z</dc:date><dc:subject>Articles OS X Operating System command line osx quarantine terminal</dc:subject><content:encoded><![CDATA[Apple quarantine on local files appeared to be returning a 403 error when browsing the site.]]></content:encoded></rss:item><rss:item rdf:about="http://www.frodosghost.com/blog/2011/5/27/easing-launch-stress.html"><rss:title>Easing Launch Stress</rss:title><rss:link>http://www.frodosghost.com/blog/2011/5/27/easing-launch-stress.html</rss:link><dc:creator>James</dc:creator><dc:date>2011-05-26T22:00:36Z</dc:date><dc:subject>Articles launch manage project stress</dc:subject><content:encoded><![CDATA[Talking about making change is easiest. Investing money in a large project is easy. Putting the wheels in motion to change business practices is more difficult. All these require no actual change to established practices. The system change-over is where the doubts all get to the surface and all your hard work is brought into the spotlight.

The client panicked and is now look at putting all the old system bugs back into your brilliant new software. Is there anything you can do to remove or ease this stress?]]></content:encoded></rss:item><rss:item rdf:about="http://www.frodosghost.com/blog/2011/5/16/extending-prototype-for-aborting-ajax-requests.html"><rss:title>Extending Prototype for Aborting Ajax Requests</rss:title><rss:link>http://www.frodosghost.com/blog/2011/5/16/extending-prototype-for-aborting-ajax-requests.html</rss:link><dc:creator>James</dc:creator><dc:date>2011-05-16T12:02:28Z</dc:date><dc:subject>Prototype Web Programming ajax extending javascript prototype request</dc:subject><content:encoded><![CDATA[An Ajax.Request is made to the server and the information that triggered the request is no longer valid. You wish to stop the Request to commence another. <br/><br/>Steven has a solution from a long time ago :: <a href="http://bit.ly/mkUHNc" title="Aborting Ajax requests (for prototype.js)">Aborting Ajax requests (for prototype.js)</a>. Here it is extending the Ajax.Request object so you can call .abort on the handle.<br/><br/><script src="https://gist.github.com/974316.js?file=prototype_extend.js"></script><br/><br/>]]></content:encoded></rss:item><rss:item rdf:about="http://www.frodosghost.com/blog/2011/4/18/phpunit-installed-on-mac-osx.html"><rss:title>PHPUnit Installed on Mac OSX</rss:title><rss:link>http://www.frodosghost.com/blog/2011/4/18/phpunit-installed-on-mac-osx.html</rss:link><dc:creator>James</dc:creator><dc:date>2011-04-18T12:36:24Z</dc:date><dc:subject>Articles Test Driven Development Web Programming command command line configure development editing php phpunit setup symfony2 test driven development unit testing</dc:subject><content:encoded><![CDATA[I think I failed in every possible way setting this up, at least this guide should be exhaustive, it is how I felt making all these changes.<!--more--><br/><h3>Configure Pear</h3><br/>Discover the channels for the pear install to run. The main channel and it also requires files from other repositories.<br/><br/>[bash]sudo pear channel-discover pear.phpunit.de[/bash]<br/><br/>[bash]sudo pear channel-discover pear.symfony-project.com<br/>sudo pear channel-discover components.ez.no[/bash]<br/><br/>Run the install::<br/><br/>[bash]sudo pear install phpunit/PHPUnit[/bash]<br/><h3>Command Line</h3><br/>Command line needs a reference on where to look when the command <em>phpunit</em> is called. This is configured in the <em>.bash_profile</em>:<br/><br/>[bash]sudo nano ~/.bash_profile[/bash]<br/><br/>Add the line below, save and exit. Quit Terminal and reopen the window again.<br/><br/>[bash]export PATH=/usr/local/bin:$PATH[/bash]<br/><br/>This is telling the command line, when a command is called, it will look for the function to run in one of the directories.<br/><h3>Include Path</h3><br/>Finally, you will need to update the include_path in your <em>php.ini</em> file. I have seen some tutorials where a symbolic link is used to fake-configure the include path. This is not a great idea, because all the <em>require_once</em> calls in the Pear library need to reference the include files.<br/><br/>It is best to update the <em>php.ini</em> file - once change configures everything. Look in the <em>php.ini</em> file to find the lines ::<br/><br/>[bash]; UNIX: &quot;/path1:/path2&quot;<br/>include_path = &quot;php/includes&quot;[/bash]<br/><br/>And add the directory which points to your PEAR library ::<br/><br/>[bash]include_path = &quot;/usr/local/PEAR:php/includes&quot;[/bash]<br/><br/>You may need to include a <em>.:</em> at the start, like this ::<br/><br/>[bash]include_path = &quot;.:/usr/local/PEAR:php/includes&quot;[/bash]<br/><h3>Caution</h3><br/>Watch out here. If you are like me, and for some stupid reason you have XAMPP running on a Mac, there is a fair chance that you will have more than one php.ini file. This causes confusion and delay.<br/><br/>[bash]PHP Warning:  require_once(PHP/CodeCoverage/Filter.php): failed to open stream: No such file or directory in /usr/local/bin/phpunit on line 38<br/>PHP Fatal error:  require_once(): Failed opening required 'PHP/CodeCoverage/Filter.php' (include_path='php/includes') in /usr/local/bin/phpunit on line 38[/bash]<br/><br/>If you get an error like this, it is saying that the function 'phpunit' cannot find the correct file to require. This caused me hours of trouble.<br/><br/>To find which <em>php.ini</em> the computer is running the <em>include_path</em> from just type:<br/><br/>[bash]php --ini[/bash]<br/><br/>This will result in something like ::<br/>[bash]Configuration File (php.ini) Path: /etc<br/>Loaded Configuration File:         /private/etc/php.ini<br/>Scan for additional .ini files in: (none)<br/>Additional .ini files parsed:      (none)[/bash]<br/><br/>Edit this php.ini and it should correct the require_once functions.<br/><h3>Command Not Found</h3><br/>[bash]phpunit: command not found[/bash]<br/><em>phpunit</em> needs to be in a bin folder to run on the command line. This usually happens on pear install of phpunit, but if you're a numpty, like me, who has deleted it then the best way to correct it is force an install.<br/><br/>[bash]sudo pear install --force --alldeps phpunit/PHPUnit[/bash]<br/><h3>~End</h3><br/>[bash]PHPUnit 3.5.13 by Sebastian Bergmann.[/bash]<br/><br/><h3>Bonus</h3><br/>For those playing at home... You will notice I am using 'nano' as the editor ~ Not hardcore enough to use vim yet. The commands below are for my future reference, so feel free to ignore them.<br/><br/><strong>ctrl</strong> + <strong>w</strong> = Search the file. So hit the keys and type <em>;include_path</em> in the <em>ini</em> file.<br/><strong>ctrl</strong> + <strong>x</strong> = Save and Quit.]]></content:encoded></rss:item><rss:item rdf:about="http://www.frodosghost.com/blog/2010/9/16/the-production-server-has-bad-code-and-the-bad-code-is-yours.html"><rss:title>The Production Server has Bad Code, and The Bad Code is Yours</rss:title><rss:link>http://www.frodosghost.com/blog/2010/9/16/the-production-server-has-bad-code-and-the-bad-code-is-yours.html</rss:link><dc:creator>James</dc:creator><dc:date>2010-09-16T14:20:58Z</dc:date><dc:subject>Articles Web Programming break bug code development fail procedures repository testing trouble what would rands do</dc:subject><content:encoded><![CDATA[I broke something today and I asked myself "What Would Rands Do?". 

Five minutes before knocking off there is obviously a problem. That sinking feeling struck as soon as the words drifted across the partition. "A problem? But there can't be, I don't code in #Fail."]]></content:encoded></rss:item><rss:item rdf:about="http://www.frodosghost.com/blog/2010/8/11/test-your-apache-configuration.html"><rss:title>Test your Apache Configuration</rss:title><rss:link>http://www.frodosghost.com/blog/2010/8/11/test-your-apache-configuration.html</rss:link><dc:creator>James</dc:creator><dc:date>2010-08-11T12:15:20Z</dc:date><dc:subject>Apache Web Programming apache config configtest programming testing vhost</dc:subject><content:encoded><![CDATA[We have all done it before. Changed the vhosts configuration, left a spelling mistake and restarted the server only to have everything die. Then I spend too much time trying to find my error, which doesn't look like an error.

So I don't forget, here is how to test.]]></content:encoded></rss:item><rss:item rdf:about="http://www.frodosghost.com/blog/2010/5/14/social-media-and-short-attention-what-was-that-again.html"><rss:title>Social Media and Short Attention... What was that again?</rss:title><rss:link>http://www.frodosghost.com/blog/2010/5/14/social-media-and-short-attention-what-was-that-again.html</rss:link><dc:creator>James</dc:creator><dc:date>2010-05-14T12:03:55Z</dc:date><dc:subject>Articles Open Source arguement easy google information rant simple tumblr</dc:subject><content:encoded><![CDATA[Here we are asking our kids to dedicate early life to school. To understand the world. To understand complex situations and interactions. While technology is getting simpler and interacting digitally is getting easier - the hardest lesson to learn is that digital does not translate well to real life.]]></content:encoded></rss:item><rss:item rdf:about="http://www.frodosghost.com/blog/2010/5/7/facilitating-technological-growth-and-industrial-design.html"><rss:title>Facilitating Technological Growth and Industrial Design</rss:title><rss:link>http://www.frodosghost.com/blog/2010/5/7/facilitating-technological-growth-and-industrial-design.html</rss:link><dc:creator>James</dc:creator><dc:date>2010-05-07T06:00:31Z</dc:date><dc:subject>Articles Open Source apple business creating design flash industrial lego meccano open systems operate siren song</dc:subject><content:encoded><![CDATA[In where I continue my rant on Apple and their systems. This week focusing on the industrial design and lack of encouraging innovation.]]></content:encoded></rss:item></rdf:RDF>
