<?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>Peter's Blog</title>
	<atom:link href="http://blog.petermcdonald.co.uk/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.petermcdonald.co.uk</link>
	<description>Yet another blog of an opinionated person.</description>
	<pubDate>Fri, 27 Jun 2008 20:05:58 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.5.1</generator>
	<language>en</language>
			<item>
		<title>&#8220;High Performance Web Sites&#8221; A Review</title>
		<link>http://blog.petermcdonald.co.uk/2008/06/12/high-performance-web-sites-a-review/</link>
		<comments>http://blog.petermcdonald.co.uk/2008/06/12/high-performance-web-sites-a-review/#comments</comments>
		<pubDate>Thu, 12 Jun 2008 16:33:36 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[PHP]]></category>

		<category><![CDATA[Programming In General]]></category>

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

		<category><![CDATA[high performance websites]]></category>

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

		<category><![CDATA[steve sounders]]></category>

		<category><![CDATA[user experience]]></category>

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

		<guid isPermaLink="false">http://blog.petermcdonald.co.uk/?p=57</guid>
		<description><![CDATA[Title High Performance Web Sites
Author Steve Sounders
ISBN-10 0-596-52930-9 (ISBN-13 978-0-596-52930-7
Pages 146 (including index)
High Performance Web Sites by Steve Saunders is an attempt at teaching people how to best go about optimizing their web sites. No I do not mean optimizing for search engines, I mean optimizing for the best user experience (and believe me it [...]<script type="text/javascript">SHARETHIS.addEntry({ title: "&#8220;High Performance Web Sites&#8221; A Review", url: "http://blog.petermcdonald.co.uk/2008/06/12/high-performance-web-sites-a-review/" });</script>]]></description>
			<content:encoded><![CDATA[<p><strong>Title</strong> High Performance Web Sites<br />
<strong>Author</strong> Steve Sounders<br />
<strong>ISBN-10 </strong>0-596-52930-9 (ISBN-13 978-0-596-52930-7<br />
<strong>Pages</strong> 146 (including index)</p>
<p>High Performance Web Sites by Steve Saunders is an attempt at teaching people how to best go about optimizing their web sites. No I do not mean optimizing for search engines, I mean optimizing for the best user experience (and believe me it is a relief to have a book aimed at giving the user a better experience rather than the search engines).<span id="more-57"></span></p>
<p>The book is split into 15 different chapters. All chapters bar chapter 15 are all based around a rule that will help optimize your web site. Most of the topics covered are based upon how to lower loading times so that a user has the best experience on your web site (with the exception of a couple). Some of these rules range from the obvious such as ensuring you use GZIP compression as and when needed through to the ones you may not think about such as increasing your DNS TTL (time to live) values.</p>
<p>Most of the rules are very self explanatory and are presented in quite a good manor. Although some of the rules are in fact obvious and should not need explaining it is sometimes best to be reminded of such things. Other rules (such as the TTL rule previously mentioned) are not so obvious and (even for the most seasoned web developer) easily overlooked.</p>
<p>Steve Sounders has gathered his knowledge (as is evident in the book) from his extensive knowledge and work in Yahoo and their optimizing endeavors. The book works hand in hand with their <a href="http://developer.yahoo.com/yslow/">Y-Slow</a> addon for the <a href="https://addons.mozilla.org/en-US/firefox/addon/1843">Firebug</a> firefox extension. As well as the Y-Slow addon the book also suggests a few other useful tools (including ones for Internet Explorer) that can come in handy.</p>
<p>All throughout the book Steve uses a list of top 10 websites as case studies and demonstrates those that follow the rule in question as well as sometimes showing how they can improve. As previously mentioned rule 5 is not a rule in itself but is actually a chapter dedicated at deconstructing the top 10 sites used throughout the book. It is good to see some constructive criticism on them and to see how they could improve which this chapter achieves to perfection.</p>
<p>The book as a whole is a very good read and I highly recommend it to anyone who deals with websites regardless of whether as a hobby or in a professional manner.</p>
<p><a href="http://sharethis.com/item?&wp=2.5.1&amp;publisher=&amp;title=%26%238220%3BHigh+Performance+Web+Sites%26%238221%3B+A+Review&amp;url=http%3A%2F%2Fblog.petermcdonald.co.uk%2F2008%2F06%2F12%2Fhigh-performance-web-sites-a-review%2F">ShareThis</a></p>]]></content:encoded>
			<wfw:commentRss>http://blog.petermcdonald.co.uk/2008/06/12/high-performance-web-sites-a-review/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Fraud Within The Industry.</title>
		<link>http://blog.petermcdonald.co.uk/2008/03/09/fraud-within-the-industry/</link>
		<comments>http://blog.petermcdonald.co.uk/2008/03/09/fraud-within-the-industry/#comments</comments>
		<pubDate>Sun, 09 Mar 2008 14:00:02 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Domaining]]></category>

		<category><![CDATA[domain industry]]></category>

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

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

		<guid isPermaLink="false">http://blog.petermcdonald.co.uk/2008/03/09/fraud-within-the-industry/</guid>
		<description><![CDATA[Those within the domain industry will be aware of the increasing fraud and domain thefts taking place in recent times.
Fraud and theft have of course always been a problem within the industry but it seems in recent times the matter has multiplied.
In the past few months several forums have found their user base have been [...]<script type="text/javascript">SHARETHIS.addEntry({ title: "Fraud Within The Industry.", url: "http://blog.petermcdonald.co.uk/2008/03/09/fraud-within-the-industry/" });</script>]]></description>
			<content:encoded><![CDATA[<p>Those within the domain industry will be aware of the increasing fraud and domain thefts taking place in recent times.</p>
<p>Fraud and theft have of course always been a problem within the industry but it seems in recent times the matter has multiplied.<span id="more-56"></span></p>
<p>In the past few months several forums have found their user base have been fooled by phishing scams (<a href="http://www.namepros.com">Namepros</a>, <a href="http://www.dnforum.com">DNF</a> etc etc). This is not a problem with the forums themselves but more to do with the education of their users. As usual with anything the weak point is the users.</p>
<p>The phishing scam was a particular problem as it gave scammers credibility and they were able to buy and sell with ease as people thought they were dealing with reputable long standing members.</p>
<p>Another problem that is related as such is the stealing and selling on of domain names. Sometimes this is an easy thing to check. As can be seen from some recent cases you can contact the person who is listed in the whois (provided they do not use whois privacy, see not using whois privacy can be a good thing) to see if they are in fact selling the domain name. Of course if the domain has been stolen and the person who stole it managed to change the whois details this will not help.</p>
<p>This is where another technique can help. Sites such as <a href="http://www.domaintools.com/">Domain Tools</a> offer a whois history search which can be extremely handy. If you check the whois history and it has recently changed hands it *may* be a sign that something has happened and may need closer inspection.</p>
<p><strong>SO WHAT CAN BE DONE</strong></p>
<p>Unfortunately at the moment scammers and thieves have got the upper hand. Their is no formal cooperation between the different venues for buying and selling domain names. Each has their own way of dealing with things and each keep a fair bit of information to themselves.</p>
<p>So how can this be stopped? Well like many crimes it will never be stopped 100% however we can try to make the crime harder for them to accomplish. The industry needs to have a shake up and for forums of business to cooperate with each other more. A recent incident on DNF could have been avoided if a proactive approach of cooperation had been sought. This is not a fault of DNF nor Namepros, the matter could quite as easily been the other way around.</p>
<p>Each site has made efforts in the past to help ensure the safety of their members but it was in essence an internal thing. As the efforts were internal to a particular forum it was met with suspicion from the other forum so not embraced.</p>
<p>The only thing I believe that can be done is to have a completely independent site that most (if not all) forums and places of domain business where reports of banned members are stored (of course only banned members who were banned for fraudulent activity rather something like swearing etc). The site would need complete cooperation from the domain forums to ensure that records were kept upto date (maybe for example have 1 staff member who sits on a board and is responsible for such cooperation). The site could also be used for example to keep track of domains that have *known*  to have been stolen.</p>
<p>If such cooperation had been sought in the past and had actually taken place it could quite easily have stopped many fraudulent transactions from taking place.</p>
<p>What do you think?</p>
<p>Do you agree with this?</p>
<p>Do you think it could work?</p>
<p><a href="http://sharethis.com/item?&wp=2.5.1&amp;publisher=&amp;title=Fraud+Within+The+Industry.&amp;url=http%3A%2F%2Fblog.petermcdonald.co.uk%2F2008%2F03%2F09%2Ffraud-within-the-industry%2F">ShareThis</a></p>]]></content:encoded>
			<wfw:commentRss>http://blog.petermcdonald.co.uk/2008/03/09/fraud-within-the-industry/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Is Using $_POST And $_GET The End Of My Register Globals Woes?</title>
		<link>http://blog.petermcdonald.co.uk/2008/01/16/is-using-_post-and-_get-the-end-of-my-reister-globals-woes/</link>
		<comments>http://blog.petermcdonald.co.uk/2008/01/16/is-using-_post-and-_get-the-end-of-my-reister-globals-woes/#comments</comments>
		<pubDate>Wed, 16 Jan 2008 15:19:51 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[PHP]]></category>

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

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

		<category><![CDATA[register globals]]></category>

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

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

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

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

		<guid isPermaLink="false">http://blog.petermcdonald.co.uk/2008/01/16/is-using-_post-and-_get-the-end-of-my-reister-globals-woes/</guid>
		<description><![CDATA[On my travels I come across many people who are blissfully unaware of register globals and if they are aware of it, they misunderstand what it does.
Some people seem to believe that using the $_POST, $_GET&#8230; global arrays that they have protected themselves from the effects of register globals.
They couldn&#8217;t be further from the truth.
What [...]<script type="text/javascript">SHARETHIS.addEntry({ title: "Is Using $_POST And $_GET The End Of My Register Globals Woes?", url: "http://blog.petermcdonald.co.uk/2008/01/16/is-using-_post-and-_get-the-end-of-my-reister-globals-woes/" });</script>]]></description>
			<content:encoded><![CDATA[<p>On my travels I come across many people who are blissfully unaware of register globals and if they are aware of it, they misunderstand what it does.</p>
<p>Some people seem to believe that using the $_POST, $_GET&#8230; global arrays that they have protected themselves from the effects of register globals.</p>
<p>They couldn&#8217;t be further from the truth.<span id="more-53"></span></p>
<p><strong>What Is Register Globals? </strong></p>
<p>Register globals is a directive (or a group of directives to be more precise) which determines how information passed to a script an be accessed. If magic quotes is enabled for example and you pass a form field called &#8216;name&#8217; to it using the POST method then the data is not only available in $_POST['name'] but also in $name.</p>
<p><strong>Why Is This Bad?</strong></p>
<p>This is bad for a number of reasons. Firstly you should always be aware where the data is coming from. Register Globals stops this from happening. In my instance $name could quite easily have came from a cookie of a form GET method.</p>
<p>The second reason is the cause for this article.</p>
<p>Consider the following piece of code</p>
<p>&lt;?php<br />
if ($is_admin == true)<br />
{<br />
echo &#8216;I am an admin&#8217;;<br />
}<br />
else<br />
{<br />
echo &#8216;I am not an admin&#8217;;<br />
}<br />
?&gt;</p>
<p>This is nothing out of the ordinary. I am simply checking whether $is_admin is true. I would expect maybe a previous routine to set this if I am an admin. With register globals disabled this would work as expected with no quarrels. But what if I now call this script like the following :-</p>
<p>http://www.domain.com/script_name.php?is_admin=1</p>
<p>If global variables are enabled we have a problem. The $is_admin variable now contains 1 (which if you know PHP you will realise evaluates to true as PHP is a loosely typecast language).</p>
<p><strong>So What Can Be Done About This?</strong></p>
<p>This is quite simple, if you have the possibility of the server running the script having register globals enabled (or do not have control over the configuration) then you should guard against this.</p>
<p>The easiest way to guard against this is to ensure that you always declare important variables before you use them. So in my previous example you could do:-</p>
<p>&lt;?php<br />
$is_admin = false;<br />
// Now check if I am an admin.<br />
if ($is_admin == true)<br />
{<br />
echo &#8216;I am an admin&#8217;;<br />
}<br />
else<br />
{<br />
echo &#8216;I am not an admin&#8217;;<br />
}<br />
?&gt;</p>
<p>As register globals carries out its process before our script starts running our variable will over write the variable the user tried to set.</p>
<p><strong>But Isn&#8217;t Register Globals Disabled In PHP 5?</strong></p>
<p>The default installation of PHP 5 does indeed have register globals disabled. Unfortunately however there is a need for many hosts to actually enable it as too many scripts wrongly rely on it. PHP 6 goes 1 step further than having register globals disabled in a default installation. In PHP 6 the directive is removed completely.</p>
<p><strong>A Word Of Caution</strong></p>
<p>1 word of caution. The <a href="http://uk2.php.net/manual/en/ini.php#ini.list">PHP manual</a> states that register globals can be set (and I quote) PHP_INI_ALL. This indicates that you can set the directive anywhere including within a script using the ini_set() function. Although technically correct you can indeed set the directive in a script, it will not have any effect what so ever. The work register globals carried out is actually already carried out before the directive would have been changed.</p>
<p>If you are going to change the directive do so in a .htaccess file (if you can) or in the php.ini file (the same goes for magic quotes).</p>
<p>Hopefully this has been helpful to you. I am hoping that it will have cleared up any misunderstanding on what register globals is and what it does.</p>
<p>If you have any questions please feel free to ask and I will do my best to answer them.</p>
<p><a href="http://sharethis.com/item?&wp=2.5.1&amp;publisher=&amp;title=Is+Using+%24_POST+And+%24_GET+The+End+Of+My+Register+Globals+Woes%3F&amp;url=http%3A%2F%2Fblog.petermcdonald.co.uk%2F2008%2F01%2F16%2Fis-using-_post-and-_get-the-end-of-my-reister-globals-woes%2F">ShareThis</a></p>]]></content:encoded>
			<wfw:commentRss>http://blog.petermcdonald.co.uk/2008/01/16/is-using-_post-and-_get-the-end-of-my-reister-globals-woes/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Wikia Released But Obvious Problems.</title>
		<link>http://blog.petermcdonald.co.uk/2008/01/09/wikia-released-but-obvious-problems/</link>
		<comments>http://blog.petermcdonald.co.uk/2008/01/09/wikia-released-but-obvious-problems/#comments</comments>
		<pubDate>Wed, 09 Jan 2008 12:50:23 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[SEO]]></category>

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

		<category><![CDATA[search engine]]></category>

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

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

		<guid isPermaLink="false">http://blog.petermcdonald.co.uk/2008/01/09/wikia-released-but-obvious-problems/</guid>
		<description><![CDATA[Finally a couple of days ago Wikia was released. We have been hearing publicity for this search engine for some time.
Wikia is of course only in beta mode at the moment but I already have a couple of problems with it.
Firstly try a search for anything you wish. Do you actually get decent results? No [...]<script type="text/javascript">SHARETHIS.addEntry({ title: "Wikia Released But Obvious Problems.", url: "http://blog.petermcdonald.co.uk/2008/01/09/wikia-released-but-obvious-problems/" });</script>]]></description>
			<content:encoded><![CDATA[<p>Finally a couple of days ago <a href="http://alpha.search.wikia.com/">Wikia</a> was released. We have been hearing publicity for this search engine for some time.</p>
<p>Wikia is of course only in beta mode at the moment but I already have a couple of problems with it.<span id="more-51"></span></p>
<p>Firstly try a search for anything you wish. Do you actually get decent results? No the results received are absolutely atrocious. I noticed on a blog I am a regular on that if you carry out a search for George Bush (1 of the most well known names in the world at the moment) the top result is a site telling me that George Bush is a crack whore. They also display pictures if you search for a name and they could only find 1 picture of the real George Bush.</p>
<p>Secondly I visited <a href="http://search.wikia.com/wiki/Search_Wikia">this</a> page. I tried a search.</p>
<p>I was presented with an error stating that the server could not be found. Looking at the address bar I find that it is looking for http://http//re.search.wikia.com/search#seo. Notice the http://http://. That would certainly account for a server not found error. I went back to the page I tried the search from to find why this happened. Looking at the javascript for the page I find the following:-</p>
<p><code>		function search(){<br />
window.location='http://http://re.search.wikia.com/search#'+$('q2').value;<br />
return false;<br />
}</code></p>
<p>As you can see they have actually hard coded an incorrect search URL within the javascript. Come on wikia if you cannot actually handle something so simple how are you going to manage a search engine?</p>
<p>Wikia has got a long way to go before it is going to be any use to anyone.</p>
<p><a href="http://sharethis.com/item?&wp=2.5.1&amp;publisher=&amp;title=Wikia+Released+But+Obvious+Problems.&amp;url=http%3A%2F%2Fblog.petermcdonald.co.uk%2F2008%2F01%2F09%2Fwikia-released-but-obvious-problems%2F">ShareThis</a></p>]]></content:encoded>
			<wfw:commentRss>http://blog.petermcdonald.co.uk/2008/01/09/wikia-released-but-obvious-problems/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Wordpress Plugins, Got Any Ideas?</title>
		<link>http://blog.petermcdonald.co.uk/2008/01/09/wordpress-plugins-got-any-idea/</link>
		<comments>http://blog.petermcdonald.co.uk/2008/01/09/wordpress-plugins-got-any-idea/#comments</comments>
		<pubDate>Wed, 09 Jan 2008 09:37:38 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[PHP]]></category>

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

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

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

		<guid isPermaLink="false">http://blog.petermcdonald.co.uk/2008/01/09/wordpress-plugins-got-any-idea/</guid>
		<description><![CDATA[I have just started making some wordpress plugins. My first attempt was a quiz script which seems to work fairly well however is not released as of yet.
My second plugin which I have just released in a beta state (and have applied for inclusion on the Wordpress site) is a cool plugin that will show [...]<script type="text/javascript">SHARETHIS.addEntry({ title: "Wordpress Plugins, Got Any Ideas?", url: "http://blog.petermcdonald.co.uk/2008/01/09/wordpress-plugins-got-any-idea/" });</script>]]></description>
			<content:encoded><![CDATA[<p>I have just started making some wordpress plugins. My first attempt was a quiz script which seems to work fairly well however is not released as of yet.</p>
<p>My second plugin which I have just released in a beta state (and have applied for inclusion on the Wordpress site) is a cool plugin that will show you how many people are on your blog. It displays a handy link on the top right of your admin pages as well as having an added page within the Users section of the admin panel which shows who is online as well as what they are looking at. If you think this is an interesting plugin take a look at the <a href="http://blog.petermcdonald.co.uk/whos-online-plugin/">Who&#8217;s Online Plugin</a> page for more information.<span id="more-50"></span>Now of course I am not making this post to tell you about the plugins I have already made. The reason for this post is that I want your ideas. What features do you wish Wordpress had, what features do you think could enhance it&#8217;s functionality.</p>
<p>If you can think of anything no matter how easy or how hard it sounds why not post a comment and you never know it might be the next plugin I make.</p>
<p><a href="http://sharethis.com/item?&wp=2.5.1&amp;publisher=&amp;title=Wordpress+Plugins%2C+Got+Any+Ideas%3F&amp;url=http%3A%2F%2Fblog.petermcdonald.co.uk%2F2008%2F01%2F09%2Fwordpress-plugins-got-any-idea%2F">ShareThis</a></p>]]></content:encoded>
			<wfw:commentRss>http://blog.petermcdonald.co.uk/2008/01/09/wordpress-plugins-got-any-idea/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Google Sitemaps And Subdomains.</title>
		<link>http://blog.petermcdonald.co.uk/2008/01/03/google-sitemaps-and-subdomains/</link>
		<comments>http://blog.petermcdonald.co.uk/2008/01/03/google-sitemaps-and-subdomains/#comments</comments>
		<pubDate>Thu, 03 Jan 2008 09:39:31 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[SEO]]></category>

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

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

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

		<guid isPermaLink="false">http://blog.petermcdonald.co.uk/2008/01/03/google-sitemaps-and-subdomains/</guid>
		<description><![CDATA[Some time ago I used to run a forum host which allowed people to have their forum hosted on a subdomain.
This of course caused problems with regards to sitemaps as the sitemap had to be placed within the domain/subdomain that it was being used under. And Google treated subdomains as if they were different domain [...]<script type="text/javascript">SHARETHIS.addEntry({ title: "Google Sitemaps And Subdomains.", url: "http://blog.petermcdonald.co.uk/2008/01/03/google-sitemaps-and-subdomains/" });</script>]]></description>
			<content:encoded><![CDATA[<p>Some time ago I used to run a forum host which allowed people to have their forum hosted on a subdomain.</p>
<p>This of course caused problems with regards to sitemaps as the sitemap had to be placed within the domain/subdomain that it was being used under. And Google treated subdomains as if they were different domain names.</p>
<p><span id="more-46"></span><br />
Things have recently changed however. Google now supposedly treat subdomain as if it were a sub folder. Subfolders are perfectly legal within a sitemap (as long as the sitemap is housed in a lower directory).</p>
<p>This brings up the question. Does Google now allow multiple subdomains within the same sitemap?</p>
<p>I have tried a couple o tests by injecting an address for a subdomain with the sitemap of the parent domain. Google have in fact downloaded the sitemap and at the moment are not reporting any problems.</p>
<p>The question is does this mean it is allowed or not? Did Google report this as an error in the past or did they simply ignore the address in question?</p>
<p>If anyone know be sure to let me know. I will of course keep you updated on any outcomes that I get.</p>
<p><a href="http://sharethis.com/item?&wp=2.5.1&amp;publisher=&amp;title=Google+Sitemaps+And+Subdomains.&amp;url=http%3A%2F%2Fblog.petermcdonald.co.uk%2F2008%2F01%2F03%2Fgoogle-sitemaps-and-subdomains%2F">ShareThis</a></p>]]></content:encoded>
			<wfw:commentRss>http://blog.petermcdonald.co.uk/2008/01/03/google-sitemaps-and-subdomains/feed/</wfw:commentRss>
		</item>
		<item>
		<title>We Are Back!</title>
		<link>http://blog.petermcdonald.co.uk/2007/12/29/we-are-back/</link>
		<comments>http://blog.petermcdonald.co.uk/2007/12/29/we-are-back/#comments</comments>
		<pubDate>Sat, 29 Dec 2007 22:01:22 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[PHP]]></category>

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

		<category><![CDATA[server problem]]></category>

		<guid isPermaLink="false">http://blog.petermcdonald.co.uk/2007/12/29/we-are-back/</guid>
		<description><![CDATA[For those of you that have tried to visit us in the last few days we unfortunately experienced a problem with the server.
At 00:30 or so Friday morning we found the server behaving erratically and finally becoming unreachable. Even a reboot would not fix it.
It turned out we had a rootkit on the server. We [...]<script type="text/javascript">SHARETHIS.addEntry({ title: "We Are Back!", url: "http://blog.petermcdonald.co.uk/2007/12/29/we-are-back/" });</script>]]></description>
			<content:encoded><![CDATA[<p>For those of you that have tried to visit us in the last few days we unfortunately experienced a problem with the server.</p>
<p>At 00:30 or so Friday morning we found the server behaving erratically and finally becoming unreachable. Even a reboot would not fix it.</p>
<p>It turned out we had a rootkit on the server. We have now subsequently reformatted the server and are securing it to try to ensure it never happens again.</p>
<p>Here&#8217;s hoping for a smooth ride for a while.</p>
<p><a href="http://sharethis.com/item?&wp=2.5.1&amp;publisher=&amp;title=We+Are+Back%21&amp;url=http%3A%2F%2Fblog.petermcdonald.co.uk%2F2007%2F12%2F29%2Fwe-are-back%2F">ShareThis</a></p>]]></content:encoded>
			<wfw:commentRss>http://blog.petermcdonald.co.uk/2007/12/29/we-are-back/feed/</wfw:commentRss>
		</item>
		<item>
		<title>A Very Interesting Looking Webinar</title>
		<link>http://blog.petermcdonald.co.uk/2007/12/20/a-very-interesting-looking-webinar/</link>
		<comments>http://blog.petermcdonald.co.uk/2007/12/20/a-very-interesting-looking-webinar/#comments</comments>
		<pubDate>Thu, 20 Dec 2007 17:49:37 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[PHP]]></category>

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

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

		<guid isPermaLink="false">http://blog.petermcdonald.co.uk/2007/12/20/a-very-interesting-looking-webinar/</guid>
		<description><![CDATA[I received the usual Zend newsletter today. Zend have announced a very interesting looking webinar in January.
The webinar is entitled &#8220;Seven Steps To Better PHP Code&#8221; and is split up into 2 separate webinars.

Part 1 will look at the following:-

Format source code consistently
Establish naming conventions
Create API documentation
Elimimate redundant and duplicated code

ENROLL HERE for part 1.
Part [...]<script type="text/javascript">SHARETHIS.addEntry({ title: "A Very Interesting Looking Webinar", url: "http://blog.petermcdonald.co.uk/2007/12/20/a-very-interesting-looking-webinar/" });</script>]]></description>
			<content:encoded><![CDATA[<p>I received the usual Zend newsletter today. Zend have announced a very interesting looking webinar in January.</p>
<p>The webinar is entitled &#8220;Seven Steps To Better PHP Code&#8221; and is split up into 2 separate webinars.</p>
<p><span id="more-44"></span><br />
<a href="http://www.zend.com/en/company/news/event/webinar-seven-steps-to-better-php-code-part">Part 1</a> will look at the following:-</p>
<ol>
<li>Format source code consistently</li>
<li>Establish naming conventions</li>
<li>Create API documentation</li>
<li>Elimimate redundant and duplicated code</li>
</ol>
<p><a href="https://zend.webex.com/mw0304l/mywebex/default.do?siteurl=zend&amp;service=6&amp;main_url=%2Fec0509l%2Feventcenter%2Fmainframe.do%3Fmainurl%3Dhttps%253A%252F%252Fzend.webex.com%252Fec0509l%252Feventcenter%252Fevent%252FeventAction.do%253FtheAction%253Ddetail%2526confViewID%253D194121515%2526siteurl%253Dzend%26siteurl%3Dzend">ENROLL HERE</a> for part 1.</p>
<p><a href="http://www.zend.com/en/company/news/event/webinar-part-two-seven-steps-to-better-php-code">Part 2</a> will look at the following:-</p>
<ol>
<li>Shorten code blocks</li>
<li>Separate different concerns</li>
<li>Replace implementations</li>
</ol>
<p><a href="https://zend.webex.com/mw0304l/mywebex/default.do?siteurl=zend&amp;service=6&amp;main_url=%2Fec0509l%2Feventcenter%2Fmainframe.do%3Fmainurl%3Dhttps%253A%252F%252Fzend.webex.com%252Fec0509l%252Feventcenter%252Fevent%252FeventAction.do%253FtheAction%253Ddetail%2526confViewID%253D194121516%2526siteurl%253Dzend%26siteurl%3Dzend">ENROLL HERE</a> for part 2.</p>
<p>These Zend webinars are free and anyone can enroll. I have attended a few and I am almost always learning nes things from them.</p>
<p>The webinars are live and you use a flash application that they provide to view them so almost anyone can attend without having problems.</p>
<p><a href="http://sharethis.com/item?&wp=2.5.1&amp;publisher=&amp;title=A+Very+Interesting+Looking+Webinar&amp;url=http%3A%2F%2Fblog.petermcdonald.co.uk%2F2007%2F12%2F20%2Fa-very-interesting-looking-webinar%2F">ShareThis</a></p>]]></content:encoded>
			<wfw:commentRss>http://blog.petermcdonald.co.uk/2007/12/20/a-very-interesting-looking-webinar/feed/</wfw:commentRss>
		</item>
		<item>
		<title>PHP Advent Calender</title>
		<link>http://blog.petermcdonald.co.uk/2007/12/11/php-advent-calender/</link>
		<comments>http://blog.petermcdonald.co.uk/2007/12/11/php-advent-calender/#comments</comments>
		<pubDate>Tue, 11 Dec 2007 13:48:19 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[PHP]]></category>

		<category><![CDATA[Programming In General]]></category>

		<category><![CDATA[advent calender]]></category>

		<category><![CDATA[Chris Schiflett]]></category>

		<guid isPermaLink="false">http://blog.petermcdonald.co.uk/2007/12/11/php-advent-calender/</guid>
		<description><![CDATA[I subscribe to many blogs. Most are full of mediocre information. However there is 1 blog that tends to stand out and is by someone who I admire as a PHP coder.

The blog in question is Chris Schiflett&#8217;s blog. Anyone who has not heard of Chris obviously has not delved around the PHP world much. [...]<script type="text/javascript">SHARETHIS.addEntry({ title: "PHP Advent Calender", url: "http://blog.petermcdonald.co.uk/2007/12/11/php-advent-calender/" });</script>]]></description>
			<content:encoded><![CDATA[<p>I subscribe to many blogs. Most are full of mediocre information. However there is 1 blog that tends to stand out and is by someone who I admire as a PHP coder.</p>
<p><span id="more-42"></span></p>
<p>The blog in question is <a href="http://shiflett.org/">Chris Schiflett&#8217;s blog</a>. Anyone who has not heard of Chris obviously has not delved around the PHP world much. Chris is a prolific author, webinar host, interviewee etc etc. His main expertise comes from Security in the PHP world.</p>
<p>However the interesting part at the moment is not the posts Chris is writing for his blog. Chirs is currently hosting posts in the form of an advent calender. Every day another PHP coder is invited to share their tips on how to improve yourself as a PHP programmer.</p>
<p>So far we have had posts from Sean Coates (PHP Architect Editor), Sebastian Bergmann (PHPunit) and Cal Evans (Zend Developer Zone Editor In Chief) to name just a few. These posts are well worth a read.</p>
<p>If you are not already a subscriber Of <a href="http://shiflett.org/">Chris&#8217; blog</a> why the hell not go subscribe now</p>
<p><a href="http://sharethis.com/item?&wp=2.5.1&amp;publisher=&amp;title=PHP+Advent+Calender&amp;url=http%3A%2F%2Fblog.petermcdonald.co.uk%2F2007%2F12%2F11%2Fphp-advent-calender%2F">ShareThis</a></p>]]></content:encoded>
			<wfw:commentRss>http://blog.petermcdonald.co.uk/2007/12/11/php-advent-calender/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Choosing The Right Programmer/Coder</title>
		<link>http://blog.petermcdonald.co.uk/2007/12/03/choosing-the-right-programmercoder/</link>
		<comments>http://blog.petermcdonald.co.uk/2007/12/03/choosing-the-right-programmercoder/#comments</comments>
		<pubDate>Mon, 03 Dec 2007 19:07:06 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[PHP]]></category>

		<category><![CDATA[Programming In General]]></category>

		<guid isPermaLink="false">http://blog.petermcdonald.co.uk/2007/12/03/choosing-the-right-programmercoder/</guid>
		<description><![CDATA[On my daily rounds of forums views I regularly come across threads that show how much of a problem getting a good coder can be. For that reason I have compiled the following guidelines.
When choosing a programmer or coder (of anyone else that you wish to hire to do some work for that matter), there [...]<script type="text/javascript">SHARETHIS.addEntry({ title: "Choosing The Right Programmer/Coder", url: "http://blog.petermcdonald.co.uk/2007/12/03/choosing-the-right-programmercoder/" });</script>]]></description>
			<content:encoded><![CDATA[<p>On my daily rounds of forums views I regularly come across threads that show how much of a problem getting a good coder can be. For that reason I have compiled the following guidelines.<span id="more-41"></span></p>
<p>When choosing a programmer or coder (of anyone else that you wish to hire to do some work for that matter), there are several things that you need to do to ensure that you are hiring the best person for the job.</p>
<p>1) When preparing to hire someone. Ensure that you make a clear and detailed list of what you want. For example if you wish for a site to be made ensure that you list the main things that you wish for your visitors to be able to do. You may have a clear understanding of what you want but unless you can convey that properly to the programmer they will not understand your needs properly. Having a detailed brief will help the programmer when they are making a quote. Remember if you do not list something then suddenly add it to the project you may have problems as it has not been accounted for when the programmer has worked out how long it will take and how much it will cost.</p>
<p>2) Always ask for examples of the programmers past work. You can learn a lot from someone&#8217;s previous work. The examples can be either in the form of code they give you or links to sites they have worked on. If they provide links ask for details on what they actually did on the site. Some people would provide you with a link saying they built the site when in fact they may, for example, have only built the login system or the mailing system. If the programmer is unwilling to provide examples you have to wonder what they are hiding.</p>
<p>3) Before accepting a quote always ask for a time frame in which you can expect the work to be completed. If someone claims they can do it in a couple of hours and everyone else states days then ask questions on why they think they can achieve it so fast. Do not assume they can. They may have exaggerated how quickly they can do it just to get the contract.</p>
<p>4) Do not always go on price. The cheapest quote is not always the best quote (and for that matter nor is the most expensive). If you have a look around the script lance type sites you will find many instances of complex jobs getting pitifully low quotes. There are several possibilities here.</p>
<ul>
<li>The programmer is doing work cheap to get a good portfolio of work.</li>
<li>The programmer is not actually aware of what is involved. Either due to the fact they have not read the brief or they have a lack of understanding.</li>
<li>The programmer is low balling. Once he has the job suddenly things will become apparent that may increase the price</li>
</ul>
<p>Of course there are other reasons as well but these are the main ones. Do not immediately believe that someone is capable of doing a job because they say they can. All too often this is the cause of problems. This is where point 1 comes into play as well. If the programmer has only ever worked on small scripts and never worked on a substantial project, be a bit weary for example if you are asking for a complete CMS to be made and they give you a quote.</p>
<p>5) Agree on a price BEFORE the work has started. As well as agreeing on price. You should also make an arrangement of what will happen if for example problems are found on the way. Problems do occur and this can cause conflict especially when the programmer feels the problems were out of the remit for the project. If you make prior agreements then this can be minimized. An agreement of this nature usually entails an upper limit on what you will pay on the finding of problems. Of course understand, that if the problem is too big a new agreement may need to be made. The agreement should also include other expenses that may be incurred. For example if you are having a site made and currently do not have hosting or a domain, this is an added expense that may not be included in the agreed budget. If this is the case insist that you are involved in the buying, or at least ensure that you receive invoices for these services. Ensure also that the programmer did not purely buy this service/product because of some affiliation they have with them.</p>
<p>6) Under no circumstances pay the full amount before the work has been completed. Like many people, programmers tend to lose interest when they have been paid. Most programmers will insist on a payment before the work starts. If this is the case make a payment of maybe 20%. If the job is a large job you may have to agree on paying in increments so that the programmer does not have to wait for the job to be completed before they get any more money. You may for example agree to make another instalment at each 20% completion interval. So you would pay a 20% (of the remaining 80% that needs paying of course) when the project is 20% complete then again at 40% and again at 60% until the project is complete. This ensures that the programmer is still keeping an interest and so that you still have a budget if the programmer walks away from the project.</p>
<p>7) Keep track of where on the project the programmer is at. All too often problems occur because the programmer may not have understood properly how you wish things to be and has ended up going off on a tangent.</p>
<p>These are of course only basic guidelines but if you follow them you have eliminated most barriers people have when working with contractors of any kind.</p>
<p>Can you think of any more guidelines that should be followed? If so let me know.</p>
<p><a href="http://sharethis.com/item?&wp=2.5.1&amp;publisher=&amp;title=Choosing+The+Right+Programmer%2FCoder&amp;url=http%3A%2F%2Fblog.petermcdonald.co.uk%2F2007%2F12%2F03%2Fchoosing-the-right-programmercoder%2F">ShareThis</a></p>]]></content:encoded>
			<wfw:commentRss>http://blog.petermcdonald.co.uk/2007/12/03/choosing-the-right-programmercoder/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
