<?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>DaveDevelopment &#187; Apache</title>
	<atom:link href="http://www.davedevelopment.co.uk/archive/apache/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.davedevelopment.co.uk</link>
	<description>Dave Marshall</description>
	<lastBuildDate>Tue, 01 Jun 2010 13:18:41 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.5</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Landing a PHP job Part 1: Technical Knowledge and Skills</title>
		<link>http://www.davedevelopment.co.uk/2008/09/08/landing-a-php-job-part-1-technical-knowledge-and-skills/</link>
		<comments>http://www.davedevelopment.co.uk/2008/09/08/landing-a-php-job-part-1-technical-knowledge-and-skills/#comments</comments>
		<pubDate>Mon, 08 Sep 2008 21:28:28 +0000</pubDate>
		<dc:creator>davedevelopment</dc:creator>
				<category><![CDATA[Apache]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Software Engineering]]></category>
		<category><![CDATA[recruitment]]></category>
		<category><![CDATA[php jobs]]></category>
		<category><![CDATA[php skills]]></category>

		<guid isPermaLink="false">http://www.davedevelopment.co.uk/?p=101</guid>
		<description><![CDATA[
After reading this thread, I thought I&#8217;d spend some time writing about what I feel are some measures you can take to landing a job in PHP. This first part is going to concentrate on the kind of technical matters I think any PHP developer should at least have knowledge of, if not some kind [...]]]></description>
			<content:encoded><![CDATA[<p><a style="float:left;margin:0px 10px 10px 0px;" href="http://www.amazon.com/gp/redirect.html?ie=UTF8&#038;location=http%3A%2F%2Fwww.amazon.com%2Fphp-architects-PHP-Hunters-Handbook%2Fdp%2F0973862165&#038;tag=davedvd-20&#038;linkCode=ur2&#038;camp=1789&#038;creative=9325"><img src="http://www.davedevelopment.co.uk/wp-content/uploads/2008/09/51jp8ktz0l_sl500_aa240_.jpg" alt="PHP Job Hunters Handbook" title="PHP Job Hunters Handbook" width="150" height="185" class="alignnone size-full wp-image-128" /></a></p>
<p>After reading this <a href="http://groups.google.com/group/phpnw/browse_thread/thread/f42a1b18d39c8ce">thread</a>, I thought I&#8217;d spend some time writing about what I feel are some measures you can take to landing a job in PHP. This first part is going to concentrate on the kind of technical matters I think any PHP developer should at least have knowledge of, if not some kind of experience. A lot of the subjects discussed aren&#8217;t specific to PHP, but the focus will be on PHP. It&#8217;ll be far from exhaustive (please feel free to flame, but constructive comments would be nicer) and there&#8217;ll probably be quite a few references to <a href="http://www.joelonsoftware.com">Joel on Software</a> articles, mainly because I&#8217;ve read a lot of them and I can&#8217;t be bothered to research the topics further! There&#8217;ll be plenty of links to follow, plus the odd <a href="http://en.wikipedia.org/wiki/Hard_copy">dead tree format</a> recommendation. </p>
<p><br style="clear:left;"/></p>
<h3>Programming</h3>
<p><a style="float:left;margin:0px 10px 10px 0px" href="http://www.amazon.com/exec/obidos/ASIN/0735619670/davedvd-20"><img src="http://www.davedevelopment.co.uk/wp-content/uploads/2008/09/cc2e.jpg" alt="Code Complete 2" title="Code Complete 2" width="150" height="188" class="alignnone size-full wp-image-129" /></a></p>
<p>This should be a no brainer. Lots of experience of <em>programming</em> in PHP, is not strictly necessary, a good programmer, particularly with experience of scripting languages or programming for the web should be able to pick up PHP in no time.</p>
<blockquote cite="http://www.joelonsoftware.com/articles/SortingResumes.html"><p>For someone who is basically a good software developer, learning another programming language is just not going to be a big deal. In two weeks they’ll be pretty productive. In two years, you may need them to do something completely different in a programming language which hasn’t even been invented.</p>
<p><a href="http://www.joelonsoftware.com/articles/SortingResumes.html">- Sorting Resumes</a> by Joel Spolsky</p>
</blockquote>
<p>Most PHP applications are used in conjunction with an SQL database, predominantly <a href="http://www.mysql.com">MySQL</a>, so you&#8217;re going to need some of this under your belt.</p>
<p>Some knowledge of PHP is essential. Be aware of the benefits, the caveats and if you&#8217;re interested, a little of <a href="http://www.php.net/history">PHPs history</a>, some people <a href="http://hasin.wordpress.com/2008/05/12/i-dont-give-you-a-damn-if/">really care</a> about it. I think it definitely shows you are passionate about what you do or want to do. Maybe look to PHP&#8217;s future, research whats coming up in <a href="http://www.sitepoint.com/article/whats-new-php-5-3/">PHP 5.3</a>, or whatever the next version is at the current time.</p>
<p><br style="clear:left;" /></p>
<h3>Software Engineering</h3>
<p>Most PHP roles go beyond just programming, so a good sense of what&#8217;s involved in a full project life cycle should help you get that PHP job over the next guy. There are lots of processes and models available, but you don&#8217;t need to be familiar with them all. Get a good idea of the 7 stages of the traditional <a href="http://en.wikipedia.org/wiki/Waterfall_model">Waterfall Model</a> and you should be able to apply the principles to most methods. They are:</p>
<ol>
<li>Requirements Specification</li>
<li>Design</li>
<li>Implementation</li>
<li>Integration</li>
<li>Testing</li>
<li>Installation</li>
<li>Maintenance</li>
</ol>
<p>I like <a href="http://en.wikipedia.org/wiki/Unified_Modeling_Language">UML</a> for design and documentation, so worth knowing about even if you haven&#8217;t practiced it.</p>
<h3>Libraries and Frameworks</h3>
<p><a style="float:left;margin:0px 10px 10px 0px;" href="http://www.amazon.com/gp/redirect.html?ie=UTF8&#038;location=http%3A%2F%2Fwww.amazon.com%2Farchitects-Guide-Programming-Zend-Framework%2Fdp%2F0973862157%3Fie%3DUTF8%26s%3Dbooks%26qid%3D1220909271%26sr%3D8-1&#038;tag=davedvd-20&#038;linkCode=ur2&#038;camp=1789&#038;creative=9325"><img src="http://www.davedevelopment.co.uk/wp-content/uploads/2008/09/51apwbg78zl_sl500_aa240_.jpg" alt="" title="Guide to Programming with Zend Framework" width="150" height="186" class="alignnone size-full wp-image-145" /></a></p>
<p>If you are familiar with Object Oriented methodologies, arm yourself with the knowledge of <a href="http://uk.php.net/zend-engine-2.php">PHP5&#8217;s OO</a> capabilities. Once you&#8217;ve got that, get a handle of the vast array of <a href="http://www.phpframeworks.com/">PHP frameworks</a> that are available. You don&#8217;t have to know them inside and out, just be aware of them and the benefits they give you. <a href="http://pear.php.net">PEAR</a> is a huge library of PHP code, check it out</p>
<p><br style="clear:left;" /></p>
<h3>Development Tools</h3>
<p>There are plenty of <a href="http://www.davedevelopment.co.uk/2008/03/20/10-tools-for-modern-php-development/">tools</a> available to aid and improve the development process, be familiar with as many as you can handle. I would insist on becoming familiar with, downloading and experimenting with <a href="http://subversion.tigris.org/">subversion</a>, or <a href="http://git.or.cz/">some</a> <a href="http://bazaar-vcs.org/">other</a> version control system. </p>
<p>Joel Spolsky has what he refers to <a href="http://www.joelonsoftware.com/articles/fog0000000043.html">The Joel Test</a>. Later in this series, we&#8217;ll discuss interviews, and I will recommend asking at least one of these questions at an interview, so you need to understand what they all mean and why they might benefit a software development team.</p>
<h3>Security</h3>
<p><a style="float:left;margin:0px 10px 10px 0px;" href="http://www.amazon.com/gp/redirect.html?ie=UTF8&#038;location=http%3A%2F%2Fwww.amazon.com%2FEssential-PHP-Security-Chris-Shiflett%2Fdp%2F059600656X%3Fie%3DUTF8%26s%3Dbooks%26qid%3D1220471983%26sr%3D1-1&#038;tag=davedvd-20&#038;linkCode=ur2&#038;camp=1789&#038;creative=9325"><br />
<img src="http://www.davedevelopment.co.uk/wp-content/uploads/2008/09/essential-php-security-198.gif" alt="Essential PHP Security" title="Essential PHP Security" width="150" height="196" class="alignnone size-full wp-image-130" /></a></p>
<p>Security is often a big cause for concern in the PHP world, mainly because it&#8217;s not been handled correctly before. PHP is not insecure in itself, most vulnerabilities attributed to PHP are actually simply in softwares written in PHP. </p>
<p>Be aware of security issues in your code such as <a href="http://en.wikipedia.org/wiki/SQL_injection">SQL Injection</a>, <a href="http://en.wikipedia.org/wiki/Cross-site_scripting">XSS</a> and <a href="http://en.wikipedia.org/wiki/Cross-site_request_forgery">CSRF</a>. Also be aware of configuration directives that can affect the security of your PHP powered web servers.</p>
<p><br style="clear:left;" /></p>
<h3>Web Services</h3>
<p>Understand what a <a href="http://en.wikipedia.org/wiki/Web_service">web service</a> is and some of the related technologies. PHP is ideal as a <a href="http://en.wikipedia.org/wiki/Glue_language">glue language</a>, combining web services to consume single web services or  create <a href="http://en.wikipedia.org/wiki/Mashup_(web_application_hybrid)">mash ups</a> of several web services, but can also be used for providing web services.</p>
<h3>System Administration</h3>
</p>
<p>In my opinion, developers should be capable of administering the full stack they develop for, usually in this case, the <a href="http://en.wikipedia.org/wiki/LAMP_(software_bundle)">LAMP</a> stack. There can&#8217;t be many potential PHP developers out there who don&#8217;t have a spare computer or hard disk lying around that they can&#8217;t install <a href="http://www.debian.org/">Debian</a> on and follow a simple <a href="http://www.debian-administration.org/articles/357">LAMP installation tutorial</a>. If you&#8217;ve not got a spare hard disk, download <a href="http://www.vmware.com/products/player/">VmWare Player</a> and a <a href="http://www.vmware.com/appliances/directory/838">debian appliance</a></p>
<p>I think thats all I can think of for now, I&#8217;m sure there&#8217;s plenty I&#8217;ve missed. If there&#8217;s any technical leads, managers or recruiters reading, please pipe up with what you expect from your applicants. The next part in the series will focus on the soft skills required for banking that PHP job.</p>
<h4>More in this series</h4>
<ul>
<li><a href="http://www.davedevelopment.co.uk/2008/09/08/landing-a-php-job-part-1-technical-knowledge-and-skills/" title="Technical skills for PHP Jobs">Part 1: Technical Skills</a></li>
<li><a href="http://www.davedevelopment.co.uk/2008/09/17/landing-a-php-job-part-2-soft-skills/" title="Soft skills for PHP Jobs">Part 2: Soft Skills</a></li>
<li><a href="http://www.davedevelopment.co.uk/2008/12/15/landing-a-php-job-part-3-curriculum-vitae/">Part 3: Curriculum Vitae</a></li>
</ul>




	<a rel="nofollow" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fwww.davedevelopment.co.uk%2F2008%2F09%2F08%2Flanding-a-php-job-part-1-technical-knowledge-and-skills%2F&amp;title=Landing%20a%20PHP%20job%20Part%201%3A%20Technical%20Knowledge%20and%20Skills&amp;bodytext=%0D%0A%0D%0AAfter%20reading%20this%20thread%2C%20I%20thought%20I%27d%20spend%20some%20time%20writing%20about%20what%20I%20feel%20are%20some%20measures%20you%20can%20take%20to%20landing%20a%20job%20in%20PHP.%20This%20first%20part%20is%20going%20to%20concentrate%20on%20the%20kind%20of%20technical%20matters%20I%20think%20any%20PHP%20developer%20should%20a" title="Digg"><img src="http://www.davedevelopment.co.uk/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a>
	<a rel="nofollow" href="http://delicious.com/post?url=http%3A%2F%2Fwww.davedevelopment.co.uk%2F2008%2F09%2F08%2Flanding-a-php-job-part-1-technical-knowledge-and-skills%2F&amp;title=Landing%20a%20PHP%20job%20Part%201%3A%20Technical%20Knowledge%20and%20Skills&amp;notes=%0D%0A%0D%0AAfter%20reading%20this%20thread%2C%20I%20thought%20I%27d%20spend%20some%20time%20writing%20about%20what%20I%20feel%20are%20some%20measures%20you%20can%20take%20to%20landing%20a%20job%20in%20PHP.%20This%20first%20part%20is%20going%20to%20concentrate%20on%20the%20kind%20of%20technical%20matters%20I%20think%20any%20PHP%20developer%20should%20a" title="del.icio.us"><img src="http://www.davedevelopment.co.uk/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a>
	<a rel="nofollow" href="http://www.newsvine.com/_tools/seed&amp;save?u=http%3A%2F%2Fwww.davedevelopment.co.uk%2F2008%2F09%2F08%2Flanding-a-php-job-part-1-technical-knowledge-and-skills%2F&amp;h=Landing%20a%20PHP%20job%20Part%201%3A%20Technical%20Knowledge%20and%20Skills" title="NewsVine"><img src="http://www.davedevelopment.co.uk/wp-content/plugins/sociable/images/newsvine.png" title="NewsVine" alt="NewsVine" class="sociable-hovers" /></a>
	<a rel="nofollow" href="http://reddit.com/submit?url=http%3A%2F%2Fwww.davedevelopment.co.uk%2F2008%2F09%2F08%2Flanding-a-php-job-part-1-technical-knowledge-and-skills%2F&amp;title=Landing%20a%20PHP%20job%20Part%201%3A%20Technical%20Knowledge%20and%20Skills" title="Reddit"><img src="http://www.davedevelopment.co.uk/wp-content/plugins/sociable/images/reddit.png" title="Reddit" alt="Reddit" class="sociable-hovers" /></a>
	<a rel="nofollow" href="" title="Furl"><img src="http://www.davedevelopment.co.uk/wp-content/plugins/sociable/images/" title="Furl" alt="Furl" class="sociable-hovers" /></a>
	<a rel="nofollow" href="http://www.dzone.com/links/add.html?url=http%3A%2F%2Fwww.davedevelopment.co.uk%2F2008%2F09%2F08%2Flanding-a-php-job-part-1-technical-knowledge-and-skills%2F&amp;title=Landing%20a%20PHP%20job%20Part%201%3A%20Technical%20Knowledge%20and%20Skills" title="DZone"><img src="http://www.davedevelopment.co.uk/wp-content/plugins/sociable/images/dzone.png" title="DZone" alt="DZone" class="sociable-hovers" /></a>
	<a rel="nofollow" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.davedevelopment.co.uk%2F2008%2F09%2F08%2Flanding-a-php-job-part-1-technical-knowledge-and-skills%2F&amp;title=Landing%20a%20PHP%20job%20Part%201%3A%20Technical%20Knowledge%20and%20Skills" title="StumbleUpon"><img src="http://www.davedevelopment.co.uk/wp-content/plugins/sociable/images/stumbleupon.png" title="StumbleUpon" alt="StumbleUpon" class="sociable-hovers" /></a>
	<a rel="nofollow" href="http://technorati.com/faves?add=http%3A%2F%2Fwww.davedevelopment.co.uk%2F2008%2F09%2F08%2Flanding-a-php-job-part-1-technical-knowledge-and-skills%2F" title="Technorati"><img src="http://www.davedevelopment.co.uk/wp-content/plugins/sociable/images/technorati.png" title="Technorati" alt="Technorati" class="sociable-hovers" /></a>


<br/><br/>]]></content:encoded>
			<wfw:commentRss>http://www.davedevelopment.co.uk/2008/09/08/landing-a-php-job-part-1-technical-knowledge-and-skills/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>Switching server environments</title>
		<link>http://www.davedevelopment.co.uk/2008/05/26/switching-server-environments/</link>
		<comments>http://www.davedevelopment.co.uk/2008/05/26/switching-server-environments/#comments</comments>
		<pubDate>Mon, 26 May 2008 08:24:33 +0000</pubDate>
		<dc:creator>davedevelopment</dc:creator>
				<category><![CDATA[Apache]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[environment]]></category>

		<guid isPermaLink="false">http://www.davedevelopment.co.uk/?p=64</guid>
		<description><![CDATA[After reading John Rockefeller&#8217;s post on Handling multiple domains and less recently Richard Heye&#8217;s post on displaying errors, I thought I&#8217;d write a little post about my qualms with their methods.
I won&#8217;t go into too much detail, but both examples use a variable that can be manipulated by the user, $_SERVER['HTTP_HOST']. Richard actually changed his [...]]]></description>
			<content:encoded><![CDATA[<p>After reading John Rockefeller&#8217;s post on <a href="http://www.johnrockefeller.net/?p=194">Handling multiple domains</a> and less recently Richard Heye&#8217;s post on <a href="<br />
Displaying errors">displaying errors</a>, I thought I&#8217;d write a little post about my qualms with their methods.</p>
<p>I won&#8217;t go into too much detail, but both examples use a variable that can be manipulated by the user, <tt>$_SERVER['HTTP_HOST']</tt>. Richard actually changed his example to use <tt>$_SERVER['SERVER_NAME']</tt>, but as Chris Shiflett <a href="http://shiflett.org/blog/2006/mar/server-name-versus-http-host">shows</a>, neither are guaranteed to be genuine.</p>
<p>My example relies on having access to the server configuration, but is fairly simple. I think <a href="http://www.rubyonrails.org/">Ruby on Rails</a> uses a similar method.</p>
<p>First we set up our virtual hosts, all pointing to the same codebase, but each getting an individual environment variable set using <a href="http://httpd.apache.org/docs/2.0/mod/mod_env.html">mod_env</a>.</p>
<pre name="code">
&lt;VirtualHost *:80&gt;
    ServerName davedevelopment.co.uk
    DocumentRoot /var/www/codebase
    SetEnv WEB_ENV davedevelopment.co.uk
&lt;/VirtualHost&gt;

&lt;VirtualHost *:80&gt;
    ServerName test.davedevelopment.co.uk
    DocumentRoot /var/www/codebase
    SetEnv WEB_ENV test.davedevelopment.co.uk
&lt;/VirtualHost&gt;

&lt;VirtualHost *:80&gt;
    ServerName anotherSite.com
    DocumentRoot /var/www/codebase
    SetEnv WEB_ENV another_site
&lt;/VirtualHost&gt;
</pre>
<p>The code then switches on this variable, which should be guaranteed to be controlled by yourself?</p>
<pre name="code" class="php">
&lt;?php
switch($_SERVER['WEB_ENV']) {
    case 'davedevelopment.co.uk':
        $message = 'Welcome to DaveDevelopment';
        break;
    case 'another_site':
        $message = 'Welcome to another site';
        break;
    case 'test.davedevelopment.co.uk':
    default:
        $message = 'Welcome to DaveDevelopment Test';
        break;
}

echo $message;

?&gt;
</pre>
<p><script type="text/javascript">var dzone_style = '1';</script><br />
<script language="javascript" src="http://widgets.dzone.com/widgets/zoneit.js"></script> </p>




	<a rel="nofollow" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fwww.davedevelopment.co.uk%2F2008%2F05%2F26%2Fswitching-server-environments%2F&amp;title=Switching%20server%20environments&amp;bodytext=After%20reading%20John%20Rockefeller%27s%20post%20on%20Handling%20multiple%20domains%20and%20less%20recently%20Richard%20Heye%27s%20post%20on%20displaying%20errors%2C%20I%20thought%20I%27d%20write%20a%20little%20post%20about%20my%20qualms%20with%20their%20methods.%0D%0A%0D%0AI%20won%27t%20go%20into%20too%20much%20detail%2C%20but%20both%20examples" title="Digg"><img src="http://www.davedevelopment.co.uk/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a>
	<a rel="nofollow" href="http://delicious.com/post?url=http%3A%2F%2Fwww.davedevelopment.co.uk%2F2008%2F05%2F26%2Fswitching-server-environments%2F&amp;title=Switching%20server%20environments&amp;notes=After%20reading%20John%20Rockefeller%27s%20post%20on%20Handling%20multiple%20domains%20and%20less%20recently%20Richard%20Heye%27s%20post%20on%20displaying%20errors%2C%20I%20thought%20I%27d%20write%20a%20little%20post%20about%20my%20qualms%20with%20their%20methods.%0D%0A%0D%0AI%20won%27t%20go%20into%20too%20much%20detail%2C%20but%20both%20examples" title="del.icio.us"><img src="http://www.davedevelopment.co.uk/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a>
	<a rel="nofollow" href="http://www.newsvine.com/_tools/seed&amp;save?u=http%3A%2F%2Fwww.davedevelopment.co.uk%2F2008%2F05%2F26%2Fswitching-server-environments%2F&amp;h=Switching%20server%20environments" title="NewsVine"><img src="http://www.davedevelopment.co.uk/wp-content/plugins/sociable/images/newsvine.png" title="NewsVine" alt="NewsVine" class="sociable-hovers" /></a>
	<a rel="nofollow" href="http://reddit.com/submit?url=http%3A%2F%2Fwww.davedevelopment.co.uk%2F2008%2F05%2F26%2Fswitching-server-environments%2F&amp;title=Switching%20server%20environments" title="Reddit"><img src="http://www.davedevelopment.co.uk/wp-content/plugins/sociable/images/reddit.png" title="Reddit" alt="Reddit" class="sociable-hovers" /></a>
	<a rel="nofollow" href="" title="Furl"><img src="http://www.davedevelopment.co.uk/wp-content/plugins/sociable/images/" title="Furl" alt="Furl" class="sociable-hovers" /></a>
	<a rel="nofollow" href="http://www.dzone.com/links/add.html?url=http%3A%2F%2Fwww.davedevelopment.co.uk%2F2008%2F05%2F26%2Fswitching-server-environments%2F&amp;title=Switching%20server%20environments" title="DZone"><img src="http://www.davedevelopment.co.uk/wp-content/plugins/sociable/images/dzone.png" title="DZone" alt="DZone" class="sociable-hovers" /></a>
	<a rel="nofollow" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.davedevelopment.co.uk%2F2008%2F05%2F26%2Fswitching-server-environments%2F&amp;title=Switching%20server%20environments" title="StumbleUpon"><img src="http://www.davedevelopment.co.uk/wp-content/plugins/sociable/images/stumbleupon.png" title="StumbleUpon" alt="StumbleUpon" class="sociable-hovers" /></a>
	<a rel="nofollow" href="http://technorati.com/faves?add=http%3A%2F%2Fwww.davedevelopment.co.uk%2F2008%2F05%2F26%2Fswitching-server-environments%2F" title="Technorati"><img src="http://www.davedevelopment.co.uk/wp-content/plugins/sociable/images/technorati.png" title="Technorati" alt="Technorati" class="sociable-hovers" /></a>


<br/><br/>]]></content:encoded>
			<wfw:commentRss>http://www.davedevelopment.co.uk/2008/05/26/switching-server-environments/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>PHP Versions in popular Linux Distributions</title>
		<link>http://www.davedevelopment.co.uk/2008/05/08/php-versions-in-popular-linux-distributions/</link>
		<comments>http://www.davedevelopment.co.uk/2008/05/08/php-versions-in-popular-linux-distributions/#comments</comments>
		<pubDate>Thu, 08 May 2008 19:33:40 +0000</pubDate>
		<dc:creator>davedevelopment</dc:creator>
				<category><![CDATA[Apache]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[php linux sles version]]></category>

		<guid isPermaLink="false">http://www.davedevelopment.co.uk/?p=58</guid>
		<description><![CDATA[I had a problem today at work, I&#8217;ve been coding exclusively in PHP5.2 since it was available and most of the servers I&#8217;ve been working for are Debian or Ubuntu based, so I didn&#8217;t have any problems until this afternoon. We&#8217;ve recently bought a SAN solution from Dell and to gain support we bought two [...]]]></description>
			<content:encoded><![CDATA[<p>I had a problem today at work, I&#8217;ve been coding exclusively in PHP5.2 since it was available and most of the servers I&#8217;ve been working for are Debian or Ubuntu based, so I didn&#8217;t have any problems until this afternoon. We&#8217;ve recently bought a SAN solution from Dell and to gain support we bought two new servers, both with <a href="http://www.novell.com/products/server/">SUSE Enterprise Linux</a> installed, which only comes with PHP 5.1.2. That particular version came out in January 2006. Since then I&#8217;ve been using the new <a href="http://uk.php.net/manual/en/function.date-create.php">DateTime</a> object, the <a href="http://uk.php.net/filter">filter</a> functions, <a href="http://uk2.php.net/manual/en/function.memory-get-peak-usage.php">memory_get_peak_usage()</a> and <a href="http://uk2.php.net/manual/en/function.sys-get-temp-dir.php">sys_get_temp_dir()</a>. And they&#8217;re only the problems I noticed. We could install from source, but then we lose the subtle benefits of package management.</p>
<p>So, this lead to me wondering what LAMP versions the popular distros are using, with the help of <a href="http://distrowatch.com">DistroWatch</a>, I compiled this table. It only shows the community/open source distributions, the commercials counterparts for each are usually at least a year behind, guaranteeing support but only for out of date versions.</p>
<table>
<tr>
<th>Distribution</th>
<th>Version</th>
<th>Apache</th>
<th>MySQL</th>
<th>PHP</th>
</tr>
<tr>
<td>Ubuntu</td>
<td>8.04 LTS Hardy Heron</td>
<td>2.2.8</td>
<td>5.0.51a</td>
<td>5.2.4</td>
</tr>
<tr>
<td>openSUSE</td>
<td>10.3</td>
<td>2.2.4</td>
<td>5.0.45</td>
<td>5.2.4</td>
</tr>
<tr>
<td>Fedora</td>
<td>8 Werewolf</td>
<td>2.2.6</td>
<td>5.0.45</td>
<td>5.2.4</td>
</tr>
<tr>
<td>Debian GNU/Linux</td>
<td>4.0 Etch</td>
<td>2.2.3</td>
<td>5.0.32
         </td>
<td>5.2.0</td>
</tr>
<tr>
<td>Mandriva Linux</td>
<td>2008.1</td>
<td>2.2.8</td>
<td>5.0.51a</td>
<td>5.2.5</td>
</tr>
<tr>
<td>Knoppix</td>
<td>5.3.1</td>
<td>2.2.8</td>
<td>5.0.51a</td>
<td>5.2.3</td>
</tr>
<tr>
<td>Slackware Linux</td>
<td>12.0</td>
<td>2.2.4</td>
<td>5.0.37</td>
<td>5.2.3</td>
</tr>
<tr>
<td>Gentoo Linux</td>
<td>2007.0</td>
<td>2.0.58</td>
<td>5.0.38</td>
<td>5.2.2</td>
</tr>
<tr>
<td>FreeBSD</td>
<td>7.0 RELEASE</td>
<td>2.2.6</td>
<td>5.0.45</td>
<td>5.2.5</td>
</tr>
</table>




	<a rel="nofollow" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fwww.davedevelopment.co.uk%2F2008%2F05%2F08%2Fphp-versions-in-popular-linux-distributions%2F&amp;title=PHP%20Versions%20in%20popular%20Linux%20Distributions&amp;bodytext=I%20had%20a%20problem%20today%20at%20work%2C%20I%27ve%20been%20coding%20exclusively%20in%20PHP5.2%20since%20it%20was%20available%20and%20most%20of%20the%20servers%20I%27ve%20been%20working%20for%20are%20Debian%20or%20Ubuntu%20based%2C%20so%20I%20didn%27t%20have%20any%20problems%20until%20this%20afternoon.%20We%27ve%20recently%20bought%20a%20SAN%20sol" title="Digg"><img src="http://www.davedevelopment.co.uk/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a>
	<a rel="nofollow" href="http://delicious.com/post?url=http%3A%2F%2Fwww.davedevelopment.co.uk%2F2008%2F05%2F08%2Fphp-versions-in-popular-linux-distributions%2F&amp;title=PHP%20Versions%20in%20popular%20Linux%20Distributions&amp;notes=I%20had%20a%20problem%20today%20at%20work%2C%20I%27ve%20been%20coding%20exclusively%20in%20PHP5.2%20since%20it%20was%20available%20and%20most%20of%20the%20servers%20I%27ve%20been%20working%20for%20are%20Debian%20or%20Ubuntu%20based%2C%20so%20I%20didn%27t%20have%20any%20problems%20until%20this%20afternoon.%20We%27ve%20recently%20bought%20a%20SAN%20sol" title="del.icio.us"><img src="http://www.davedevelopment.co.uk/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a>
	<a rel="nofollow" href="http://www.newsvine.com/_tools/seed&amp;save?u=http%3A%2F%2Fwww.davedevelopment.co.uk%2F2008%2F05%2F08%2Fphp-versions-in-popular-linux-distributions%2F&amp;h=PHP%20Versions%20in%20popular%20Linux%20Distributions" title="NewsVine"><img src="http://www.davedevelopment.co.uk/wp-content/plugins/sociable/images/newsvine.png" title="NewsVine" alt="NewsVine" class="sociable-hovers" /></a>
	<a rel="nofollow" href="http://reddit.com/submit?url=http%3A%2F%2Fwww.davedevelopment.co.uk%2F2008%2F05%2F08%2Fphp-versions-in-popular-linux-distributions%2F&amp;title=PHP%20Versions%20in%20popular%20Linux%20Distributions" title="Reddit"><img src="http://www.davedevelopment.co.uk/wp-content/plugins/sociable/images/reddit.png" title="Reddit" alt="Reddit" class="sociable-hovers" /></a>
	<a rel="nofollow" href="" title="Furl"><img src="http://www.davedevelopment.co.uk/wp-content/plugins/sociable/images/" title="Furl" alt="Furl" class="sociable-hovers" /></a>
	<a rel="nofollow" href="http://www.dzone.com/links/add.html?url=http%3A%2F%2Fwww.davedevelopment.co.uk%2F2008%2F05%2F08%2Fphp-versions-in-popular-linux-distributions%2F&amp;title=PHP%20Versions%20in%20popular%20Linux%20Distributions" title="DZone"><img src="http://www.davedevelopment.co.uk/wp-content/plugins/sociable/images/dzone.png" title="DZone" alt="DZone" class="sociable-hovers" /></a>
	<a rel="nofollow" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.davedevelopment.co.uk%2F2008%2F05%2F08%2Fphp-versions-in-popular-linux-distributions%2F&amp;title=PHP%20Versions%20in%20popular%20Linux%20Distributions" title="StumbleUpon"><img src="http://www.davedevelopment.co.uk/wp-content/plugins/sociable/images/stumbleupon.png" title="StumbleUpon" alt="StumbleUpon" class="sociable-hovers" /></a>
	<a rel="nofollow" href="http://technorati.com/faves?add=http%3A%2F%2Fwww.davedevelopment.co.uk%2F2008%2F05%2F08%2Fphp-versions-in-popular-linux-distributions%2F" title="Technorati"><img src="http://www.davedevelopment.co.uk/wp-content/plugins/sociable/images/technorati.png" title="Technorati" alt="Technorati" class="sociable-hovers" /></a>


<br/><br/>]]></content:encoded>
			<wfw:commentRss>http://www.davedevelopment.co.uk/2008/05/08/php-versions-in-popular-linux-distributions/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Quick bandwidth optimisation tips for Apache and PHP</title>
		<link>http://www.davedevelopment.co.uk/2006/09/04/quick-bandwidth-optimisation-tips-for-apache-and-php/</link>
		<comments>http://www.davedevelopment.co.uk/2006/09/04/quick-bandwidth-optimisation-tips-for-apache-and-php/#comments</comments>
		<pubDate>Mon, 04 Sep 2006 18:25:55 +0000</pubDate>
		<dc:creator>davedevelopment</dc:creator>
				<category><![CDATA[Apache]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.davedevelopment.co.uk/2006/09/04/quick-bandwidth-optimisation-tips-for-apache-and-php/</guid>
		<description><![CDATA[Here&#8217;s a quick tip to optimise the HTTP response headers sent by your webserver. While being pretty useless to the average user, the Server signature and powered-by headers could be removed or at least reduced. Obviously these changes are only minor, but on a heavily loaded server such as large forums, could make a decent [...]]]></description>
			<content:encoded><![CDATA[<p>Here&#8217;s a quick tip to optimise the <abbr title="HyperText Transfer Protocol">HTTP</abbr> response headers sent by your webserver. While being pretty useless to the average user, the Server signature and powered-by headers could be removed or at least reduced. Obviously these changes are only minor, but on a heavily loaded server such as large forums, could make a decent little saving.</p>
<p>These two little changes&#8230;</p>
<p>apache2.conf</p>
<pre class="code">
ServerTokens Prod
</pre>
<p>php.ini</p>
<pre class="code">
expose_php = Off
</pre>
<p>Will change the <abbr title="HyperText Transfer Protocol">HTTP</abbr> response headers on this server from:</p>
<pre class="code">
Server: Apache/2.0.54 (Debian GNU/Linux) PHP/4.3.10-16 \
mod_ssl/2.0.54 OpenSSL/0.9.7e mod_perl/1.999.21 Perl/v5.8.4
X-Powered-By: PHP/4.3.10-16
</pre>
<p>To:</p>
<pre class="code">
Server: Apache
</pre>
<p>That&#8217;s a saving of 128 bytes. This site has served 2025 requests so far this month, so this little trick might only have saved me 253kB, but what if there had been 20,000,000 requests?</p>
<p> <a href="http://www.personalcashadvance.com">payday loans</a> cash advance needs</p>




	<a rel="nofollow" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fwww.davedevelopment.co.uk%2F2006%2F09%2F04%2Fquick-bandwidth-optimisation-tips-for-apache-and-php%2F&amp;title=Quick%20bandwidth%20optimisation%20tips%20for%20Apache%20and%20PHP&amp;bodytext=Here%27s%20a%20quick%20tip%20to%20optimise%20the%20HTTP%20response%20headers%20sent%20by%20your%20webserver.%20While%20being%20pretty%20useless%20to%20the%20average%20user%2C%20the%20Server%20signature%20and%20powered-by%20headers%20could%20be%20removed%20or%20at%20least%20reduced.%20Obviously%20these%20changes%20are%20only%20minor%2C" title="Digg"><img src="http://www.davedevelopment.co.uk/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a>
	<a rel="nofollow" href="http://delicious.com/post?url=http%3A%2F%2Fwww.davedevelopment.co.uk%2F2006%2F09%2F04%2Fquick-bandwidth-optimisation-tips-for-apache-and-php%2F&amp;title=Quick%20bandwidth%20optimisation%20tips%20for%20Apache%20and%20PHP&amp;notes=Here%27s%20a%20quick%20tip%20to%20optimise%20the%20HTTP%20response%20headers%20sent%20by%20your%20webserver.%20While%20being%20pretty%20useless%20to%20the%20average%20user%2C%20the%20Server%20signature%20and%20powered-by%20headers%20could%20be%20removed%20or%20at%20least%20reduced.%20Obviously%20these%20changes%20are%20only%20minor%2C" title="del.icio.us"><img src="http://www.davedevelopment.co.uk/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a>
	<a rel="nofollow" href="http://www.newsvine.com/_tools/seed&amp;save?u=http%3A%2F%2Fwww.davedevelopment.co.uk%2F2006%2F09%2F04%2Fquick-bandwidth-optimisation-tips-for-apache-and-php%2F&amp;h=Quick%20bandwidth%20optimisation%20tips%20for%20Apache%20and%20PHP" title="NewsVine"><img src="http://www.davedevelopment.co.uk/wp-content/plugins/sociable/images/newsvine.png" title="NewsVine" alt="NewsVine" class="sociable-hovers" /></a>
	<a rel="nofollow" href="http://reddit.com/submit?url=http%3A%2F%2Fwww.davedevelopment.co.uk%2F2006%2F09%2F04%2Fquick-bandwidth-optimisation-tips-for-apache-and-php%2F&amp;title=Quick%20bandwidth%20optimisation%20tips%20for%20Apache%20and%20PHP" title="Reddit"><img src="http://www.davedevelopment.co.uk/wp-content/plugins/sociable/images/reddit.png" title="Reddit" alt="Reddit" class="sociable-hovers" /></a>
	<a rel="nofollow" href="" title="Furl"><img src="http://www.davedevelopment.co.uk/wp-content/plugins/sociable/images/" title="Furl" alt="Furl" class="sociable-hovers" /></a>
	<a rel="nofollow" href="http://www.dzone.com/links/add.html?url=http%3A%2F%2Fwww.davedevelopment.co.uk%2F2006%2F09%2F04%2Fquick-bandwidth-optimisation-tips-for-apache-and-php%2F&amp;title=Quick%20bandwidth%20optimisation%20tips%20for%20Apache%20and%20PHP" title="DZone"><img src="http://www.davedevelopment.co.uk/wp-content/plugins/sociable/images/dzone.png" title="DZone" alt="DZone" class="sociable-hovers" /></a>
	<a rel="nofollow" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.davedevelopment.co.uk%2F2006%2F09%2F04%2Fquick-bandwidth-optimisation-tips-for-apache-and-php%2F&amp;title=Quick%20bandwidth%20optimisation%20tips%20for%20Apache%20and%20PHP" title="StumbleUpon"><img src="http://www.davedevelopment.co.uk/wp-content/plugins/sociable/images/stumbleupon.png" title="StumbleUpon" alt="StumbleUpon" class="sociable-hovers" /></a>
	<a rel="nofollow" href="http://technorati.com/faves?add=http%3A%2F%2Fwww.davedevelopment.co.uk%2F2006%2F09%2F04%2Fquick-bandwidth-optimisation-tips-for-apache-and-php%2F" title="Technorati"><img src="http://www.davedevelopment.co.uk/wp-content/plugins/sociable/images/technorati.png" title="Technorati" alt="Technorati" class="sociable-hovers" /></a>


<br/><br/>]]></content:encoded>
			<wfw:commentRss>http://www.davedevelopment.co.uk/2006/09/04/quick-bandwidth-optimisation-tips-for-apache-and-php/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Ruby on Rails &#8211; First Impressions</title>
		<link>http://www.davedevelopment.co.uk/2006/08/28/ruby-on-rails-first-impressions/</link>
		<comments>http://www.davedevelopment.co.uk/2006/08/28/ruby-on-rails-first-impressions/#comments</comments>
		<pubDate>Mon, 28 Aug 2006 18:29:15 +0000</pubDate>
		<dc:creator>davedevelopment</dc:creator>
				<category><![CDATA[Apache]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[Ruby on Rails]]></category>

		<guid isPermaLink="false">http://www.davedevelopment.co.uk/2006/08/28/ruby-on-rails-first-impressions/</guid>
		<description><![CDATA[I&#8217;ve finally gotten around to finishing the basic design on the Broadband affiliate site project I&#8217;ve had ongoing for a while and figured it would be nice to have a backend to add/remove, de-activate all the different packages etc. So, I decided to go crazy and have a look at Ruby on Rails.
Now I&#8217;m not [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve finally gotten around to finishing the basic design on the Broadband affiliate site project I&#8217;ve had ongoing for a while and figured it would be nice to have a backend to add/remove, de-activate all the different packages etc. So, I decided to go crazy and have a look at <a href="http://www.rubyonrails.org/">Ruby on Rails</a>.</p>
<p>Now I&#8217;m not extremely well versed with patterns and so on, but I have a decent understanding of the MVC style architecture that seems to be popular these days and I&#8217;ve seen a few tutorials on <a href="http://www.symfony-project.com/">Symfony</a>, a PHP 5 web framework which I believe is fairly similar in nature to Rails, so I figured I&#8217;d get along okay. I feel I was pretty right, in a few hours over today and yesterday I&#8217;ve come out with a working database driven website and administration area running on Ruby on Rails.</p>
<p>Running <a href="http://www.gentoo.org">Gentoo</a>, I always try and use the portage package management tool,  to be double sure on what I needed to do I had a little search on google which led me to <a href="http://wiki.rubyonrails.org/rails/pages/HowtoInstallOnGentooWithApache">this page</a>, and these commands.</p>
<pre class="code">
echo "dev-ruby/rails mysql fastcgi" >> /etc/portage/package.use
emerge -av rails
rails /path/to/app
</pre>
<p>That all went well and I was sat looking at a clean rails application. I fired up the builtin webserver, <a href="http://www.webrick.org/">WEBrick</a>, it worked, so I closed it again. Seeing as I use Apache on all my servers, I wanted to use it for the development aswell. I&#8217;ve never used FastCGI before, but what do you know there was an example virtual host definition in the rails <tt>README</tt> file.</p>
<pre class="code">
  &lt;VirtualHost *:80&gt;
    ServerName rails
    DocumentRoot /path/application/public/
    ErrorLog /path/application/log/server.log

    &lt;Directory /path/application/public/&gt;
      Options ExecCGI FollowSymLinks
      AllowOverride all
      Allow from all
      Order allow,deny
    &lt;/Directory&gt;
  &lt;/VirtualHost&gt;
</pre>
<p>Once again, this worked a treat. I then set about creating my application, which by enlarge went along without many flaws, using a combination of the excellent <a href="http://api.rubyonrails.org/">Rails API</a>, this <a href="http://media.rubyonrails.org/video/rails_take2_with_sound.mov"><em>Create a weblog in 15 minutes</em></a> screencast and <a href="http://www.onlamp.com/pub/a/onlamp/2005/01/20/rails.html">Rolling with Ruby on Rails</a> as guidance. The biggest problem I had was creating initially trying to create the scaffolds. Not knowing RoR&#8217;s naming conventions, I&#8217;d foolishly named my database tables in the singular form, ie provider rather than providers. After overcoming this, I rolled on pretty nicely.</p>
<p>Using <a href="http://wiki.rubyonrails.org/rails/pages/HowToQuicklyDoAuthenticationWithLoginGenerator">this page</a> as guidance I used the login_generator to create a simple admin area, and the scaffolding stuff filled most of the admin pages for me, just a few tweaks here and there were required. The public face was even easier, basically allowing a few different ways to filter the list of broadband packages through one action, &#8216;list&#8217;. </p>
<p>As far as the language Ruby itself goes, I&#8217;ve barely learnt anything, basically because Rails does it all for me. The most complicated things I did code wise, was using a <tt>case</tt> statement to change the filtering on the public packages page and this simple function for turning bytes into a more readable form.</p>
<pre class="code">
        def human_readable(number)
                count = 0
                while number/1024 > 1
                        number = number/1024
                        count += 1
                end

                iec = ['', 'K', 'M', 'G', 'T']
                return number.to_s + iec[count]
        end
</pre>
<p>My only gripe with this so far, is the speed. It does take forever to generate these simple pages, the built in webserver does seem to be a shade quicker, but I&#8217;d still rather use apache. I&#8217;m sure there&#8217;ll be some tweaks I can make to speed the FastCGI module up, but there&#8217;s no rush for that now.</p>
<p>Hopefully I&#8217;ll signup for a few affiliate programs and launch the site properly within the next few days, I don&#8217;t expect to make a fortune but it&#8217;s been a good little learning utility so far and I hope to use it to learn a few things about affiliate marketing.</p>




	<a rel="nofollow" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fwww.davedevelopment.co.uk%2F2006%2F08%2F28%2Fruby-on-rails-first-impressions%2F&amp;title=Ruby%20on%20Rails%20-%20First%20Impressions&amp;bodytext=I%27ve%20finally%20gotten%20around%20to%20finishing%20the%20basic%20design%20on%20the%20Broadband%20affiliate%20site%20project%20I%27ve%20had%20ongoing%20for%20a%20while%20and%20figured%20it%20would%20be%20nice%20to%20have%20a%20backend%20to%20add%2Fremove%2C%20de-activate%20all%20the%20different%20packages%20etc.%20So%2C%20I%20decided%20to%20g" title="Digg"><img src="http://www.davedevelopment.co.uk/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a>
	<a rel="nofollow" href="http://delicious.com/post?url=http%3A%2F%2Fwww.davedevelopment.co.uk%2F2006%2F08%2F28%2Fruby-on-rails-first-impressions%2F&amp;title=Ruby%20on%20Rails%20-%20First%20Impressions&amp;notes=I%27ve%20finally%20gotten%20around%20to%20finishing%20the%20basic%20design%20on%20the%20Broadband%20affiliate%20site%20project%20I%27ve%20had%20ongoing%20for%20a%20while%20and%20figured%20it%20would%20be%20nice%20to%20have%20a%20backend%20to%20add%2Fremove%2C%20de-activate%20all%20the%20different%20packages%20etc.%20So%2C%20I%20decided%20to%20g" title="del.icio.us"><img src="http://www.davedevelopment.co.uk/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a>
	<a rel="nofollow" href="http://www.newsvine.com/_tools/seed&amp;save?u=http%3A%2F%2Fwww.davedevelopment.co.uk%2F2006%2F08%2F28%2Fruby-on-rails-first-impressions%2F&amp;h=Ruby%20on%20Rails%20-%20First%20Impressions" title="NewsVine"><img src="http://www.davedevelopment.co.uk/wp-content/plugins/sociable/images/newsvine.png" title="NewsVine" alt="NewsVine" class="sociable-hovers" /></a>
	<a rel="nofollow" href="http://reddit.com/submit?url=http%3A%2F%2Fwww.davedevelopment.co.uk%2F2006%2F08%2F28%2Fruby-on-rails-first-impressions%2F&amp;title=Ruby%20on%20Rails%20-%20First%20Impressions" title="Reddit"><img src="http://www.davedevelopment.co.uk/wp-content/plugins/sociable/images/reddit.png" title="Reddit" alt="Reddit" class="sociable-hovers" /></a>
	<a rel="nofollow" href="" title="Furl"><img src="http://www.davedevelopment.co.uk/wp-content/plugins/sociable/images/" title="Furl" alt="Furl" class="sociable-hovers" /></a>
	<a rel="nofollow" href="http://www.dzone.com/links/add.html?url=http%3A%2F%2Fwww.davedevelopment.co.uk%2F2006%2F08%2F28%2Fruby-on-rails-first-impressions%2F&amp;title=Ruby%20on%20Rails%20-%20First%20Impressions" title="DZone"><img src="http://www.davedevelopment.co.uk/wp-content/plugins/sociable/images/dzone.png" title="DZone" alt="DZone" class="sociable-hovers" /></a>
	<a rel="nofollow" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.davedevelopment.co.uk%2F2006%2F08%2F28%2Fruby-on-rails-first-impressions%2F&amp;title=Ruby%20on%20Rails%20-%20First%20Impressions" title="StumbleUpon"><img src="http://www.davedevelopment.co.uk/wp-content/plugins/sociable/images/stumbleupon.png" title="StumbleUpon" alt="StumbleUpon" class="sociable-hovers" /></a>
	<a rel="nofollow" href="http://technorati.com/faves?add=http%3A%2F%2Fwww.davedevelopment.co.uk%2F2006%2F08%2F28%2Fruby-on-rails-first-impressions%2F" title="Technorati"><img src="http://www.davedevelopment.co.uk/wp-content/plugins/sociable/images/technorati.png" title="Technorati" alt="Technorati" class="sociable-hovers" /></a>


<br/><br/>]]></content:encoded>
			<wfw:commentRss>http://www.davedevelopment.co.uk/2006/08/28/ruby-on-rails-first-impressions/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
<enclosure url="http://media.rubyonrails.org/video/rails_take2_with_sound.mov" length="54364199" type="video/quicktime" />
		</item>
		<item>
		<title>DaveProxy 3.0</title>
		<link>http://www.davedevelopment.co.uk/2006/05/26/daveproxy-30/</link>
		<comments>http://www.davedevelopment.co.uk/2006/05/26/daveproxy-30/#comments</comments>
		<pubDate>Fri, 26 May 2006 15:43:27 +0000</pubDate>
		<dc:creator>davedevelopment</dc:creator>
				<category><![CDATA[Apache]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Perl]]></category>

		<guid isPermaLink="false">http://www.davedevelopment.co.uk/2006/05/26/daveproxy-30/</guid>
		<description><![CDATA[Well then, a few months down the road and I&#8217;ve hopefully made a few more improvements to DaveProxy.
First off is some modifications to the CGIProxy script, thanks to the guys over at Proxy Society. It basically allows me to control which type of files can be accessed through the proxy, based on the file extension.
I [...]]]></description>
			<content:encoded><![CDATA[<p>Well then, a few months down the road and I&#8217;ve hopefully made a few more improvements to DaveProxy.</p>
<p>First off is some modifications to the CGIProxy script, thanks to the guys over at <a href="http://proxysociety.com/">Proxy Society</a>. It basically allows me to control which type of files can be accessed through the proxy, based on the file extension.</p>
<p>I did have <a href="http://www.squid.org">Squid</a> running as a httpd accelerator for a while, but in the end I decided that the benefits were not really worth the hassle. On the other hand, I can see where this type of setup could prove very useful, particularly with other CGI scripts, just not proxy one&#8217;s. </p>
<p>I also started rotating the cgi-bin folder by adding a random number to the end, changing all the configuration scripts and the index page of the site every two hours. This certainly stopped a lot of hotlinking, but stopped people from adding favourites through the site and also any incoming traffic from <a href="http://proxy.org">Proxy.org</a>. I also tried using apache to deny any requests without referers, this worked well for a short time&#8230;</p>
<p>The site had some major downtime recently and although I&#8217;m not entirely sure I think I figured out what happened. About three days ago, I had a massive influx of traffic, which ended with me serving thousands of 403 denied requests, which culminated in the proxy not being able to handle any real requests because apache and the proxy itself were firing that many 403&#8217;s back. I personally think these requests were mainly coming from China. Pages like this <a href="http://translate.google.com/translate?hl=en&#038;sl=zh-CN&#038;u=http://www.vbulletin-chinese.com/forum/archive/index.php/t-2124.html&#038;prev=/search%3Fq%3Ddaveproxy%26start%3D10%26hl%3Den%26hs%3DGbh%26lr%3D%26client%3Dfirefox-a%26rls%3Dorg.mozilla:en-US:official%26sa%3DN">providing links to FreeBSD</a> and not to mention all the forum pages hotlinking porn,  are just abusing the site and it&#8217;s not fair on me or the genuine users. First I thought about geotargetting and deny requests, but that wouldn&#8217;t help anyway. A 403 might cost me 1kB, which doesn&#8217;t sound like much, but times that by thousands and my server would be crippled again. So why not drop it before it gets to Apache? A quick google search not only led me to sites listing chinese and korean &#8216;A&#8217; class network ranges, but also to iptables scripts set to drop all traffic for them. Changed the port from SMTP to HTTP and I was in business. Even implemented this at work for our SMTP server, cut the spam in half!</p>
<p>Add to that some more links, a news page, a links page and a little bit of promotion here and there and that&#8217;s DaveProxy as of now.</p>




	<a rel="nofollow" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fwww.davedevelopment.co.uk%2F2006%2F05%2F26%2Fdaveproxy-30%2F&amp;title=DaveProxy%203.0&amp;bodytext=Well%20then%2C%20a%20few%20months%20down%20the%20road%20and%20I%27ve%20hopefully%20made%20a%20few%20more%20improvements%20to%20DaveProxy.%0D%0A%0D%0AFirst%20off%20is%20some%20modifications%20to%20the%20CGIProxy%20script%2C%20thanks%20to%20the%20guys%20over%20at%20Proxy%20Society.%20It%20basically%20allows%20me%20to%20control%20which%20type%20of%20f" title="Digg"><img src="http://www.davedevelopment.co.uk/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a>
	<a rel="nofollow" href="http://delicious.com/post?url=http%3A%2F%2Fwww.davedevelopment.co.uk%2F2006%2F05%2F26%2Fdaveproxy-30%2F&amp;title=DaveProxy%203.0&amp;notes=Well%20then%2C%20a%20few%20months%20down%20the%20road%20and%20I%27ve%20hopefully%20made%20a%20few%20more%20improvements%20to%20DaveProxy.%0D%0A%0D%0AFirst%20off%20is%20some%20modifications%20to%20the%20CGIProxy%20script%2C%20thanks%20to%20the%20guys%20over%20at%20Proxy%20Society.%20It%20basically%20allows%20me%20to%20control%20which%20type%20of%20f" title="del.icio.us"><img src="http://www.davedevelopment.co.uk/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a>
	<a rel="nofollow" href="http://www.newsvine.com/_tools/seed&amp;save?u=http%3A%2F%2Fwww.davedevelopment.co.uk%2F2006%2F05%2F26%2Fdaveproxy-30%2F&amp;h=DaveProxy%203.0" title="NewsVine"><img src="http://www.davedevelopment.co.uk/wp-content/plugins/sociable/images/newsvine.png" title="NewsVine" alt="NewsVine" class="sociable-hovers" /></a>
	<a rel="nofollow" href="http://reddit.com/submit?url=http%3A%2F%2Fwww.davedevelopment.co.uk%2F2006%2F05%2F26%2Fdaveproxy-30%2F&amp;title=DaveProxy%203.0" title="Reddit"><img src="http://www.davedevelopment.co.uk/wp-content/plugins/sociable/images/reddit.png" title="Reddit" alt="Reddit" class="sociable-hovers" /></a>
	<a rel="nofollow" href="" title="Furl"><img src="http://www.davedevelopment.co.uk/wp-content/plugins/sociable/images/" title="Furl" alt="Furl" class="sociable-hovers" /></a>
	<a rel="nofollow" href="http://www.dzone.com/links/add.html?url=http%3A%2F%2Fwww.davedevelopment.co.uk%2F2006%2F05%2F26%2Fdaveproxy-30%2F&amp;title=DaveProxy%203.0" title="DZone"><img src="http://www.davedevelopment.co.uk/wp-content/plugins/sociable/images/dzone.png" title="DZone" alt="DZone" class="sociable-hovers" /></a>
	<a rel="nofollow" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.davedevelopment.co.uk%2F2006%2F05%2F26%2Fdaveproxy-30%2F&amp;title=DaveProxy%203.0" title="StumbleUpon"><img src="http://www.davedevelopment.co.uk/wp-content/plugins/sociable/images/stumbleupon.png" title="StumbleUpon" alt="StumbleUpon" class="sociable-hovers" /></a>
	<a rel="nofollow" href="http://technorati.com/faves?add=http%3A%2F%2Fwww.davedevelopment.co.uk%2F2006%2F05%2F26%2Fdaveproxy-30%2F" title="Technorati"><img src="http://www.davedevelopment.co.uk/wp-content/plugins/sociable/images/technorati.png" title="Technorati" alt="Technorati" class="sociable-hovers" /></a>


<br/><br/>]]></content:encoded>
			<wfw:commentRss>http://www.davedevelopment.co.uk/2006/05/26/daveproxy-30/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>DaveProxy 2.0</title>
		<link>http://www.davedevelopment.co.uk/2006/01/30/daveproxy-20/</link>
		<comments>http://www.davedevelopment.co.uk/2006/01/30/daveproxy-20/#comments</comments>
		<pubDate>Mon, 30 Jan 2006 13:43:54 +0000</pubDate>
		<dc:creator>davedevelopment</dc:creator>
				<category><![CDATA[Apache]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[Perl]]></category>

		<guid isPermaLink="false">http://www.davedevelopment.co.uk/2006/01/30/daveproxy-20/</guid>
		<description><![CDATA[Just spent an hour or so tweaking the server running DaveProxy, mainly the introduction of mod_perl and a couple of little tweaks to Apache. Both together it should help keep it up during the worst periods of traffic. 
I decided I&#8217;d take this course of action rather than moving over to PHProxy, although CGIProxy is [...]]]></description>
			<content:encoded><![CDATA[<p>Just spent an hour or so tweaking the server running DaveProxy, mainly the introduction of <a href="http://perl.apache.org/">mod_perl</a> and a couple of little tweaks to <a href="http://apache.org">Apache</a>. Both together it should help keep it up during the worst periods of traffic. </p>
<p>I decided I&#8217;d take this course of action rather than moving over to <a href="http://www.whitefyre.com/poxy/">PHProxy</a>, although CGIProxy is very heavy on resources, using mod_perl should cut out the perl interpreter instantiation for every request and also allows easier monitoring using <a href="http://www.tildeslash.com/monit/">Monit</a>. While PHProxy is better on the resources side of things, CGIProxy handles more features.</p>
<p>Depending on how well it goes over the next week, I may introduce <a href="http://squid.org">squid</a> as a cache between Apache and clients.</p>




	<a rel="nofollow" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fwww.davedevelopment.co.uk%2F2006%2F01%2F30%2Fdaveproxy-20%2F&amp;title=DaveProxy%202.0&amp;bodytext=Just%20spent%20an%20hour%20or%20so%20tweaking%20the%20server%20running%20DaveProxy%2C%20mainly%20the%20introduction%20of%20mod_perl%20and%20a%20couple%20of%20little%20tweaks%20to%20Apache.%20Both%20together%20it%20should%20help%20keep%20it%20up%20during%20the%20worst%20periods%20of%20traffic.%20%0D%0A%0D%0AI%20decided%20I%27d%20take%20this%20cour" title="Digg"><img src="http://www.davedevelopment.co.uk/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a>
	<a rel="nofollow" href="http://delicious.com/post?url=http%3A%2F%2Fwww.davedevelopment.co.uk%2F2006%2F01%2F30%2Fdaveproxy-20%2F&amp;title=DaveProxy%202.0&amp;notes=Just%20spent%20an%20hour%20or%20so%20tweaking%20the%20server%20running%20DaveProxy%2C%20mainly%20the%20introduction%20of%20mod_perl%20and%20a%20couple%20of%20little%20tweaks%20to%20Apache.%20Both%20together%20it%20should%20help%20keep%20it%20up%20during%20the%20worst%20periods%20of%20traffic.%20%0D%0A%0D%0AI%20decided%20I%27d%20take%20this%20cour" title="del.icio.us"><img src="http://www.davedevelopment.co.uk/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a>
	<a rel="nofollow" href="http://www.newsvine.com/_tools/seed&amp;save?u=http%3A%2F%2Fwww.davedevelopment.co.uk%2F2006%2F01%2F30%2Fdaveproxy-20%2F&amp;h=DaveProxy%202.0" title="NewsVine"><img src="http://www.davedevelopment.co.uk/wp-content/plugins/sociable/images/newsvine.png" title="NewsVine" alt="NewsVine" class="sociable-hovers" /></a>
	<a rel="nofollow" href="http://reddit.com/submit?url=http%3A%2F%2Fwww.davedevelopment.co.uk%2F2006%2F01%2F30%2Fdaveproxy-20%2F&amp;title=DaveProxy%202.0" title="Reddit"><img src="http://www.davedevelopment.co.uk/wp-content/plugins/sociable/images/reddit.png" title="Reddit" alt="Reddit" class="sociable-hovers" /></a>
	<a rel="nofollow" href="" title="Furl"><img src="http://www.davedevelopment.co.uk/wp-content/plugins/sociable/images/" title="Furl" alt="Furl" class="sociable-hovers" /></a>
	<a rel="nofollow" href="http://www.dzone.com/links/add.html?url=http%3A%2F%2Fwww.davedevelopment.co.uk%2F2006%2F01%2F30%2Fdaveproxy-20%2F&amp;title=DaveProxy%202.0" title="DZone"><img src="http://www.davedevelopment.co.uk/wp-content/plugins/sociable/images/dzone.png" title="DZone" alt="DZone" class="sociable-hovers" /></a>
	<a rel="nofollow" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.davedevelopment.co.uk%2F2006%2F01%2F30%2Fdaveproxy-20%2F&amp;title=DaveProxy%202.0" title="StumbleUpon"><img src="http://www.davedevelopment.co.uk/wp-content/plugins/sociable/images/stumbleupon.png" title="StumbleUpon" alt="StumbleUpon" class="sociable-hovers" /></a>
	<a rel="nofollow" href="http://technorati.com/faves?add=http%3A%2F%2Fwww.davedevelopment.co.uk%2F2006%2F01%2F30%2Fdaveproxy-20%2F" title="Technorati"><img src="http://www.davedevelopment.co.uk/wp-content/plugins/sociable/images/technorati.png" title="Technorati" alt="Technorati" class="sociable-hovers" /></a>


<br/><br/>]]></content:encoded>
			<wfw:commentRss>http://www.davedevelopment.co.uk/2006/01/30/daveproxy-20/feed/</wfw:commentRss>
		<slash:comments>28</slash:comments>
		</item>
	</channel>
</rss>
