<?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"
	>

<channel>
	<title>Developer Tutorials' Webmaster Blog &#187; 2008 &#187; January</title>
	<atom:link href="http://www.developertutorials.com/blog/date/2008/01/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.developertutorials.com/blog</link>
	<description>Keeping webmasters up-to-date on technology.</description>
	<pubDate>Tue, 02 Sep 2008 14:59:45 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6.2</generator>
	<language>en</language>
			<item>
		<title>PHP: Where&#8217;s it at?</title>
		<link>http://www.developertutorials.com/blog/php/php-wheres-it-at-21/</link>
		<comments>http://www.developertutorials.com/blog/php/php-wheres-it-at-21/#comments</comments>
		<pubDate>Thu, 31 Jan 2008 11:16:20 +0000</pubDate>
		<dc:creator>Akash Mehta</dc:creator>
		
		<category><![CDATA[General]]></category>

		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.developertutorials.com/blog/php/php-wheres-it-at-21/</guid>
		<description><![CDATA[By &#8220;where&#8221;, I literally mean &#8220;where&#8221;. PHP is typically used in server-side scripts, the output of which is served over the internet. As expected. But I&#8217;ve just finished writing an article on PHP-CLI, or using PHP on the command line, and we also have an article in the works on desktop applications in PHP.
Given the [...]]]></description>
			<content:encoded><![CDATA[<p>By &#8220;where&#8221;, I literally mean &#8220;where&#8221;. PHP is typically used in server-side scripts, the output of which is served over the internet. As expected. But I&#8217;ve just finished writing an article on PHP-CLI, or using PHP on the command line, and we also have an article in the works on desktop applications in PHP.</p>
<p>Given the fantastic resources available for PHP development, and the possibilities for desktop applications, PHP-GTK- and WinBinder-based desktop applications written in PHP could be really powerful. Sure, they&#8217;re not terribly efficient, but I suspect in the next few years these applications - especially PHP-GTK, thanks to Glade - will really take off.</p>
<p>Keep your eyes peeled on <a href="http://www.developertutorials.com/" title="Developer Tutorials" target="_blank">the DT homepage</a> for an interesting overview of desktop application development in PHP; if you really can&#8217;t wait, head to <a href="http://gtk.php.net/" target="_blank">gtk.php.net</a> and amuse yourself with the vast array of UI elements you can draw in just two lines of PHP. Where do you think PHP is headed? Will desktop apps really take off, or are they just a passing craze, like Wiimote-powered media players?</p>
<!-- Social Bookmarks BEGIN -->
<div class="social_bookmark" style="float:left;">
<div class="d21" style="overflow:hidden">
<div id="socialstyles"><a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://del.icio.us/post?url=http://www.developertutorials.com/blog/php/php-wheres-it-at-21/&amp;title=PHP%3A+Where%26%238217%3Bs+it+at%3F" title="Add to&nbsp;Del.icio.us">Del.icio.us</a></div><div id="socialstyles"><a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://digg.com/submit?phase=2&amp;url=http://www.developertutorials.com/blog/php/php-wheres-it-at-21/&amp;title=PHP%3A+Where%26%238217%3Bs+it+at%3F" title="Add to&nbsp;Digg This">Digg This</a></div><div id="socialstyles"><a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.stumbleupon.com/submit.php?url=http://www.developertutorials.com/blog/php/php-wheres-it-at-21/&amp;title=PHP%3A+Where%26%238217%3Bs+it+at%3F" title="Add to&nbsp;Stumble">Stumble</a></div></div>
</div>
<!-- Social Bookmarks END -->
]]></content:encoded>
			<wfw:commentRss>http://www.developertutorials.com/blog/php/php-wheres-it-at-21/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Keep your developers happy</title>
		<link>http://www.developertutorials.com/blog/general/keep-your-developers-happy-20/</link>
		<comments>http://www.developertutorials.com/blog/general/keep-your-developers-happy-20/#comments</comments>
		<pubDate>Wed, 30 Jan 2008 11:28:10 +0000</pubDate>
		<dc:creator>Akash Mehta</dc:creator>
		
		<category><![CDATA[General]]></category>

		<category><![CDATA[it workplace]]></category>

		<guid isPermaLink="false">http://www.developertutorials.com/blog/general/keep-your-developers-happy-20/</guid>
		<description><![CDATA[Over the years, I&#8217;ve seen quite a few different development environments, and I&#8217;ve come to the conclusion that there&#8217;s one perfectly simple way to keep software development running smoothly: keep your developers happy. Read on for the how and why of cheerful developers.
It seems every organization I visit falls down in one of the areas [...]]]></description>
			<content:encoded><![CDATA[<p>Over the years, I&#8217;ve seen quite a few different development environments, and I&#8217;ve come to the conclusion that there&#8217;s one perfectly simple way to keep software development running smoothly: keep your developers happy. Read on for the how and why of cheerful developers.<span id="more-20"></span></p>
<p>It seems every organization I visit falls down in one of the areas I&#8217;m outlining below. Yet, if you want maximum happiness and productivity from your developers, there&#8217;s not much choice. Happier developers can also think clearer and avoid costly mistakes.</p>
<p>This is sort of a general set of suggestions for anyone managing or employing developers. I&#8217;m writing this in the context of corporate development shops, but it&#8217;s also important for developers working remotely. So, here are some basic tips for keeping your developers happy.</p>
<p><strong>1. Start with the tech</strong><br />
This might seem a little obvious, but I&#8217;ve seen an entire floor of developers working on some cheap Dell desktops struggling to cope with their development tasks. Now that you&#8217;ve found good developers, don&#8217;t throttle their potential with terrible hardware. I&#8217;ve seen a small development shop with top of the line $4000+ beasts, three monitors attached to each machine and more memory and CPU cycles than you can shake a stick it: hardware that just worked. Productivity was fantastic.</p>
<p>Of course, one often forgotten area here is the internet connection. If you can avoid it, don&#8217;t plug your developers into the same 2mb pipe servicing the entire office; let them run their own servers if they want to, as opposed to relying on the information systems department (unless your developers <em>are</em> the information systems department). Internet filtering is a definite no-no: think about it, web developers having their internet filtered? There&#8217;s nothing wrong with filtering as such, but I&#8217;ve heard of one workplace blocking php.net. Goodbye, absolutely essential manual.</p>
<p><strong>2. Let them take decisions</strong><br />
They&#8217;re your IT guys. Make sure sales don&#8217;t start promising unreasonable production deadlines, feature offerings and the like. Find good developers and give them the freedom and power they need to do their job well. If that means having the lead developer sit in on a client meeting and insist on an extra week on top of the sales-guy&#8217;s deadline, so be it. Involve them in the decision making that directly affects them.</p>
<p><strong>3. Encourage experimentation</strong><br />
Face it: they&#8217;re geeks, and they do their own thing. If they want, let them spend an entire day wandering off and trying out new things. It&#8217;ll cost you a day of development, but it&#8217;ll repay itself easily when they&#8217;re back at it, and their new knowledge might prove useful in your project. Encourage experimentation.</p>
<p><strong>4. Create culture<br />
</strong>This is IT: it&#8217;s got a culture of it&#8217;s own. From internet memes, to geek terminology, to the consumer tech, it&#8217;s all there. Don&#8217;t block it out and force them into the same boring desk jobs of your other employees. I typically order a box of various geek toys from thinkgeek.com, encourage them to decorate their workplace as they like and so on.</p>
<p>For the finer touches, try making the office itself a little more suitable. For example, developers work well in wide open offices (no cubicles!) with lots of desk space. Take regular breaks from development to discuss amusing stories only a geek would understand. Maybe even run a mini hack day event, although that&#8217;s probably pushing the bounds of time spent at company expense.</p>
<!-- Social Bookmarks BEGIN -->
<div class="social_bookmark" style="float:left;">
<div class="d20" style="overflow:hidden">
<div id="socialstyles"><a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://del.icio.us/post?url=http://www.developertutorials.com/blog/general/keep-your-developers-happy-20/&amp;title=Keep+your+developers+happy" title="Add to&nbsp;Del.icio.us">Del.icio.us</a></div><div id="socialstyles"><a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://digg.com/submit?phase=2&amp;url=http://www.developertutorials.com/blog/general/keep-your-developers-happy-20/&amp;title=Keep+your+developers+happy" title="Add to&nbsp;Digg This">Digg This</a></div><div id="socialstyles"><a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.stumbleupon.com/submit.php?url=http://www.developertutorials.com/blog/general/keep-your-developers-happy-20/&amp;title=Keep+your+developers+happy" title="Add to&nbsp;Stumble">Stumble</a></div></div>
</div>
<!-- Social Bookmarks END -->
]]></content:encoded>
			<wfw:commentRss>http://www.developertutorials.com/blog/general/keep-your-developers-happy-20/feed/</wfw:commentRss>
		</item>
		<item>
		<title>4 PHP Professional Development Paths</title>
		<link>http://www.developertutorials.com/blog/php/4-php-professional-development-paths-17/</link>
		<comments>http://www.developertutorials.com/blog/php/4-php-professional-development-paths-17/#comments</comments>
		<pubDate>Mon, 28 Jan 2008 11:00:03 +0000</pubDate>
		<dc:creator>Akash Mehta</dc:creator>
		
		<category><![CDATA[PHP]]></category>

		<category><![CDATA[php tips]]></category>

		<guid isPermaLink="false">http://www.developertutorials.com/blog/php/4-php-professional-development-paths-17/</guid>
		<description><![CDATA[So, you&#8217;re an up-and-coming PHP developer, you&#8217;re spending a lot of time learning new tricks and you&#8217;re always on the bleeding edge when it comes to using technologies in your web applications. What&#8217;s next? Here are some of the options available for professional development.
1. Read books, write code.
There&#8217;s a lot of PHP books out there. [...]]]></description>
			<content:encoded><![CDATA[<p>So, you&#8217;re an up-and-coming PHP developer, you&#8217;re spending a lot of time learning new tricks and you&#8217;re always on the bleeding edge when it comes to using technologies in your web applications. What&#8217;s next? Here are some of the options available for professional development.<span id="more-17"></span></p>
<p><strong>1. Read books, write code.</strong><br />
There&#8217;s a lot of PHP books out there. So many, in fact, that even if you read one per night you&#8217;d take over a year to get through them all. Find specialized PHP books - Packt Publishing and No Starch Press have a few. Read through them, and write some code with them. Next time you update your resume, point out some of these new technologies you&#8217;ve used.</p>
<p><strong>2. Attend conferences</strong><br />
They may be terribly formal, long and abstract, but attend as many conferences as you can, especially PHP-specific ones. Here you&#8217;ll find a multitude of presentations on new ideas, from technologies to methodologies. If your employer will pay for you to attend, all the better <img src='http://www.developertutorials.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><strong>3. Take courses and qualification tests</strong><br />
The state of PHP training today is somewhat dismal. Most training courses are run over the internet, the live ones can require you to be up at ungodly hours, and their effectiveness is limited in general. Still, if you can find a decent PHP training course, give it a go. Also, the Zend Certified Engineer qualification is a general benchmark, so study up and try it when you have the time (a Christmas break, maybe?).</p>
<p><strong>4. Watch the web</strong><br />
This is probably the most important. Chances are you aren&#8217;t a PHP developer, but a web developer. A big mistake many PHP coders make is sticking to PHP alone. All very well, but when you have to build an application on your own, are you familiar with CSS selectors, HTML tags, or Javascript DOM techniques? Watch the web for articles and tutorials on all the areas you use regularly. Digg is a good place to start - for example, if you regularly visit Digg, you&#8217;d have seen <a href="http://www.noupe.com/css/101-css-techniques-of-all-time-part2.html" target="_blank">this fantastic list of CSS techniques</a>.</p>
<p>Follow these and you&#8217;ll be well on the way to becoming a master developer.</p>
<!-- Social Bookmarks BEGIN -->
<div class="social_bookmark" style="float:left;">
<div class="d17" style="overflow:hidden">
<div id="socialstyles"><a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://del.icio.us/post?url=http://www.developertutorials.com/blog/php/4-php-professional-development-paths-17/&amp;title=4+PHP+Professional+Development+Paths" title="Add to&nbsp;Del.icio.us">Del.icio.us</a></div><div id="socialstyles"><a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://digg.com/submit?phase=2&amp;url=http://www.developertutorials.com/blog/php/4-php-professional-development-paths-17/&amp;title=4+PHP+Professional+Development+Paths" title="Add to&nbsp;Digg This">Digg This</a></div><div id="socialstyles"><a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.stumbleupon.com/submit.php?url=http://www.developertutorials.com/blog/php/4-php-professional-development-paths-17/&amp;title=4+PHP+Professional+Development+Paths" title="Add to&nbsp;Stumble">Stumble</a></div></div>
</div>
<!-- Social Bookmarks END -->
]]></content:encoded>
			<wfw:commentRss>http://www.developertutorials.com/blog/php/4-php-professional-development-paths-17/feed/</wfw:commentRss>
		</item>
		<item>
		<title>jQuery: Interaction Design for PHP Developers</title>
		<link>http://www.developertutorials.com/blog/javascript/jquery-interaction-design-for-php-developers-16/</link>
		<comments>http://www.developertutorials.com/blog/javascript/jquery-interaction-design-for-php-developers-16/#comments</comments>
		<pubDate>Mon, 28 Jan 2008 06:18:51 +0000</pubDate>
		<dc:creator>Akash Mehta</dc:creator>
		
		<category><![CDATA[JavaScript]]></category>

		<category><![CDATA[PHP]]></category>

		<category><![CDATA[Web]]></category>

		<category><![CDATA[jquery]]></category>

		<category><![CDATA[js frameworks]]></category>

		<guid isPermaLink="false">http://www.developertutorials.com/blog/javascript/jquery-interaction-design-for-php-developers-16/</guid>
		<description><![CDATA[It doesn&#8217;t advertise itself as such, but the jQuery JS framework is quite possibly one of the best JS frameworks for PHP developers. Most of the frameworks out there are designed for developers with JavaScript experience, and understandibly so. But when I first started using jQuery, my JavaScript experience was something along the lines of [...]]]></description>
			<content:encoded><![CDATA[<p>It doesn&#8217;t advertise itself as such, but the jQuery JS framework is quite possibly one of the best JS frameworks for PHP developers. Most of the frameworks out there are designed for developers with JavaScript experience, and understandibly so. But when I first started using jQuery, my JavaScript experience was something along the lines of &#8220;take the dollar symbol out and your PHP is magically syntactically valid JS&#8221;. (Pitiful, I know.)</p>
<p>The main advantage of jQuery for us PHP developers is that it utilises our existing knowledge. When PHP code brings you closer to the HTML and other UI needs - CSS, for instance, - jQuery leverages that knowledge. It takes a little while to get used to functional programming, of course, but with CSS selectors, basic method chaining, and an approach to event handling that just works, jQuery is an ideal framework for PHP developers getting started with JavaScript interaction design.</p>
<p>So, next time you&#8217;re looking to get your hands dirty with DOM, DHTML and AJAX, head over to jQuery.com and give it a go.</p>
<!-- Social Bookmarks BEGIN -->
<div class="social_bookmark" style="float:left;">
<div class="d16" style="overflow:hidden">
<div id="socialstyles"><a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://del.icio.us/post?url=http://www.developertutorials.com/blog/javascript/jquery-interaction-design-for-php-developers-16/&amp;title=jQuery%3A+Interaction+Design+for+PHP+Developers" title="Add to&nbsp;Del.icio.us">Del.icio.us</a></div><div id="socialstyles"><a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://digg.com/submit?phase=2&amp;url=http://www.developertutorials.com/blog/javascript/jquery-interaction-design-for-php-developers-16/&amp;title=jQuery%3A+Interaction+Design+for+PHP+Developers" title="Add to&nbsp;Digg This">Digg This</a></div><div id="socialstyles"><a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.stumbleupon.com/submit.php?url=http://www.developertutorials.com/blog/javascript/jquery-interaction-design-for-php-developers-16/&amp;title=jQuery%3A+Interaction+Design+for+PHP+Developers" title="Add to&nbsp;Stumble">Stumble</a></div></div>
</div>
<!-- Social Bookmarks END -->
]]></content:encoded>
			<wfw:commentRss>http://www.developertutorials.com/blog/javascript/jquery-interaction-design-for-php-developers-16/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Web Hosting: Leave it to the Professionals</title>
		<link>http://www.developertutorials.com/blog/web/web-hosting-leave-it-to-the-professionals-15/</link>
		<comments>http://www.developertutorials.com/blog/web/web-hosting-leave-it-to-the-professionals-15/#comments</comments>
		<pubDate>Mon, 28 Jan 2008 06:12:04 +0000</pubDate>
		<dc:creator>Akash Mehta</dc:creator>
		
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://www.developertutorials.com/blog/web/web-hosting-leave-it-to-the-professionals-15/</guid>
		<description><![CDATA[Web hosting: the bane of our existence. Time spent preparing servers, publishing code, dealing with deployment issues &#8212; as opposed to throwing money at unreliable oversold shared servers. Here&#8217;s why you should leave web hosting to the professionals
When it comes to web hosting, I never run my own servers. I&#8217;m a developer, not a sysadmin; [...]]]></description>
			<content:encoded><![CDATA[<p>Web hosting: the bane of our existence. Time spent preparing servers, publishing code, dealing with deployment issues &#8212; as opposed to throwing money at unreliable oversold shared servers. Here&#8217;s why you should leave web hosting to the professionals<span id="more-15"></span></p>
<p>When it comes to web hosting, I never run my own servers. I&#8217;m a developer, not a sysadmin; I leave server management to the professionals. Shared hosting costs less than a cup of coffee, managed VPS is pretty decent ($7 for LAMP VPS ready to go is pretty good), and these days you&#8217;re more likely to hire a sysadmin before a dedicated server.</p>
<p>I&#8217;ve seen perfectly good hobby projects by experienced developers run aground because of server issues, when a shared server would have been perfectly good. For root access there&#8217;s always VPS.</p>
<p>So, in my mind, when you&#8217;re next getting started on a project, don&#8217;t spend time getting servers setup. Leave it to the professionals, get a simple shared hosting account (or maybe managed VPS), and get coding.</p>
<!-- Social Bookmarks BEGIN -->
<div class="social_bookmark" style="float:left;">
<div class="d15" style="overflow:hidden">
<div id="socialstyles"><a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://del.icio.us/post?url=http://www.developertutorials.com/blog/web/web-hosting-leave-it-to-the-professionals-15/&amp;title=Web+Hosting%3A+Leave+it+to+the+Professionals" title="Add to&nbsp;Del.icio.us">Del.icio.us</a></div><div id="socialstyles"><a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://digg.com/submit?phase=2&amp;url=http://www.developertutorials.com/blog/web/web-hosting-leave-it-to-the-professionals-15/&amp;title=Web+Hosting%3A+Leave+it+to+the+Professionals" title="Add to&nbsp;Digg This">Digg This</a></div><div id="socialstyles"><a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.stumbleupon.com/submit.php?url=http://www.developertutorials.com/blog/web/web-hosting-leave-it-to-the-professionals-15/&amp;title=Web+Hosting%3A+Leave+it+to+the+Professionals" title="Add to&nbsp;Stumble">Stumble</a></div></div>
</div>
<!-- Social Bookmarks END -->
]]></content:encoded>
			<wfw:commentRss>http://www.developertutorials.com/blog/web/web-hosting-leave-it-to-the-professionals-15/feed/</wfw:commentRss>
		</item>
		<item>
		<title>GOTO is coming to PHP!</title>
		<link>http://www.developertutorials.com/blog/php/goto-is-coming-to-php-14/</link>
		<comments>http://www.developertutorials.com/blog/php/goto-is-coming-to-php-14/#comments</comments>
		<pubDate>Mon, 28 Jan 2008 06:03:37 +0000</pubDate>
		<dc:creator>Akash Mehta</dc:creator>
		
		<category><![CDATA[PHP]]></category>

		<category><![CDATA[php 6]]></category>

		<guid isPermaLink="false">http://www.developertutorials.com/blog/php/goto-is-coming-to-php-14/</guid>
		<description><![CDATA[GOTO, the infamous much-loathed feature of languages in decades gone by, is (sort of) coming to PHP. Read on to see why it&#8217;s actually a good thing.
Luckily, it&#8217;s not that bad. In fact, it&#8217;s quite handy.
Take a look at the following scenario:
while($var)
{
foreach ($var as $val)
{
if ($val) break 2;
}
}

Now, consider all this is inside another while [...]]]></description>
			<content:encoded><![CDATA[<p>GOTO, the infamous much-loathed feature of languages in decades gone by, is (sort of) coming to PHP. Read on to see why it&#8217;s actually a good thing.<br />
Luckily, it&#8217;s not that bad. In fact, it&#8217;s quite handy.<span id="more-14"></span></p>
<p>Take a look at the following scenario:</p>
<p><code>while($var)<br />
{<br />
foreach ($var as $val)<br />
{<br />
if ($val) break 2;<br />
}<br />
}<br />
</code></p>
<p>Now, consider all this is inside another while loop. If someone else comes in and refactors, taking out the foreach loop, your &#8216;break 2;&#8217; suddenly not only breaks out of the while($var) but also the loop outside of it. Big trouble.</p>
<p>Of course, GOTO is associated with Bad Things. A GOTO of sorts is coming to PHP 6, and is actually a good thing. It&#8217;s not so much a GOTO as a named break - it allows you to use your break statements to go to a particular point in code execution, as opposed to all this messy nested looping and loop numbering. Here&#8217;s a sample:</p>
<p><code>for ($i = 0; $i &lt; 9; $i++)<br />
{<br />
if (true) {<br />
break blah;<br />
}<br />
echo "not shown";<br />
blah:<br />
echo "iteration $i\n";<br />
}<br />
?&gt;<br />
</code></p>
<p>I believe it was discussed at a meeting some time back; <a href="http://www.php.net/~derick/meeting-notes.html#adding-goto">see here for the meeting notes</a>. In any case, it&#8217;s a useful addition, provided it isn&#8217;t misused; hopefully we won&#8217;t end up with the spaghetti code messes of years gone by.</p>
<!-- Social Bookmarks BEGIN -->
<div class="social_bookmark" style="float:left;">
<div class="d14" style="overflow:hidden">
<div id="socialstyles"><a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://del.icio.us/post?url=http://www.developertutorials.com/blog/php/goto-is-coming-to-php-14/&amp;title=GOTO+is+coming+to+PHP%21" title="Add to&nbsp;Del.icio.us">Del.icio.us</a></div><div id="socialstyles"><a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://digg.com/submit?phase=2&amp;url=http://www.developertutorials.com/blog/php/goto-is-coming-to-php-14/&amp;title=GOTO+is+coming+to+PHP%21" title="Add to&nbsp;Digg This">Digg This</a></div><div id="socialstyles"><a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.stumbleupon.com/submit.php?url=http://www.developertutorials.com/blog/php/goto-is-coming-to-php-14/&amp;title=GOTO+is+coming+to+PHP%21" title="Add to&nbsp;Stumble">Stumble</a></div></div>
</div>
<!-- Social Bookmarks END -->
]]></content:encoded>
			<wfw:commentRss>http://www.developertutorials.com/blog/php/goto-is-coming-to-php-14/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Rails vs. PHP: Fair Comparison?</title>
		<link>http://www.developertutorials.com/blog/php/rails-vs-php-fair-comparison-12/</link>
		<comments>http://www.developertutorials.com/blog/php/rails-vs-php-fair-comparison-12/#comments</comments>
		<pubDate>Sun, 27 Jan 2008 09:41:20 +0000</pubDate>
		<dc:creator>Akash Mehta</dc:creator>
		
		<category><![CDATA[PHP]]></category>

		<category><![CDATA[ror]]></category>

		<category><![CDATA[web development]]></category>

		<guid isPermaLink="false">http://www.developertutorials.com/blog/php/rails-vs-php-12/</guid>
		<description><![CDATA[It&#8217;s a common point of heated debate between Ruby on Rails and PHP developers - can we really compare Rails with PHP? While most PHP developers would contest it, it&#8217;s a perfectly good comparison. Here&#8217;s why.
First, here&#8217;s a bit of background. Rails is a web application framework for the Ruby scripting language. Until a few [...]]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s a common point of heated debate between Ruby on Rails and PHP developers - can we really compare Rails with PHP? While most PHP developers would contest it, it&#8217;s a perfectly good comparison. Here&#8217;s why.<span id="more-12"></span></p>
<p>First, here&#8217;s a bit of background. Rails is a web application framework for the Ruby scripting language. Until a few years ago, Ruby wasn&#8217;t very widely used in web development, but the Rails framework changed all that. At this point, web application frameworks weren&#8217;t terribly popular, and PHP frameworks in particular were, for the better part, non-existent (Mambo/Joomla and Drupal don&#8217;t count.). Rails favoured convention over configuration, and as a result was very quick for basic application development.</p>
<p>PHP developers were moving over to Ruby on Rails, as PHP simply didn&#8217;t offer this functionality out of the box, and the PHP frameworks available weren&#8217;t much use. Over time, CakePHP, Symfony, CodeIgniter and various other frameworks developed, and we finally had the power of Rails in PHP. Of course, given the size of the PHP community, PHP frameworks matched Rails and surpassed it; we now have mature PHP frameworks for almost any purpose and any development style.</p>
<p>Now, inevitably, <s>language wars</s> debates between Rails and PHP developers ensue, and the common defense of PHP developers was that &#8220;PHP isn&#8217;t Rails, it&#8217;s Ruby.&#8221; Fair enough, some suggested; PHP and Ruby were languages, while Rails is a framework. Most PHP development happens without a real framework, while most Ruby <em>web</em> development happens on Rails (there are a handful of other Ruby web application frameworks, but none as successful as Rails).</p>
<p>Here&#8217;s my take on it: it may not be fair, but it sure is reasonable. When you think of Ruby web development, you think of Rails, and what can be achieved with it. On the other hand, PHP bundles a lot of its functionality in the core, and with most application development happening on top of this core, it&#8217;s the only reasonable comparison you can make.</p>
<p>In fact, it&#8217;s certainly not a fair argument, but that doesn&#8217;t mean it&#8217;s an invalid argument; <strong>there&#8217;s nothing wrong with Rails:PHP comparison</strong>.</p>
<p>That&#8217;s not to say Rails is a better framework than, say CakePHP or CodeIgniter; a proper comparison might find that PHP with a mature framework on top is a superior development platform than RoR. But Ruby developers can point to Rails as a demonstration of Ruby web application development, and all us PHP guys have to show for our framework efforts is a medley of different frameworks serving different purposes with no single, accepted way to write applications.</p>
<!-- Social Bookmarks BEGIN -->
<div class="social_bookmark" style="float:left;">
<div class="d12" style="overflow:hidden">
<div id="socialstyles"><a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://del.icio.us/post?url=http://www.developertutorials.com/blog/php/rails-vs-php-fair-comparison-12/&amp;title=Rails+vs.+PHP%3A+Fair+Comparison%3F" title="Add to&nbsp;Del.icio.us">Del.icio.us</a></div><div id="socialstyles"><a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://digg.com/submit?phase=2&amp;url=http://www.developertutorials.com/blog/php/rails-vs-php-fair-comparison-12/&amp;title=Rails+vs.+PHP%3A+Fair+Comparison%3F" title="Add to&nbsp;Digg This">Digg This</a></div><div id="socialstyles"><a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.stumbleupon.com/submit.php?url=http://www.developertutorials.com/blog/php/rails-vs-php-fair-comparison-12/&amp;title=Rails+vs.+PHP%3A+Fair+Comparison%3F" title="Add to&nbsp;Stumble">Stumble</a></div></div>
</div>
<!-- Social Bookmarks END -->
]]></content:encoded>
			<wfw:commentRss>http://www.developertutorials.com/blog/php/rails-vs-php-fair-comparison-12/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Choosing a framework</title>
		<link>http://www.developertutorials.com/blog/php/choosing-a-framework-11/</link>
		<comments>http://www.developertutorials.com/blog/php/choosing-a-framework-11/#comments</comments>
		<pubDate>Sun, 27 Jan 2008 09:15:31 +0000</pubDate>
		<dc:creator>Akash Mehta</dc:creator>
		
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.developertutorials.com/blog/php/choosing-a-framework-11/</guid>
		<description><![CDATA[When it comes to choosing a framework, PHP developers are very much spoilt for choice. From Rails-alternatives, to .net-in-PHP attempts, beginner-oriented procedurals to full-on enterprise systems, and even those that let you code however you like, there&#8217;s bound to be a framework out there for you. Of course, if there isn&#8217;t, you can always take [...]]]></description>
			<content:encoded><![CDATA[<p>When it comes to choosing a framework, PHP developers are very much spoilt for choice. From Rails-alternatives, to .net-in-PHP attempts, beginner-oriented procedurals to full-on enterprise systems, and even those that let you code however you like, there&#8217;s bound to be a framework out there for you. Of course, if there isn&#8217;t, you can always take an existing one and modify it to suit your needs (although most are sufficiently extensible).</p>
<p>Wikipedia has probably the definitive <a href="http://en.wikipedia.org/wiki/List_of_web_application_frameworks#PHP" target="_blank">list of major PHP frameworks</a>, covering everything from CakePHP to Drupal to the Zend Framework, and includes a few notable yet less-known options. Of course, this doesn&#8217;t tell you much about them; <a href="http://en.wikipedia.org/wiki/Comparison_of_web_application_frameworks#Comparison_of_features" target="_blank">the comparison table</a> is a little more helpful, although it isn&#8217;t restricted to PHP-frameworks.</p>
<p>There are a few important features to look for in frameworks:</p>
<ul><span class="STYLE5"></p>
<li><strong>MVC</strong>: the Model-View-Controller design pattern, one of the more popular patterns, and certainly an effective one. Many of the big OO frameworks use this, and it&#8217;s good for those new to framework-based development.</li>
<li><strong>Templating</strong>: a templating engine is pretty much standard, if only through the V in MVC, but make sure it&#8217;s there.</li>
<li><strong>Caching</strong>: save yourself writing your own caching system when you find yourself dugg or slashdotted.</li>
<li><strong>Form validation</strong>: one of the most common yet most frustrating features of building PHP web application, a framework that simplified form validation is invaluable.</li>
<li><strong>Inbuilt CMS</strong>: depending on what you&#8217;re building, having a CMS ready-built for your framework can be really useful. Drupal and Joomla both come with CMSs.</li>
<li><strong>Inbuilt auth</strong>: Many frameworks choose not to include authentication, but not having to write your own user authentication system is a fantastic time-saver for basic application development.</li>
<p></span></ul>
<p>Beyond this, take a look at the options out there. If you&#8217;re familiar with Rails, take a look at CakePHP and CodeIgniter. If you&#8217;re more of a .net person, Prado might interest you. If you&#8217;re looking for a CMS that you can code on top of, take a look at Joomla. <a href="http://www.phpframeworks.com/" target="_blank">One website</a> even has a feature-by-feature comparison, although beware of following it entirely, as it doesn&#8217;t really reflect the true power of each framework.</p>
<p>Of course, while you may be undecided on your choice of framework, one thing is certain: you should be using a framework, if only one you hacked together in a couple of hours. Most frameworks will help you code quicker and more consistently, code reuse is suddenly the drop-in-place approach it should be, and it&#8217;s always handy to be familiar with a dev shop&#8217;s adopted CMS when sending them your resume.</p>
<!-- Social Bookmarks BEGIN -->
<div class="social_bookmark" style="float:left;">
<div class="d11" style="overflow:hidden">
<div id="socialstyles"><a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://del.icio.us/post?url=http://www.developertutorials.com/blog/php/choosing-a-framework-11/&amp;title=Choosing+a+framework" title="Add to&nbsp;Del.icio.us">Del.icio.us</a></div><div id="socialstyles"><a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://digg.com/submit?phase=2&amp;url=http://www.developertutorials.com/blog/php/choosing-a-framework-11/&amp;title=Choosing+a+framework" title="Add to&nbsp;Digg This">Digg This</a></div><div id="socialstyles"><a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.stumbleupon.com/submit.php?url=http://www.developertutorials.com/blog/php/choosing-a-framework-11/&amp;title=Choosing+a+framework" title="Add to&nbsp;Stumble">Stumble</a></div></div>
</div>
<!-- Social Bookmarks END -->
]]></content:encoded>
			<wfw:commentRss>http://www.developertutorials.com/blog/php/choosing-a-framework-11/feed/</wfw:commentRss>
		</item>
		<item>
		<title>8 Cool Functions in the GD2 extension</title>
		<link>http://www.developertutorials.com/blog/php/cool-php-gd2-functions-10/</link>
		<comments>http://www.developertutorials.com/blog/php/cool-php-gd2-functions-10/#comments</comments>
		<pubDate>Sun, 27 Jan 2008 07:35:38 +0000</pubDate>
		<dc:creator>Akash Mehta</dc:creator>
		
		<category><![CDATA[PHP]]></category>

		<category><![CDATA[gd2]]></category>

		<category><![CDATA[images]]></category>

		<guid isPermaLink="false">http://www.developertutorials.com/blog/php/cool-php-gd2-functions-10/</guid>
		<description><![CDATA[Most PHP developers have at least heard of GD2; thanks to its prolific use in CAPTCHA generation, the image functions in PHP are standard practice for many. But the extension&#8217;s uses don&#8217;t end there. After the fold, here are eight cool things you probably weren&#8217;t aware could be done with GD2, and might be useful [...]]]></description>
			<content:encoded><![CDATA[<p>Most PHP developers have at least heard of GD2; thanks to its prolific use in CAPTCHA generation, the image functions in PHP are standard practice for many. But the extension&#8217;s uses don&#8217;t end there. After the fold, here are eight cool things you probably weren&#8217;t aware could be done with GD2, and might be useful for your web applications.<span id="more-10"></span></p>
<p>(Note that a few of these may not be available depending on your PHP/GD setup, check the manual)</p>
<ol>
<li>Get the size of an icon file, with getimagesize() (also works on all standard image formats)</li>
<li>Apply a gaussian-blur to an image, with imagefilter()</li>
<li>Rotate an image, with imagerotate()</li>
<li>Flood-fill an area of an image, with imagefill()</li>
<li>Grayscale an image, also with imagefilter()</li>
<li>Draw polygons and arcs  &#8212; maybe for mathematical diagram? &#8212; with imagepolygon() and imagearc()</li>
<li>Copy and resize a section of an image, with imagecopyresized()</li>
<li>&#8220;Sketchify&#8221; images for a pencil-illustration-style effect, also with imagefilter() (see a pattern here?)</li>
</ol>
<p>The <a href="http://phpied.com/" target="_blank">phpied blog</a> has some <a href="http://www.phpied.com/image-fun-with-php-part-2/" target="_blank">cool demos of the imagefilter() function</a> in particular.</p>
<!-- Social Bookmarks BEGIN -->
<div class="social_bookmark" style="float:left;">
<div class="d10" style="overflow:hidden">
<div id="socialstyles"><a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://del.icio.us/post?url=http://www.developertutorials.com/blog/php/cool-php-gd2-functions-10/&amp;title=8+Cool+Functions+in+the+GD2+extension" title="Add to&nbsp;Del.icio.us">Del.icio.us</a></div><div id="socialstyles"><a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://digg.com/submit?phase=2&amp;url=http://www.developertutorials.com/blog/php/cool-php-gd2-functions-10/&amp;title=8+Cool+Functions+in+the+GD2+extension" title="Add to&nbsp;Digg This">Digg This</a></div><div id="socialstyles"><a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.stumbleupon.com/submit.php?url=http://www.developertutorials.com/blog/php/cool-php-gd2-functions-10/&amp;title=8+Cool+Functions+in+the+GD2+extension" title="Add to&nbsp;Stumble">Stumble</a></div></div>
</div>
<!-- Social Bookmarks END -->
]]></content:encoded>
			<wfw:commentRss>http://www.developertutorials.com/blog/php/cool-php-gd2-functions-10/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Before you code&#8230;</title>
		<link>http://www.developertutorials.com/blog/php/before-you-code-9/</link>
		<comments>http://www.developertutorials.com/blog/php/before-you-code-9/#comments</comments>
		<pubDate>Sun, 27 Jan 2008 07:15:54 +0000</pubDate>
		<dc:creator>Akash Mehta</dc:creator>
		
		<category><![CDATA[PHP]]></category>

		<category><![CDATA[code reuse]]></category>

		<category><![CDATA[php tips]]></category>

		<guid isPermaLink="false">http://www.developertutorials.com/blog/php/before-you-code-9/</guid>
		<description><![CDATA[So, you&#8217;re about to build an entire web application in PHP. You&#8217;ve worked out how you&#8217;re going to do it, you&#8217;ve got a general idea what it&#8217;ll look like, maybe you&#8217;ve even chosen a framework (if you don&#8217;t have any to choose from, find some). Before you go any further, take a step back and [...]]]></description>
			<content:encoded><![CDATA[<p>So, you&#8217;re about to build an entire web application in PHP. You&#8217;ve worked out how you&#8217;re going to do it, you&#8217;ve got a general idea what it&#8217;ll look like, maybe you&#8217;ve even chosen a framework (if you don&#8217;t have any to choose from, <a href="http://codeigniter.com/" target="_blank">find</a> <a href="http://cakephp.org" target="_blank">some</a>). Before you go any further, take a step back and run through this checklist.</p>
<ol>
<li><strong>Plan.</strong>  Do some design mockups, work out what functionality will go in what classes. You can never plan enough, and good planning can save you days of code rewriting later.</li>
<li><strong>Research.</strong> This is probably one of the most-forgotten areas of project planning. Chances are what you&#8217;re building has been done before, so do a bit of research on existing applications similar to yours. Consider any problems you may encounter and see how other applications handled these challenges. <a href="http://sf.net/" target="_blank">SourceForge</a> is a great place to start.</li>
<li><strong>Future proof.</strong> Depending on your application, this might not be terribly important, but consider what technologies are being used at the moment and may start being used. <a href="http://www.sitepoint.com/article/future-of-the-web-2008" target="_blank">This article</a> has a few suggestions. For example, maybe in future you&#8217;ll add a microformat-export function, and your code needs to be structured differently to support that?</li>
<li><strong>Don&#8217;t reinvent the wheel.</strong> Most developers I&#8217;ve seen simply don&#8217;t practice this enough. Sure, you&#8217;re using your framework for some common tasks, but many people assume they&#8217;ll need to write a lot of their own code for complex routines. Before you start, check out <a href="http://pear.php.net/" target="_blank">PEAR</a> and <a href="http://www.phpclasses.org/" target="_blank">PHP Classes</a>.</li>
<li><strong>Set some timeframes and get into it!</strong> Now that you have a good idea of what you&#8217;re going to build, and how you&#8217;ll make it happen, set some goals and get coding!</li>
</ol>
<!-- Social Bookmarks BEGIN -->
<div class="social_bookmark" style="float:left;">
<div class="d9" style="overflow:hidden">
<div id="socialstyles"><a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://del.icio.us/post?url=http://www.developertutorials.com/blog/php/before-you-code-9/&amp;title=Before+you+code%26%238230%3B" title="Add to&nbsp;Del.icio.us">Del.icio.us</a></div><div id="socialstyles"><a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://digg.com/submit?phase=2&amp;url=http://www.developertutorials.com/blog/php/before-you-code-9/&amp;title=Before+you+code%26%238230%3B" title="Add to&nbsp;Digg This">Digg This</a></div><div id="socialstyles"><a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.stumbleupon.com/submit.php?url=http://www.developertutorials.com/blog/php/before-you-code-9/&amp;title=Before+you+code%26%238230%3B" title="Add to&nbsp;Stumble">Stumble</a></div></div>
</div>
<!-- Social Bookmarks END -->
]]></content:encoded>
			<wfw:commentRss>http://www.developertutorials.com/blog/php/before-you-code-9/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
