<?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>Freelance PHP Web developer</title>
	<atom:link href="http://www.christofcoetzee.co.za/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.christofcoetzee.co.za</link>
	<description>Freelance PHP Web Developer</description>
	<lastBuildDate>Sat, 23 Jul 2011 17:01:59 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>How to avoid “spaghetti mess” code</title>
		<link>http://www.christofcoetzee.co.za/how-to-avoid-spaghetti-mess-code/</link>
		<comments>http://www.christofcoetzee.co.za/how-to-avoid-spaghetti-mess-code/#comments</comments>
		<pubDate>Sat, 23 Jul 2011 16:51:02 +0000</pubDate>
		<dc:creator>Christof</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Web development]]></category>

		<guid isPermaLink="false">http://www.christofcoetzee.co.za/?p=1035</guid>
		<description><![CDATA[I believe all programmers found themselves caught in this situation at least once… the dreadful “spaghetti mess” where you’ve lost track of logical flow in your code and you’re doubtful that your final output will be accurate, you’re also getting increasingly frustrated with working on the code because A is no longer A, but looks<a href="http://www.christofcoetzee.co.za/how-to-avoid-spaghetti-mess-code/">&#160;&#160;[ Read More ]</a>]]></description>
			<content:encoded><![CDATA[<p>I believe all programmers found themselves caught in this situation at least once… the dreadful “spaghetti mess” where you’ve lost track of logical flow in your code and you’re doubtful that your final output will be accurate, you’re also getting increasingly frustrated with working on the code because A is no longer A, but looks like B.</p>
<p>As with anything else in life, if you fail to plan, you plan to fail.</p>
<p>Relax, you have a few weapons in your arsenal:</p>
<ol>
<li>System      Architecture</li>
<li>Configuration</li>
<li>Conventions      &amp; less magic</li>
<li>OO programming      is your friend</li>
<li>Globals      are your enemy</li>
</ol>
<p><strong>System Architecture:</strong><br />
I would almost always suggest MVC and a popular MVC framework like Zend Framework, CakePHP, Yii etc. cause these already solves the architectural problem.</p>
<p>If you really don’t want to use any framework then I would suggest the following:<br />
<a href="http://en.wikipedia.org/wiki/Software_architecture" target="_blank">Read up on Systems architecture and specifically Design patterns</a></p>
<p><strong>Configuration:</strong><br />
Configuration values must load at system startup, it doesn’t matter if your configuration values are in a file or database… most importantly, values contained in the configuration storage must be unique to avoid the duplication problem.</p>
<p><strong>Conventions &amp; less magic:</strong><br />
Name your classes, variables, etc. based on the module that it’s directly related to as well as it’s functions i.e. Class Orders, Method Orders::Invoice().</p>
<p>A function or method should never work on global values, but should only be responsible for doing 1 task and return a value, or void()…. If you call $Orders-&gt;createInvoice(); then you would expect it to do only that, NOT to also email the invoice in the background (which you won’t be aware of).<br />
If you want to email the invoice you should have to call it explicitly, $Orders-&gt;createInvoice()-&gt;sendInvoice();</p>
<p>If you are extending the Orders class into something else, then be sure to name it appropriately, i.e. class Orders_YellowBranch extends Orders, this way you’ll know that on line 5023 of your code this class works only on the YellowBranch orders – no confusion.</p>
<p>Why less magic? Let your code be obvious, as soon as classes etc. gets too magical it become a nightmare to trace and debug, again the function or method must do what its name suggest…$Orders-&gt;createAndSendMailAndDeleteRecord(), and that’s all it should be doing!</p>
<p><strong>OO (Object Orientated) programming is your friend:</strong><br />
Its quite amazing that there are still advocates for non-OO programming today, people who believe they can build rock solid systems using only procedural practices and static functions.</p>
<p>If you are writing a simple 1 page script then perhaps yes, but this is hardly ever the real-world scenario.<br />
When using objects (classes) correctly they give us an automatic namespace which helps with the code logic and human readability as well, they can also be extended where the child class can inherit all members from the parent class and define additional members/methods i.e. Car class inherits from Vehicle class and can define additional methods like, sunroof, colour, or override engine to v8.</p>
<p><strong>Globals are your enemy:</strong><br />
I guess most programmers today will already be familiar with the Globals problem.</p>
<p>For example, your application includes about 6 scripts in order to render the final “Orders total” page, each of these included scripts in turn also defines some global variables and also works on previously defined global variables.<br />
Now in your main script you are calculating the Product total plus (+) Shipping amount and cannot get the right Total amount… perhaps script 2 is altering this variable, or is it script 5 unsetting this variable?</p>
<p>It becomes a nightmare trying to trace the flow of events and where exactly things are going wrong.<br />
In PHP there is also a global array called $_REQUEST, this array will contain $_POST, $_GET &amp; $_COOKIE.</p>
<p>Imagine the following scenario:</p>
<p>if($auth-&gt;isValid( $_REQUEST[‘user_id’]) {<br />
or<br />
if($auth-&gt;isValid( $_POST[‘user_id’]) {</p>
<p>When using the global $_REQUEST how would you know for a fact that you are getting the correct user_id?, as you might already have user_id in $_COOKIE or $_GET, but it’s different to the one you are explicitly expecting in $_POST.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.christofcoetzee.co.za/how-to-avoid-spaghetti-mess-code/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>freelance web development vs full-time job</title>
		<link>http://www.christofcoetzee.co.za/freelance-web-development-vs-full-time-job/</link>
		<comments>http://www.christofcoetzee.co.za/freelance-web-development-vs-full-time-job/#comments</comments>
		<pubDate>Wed, 04 May 2011 00:18:56 +0000</pubDate>
		<dc:creator>Christof</dc:creator>
				<category><![CDATA[Affiliates]]></category>
		<category><![CDATA[Web development]]></category>
		<category><![CDATA[Zend Framework]]></category>

		<guid isPermaLink="false">http://www.christofcoetzee.co.za/?p=1024</guid>
		<description><![CDATA[I quit my full-time job in August 2010 -  I’ve been doing full-time freelance Web Development, Systems Analysis &#38; General Consulting since then. The road has been fairly smooth and generous so far! You are obviously reading this post with the hope of finding some conclusive information that will inspire you to take the freelance<a href="http://www.christofcoetzee.co.za/freelance-web-development-vs-full-time-job/">&#160;&#160;[ Read More ]</a>]]></description>
			<content:encoded><![CDATA[<p>I quit my full-time job in August 2010 -  I’ve been doing full-time freelance Web Development, Systems Analysis &amp; General Consulting since then. The road has been fairly smooth and generous so far!</p>
<p>You are obviously reading this post with the hope of finding some conclusive information that will inspire you to take the freelance leap or at least to make the best, logical decision about your career, be that to stick with your current job or to go freelance.</p>
<p>Making decisions that affects your income/earnings is never easy, especially if you have dependents/family to support. Hopefully the below list will help you make the right choice… to go freelance or not!</p>
<p><strong>Let’s start off pessimistically and objectively – in order of importance.</strong></p>
<ol>
<li><strong>Do you have a cash reserve or access      to funds to support you during the initial months of freelancing?</strong><br />
No matter how smart you are, without funds to carry you for at least the      first 3 months you will not survive, also remember most development projects      can take a few weeks to complete and then maybe another few before you      receive payment.</li>
<li><strong>Do you have a Business Plan?</strong><br />
You absolutely have to know what you are going to do and how you are going      to accomplish this.</li>
<li><strong>Do you have adequate skills and      experience to supply your clients with a professional service?<br />
</strong>You will be offering your skills to a client, the client will either      be impressed or not, as a freelancer you don’t have access to a whole team      of specialists and you’ll be responsible for most of the work.</li>
<li><strong>Do you have what it takes to run your      own business, thinking about finances, marketing, sales, operations, and especially      time management?<br />
</strong>Some business skills are vital if you want to survive in the long run,      i.e. if you don’t know how to market or quote effectively then you will      not make it.</li>
<li><strong>Do you have what it takes to motivate      yourself?</strong><br />
Most freelancers and especially the single ones might find it increasingly      difficult to operate on their own, it will get lonely and you will feel      demotivated at times.</li>
<li><strong>Will you be able to handle stressful,      critical situations by yourself without the help of others?<br />
</strong>As a freelancer you will have to take full ownership and with this      comes the duty of handling difficult clients &#8211; crisis management is      required by you since you are directly responsible for your work.</li>
</ol>
<p><strong>The positive side:</strong></p>
<ol>
<li><strong>As a freelancer you can determine your      own income</strong>.<br />
We are currently very fortunate, there is a huge demand for PHP web developers      and also in other technologies and I’m very positive that if you advertise      yourself correctly you will get more work than you can handle.</li>
<li><strong>Your time is yours and you can plan it      anyway you like.</strong><br />
Wouldn’t it be nice to plan a long weekend every week or to just be able      to spend more time with your loved ones?</li>
<li><strong>You mostly have authority on how things      get done.</strong><br />
If you currently have a dislike in how things gets done at your employer,      then freelance is the opportunity for you to do it right.</li>
</ol>
<p><span style="color: #b50f0f;">I will soon elaborate on how to market yourself effectively in the web development industry and also supply some good resources for finding new work/projects!</span></p>
]]></content:encoded>
			<wfw:commentRss>http://www.christofcoetzee.co.za/freelance-web-development-vs-full-time-job/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Zend Framework vs Codeigniter vs CakePHP vs others</title>
		<link>http://www.christofcoetzee.co.za/zend-framework-vs-codeigniter-vs-cakephp-vs-others/</link>
		<comments>http://www.christofcoetzee.co.za/zend-framework-vs-codeigniter-vs-cakephp-vs-others/#comments</comments>
		<pubDate>Sat, 05 Mar 2011 22:13:40 +0000</pubDate>
		<dc:creator>Christof</dc:creator>
				<category><![CDATA[Web development]]></category>
		<category><![CDATA[Zend Framework]]></category>

		<guid isPermaLink="false">http://www.christofcoetzee.co.za/?p=918</guid>
		<description><![CDATA[There are so many other blogs on this topic and I&#8217;m not about to start another lengthy one detailing the pros and cons of each framework, which at the end still leaves you clueless, and these debates generally end up in a word battle, each candidate hoping to get the submission based on his bias<a href="http://www.christofcoetzee.co.za/zend-framework-vs-codeigniter-vs-cakephp-vs-others/">&#160;&#160;[ Read More ]</a>]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-full wp-image-555" style="margin: 5px;" title="zend-framework" src="http://www.christofcoetzee.co.za/wp-content/uploads/2010/08/zend-framework.jpg" alt="" width="273" height="46" />There are so many other blogs on this topic and I&#8217;m not about to start another lengthy one detailing the pros and cons of each framework, which at the end still leaves you clueless, and these debates generally end up in a word battle, each candidate hoping to get the submission based on his bias opinions regarding his framework of choice.</p>
<p>I understand that having to learn a new PHP MVC framework takes a lot of time and energy and one need to be absolutely sure about the MVC framework you choose, you&#8217;ve heard about Codeigniter, CakePHP, Symphony etc, which one to choose!</p>
<p>The following pointers will help you make the decision&#8230; in saying this also understand that I&#8217;m bias towards the Zend Framework and I&#8217;m strongly advocating that you too should adopt it as your framework of choice.</p>
<p><strong>5 Points to consider when evaluating a framework</strong><strong>&#8230; making the Zend Framework choice is simple when you consider the following </strong><a href="javascript:videoColorBox('zfvideo');">watch podcast</a><strong>:</strong></p>
<ol>
<li><strong>Who&#8217;s behind the framework:</strong> it is backed and endorsed by The Zend Company and IBM &#8211; no other PHP framework competitor is. The code base is constantly being updated, tested and maintained by a professional team of developers at the Zend company (<a href="http://www.zend.com/en/" target="_blank">the company behind PHP</a>) &#8211; other frameworks cannot compete with this.</li>
<li><strong>The quality factor:</strong> the code base is of highest quality, fully standardized and professional coding practices are emphasized &#8211; not like other framework where things gets done in a magnitude of ways, creating a spaghetti mess of code and structure.</li>
<li><strong>Scaling and RAD:</strong> ZF is a glue framework, meaning you can use some or all of the components to model your system. You will find an arsenal of professional, production-ready libraries all built by the Zend Company for ZF to simplify development &#8211; not like a variety of ad-hoc, buggy 3rd party plugins etc. you&#8217;ll find in most other frameworks.</li>
<li><strong>Documentation &amp; support:</strong> the Zend Framework documentation, bug track and tutorials (especially for beginners)are very impressive &#8211; this is probably the worst aspect of most other mediocre frameworks.</li>
<li><strong>Future prospects:</strong> looking for a professional PHP development job?, you will find that the majority of big companies are serious about Zend.<br />
Are you going to get familiar with a mediocre framework just to be let down a few years down the line when the 1 or 2 man-band developers realized their architectural skills and future vision weren&#8217;t that great and they now have to remodel the framework from the ground up, leaving you with a new learning curve and all your previous applications non backwards compatible&#8230;like what happened with Codeigniter v1.7 to v2.0 leap, best of all CI v2.0 is still not fully OO.</li>
</ol>
<p>There you have it, its really a no-brainer &#8211; happy coding!</p>
<div id="zfvideo" style="display: none;"><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="500" height="460" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/A1dmxvN6vRs&amp;hl=en_US&amp;fs=1" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="500" height="460" src="http://www.youtube.com/v/A1dmxvN6vRs&amp;hl=en_US&amp;fs=1" allowscriptaccess="always" allowfullscreen="true"></embed></object></div>
]]></content:encoded>
			<wfw:commentRss>http://www.christofcoetzee.co.za/zend-framework-vs-codeigniter-vs-cakephp-vs-others/feed/</wfw:commentRss>
		<slash:comments>16</slash:comments>
		</item>
		<item>
		<title>How to eliminate creative block</title>
		<link>http://www.christofcoetzee.co.za/how-to-eliminate-creative-block/</link>
		<comments>http://www.christofcoetzee.co.za/how-to-eliminate-creative-block/#comments</comments>
		<pubDate>Mon, 10 Jan 2011 23:49:23 +0000</pubDate>
		<dc:creator>Christof</dc:creator>
				<category><![CDATA[Web development]]></category>

		<guid isPermaLink="false">http://www.christofcoetzee.co.za/?p=854</guid>
		<description><![CDATA[Yet another article on the dreaded phenomena, creative block! I’ve been suffering from this quite a bit the last few years, and like you I’ve searched far and wide for a quick solution to put the beast to rest, but every article I read made me more confused and desperate for a real solution. Its<a href="http://www.christofcoetzee.co.za/how-to-eliminate-creative-block/">&#160;&#160;[ Read More ]</a>]]></description>
			<content:encoded><![CDATA[<h3><strong>Yet another article on the dreaded phenomena, creative block!</strong></h3>
<p><img class="alignleft size-full wp-image-859" title="creative-block" src="http://www.christofcoetzee.co.za/wp-content/uploads/2011/01/creative-block.jpg" alt="" width="300" height="225" />I’ve been suffering from this quite a bit the last few years, and like you I’ve searched far and wide for a quick solution to put the beast to rest, but every article I read made me more confused and desperate for a real solution.</p>
<p>Its 2 years later and I can confidently say I know how to tame the beast, and I can now  share with you what has worked for me, and yes, it’s a basic recipe which will probably work for you as well.</p>
<p>I see myself as quite a creative person, having been involved in creative work for most of my life, from graphic design to fine arts (painting) and for the past 13 years programming – hence I’m always on the edge of self-destruct or genius and found myself in a creative block at least once a year… ultimately one must find peace and balance in order to reach your ultimate ability, or destiny.</p>
<p>Creative block (common under Writers, Artists and Designers) …but also common under programmers as they have to come up with intuitive user interfaces, slick  program logic etc, and probably most other subjects/jobs where intuitive and creative thinking is required.</p>
<p>Instead of giving you tons of information to process, I will give you a simple list of things to avoid. Follow these rules and you will most definitely bounce out of your block!</p>
<p><strong>THINGS TO AVOID</strong>, I found the below to be fuel for the creative-block-beast, and will also bring it to life.</p>
<ul>
<li><strong>Midnight oil:</strong> Get sufficient rest,      working long hours or till near burnout will do your body and mind no good,      and being in a state of semi or full burnout will have an effect of      depression on you, killing your inspiration and passion.</li>
<li><strong>Lack of exercise:</strong> Get regular      exercise…contrary to belief exercise actually boosts your energy levels      and gives your brain added oxygen, which in turn assists your brain’s      thinking pattern.</li>
<li><strong>Negativity:</strong> Ovoid people and      things that has a negative effect on you, again too much of this will      ultimately make you negative and influence your thinking pattern, no great      ideas can be born from a negative mind. Also keep in mind that you might      be making yourself negative with no help from others.</li>
<li><strong>The rut:</strong> If you are stuck in a      rut, get out! Explore new things, new ideas and meet new people – planet      earth is a big place.</li>
<li><strong>Shallow waters:</strong> Maybe you had too      much of average, maybe it’s time to jump in the deep end. Challenge      yourself, push your limits and measure this against the best in your      industry, but don’t fall into the trap of negativity if you don’t achieve      this! – push harder.</li>
<li><strong>The one and only:</strong> Don’t try too      hard to be uniquely you, sometimes its good to revisit your mentors work,      or other people that has inspired you in the past. Some of the best      creative work today (advertising, fashion etc.) are “borrowed” from      previous designers/innovators ideas. Maybe it’s a good start to get your      creative juices flowing again.</li>
</ul>
<p><strong>Remember!  Midnight oil, Lack of exercise, Negativity, The rut, Shallow waters, The one and only.</strong></p>
<p>The block, unblocked &#8211; In a nutshell, if one is not inspired, nothing amazing will happen. It is from inspiration and passion that great ideas are born – if you are following the AVOID list then you are killing your inspiration and passion…and we all know where this road ends.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.christofcoetzee.co.za/how-to-eliminate-creative-block/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>jQuery active link, active page</title>
		<link>http://www.christofcoetzee.co.za/jquery-active-link-active-page/</link>
		<comments>http://www.christofcoetzee.co.za/jquery-active-link-active-page/#comments</comments>
		<pubDate>Thu, 14 Oct 2010 08:41:12 +0000</pubDate>
		<dc:creator>Christof</dc:creator>
				<category><![CDATA[Web development]]></category>

		<guid isPermaLink="false">http://www.christofcoetzee.co.za/?p=836</guid>
		<description><![CDATA[I was recently asked to set the current page hyperlink (button) active, I did not want to create tons of if/else statements for such a trivial task. I thought since jQuery had so many powerful selectors and hyperlink (href) selectors as well I could get away with writing a simple jQuery script to do this<a href="http://www.christofcoetzee.co.za/jquery-active-link-active-page/">&#160;&#160;[ Read More ]</a>]]></description>
			<content:encoded><![CDATA[<p>I was recently asked to set the current page hyperlink (button) active, I did not want to create tons of if/else statements for such a trivial task.</p>
<p>I thought since jQuery had so many powerful selectors and hyperlink (href) selectors as well I could get away with writing a simple jQuery script to do this on-the-fly, as it really only matters to the site visitor and not much to the crawler.</p>
<p>Anyway, I thought I&#8217;d share this code with you, here goes&#8230;</p>
<p>what happens here is simple, document.location get the current page address that&#8217;s being displayed in the browser, we then split this up on the slashes.</p>
<p>We then take the last segment and give it to jQuery as a selector pattern, the .HeaderTopNav is a class wrapper in our html menu and you can leave this out &#8211; the $ sign in the pattern means, match at end.</p>
<div style="border: dotted 1px #999999; padding: 10px; background-color: #ddeeff; margin-top: 10px;">//make sure all links ends with a slash /, else this wont work<br />
var docloc = document.location.toString().split(&#8216;/&#8217;);<br />
docloc = docloc[docloc.length-2];<br />
$(&#8216;.HeaderTopNav &gt; a[href$=/'+docloc+'/]&#8216;).css(&#8220;border-bottom&#8221;,&#8221;solid 4px #A2514E&#8221;);</div>
<p>If your URL&#8217;s don&#8217;t end with a slash but perhaps .php, then you would prob do something like this&#8230;</p>
<div style="border: dotted 1px #999999; padding: 10px; background-color: #ddeeff; margin-top: 10px;">var docloc = document.location.toString().split(&#8216;/&#8217;);<br />
docloc = docloc[docloc.length-1];<br />
$(&#8216;.HeaderTopNav &gt; a[href$=/'+docloc+']&#8216;).css(&#8220;border-bottom&#8221;,&#8221;solid  4px #A2514E&#8221;);</div>
<p><span style="color: #b80917;"><strong>Note: if you copy this code, make sure to replace the WordPress quotes with &#8220;real&#8221; quotes, Enjoy.</strong></span></p>
]]></content:encoded>
			<wfw:commentRss>http://www.christofcoetzee.co.za/jquery-active-link-active-page/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Zend Framework new era</title>
		<link>http://www.christofcoetzee.co.za/zend-framework-new-era/</link>
		<comments>http://www.christofcoetzee.co.za/zend-framework-new-era/#comments</comments>
		<pubDate>Sat, 07 Aug 2010 20:57:20 +0000</pubDate>
		<dc:creator>Christof</dc:creator>
				<category><![CDATA[Web development]]></category>
		<category><![CDATA[Zend Framework]]></category>

		<guid isPermaLink="false">http://www.christofcoetzee.co.za/?p=371</guid>
		<description><![CDATA[PHP has come a long way over the past decade and is still the most widely used web development language, with the biggest online community. Two of the most significant reasons why PHP became so popular can be contributed to the ease of use and flexibility. The flexibility of PHP is a problem in its<a href="http://www.christofcoetzee.co.za/zend-framework-new-era/">&#160;&#160;[ Read More ]</a>]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-555" title="zend-framework" src="http://www.christofcoetzee.co.za/wp-content/uploads/2010/08/zend-framework.jpg" alt="" width="273" height="46" /></p>
<p>PHP has come a long way over the past decade and is still the most widely used web development language, with the biggest online community.<br />
Two of the most significant reasons why PHP became so popular can be contributed to the ease of use and flexibility. <strong>The flexibility of PHP is a problem in its own</strong> &#8211; it opens a doorway for novice programmers to build poorly modeled software.</p>
<p>Experienced programmers know how fundamental good systems architecture is and always model their systems based on good Systems Design practices.<br />
However, most of the time these programmers will implement architecture which they are comfortable with, and this specific architecture is not necessarily standardized, meaning other programmers might find it hard to understand the software.</p>
<p>MVC (Model View Controller) solves this phenomena, as its a standardized architecture and method for developing software. We&#8217;ve had MVC frameworks for some time now, to the likes of <a href="http://framework.zend.com" target="_blank">Zend Framework</a>, CakePHP, CodeIgniter, Sympony etc.</p>
<p><strong>Applying for a Web development position these days you&#8217;ll find more than often that MVC and specifically Zend Framework to be a requirement.</strong></p>
<p>I believe we&#8217;re in a new era of web development, were many practices are standardized on a more global scale and The Zend Company / Zend Framework has definitely contributed to this&#8230;which has long been awaited!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.christofcoetzee.co.za/zend-framework-new-era/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Google interrupts natural progression</title>
		<link>http://www.christofcoetzee.co.za/google-interrupts-natural-progression/</link>
		<comments>http://www.christofcoetzee.co.za/google-interrupts-natural-progression/#comments</comments>
		<pubDate>Sat, 07 Aug 2010 20:56:02 +0000</pubDate>
		<dc:creator>Christof</dc:creator>
				<category><![CDATA[Web development]]></category>

		<guid isPermaLink="false">http://www.christofcoetzee.co.za/?p=369</guid>
		<description><![CDATA[Is Google (and other SE&#8217;s) hindering natural technological growth? I think websites would have looked somewhat different today if Search Engines and specifically SEO never existed. Keep in mind that the majority of websites today are built with SEO in mind and Search Engines pretty much dictates what we as web developers can and can&#8217;t<a href="http://www.christofcoetzee.co.za/google-interrupts-natural-progression/">&#160;&#160;[ Read More ]</a>]]></description>
			<content:encoded><![CDATA[<p><img title="google" src="http://www.christofcoetzee.co.za/wp-content/uploads/2010/08/google.jpg" alt="" width="198" height="69" /></p>
<p>Is Google (and other SE&#8217;s) hindering natural technological growth?</p>
<p>I think websites would have looked somewhat different today if Search Engines and specifically SEO never existed. Keep in mind that the majority of websites today are built with SEO in mind and Search Engines pretty much dictates what we as web developers can and can&#8217;t do &#8211; do the wrong thing or use the wrong technology and your website will just not rank well, period!</p>
<p>I&#8217;m using 2 technologies to illustrate my point, Flash and Javascript/Ajax. We&#8217;ve been able to create really rich, interactive, mind-blowing websites for the last decade using these technologies, but the acceptance has been very slow due to the fact that these types of websites are not indexed very well on search engines, hence &#8220;we&#8221; prefer to use lesser technologies merely for the sake of getting websites to rank.</p>
<p>How far would Flash and Javascript have evolved over the last decade if there was no dictation from Search Engines, and what would the Web have looked like today?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.christofcoetzee.co.za/google-interrupts-natural-progression/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Magento Pros and Cons</title>
		<link>http://www.christofcoetzee.co.za/magento-pros-and-cons/</link>
		<comments>http://www.christofcoetzee.co.za/magento-pros-and-cons/#comments</comments>
		<pubDate>Sat, 07 Aug 2010 20:51:38 +0000</pubDate>
		<dc:creator>Christof</dc:creator>
				<category><![CDATA[Magento commerce]]></category>
		<category><![CDATA[Web development]]></category>

		<guid isPermaLink="false">http://www.christofcoetzee.co.za/?p=365</guid>
		<description><![CDATA[I&#8217;ve been involved in a 4 month, extensive Magento development, during this time I got to experience both the bad and good side of Magento. If Magento is a candidate for you next shopping cart, then do read further&#8230; I&#8217;ve highlighted some of the higher level pros and cons. Some of the key factors I<a href="http://www.christofcoetzee.co.za/magento-pros-and-cons/">&#160;&#160;[ Read More ]</a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.magentocommerce.com" target="_blank"><img class="alignnone size-full wp-image-551" title="magento" src="http://www.christofcoetzee.co.za/wp-content/uploads/2010/08/magento.jpg" alt="" width="241" height="76" /></a></p>
<p>I&#8217;ve been involved in a 4 month, extensive Magento development, during this time I got to experience both the bad and good side of Magento.<br />
If Magento is a candidate for you next shopping cart, then do read further&#8230; I&#8217;ve highlighted some of the <strong>higher level pros and cons</strong>. Some of the key factors I discuss here could have a substantial impact and might just be the deal breaker for you.</p>
<p><strong>I trust that the below pros and cons will make you aware of, and at least prepare you for your Magento migration or clean installation.</strong><br />
There are <strong>3 critical development and deployment issues</strong> to take note of, whether you are migrating your existing online store to Magento or if you are setting up a Magento store for the first time.</p>
<h2>Cons</h2>
<p><strong>Hosting server and Magento&#8217;s performance:</strong><br />
Magento is an extremely large platform in terms of file and database table count, with in excess of 20,000 files and 200 database tables. Magento is very resources hungry and will most of the time crash or be very slow on standard hosting packages. Magento&#8217;s performance will decrease even more as your store and inventory grows.<br />
Make sure that you host your Magento store with a reputable Magento hosting specialist or on a dedicated server where you are allowed to customize server-side settings, like memory allocation for PHP, file permissions etc &#8211; SSH access is vital!</p>
<p><strong>Data migration:</strong><br />
If you have an existing website and need to migrate your  products, categories, customers and orders etc data to Magento, prepare for the worst case scenario. Migrating data from any shopping cart to Magento is a very specialized process which can take days to complete. You will be able to find paid-for solutions that can handle the migration for you, but even these solutions can take hours and even days to import the data, this is because of Magento&#8217;s core import module that is extremely slow.</p>
<p><strong>Custom development:</strong><br />
The Magento code base is quite complex, modular and high-level. Custom development is definitely not something that any programmer can take on unless they have solid experience in Object Orientated programming and specifically the Magento core.<br />
Expect to pay double the standard development rate for a proficient Magento developer.</p>
<h2>Pros</h2>
<p><strong>Scalability:</strong><br />
Magento&#8217;s claim to fame is &#8220;the platform for growth&#8221; and this is no lie. Magento is extremely scalable/flexible and can be customized to suite virtually any business model. Magento by default installs most of the extensions you&#8217;ll ever need and supports most of the well known payment gateways as well.<br />
There are also thousands of production ready extensions to install, some free and some of the better ones comes at a price.</p>
<p><strong>Quality:</strong><br />
Magento is backed by many big names in the industry and constant development is tacking place in terms of bug fixes, new releases etc. I have physically developed on the core platform and must say that the architecture and quality of code is superb.</p>
<p><strong>SEO ready:</strong><br />
We all know how important solid on-site SEO is. Magento by default implements SEF URLs and meta data. This can also be customized via the administration panel.</p>
<p>There is a lot more to say and it will probably require 20 more posts like this one &#8211; in my opinion the above are the most significant to consider during your preliminary evaluation.<br />
<strong>Bottom line being, if you can address the Cons, you will most definitely have the most superior shopping cart available today.</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://www.christofcoetzee.co.za/magento-pros-and-cons/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Is HTML5 the Flash killer?</title>
		<link>http://www.christofcoetzee.co.za/html5-flash-killer/</link>
		<comments>http://www.christofcoetzee.co.za/html5-flash-killer/#comments</comments>
		<pubDate>Sat, 07 Aug 2010 20:50:22 +0000</pubDate>
		<dc:creator>Christof</dc:creator>
				<category><![CDATA[Web development]]></category>

		<guid isPermaLink="false">http://www.christofcoetzee.co.za/?p=363</guid>
		<description><![CDATA[I recently did some investigation into the future of Flash and AS3 and stumbled onto some interesting information regarding HTML5. These sources claim that HTML5 could turn out to be the killer of Flash in the next few years.  Apple has also stated that they won&#8217;t be supporting Flash anymore due to the poor performance<a href="http://www.christofcoetzee.co.za/html5-flash-killer/">&#160;&#160;[ Read More ]</a>]]></description>
			<content:encoded><![CDATA[<p>I recently did some investigation into the future of Flash and AS3 and stumbled onto some interesting information regarding HTML5.</p>
<p>These sources claim that HTML5 could turn out to be<strong> the killer of Flash</strong> in the next few years.  Apple has also stated that they won&#8217;t be supporting Flash anymore due to the poor performance of <strong>Flash on Apple devices</strong>.<br />
Apple is one of the best performing enterprise at the moment, releasing some of the best technologies available today, which has already dented the reputation of companies like <strong>Nokia</strong>.</p>
<p>On a more technical level, there is already a sub-set of HTML5 available which can be used in most modern browsers today and it appears that the final <strong>w3c standards for HTML5</strong> (due 2012) will allow one to do some spectacular things.<br />
The question about adoption and ease of use remains to be seen, and will HTML5 really be able to become a full substitute for Flash?</p>
<p>Are you a Flash developer with more insight into this?, please post your comments!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.christofcoetzee.co.za/html5-flash-killer/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>

