<?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>Colin Seaman Consultancy Ltd - Web Development using PHP and the Zend Framework</title>
	<atom:link href="http://www.colinseaman.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.colinseaman.com</link>
	<description>Robust, scalable, on-time development</description>
	<lastBuildDate>Mon, 01 Mar 2010 12:02:34 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Refactoring</title>
		<link>http://www.colinseaman.com/2010/03/01/refactoring/</link>
		<comments>http://www.colinseaman.com/2010/03/01/refactoring/#comments</comments>
		<pubDate>Mon, 01 Mar 2010 12:02:34 +0000</pubDate>
		<dc:creator>Colin Seaman</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[ideas]]></category>
		<category><![CDATA[Refactoring]]></category>

		<guid isPermaLink="false">http://www.colinseaman.com/?p=62</guid>
		<description><![CDATA[Recently I&#8217;ve been working with two clients who&#8217;s code was written and developed some time ago.  As I stepped through the code to understand what was going on in terms of processes clearly it was obvious how pieces of code could be improved to result in faster execution and lower CPU and memory usage to [...]]]></description>
			<content:encoded><![CDATA[<p>Recently I&#8217;ve been working with two clients who&#8217;s code was written and developed some time ago.  As I stepped through the code to understand what was going on in terms of processes clearly it was obvious how pieces of code could be improved to result in faster execution and lower CPU and memory usage to achieve the same result.</p>
<p>You will find that this is quite a common finding when either picking up your existing code or another persons code.  Whilst each developer has different ideas on how to acheive the goals set by the client, understanding how other developers meet these needs is often the hardest part of the job.  In the real world of Internet development, not much code is commented so its often down to your own logical mindset in calculating how things work (or are suppose to work).</p>
<p>Over my IT career I have picked up many developers code and continued to work on top of this.  The first thing that I ask myself is &#8216;will it be quicker to redevelop this?&#8217;.  In some cases, it is, and thus the client gets a more efficient code base in less time (and consequently less money).  However sometimes spending a bit more time to understand how other developers have worked a situation really pays off.  The ability to consider other people&#8217;s ideas and think outside your own logical mindset is a great asset for a developer to have.  We&#8217;re not right every time, so understanding ideas that other people have put forward in my opinion really pushes your skills forwards and allows you to easily adapt to future situations better.</p>
<p>Like any developer, I&#8217;m proud of the code that I have developed at the end of the project, but if you do have time (even after the project is fully paid up and complete), it&#8217;s definitely worth stepping over what you have done to better your own abilities.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.colinseaman.com/2010/03/01/refactoring/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Taking care of the accounts</title>
		<link>http://www.colinseaman.com/2010/02/04/taking-care-of-the-accounts/</link>
		<comments>http://www.colinseaman.com/2010/02/04/taking-care-of-the-accounts/#comments</comments>
		<pubDate>Thu, 04 Feb 2010 21:15:22 +0000</pubDate>
		<dc:creator>Colin Seaman</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[accounts]]></category>
		<category><![CDATA[crunch]]></category>
		<category><![CDATA[online]]></category>

		<guid isPermaLink="false">http://www.colinseaman.com/?p=60</guid>
		<description><![CDATA[One of the most daunting things that someone who is considering starting a business thinks about is how to take care of the accounts. My background is mainly in development, with a good understanding of sales and general business procedures. However, I was at a loss as to decide what to do with my accounts [...]]]></description>
			<content:encoded><![CDATA[<p>One of the most daunting things that someone who is considering starting a business thinks about is how to take care of the accounts. My background is mainly in development, with a good understanding of sales and general business procedures. However, I was at a loss as to decide what to do with my accounts and my general day to day invoicing.</p>
<p>I was told about a company called Crunch almost a year ago that could solve all my problems. To cut things short, they have done this and more. Crunch.co.uk not only set up my business and various other shareholdings, they provide a very unique online environment that keeps track of all your business finances. The main focus of the system is the invoicing areas where I can easily send and track all of my client invoices. Coupled with the really good expenses area and the newly released dividend section where I can easily withdraw dividends from my profits, Crunch is a complete system that I would urge people to use.</p>
<p>Even if you are unsure about any company financial problem, Crunch have qualified accountants on the end of the phone who have helped me out immensely.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.colinseaman.com/2010/02/04/taking-care-of-the-accounts/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Zend_Form; easy ways to customise the output</title>
		<link>http://www.colinseaman.com/2010/01/22/zend_form-easy-ways-to-customise-the-output/</link>
		<comments>http://www.colinseaman.com/2010/01/22/zend_form-easy-ways-to-customise-the-output/#comments</comments>
		<pubDate>Fri, 22 Jan 2010 11:58:15 +0000</pubDate>
		<dc:creator>Colin Seaman</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[decorators]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[MVC]]></category>
		<category><![CDATA[Zend Framework]]></category>
		<category><![CDATA[Zend_Form]]></category>

		<guid isPermaLink="false">http://www.colinseaman.com/?p=47</guid>
		<description><![CDATA[I&#8217;ve been following a thread on LinkedIn recently regarding people&#8217;s concerns about how to &#8220;easily&#8221; get the output from Zend Form to look how they want on the screen.  There are numerous articles on this, especially those involving how to customise the decorators which Zend Form uses or writing plugins which take care of the [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been following a thread on LinkedIn recently regarding people&#8217;s concerns about how to &#8220;easily&#8221; get the output from Zend Form to look how they want on the screen.  There are numerous articles on this, especially those involving how to customise the decorators which Zend Form uses or writing plugins which take care of the whole lot.</p>
<p>I guess some people&#8217;s concerns are that they either can&#8217;t follow these articles (some of them do make some huge presumptions!) or they don&#8217;t want to have to write a plugin (for example) just for one custom render of a form.</p>
<p>The easiest way to achieve a half way house is to use the power of Zend Form and all it&#8217;s validators and such, but to control the form element layouts in your phtml files.  I&#8217;ve placed some sample code below which I hope helps people in this situation:</p>
<p>IndexController.php</p>
<p>public function blahAction()</p>
<p>{</p>
<p>$form = new forms_myform();</p>
<p>if ($this-&gt;getRequest()-&gt;isPost())<br />
  {<br />
   $postdata = $this-&gt;_request-&gt;getPost();</p>
<p>if (!$form-&gt;isValid())</p>
<p>{</p>
<p>$form-&gt;populate($postdata); // form is invalid, send the data back to the form</p>
<p>} else { // the form has validated successfully, now do something with it</p>
<p>$filtered_data = $form-&gt;getValues();</p>
<p>// Do something with the output</p>
<p>}</p>
<p>}</p>
<p>$this-&gt;view-&gt;form = $form; // assign the form object for use in out view script</p>
<p>blah.phtml (view script)</p>
<p>&lt;p&gt;&lt;?php echo $this-&gt;form-&gt;username ?&gt;&lt;/p&gt;</p>
<p>&lt;p&gt;&lt;?php echo $this-&gt;form-&gt;email?&gt;&lt;/p&gt;</p>
<p>&lt;p&gt;&lt;?php echo $this-&gt;form-&gt;submit?&gt;&lt;/p&gt;</p>
<p>myform.php</p>
<p>&lt;?php</p>
<p>class forms_myform extends Zend_Form<br />
{<br />
    public function __construct()<br />
    {<br />
  $translate = Zend_Registry::get(&#8216;Zend_Translate&#8217;);<br />
             $this-&gt;setDisableLoadDefaultDecorators(false);</p>
<p>  // Create the non empty validator<br />
        $validatorUsername = new Zend_Validate_NotEmpty();<br />
        $validatorUsername-&gt;setMessage(&#8216;Username cannot be empty&#8217;);</p>
<p>      <br />
        $username = new Zend_Form_Element_Text(&#8216;username&#8217;);<br />
        $username-&gt;setLabel($translate-&gt;_(&#8216;Username&#8217;))<br />
           -&gt;setRequired(true)<br />
           -&gt;setDecorators(array(&#8216;ViewHelper&#8217;,<br />
                         &#8216;Description&#8217;,<br />
                         &#8216;Errors&#8217;,<br />
                         array(&#8216;HtmlTag&#8217;, array(&#8216;tag&#8217; =&gt; &#8217;span&#8217;)),<br />
                         array(&#8216;Label&#8217;, array(&#8216;class&#8217; =&gt; &#8221;),)))<br />
                 -&gt;addValidator($validatorUsername);</p>
<p>$email= new Zend_Form_Element_Text(&#8216;email&#8217;);<br />
        $email-&gt;setLabel($translate-&gt;_(&#8216;Email&#8217;))<br />
           -&gt;setRequired(true)<br />
           -&gt;setDecorators(array(&#8216;ViewHelper&#8217;,<br />
                         &#8216;Description&#8217;,<br />
                         &#8216;Errors&#8217;,<br />
                         array(&#8216;HtmlTag&#8217;, array(&#8216;tag&#8217; =&gt; &#8217;span&#8217;)),<br />
                         array(&#8216;Label&#8217;, array(&#8216;class&#8217; =&gt; &#8221;),)));</p>
<p>$submit = new Zend_Form_Element_Submit(&#8217;submit&#8217;);<br />
        $submit-&gt;setLabel($translate-&gt;_(&#8216;Submit&#8217;))<br />
          -&gt;setValue(&#8216;1&#8242;)<br />
          -&gt;setDecorators(array(&#8216;ViewHelper&#8217;,<br />
                         &#8216;Description&#8217;,<br />
                         &#8216;Errors&#8217;,<br />
                         array(&#8216;HtmlTag&#8217;, array(&#8216;tag&#8217; =&gt; &#8217;span&#8217;)),<br />
                         array(&#8216;Label&#8217;, array(&#8216;class&#8217; =&gt; &#8216;nolabel&#8217;),)))<br />
          -&gt;setAttrib(&#8216;class&#8217;,'loginbutton&#8217;);<br />
        $this-&gt;addElements(array($username, $email, $submit));</p>
<p>    }<br />
}</p>
<p>//  You&#8217;ll notice that we set the decorators in the form so that we don&#8217;t get all the junk DD, DT etc tags that by standard Zend Form produces.</p>
<p>-&gt;setDecorators(array(&#8216;ViewHelper&#8217;,<br />
                         &#8216;Description&#8217;,<br />
                         &#8216;Errors&#8217;,<br />
                         array(&#8216;HtmlTag&#8217;, array(&#8216;tag&#8217; =&gt; &#8217;span&#8217;)),<br />
                         array(&#8216;Label&#8217;, array(&#8216;class&#8217; =&gt; &#8221;),)))</p>
<p>By wrapping the HTML tag in a span, it means that we can control it easily via CSS.  By default it doesn&#8217;t display any differently if you have no specific span style defined.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.colinseaman.com/2010/01/22/zend_form-easy-ways-to-customise-the-output/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Great Tools for Great Jobs</title>
		<link>http://www.colinseaman.com/2010/01/19/great-tools-for-great-jobs/</link>
		<comments>http://www.colinseaman.com/2010/01/19/great-tools-for-great-jobs/#comments</comments>
		<pubDate>Tue, 19 Jan 2010 15:35:18 +0000</pubDate>
		<dc:creator>Colin Seaman</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[drupal]]></category>
		<category><![CDATA[magento]]></category>
		<category><![CDATA[Open Source]]></category>

		<guid isPermaLink="false">http://www.colinseaman.com/?p=45</guid>
		<description><![CDATA[How many times have you seen the wrong tool used for the wrong job. I have been dealing with a company looking to set up a new e-commerce venture and during the process of them receiving ideas from other companies they were offered Drupal as a solution to their needs. Drupal &#8211; a very good, [...]]]></description>
			<content:encoded><![CDATA[<p>How many times have you seen the wrong tool used for the wrong job. I have been dealing with a company looking to set up a new e-commerce venture and during the process of them receiving ideas from other companies they were offered Drupal as a solution to their needs. Drupal &#8211; a very good, open source Content Management System, but not really something you&#8217;d offer as a solution for selling a product. It gets me wondering whether some people just don&#8217;t know what tools are on offer or whether its just people giving bad advice.</p>
<p>Having many years of experience in different systems and technologies myself, a mistake like this is obvious to spot. However, if a client hasn&#8217;t got any information to the contrary, they could potentially use this as a viable solution which in itself is scary. I&#8217;m sure the Drupal e-commerce component fits the bill for certain people, but as a number one recommendation it&#8217;s rather bazaar. For reference, I&#8217;d recommend something proven like Magento.</p>
<p>It makes you wonder how many clients have received something that doesn&#8217;t quite fit the brief or expectations when dealing with other companies. It&#8217;s could literally mean fitting a square inside a circle.</p>
<p>The most important part of getting what you want is the requirements gathering stage. There is an action both on the client and the company in this instance, where the client should be as detailed as possible to the developer and the developer can then talk through ways in which the goals can be achieved and surpassed.  Before undertaking any work you must think about the business goals, the design goals and the development goals of a project, and only then we can make a recommendation of which product best fits the bill or whether any bespoke work needs to be undertaken.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.colinseaman.com/2010/01/19/great-tools-for-great-jobs/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Developing new ideas</title>
		<link>http://www.colinseaman.com/2010/01/15/developing-new-ideas/</link>
		<comments>http://www.colinseaman.com/2010/01/15/developing-new-ideas/#comments</comments>
		<pubDate>Fri, 15 Jan 2010 14:28:32 +0000</pubDate>
		<dc:creator>Colin Seaman</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[icq]]></category>
		<category><![CDATA[ideas]]></category>
		<category><![CDATA[internet history]]></category>
		<category><![CDATA[product development]]></category>
		<category><![CDATA[social media]]></category>

		<guid isPermaLink="false">http://www.colinseaman.com/?p=40</guid>
		<description><![CDATA[I&#8217;ve spent the last few months considering whether some ideas for various things could be viable solutions for the marketplace.  The most successful ideas really tend to be the most simple.  They are gadgets, widgets or helpful utilities that we just take for granted once we have become accustomed to them.
I believe that everyone has [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve spent the last few months considering whether some ideas for various things could be viable solutions for the marketplace.  The most successful ideas really tend to be the most simple.  They are gadgets, widgets or helpful utilities that we just take for granted once we have become accustomed to them.</p>
<p>I believe that everyone has at least one good idea in them, but not necessarily the skills or know how to get their idea developed.  Being a techie, most (if not all) of my ideas are Internet based as it means that I can do something about them when I find the time.  It&#8217;s amazing how quickly you can build up a network of people in the area your idea resolves in by just talking to several people.  What&#8217;s more, you&#8217;ll soon find someone who has been along the same thought process of you and is perhaps looking to launch something in a similar business area.</p>
<p>Good ideas aren&#8217;t hard to find.  Good ideas aren&#8217;t hard to implement either.  As long as the market has been researched and there is a genuine need for the idea then it&#8217;ll usually be a success.  Obviously marketing does play some part in this, but we live in the age of free, viral marketing meaning that you can quickly target a large audience.</p>
<p>I launched a football site during the mid-1990&#8217;s and without spending a single penny managed to attract nearly 10 million visitors per month.  The principles of free promotion or networking haven&#8217;t changed, just the processes.</p>
<p>Social Media is playing a huge part in peoples&#8217; lives at present, with Facebook claiming to have around 140 million registered accounts.  However, a little Internet history tells us that this isn&#8217;t a new idea, just a re-adapted one.  Where there are people chatting away on Facebook now, during the early 1990&#8217;s there were (and still are) Newgroups (alt.news.talktome!), which we&#8217;re adapted in to a more mainstream Forum/Message board system for most sites later in the 90&#8217;s, IM&#8217;s such as ICQ we available in the late 90&#8217;s to the new century, where we all seem to communicate using Facebook, Skype or MSN.  It goes to show, even if your idea has been (in principle) already developed, changing the face of something is often a good thing.  It is, after all, all part of product innovation.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.colinseaman.com/2010/01/15/developing-new-ideas/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Welcome</title>
		<link>http://www.colinseaman.com/2010/01/14/this-is-a-new-blog/</link>
		<comments>http://www.colinseaman.com/2010/01/14/this-is-a-new-blog/#comments</comments>
		<pubDate>Thu, 14 Jan 2010 15:12:04 +0000</pubDate>
		<dc:creator>Colin Seaman</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Agencies]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[ROI]]></category>
		<category><![CDATA[XForms]]></category>
		<category><![CDATA[Zend Framework]]></category>

		<guid isPermaLink="false">http://wordpress.localhost.local/?p=14</guid>
		<description><![CDATA[Welcome to the new Colin Seaman Consultancy Ltd site.  In the coming weeks, I&#8217;ll be posting blogs about how to make the most of your business time and ideas, as well as many technical tips to help you out of a hole.
]]></description>
			<content:encoded><![CDATA[<p>Welcome to the new Colin Seaman Consultancy Ltd site.  In the coming weeks, I&#8217;ll be posting blogs about how to make the most of your business time and ideas, as well as many technical tips to help you out of a hole.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.colinseaman.com/2010/01/14/this-is-a-new-blog/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
