<?xml version="1.0" encoding="iso-8859-1"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>

<atom:link href="http://www.amateurprotagonist.com/feed/" rel="self" type="application/rss+xml" />
<title>Amateur Protagonist</title>
<link>http://www.amateurprotagonist.com</link>
<description>The random thoughts of a programmer, I once almost won a procrastinating contest, but I turned up.</description>
<language>en-GB</language>
<copyright>Copyright (C) amateurprotagonist.com</copyright>

<item>
<title>Witcher Three - Wild Hunt - Terrible Ending?</title>
<description>&lt;p&gt;70 hours, level 37, countless collectables and tones of side quest later I finished The Witcher Three - Wild Hunt. I've never been so upset and left down by an ending since Fallout Three (do bad things come in threes?)&lt;/p&gt;
&lt;p&gt;So what went wrong? What happened?&lt;/p&gt;
&lt;p&gt;I first tidied up as many quests as possible before starting the ending sequence. Then suddenly everything felt rushed. The missions were fast and gave you huge amounts of experience very quickly. Yet the story seemed to be closing as many lose ends as possible. When I ended this "end game" state I was told the side missions would wait for me. So any missions that came up I figure I would wait till later.&lt;/p&gt;
&lt;p&gt;The final battles of the game were filled with never ending spawns and basically cannon fodder. The final bosses were forced multi stage boss battles, which annoying enough my hits that triggered the next stage would see the boss recover health.&lt;/p&gt;
&lt;p&gt;Suddenly the game was over.&lt;/p&gt;
&lt;p&gt;Just like that the game ended.&lt;/p&gt;
&lt;p&gt;A new mission starts, I hunt down a missing piece of the puzzle and have a final fight. Then Geralt, completely out of character basically breaks down. Monsters swarm around him and it heavily shadows that he died there. Yet all of these monsters I've killed a hundred times each, in bigger packs.&lt;/p&gt;
&lt;p&gt;Then the final "this is the end" slide show kicks off, just like Fallout three (you're a fucking mutant get in the fucking chamber you greedy fuck.)&lt;/p&gt;
&lt;p&gt;I got the worse ending, ended up alone and doomed all non-humans. Seventy fucking hours I put into that game. Seventy fucking hours for this game to give me the middle finger. You're a terrible father figure, you couldn't commit to one person and most of all you doomed everyone because you are selfish.&lt;/p&gt;
&lt;p&gt;I was told my decisions would matter in this game. Yet all that mattered was what happened when I ended the "end game". &lt;/p&gt;
&lt;p&gt;So let break this down. The whole fathering side of things. Turns out all the decisions were binary yes or no answers. The problem is this game isn't fucking Mass Affect. So your lengthy game changing decisions are built from three word prompts. There is one section where saying destroying someone's home because you're in a bad mood was a negative. Telling someone not to go nuclear over nothing was a fucking NEGATIVE. Maybe it was designed to be confusion so you would go back and play it again or maybe get the guide. I looked up the correct answers and they were a push at best. All of the decisions were objective, you could argue them either way. Is it my fault Geralt is a shit negotiator? &lt;/p&gt;
&lt;p&gt;So those binary confusion three word answer got me the bad ending. Because I didn't ruin the fucking end I was punished. &lt;/p&gt;
&lt;p&gt;Next was the love life side of things. Remember when I said I done all the side quests. I done Triss first and kissed her, at the end however I let her go. Then I done the other love quest and stuck with her. Turns out the choice was not based off who you pushed away or who you was closest too. No it was fucking based off the kiss option. In the game I played the events were so far away from each other and I clearly pushed away any advances from Triss, yet the game had spoken. So because I wanted to finish the side quests before the end of the game I was punished. I wanted to play through to the end and experience the amazing story yet the binary irreversible choices had already been made. Again back to Mass Affect, in that game when you have a love life tangle the game tells you so and give you a chance to correct the course or push both away.&lt;/p&gt;
&lt;p&gt;Finally the death of all non-humans. Guess what? There is a quest that comes up during the end game sequence that is required for the good ending. Even better is the quest automatically fails if not completed before the end of the game. So I missed out on a whole section of the story line and was told I neglected everyone. The game told me my side missions will wait, it told me the world would wait. Yet it flat out lied.&lt;/p&gt;
&lt;p&gt;Once all was over the game kicked me back, put me back in the world and told me to what point in time the game was rolled back to. &lt;/p&gt;
&lt;p&gt;The game started to bug out and lag. I had to restart the game as it became unplayable. Once back in the game I revisited all the locations to have a look at what was going on. No reward, no happiest and all the best main characters were locked away as they only showed up in the end game which was now finished.&lt;/p&gt;
&lt;p&gt;I installed The Witcher Three and I don't know when I will go back to it.&lt;/p&gt;
&lt;p&gt;The Witcher game play is not my favourite type and the fights where not the strong point of the game for me. With the game over and after getting the big middle finger surprise I had no desire to play it again.&lt;/p&gt;
&lt;p&gt;I played an hour of Witcher One, 20 minutes of Witcher Two and seventy hours of Witcher Three. &lt;/p&gt;
&lt;p&gt;After such a long commitment to one game it ended up feeling like my time was not respected. Even if I go back to the save before the end game I will never correct the love life decisions due to how the game made its decisions.&lt;/p&gt;</description>
<link>http://www.amateurprotagonist.com/a-105-witcher-three-wild-hunt-terrible-ending.php</link>
<pubDate>Mon, 29 Jun 15 22:54:12 -0700</pubDate>
<guid>http://www.amateurprotagonist.com/a-105-witcher-three-wild-hunt-terrible-ending.php</guid>
</item>

<item>
<title>Using Google Spreadsheets to stream FTSE 100 Data</title>
<description>&lt;p&gt;A long time ago you could use Google Finance API's to get a lot of information about the FTSE 100 (and beyond, it allowed full access with rate limiting.) However those golden days are gone.&lt;/p&gt;
&lt;p&gt;This article is going to be a little bit of a special one in my eyes. Why is that? Well this is a system I have personally used to stream (using AJAX polling) 15 minute delayed FTSE 100 prices.&lt;/p&gt;
&lt;p&gt;So let's get into the Google Spreadsheet side of things.&lt;/p&gt;
&lt;p&gt;First thing that is important to know. You can inside a Google Spreadsheet use the following function:&lt;br /&gt; =GoogleFinance&lt;/p&gt;
&lt;p&gt;This allows you to query a number of different things about a symbol. We are going to get the following data:&lt;/p&gt;
&lt;ul&gt;
   &lt;li&gt;Current Trade Price (also known as last trade price)&lt;/li&gt;
   &lt;li&gt;Last Trade Date Time&lt;/li&gt;
   &lt;li&gt;Opening Price&lt;/li&gt;
   &lt;li&gt;Current Day Trading Volume&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Google has a great help page on the functions you can use and the types of data you can request. &lt;a href="https://support.google.com/docs/answer/3093281?hl=en" target="_blank"&gt;Google Finance usage in Google SpreadSheets&lt;/a&gt;, however you are limited in the number of times you can use this function inside a spreadsheet (1,000 requests per a spreadsheet, if you go over the limit just make another spreadsheet with different data sets.)&lt;/p&gt;
&lt;p&gt;Open your Google Spreadsheet and give it a half decent name "Google FTSE 100" sounds good to me. Now we are going to need six columns for this to work. Let's try this with just two equities to get us started. &lt;/p&gt;
&lt;p&gt;The only downside to using the spreadsheet method is you to know what symbols you are requesting.&lt;/p&gt;
&lt;p&gt;The first row in our spreadsheet will make up our headers. Now do NOT include any spaces, this WILL cause you problems and stop you from being able to query the data using PHP (or whatever language you like.)&lt;/p&gt;
&lt;p&gt;My headings are:&lt;/p&gt;
&lt;ul&gt;
   &lt;li&gt;Symbol&lt;/li&gt;
   &lt;li&gt;Name&lt;/li&gt;
   &lt;li&gt;Price&lt;/li&gt;
   &lt;li&gt;Volume&lt;/li&gt;
   &lt;li&gt;PriceOpen&lt;/li&gt;
   &lt;li&gt;LastTrade&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Now you have that setup let's put in some data so skip down to the next row (row 2 now people) and let's add our static data.&lt;/p&gt;
&lt;ul&gt;
   &lt;li&gt;Symbol: AAL.L&lt;/li&gt;
   &lt;li&gt;Name: ANGLO AMERICAN&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Now let's add our dynamic query data (note: you HAVE to use double quotes.)&lt;/p&gt;
&lt;ul&gt;
   &lt;li&gt;Price: =GoogleFinance(A2, "price")&lt;/li&gt;
   &lt;li&gt;Volume: =GoogleFinance(A2, "volume")&lt;/li&gt;
   &lt;li&gt;PriceOpen: =GoogleFinance(A2, "priceopen")&lt;/li&gt;
   &lt;li&gt;LastTrade: =GoogleFinance(A2, " tradetime")&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;What this allows us to do is be very lazy. It is very easy to get the symbol and name of FTSE 100 companies, paste them into column A and B then you're formula will cleanly copy down and provide you with some nice data.&lt;/p&gt;
&lt;p&gt;If this is all you was interested in, getting dynamic numbers into your Google Spreadsheets, then you have everything you need to get started.&lt;/p&gt;
&lt;p&gt;The ones who want to now connect to this spreadsheet read on.&lt;/p&gt;
&lt;p&gt;First thing you now need to do is make your document public. Click on the Share button and make sure the doc is publically accessible. Take note of the key parameter inside the share link. This key should also be inside the URL you are currently looking at anyway.&lt;/p&gt;
&lt;p&gt;There are a number of ways to read a Google Document but I like the JSON method the most.&lt;/p&gt;
&lt;p&gt;Here is the PHP code to read the JSON file and print each row. If you have been following my example it will be just the one row.&lt;/p&gt;
&lt;pre class="brush: php; toolbar: false;"&gt;

// Enter the key to complete the URL we will query
$key = 'Enter SpreadSheet Key Here';
$url = 'http://spreadsheets.google.com/feeds/list/' . $key . '/od6/public/values?alt=json';

// You could be fancy here but I am making a point, just get the content of this URL
$file = file_get_contents($url);
 
// This is a JSON file so you can expect decode to work
$json = json_decode($file);

// We only care about the rows
$rows = $json-&gt;{'feed'}-&gt;{'entry'};

// Loop each row and print it out as we go
foreach($rows as $row) {
  echo '&amp;lt;p&amp;gt;';
  echo $row-&gt;{'gsx$symbol'}-&gt;{'$t'} . '&amp;lt;br /&amp;gt;';
  echo $row-&gt;{'gsx$name'}-&gt;{'$t'} . '&amp;lt;br /&amp;gt;';
  echo $row-&gt;{'gsx$price'}-&gt;{'$t'} . '&amp;lt;br /&amp;gt;';
  echo $row-&gt;{'gsx$volume'}-&gt;{'$t'} . '&amp;lt;br /&amp;gt;';
  echo $row-&gt;{'gsx$priceopen'}-&gt;{'$t'} . '&amp;lt;br /&amp;gt;';
  echo $row-&gt;{'gsx$lasttrade'}-&gt;{'$t'} . '&amp;lt;br /&amp;gt;';
  echo '&amp;lt;\p&amp;gt;';
}

&lt;/pre&gt;
&lt;p&gt;I am sure you can agree that is pretty amazing. You can either query this direcly as your AJAX call or make a page to handle just this logic and then query that page for a formatted slimmed down response.&lt;/p&gt;
&lt;p&gt;Have fun!&lt;/p&gt;</description>
<link>http://www.amateurprotagonist.com/a-104-using-google-spreadsheets-to-stream-ftse-data.php</link>
<pubDate>Sun, 10 May 15 10:00:00 -0700</pubDate>
<guid>http://www.amateurprotagonist.com/a-104-using-google-spreadsheets-to-stream-ftse-data.php</guid>
</item>

<item>
<title>Step by Step Guide to Becoming an Investment Lad</title>
<description>&lt;p&gt;You might be sitting at work or home thinking to yourself "I wish I could invest my money and generate easy revenue for myself." You might have even done the odd Google search for investments and even watched a little bit of the budget announcements. Investing is hard and everyone keeps telling you that you can lose all your money.&lt;/p&gt;
&lt;p&gt;Now while your lack of effort and the very real risks to completely ruin your life are extremely serious barriers at entry, they are also lad point multipliers.&lt;/p&gt;
&lt;p&gt;You might be cruising the night life of London and meet a few investors or people who claim to have great tips. The problem is when you ask them about their investments it is always the same thing. "Oh based on my fundamental research" or "I use CFD's to turn my monthly wage into a boat every month." Now these people might be living the dream, but they sure as hell as not racking up the lad points are they?&lt;/p&gt;
&lt;p&gt;So here is a simple step by step to becoming a man of the manor, a lad investor and a legend of the financial world.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Has this company ever sponsored your team?&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Let's be honest, if they don't have the time for the finer things in life then why should you? Everyone knows the rules about all work and no play. You don't want a Shining situation with your investments now do you?&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Is it a bank?&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Old men invest in banks. No lad goes on the pull with RBS or Barclays printed on his shirt, what does that tell you.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Do your mates know the company?&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Did you think this would be easy? Half of investing is telling people you are investing and what you are investing in. No one wants fucking war and peace to explain they print posters or make the little bristles on the bottom of the shit stick.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Are you prepared to sell them if you hear anything which goes against your image?&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Picture the moment, you are down 30 percent and not in a position to sell, you are looking at going long to make the cash back. Suddenly news comes out that said company removed their adverts with half naked women because of complaints. Remember an investment is a reflection on your inner person, gun manufacturers, beer companies and sporting equipment providers are the only sure bets.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Will it get you laid?&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Try telling some lass BP is a smart long term investment. After the 10 minutes of being told you are the scum of the earth, plus all the small animals that were too slow to evolve to your level are dying, your dick is shrivelled and you regret waking up that morning. Be a smart lad. If you are ever in a bad spot just remember "If charities where publicly listed companies I would invest in them."&lt;/p&gt;
&lt;p&gt;You might be thinking you are ready to start investing; maybe you were going to start some free account with fake money. Do you also put fake money on England to win the world cup? An Investment Lad is all in or all out.&lt;/p&gt;
&lt;p&gt;Full disclosure, I might own some of the shares I mentioned. Hell I might even own the shares you are looking at right now. In fact just assume I am completely biased towards everything, literally everything. You see that rock outside your place? Yeah that one, I have a bias on that too.&lt;/p&gt;
</description>
<link>http://www.amateurprotagonist.com/a-103-step-by-step-guide-to-becoming-an-investment-lad.php</link>
<pubDate>Fri, 01 May 15 01:00:00 -0700</pubDate>
<guid>http://www.amateurprotagonist.com/a-103-step-by-step-guide-to-becoming-an-investment-lad.php</guid>
</item>

<item>
<title>PHP Make Or Die Send An Email</title>
<description>&lt;p&gt;Let's get this straight out there right this now second. If you are using the die function in your code you are a terrible person. Always handle your errors and end things gracefully.&lt;/p&gt;
&lt;p&gt;That said sometimes it simply does not matter or you do not have the time or maybe you have a good reason for using die. FYI I have never outside of local testing found a good reason for using die.&lt;/p&gt;
&lt;p&gt;Now this site uses die to handle really big database errors or any issue which could be a threat to the system. The reason for this is to protect the system. I use CloudFlare to protect against my server buckling under pressure and I use die to protect against single user mistakes or servers which I depend on not being available.&lt;/p&gt;
&lt;p&gt;Again die is never the solution. Never.&lt;/p&gt;
&lt;p&gt;However when you do use die it is nice to know that you had to use it. For a long time this site was using die and that was the end of it. I never had a need or care beyond not spitting out raw errors.&lt;/p&gt;
&lt;p&gt;For a very long time I also had a memory leak issue relating to my database on this site. The fix was simple but I had to know it happened. My site uptime is only checked every 5 minutes and it needs to fail two times in a row. Basically my database would have to be offline for 10 minutes before I am emailed.&lt;/p&gt;
&lt;p&gt;So I made a very simple change so I would be emailed what went wrong. This is an extremely basic function made to replace die. You do not want to copy the function and start using it. Make some changes, figure what you need to see and what matters to you.&lt;/p&gt;
&lt;p&gt;Here is the code, after this block of code I will quick talk about each section and then some examples.&lt;/p&gt;

&lt;pre class="brush: php; toolbar: false;"&gt;
function die_and_email($body) {
    $mailto = "MYEMAIL";
    $mailsubj = "Website Used Die!";
    $headers = "MIME-Version: 1.0\r\n"; 
    $headers .= "Content-type: text/html; charset=iso-8859-1\r\n"; 
    $headers .= "From: MYEMAIL\r\n";
    
    $mailbody = "&amp;lt;html&amp;gt;&amp;lt;body&amp;gt;&amp;lt;h3&amp;gt;Your website just used Die!&amp;lt;/h3&amp;gt;\n";
    $mailbody .= "&amp;lt;p&amp;gt;The die was triggered and this email has been sent.&amp;lt;/p&amp;gt;";
    $mailbody .= "&amp;lt;p&amp;gt;Die was stamped at: " . date("Y-m-d H:i:s") . "&amp;lt;/p&amp;gt;";
    $mailbody .= "&amp;lt;p&amp;gt;The following message was passed in:&amp;lt;br /&amp;gt;";
    $mailbody .= $body . "&amp;lt;/p&amp;gt;";
    $mailbody .= "&amp;lt;p&amp;gt;&amp;lt;small&amp;gt;All the best,&amp;lt;br /&amp;gt;Alister Sneddon&amp;lt;/small&amp;gt;&amp;lt;/p&amp;gt;&amp;lt;/body&amp;gt;&amp;lt;/html&amp;gt;";

    // Send the mail
    mail($mailto, $mailsubj, $mailbody, $headers); 
    die('&amp;lt;h1&amp;gt;Sorry!&amp;lt;/h1&amp;gt;&amp;lt;p&amp;gt;This is real bad, I have just sent an email to myself.&amp;lt;br /&amp;gt;You should leave.&amp;lt;/p&amp;gt;');
}
&lt;/pre&gt;

&lt;p&gt;So this code would be used in place of your standard "or die(�Helpful message');" The first variable would be who gets the email. The second variable is the subject line to use. Then we have the headers. The first two headers make it a HTML email. The third header is who the email comes from, I recommend you make this the same as the address which will receive the email for now.&lt;/p&gt;
&lt;p&gt;Then there is the mailbody variable. This is simple HTML with some flavour text. The email will pass in the message you write as well as the time stamp in MySQL format. This is super helpful for working out the accurate time of the issue.&lt;/p&gt;
&lt;p&gt;Then we send the email and display a HTML die.&lt;/p&gt;
&lt;p&gt;This is a pretty basic setup so let me show you its usage in the wild.&lt;/p&gt;

&lt;pre class="brush: php; toolbar: false;"&gt;
mysql_connect($host, $username, $password)
	or die_and_email('Failed to connect: mysql_connect($host: ' . $host
		. ', $username: ' . $username . ', $password: ' . $password . ')');
&lt;/pre&gt;

&lt;p&gt;In this case we simply respond with the function which has failed and show what parameters we were passing in. This is handy for situations where the variables you pass in might change or vary depending on system (so you can pick up the wrong system has the wrong version.)&lt;/p&gt;
&lt;p&gt;Here is another example in which we pass in a simple string as reference. There is no or in this situation, the user has completed an action to which we simply want to die.&lt;/p&gt;

&lt;pre class="brush: php; toolbar: false;"&gt;
die_and_email('Test script attempted to run.');
&lt;/pre&gt;

&lt;p&gt;Finally you can use this to give basic information as to who caused the problem&lt;/p&gt;

&lt;pre class="brush: php; toolbar: false;"&gt;
die_and_email('User from the IP: &amp;lt;strong&amp;gt;' . $_SERVER['REMOTE_ADDR'] 
	. '&amp;lt;/strong&amp;gt; loaded &amp;lt;strong&amp;gt;test.php&amp;lt;/strong&amp;gt;.');
&lt;/pre&gt;

&lt;p&gt;Hopefully this has given you some ways to improve your visibility on errors. If you have access to your servers error log then I suggest you change the script so that before the die you do "error_log($body);" that way you will pass the same message from your email into your error log which is automatically time stamped for you.&lt;/p&gt;</description>
<link>http://www.amateurprotagonist.com/a-102-php-make-or-die-send-an-email.php</link>
<pubDate>Sat, 10 Jan 15 10:00:00 -0800</pubDate>
<guid>http://www.amateurprotagonist.com/a-102-php-make-or-die-send-an-email.php</guid>
</item>

<item>
<title>Symlink Alias Files PHP And IIS</title>
<description>&lt;p&gt;Through and through I would say I prefer using a Windows machine over a Macintosh. However if you work on a LAMP stack it can be tough replicating your live environment on a Windows machine. As much as I hate it, developing PHP for a Linux environment on a Windows machine is tougher.&lt;/p&gt;
&lt;p&gt;Sure you can use things like WAMP if you are a bitch arse pussy who wants to be spoon feed (or you want to learn more about LAMP without using a virtual machine.) however I enjoy using IIS. Using IIS for PHP and MySQL is not really the best environment and honestly I had no reason to use that setup for my local development.&lt;/p&gt;
&lt;p&gt;A problem came up the other day when attempting to replicate one of our production systems. The system used a folder structure very common for fast multiple releases. The structure would mark every release with the date, and then a symlink is created called current which sits outside of the releases folder and simply points to the latest folder.&lt;/p&gt;
&lt;p&gt;This system is a fantastic way to manage production releases before you get your hands on deployment tools. It means you can checkout your code and then easily switch folders with very little risk.&lt;/p&gt;
&lt;p&gt;The problem was there is no out of the box method to create symlinks in IIS. Now I looked into this for a few hours and the general solution is �Oh just use the virtual directory� sadly depending on the complexity of your system more often than not, this just does not solve the issue.&lt;/p&gt;
&lt;p&gt;Sure if you want domain.com/cowtipping to go to a different folder it's ok. Even then I do not believe it to be a good solution.&lt;/p&gt;
&lt;p&gt;Another real problem is for users who might have a file which never changes e.g. settings.php or config.ini which must always be the same, it could contain database credentials or even just the salt you use. Either way the file must never change. Do not risk having it in your repository. This file should be symlinked in.&lt;/p&gt;
&lt;p&gt;That is where IIS really hits the ground and frankly shits itself. The decision was then made I would scrap my function environment and attempt to use WAMP like the other developers. Again this all went well and somehow I got around the permission errors that follow me like the Black Death.&lt;/p&gt;
&lt;p&gt;However we ran into the same issue. The problem is really at the OS level. Windows just does not have a nice solution to this issue. At one point I was creating shortcut files and even copying real symlink files and attempting to run them through Apache in hopes of tricking the system into working.&lt;/p&gt;
&lt;p&gt;I love working with Windows, however every now and again you do have to throw your hands up and recognise a better solution. With a LAMP stack if you have a local development environment a Macintosh is a better solution. It really is a shame I just hate how a Mac works e.g. go fuck yourself case sensitive path names which doesn't work with Photoshop.&lt;/p&gt;
&lt;p&gt;So really what I am saying is as the complexity of your live system grows you need to be able to replicate it better and better. In an ideal world you should have a box setup which is separate and that you remote/SSH into. However that is no always possible.&lt;/p&gt;
&lt;p&gt;Also in regards to using a Linux system and then developing locally, that is like buying a cow because that is the only way to truly get fresh milk. You have to draw the line between practically and functionality. While running just Linux as your developing environment is extremely function it is very unpractical regarding support for tools you may require. Hopefully this changes one day.&lt;/p&gt;</description>
<link>http://www.amateurprotagonist.com/a-101-symlink-alias-files-php-and-iis.php</link>
<pubDate>Sun, 10 Aug 14 10:00:00 -0700</pubDate>
<guid>http://www.amateurprotagonist.com/a-101-symlink-alias-files-php-and-iis.php</guid>
</item>

<item>
<title>PHP Type Hinting In Functions</title>
<description>&lt;p&gt;Don't you hate it when PHP stops listening to type hinting in your function parameters? I came across this strange issue with the Elgg frame work.&lt;/p&gt;
&lt;p&gt;Long story short, the parameters in my functions where not forcing the type which was required. Take for example the following code&lt;/p&gt;
&lt;pre class="brush: php; toolbar: false;"&gt;function get_money_then_get_bitches(ElggUser $user, array $extra_params) {
	$to_return = array();

	// Amazing code which updates the array and returns a standard type

	return $to_return;
}&lt;/pre&gt;
&lt;p&gt;In this case ElggUser is a new Object we have created, also we are asking for an array. However in PHP it is possible to pass in NULL or FALSE for both parameters. Heck you can pass in whatever the hell you want.&lt;/p&gt;
&lt;p&gt;The problem we ran into was we did not always have the correct object. In the Elgg framework passing in 0 or an empty object it tends to pull back everything it can. So you would not end up with the money and bitches for that user, but for every user on the system.&lt;/p&gt;
&lt;p&gt;Thanks Elgg, you dicks.&lt;/p&gt;
&lt;p&gt;Either way this is not the frameworks fault, it is our setup. The issue is with debugging and dealing with multiple developers. It really is not good enough to leave a comment above your function. If your variable/parameter must be a set type then take it upon yourself to detect and deal with any problems.&lt;/p&gt;
&lt;p&gt;I would always recommend setting a variable at the start of your function which you intend to return. The next thing you should do is check the parameters which have been passed in.&lt;/p&gt;
&lt;p&gt;Let's improve the function we had before to account for any bad types. We will not force any type casting but we will check the type hint to ensure it is as expected.&lt;/p&gt;
&lt;pre class="brush: php; toolbar: false;"&gt;function get_money_then_get_bitches(ElggUser $user, array $extra_params) {
	$to_return = array();

	// Make sure the variables have the types we need
	if(!$user instance ElggUser || !is_array($extra_params)) {
		return $to_return;
	}

	// Amazing code which updates the array and returns a standard type

	return $to_return;
}&lt;/pre&gt;
&lt;p&gt;What happens now if you pass in NULL or the wrong variable type the script will return an empty array. This way your code will not break down because of unexpected values being returned. You know you will always get an array back, now you just check if the array is empty or not. &lt;/p&gt;
&lt;p&gt;PHP is not your standards dad's Object Oriented  Programming language. If you want to use PHP like C# or Java (etc.) then you will have to work for it.&lt;/p&gt;
&lt;p&gt;Frankly you should be checking what parameters are getting passed into your variables. You can never assume the data which will come in is safe. You might be the only one using the function now but another developer might come in and use it to handle direct user inputs.&lt;/p&gt;
&lt;p&gt;Never trust any variable, check all your parameters and fuck Elgg.&lt;/p&gt;</description>
<link>http://www.amateurprotagonist.com/a-100-php-type-hinting-in-functions.php</link>
<pubDate>Thu, 10 Jul 14 10:00:00 -0700</pubDate>
<guid>http://www.amateurprotagonist.com/a-100-php-type-hinting-in-functions.php</guid>
</item>

<item>
<title>Do I Need SSH On My Shared Server?</title>
<description>&lt;p&gt;Five years or so ago you would be hard pushed to find reliable SSH for your shared hosting environment. However as web development has grown in popularity and the barrier to entry has lowered, SSH is becoming a more common offering.&lt;/p&gt;
&lt;p&gt;Firstly what is SSH? Secure Shell, a secure encrypted command line interface which can be accessed remotely (normally.)&lt;/p&gt;
&lt;p&gt;Now SSH offers a lot more freedom and flexibility in a standard server (assuming you are running a Linux distribution.) The idea behind using only SSH is you have no need to consume resources for a GUI when performing basic tasks. You can install everything you need and get a web server up and running using just SSH.&lt;/p&gt;
&lt;p&gt;Now the major advantage to SSH is the complete and true flexibility to do whatever you need. However on a shared server they heavily restrict what you can and cannot do with SSH.&lt;/p&gt;
&lt;p&gt;Now if SSH is part of the offering for your normal web service then you can start using it no problems. However if you are looking to change or buy new web hosting then should you be looking for SSH?&lt;/p&gt;
&lt;p&gt;There are a few questions you need to ask yourself. Firstly do you require a service which does not have a good GUI? In which case SSH may have to be for you. A prime example would be using GIT on your server. If you are looking to install custom programs/software then you cannot use SSH on a shared server.&lt;/p&gt;
&lt;p&gt;If you only need the bare basics of SSH and you are not paying extra for the SSH then by all means go for it. However if you are paying extra and do not require any command line features, you might be better off looking for cheaper more basic web hosting.&lt;/p&gt;</description>
<link>http://www.amateurprotagonist.com/a-99-do-i-need-ssh-on-my-server.php</link>
<pubDate>Tue, 10 Jun 14 10:00:00 -0700</pubDate>
<guid>http://www.amateurprotagonist.com/a-99-do-i-need-ssh-on-my-server.php</guid>
</item>

<item>
<title>SimCity Digital Deluxe Edition Review</title>
<description>&lt;p&gt;Now the dust has settled after a problematic launch I feel I can talk about SimCity without being clouded in media/press arguments.&lt;/p&gt;
&lt;p&gt;So the first thing you should know about me and SimCity is I pre ordered the game based on the SimCity I played 10ish years ago. There was a lot of noise regarding the always on DRM and the fact the game will not have a single player mode, however I have a good internet connection and don't mind setting my game to private. &lt;/p&gt;
&lt;p&gt;I had to choose between ordering the normal dirty commoner version of SimCity or the SimCity Digital Deluxe Edition, I went for the SimCity Digital Deluxe Edition. What really sold me was the fact I would be getting Elizabeth Tower to place in the middle of my city and turn everything into London.&lt;/p&gt;
&lt;p&gt;The first problem with the launch was the staggered release. Why for a purely online experience do I have to wait for my country to have a turn? The worst part was the people who brought the game, lied about what country they are in, got the game early and could select their local region to play in. So the whole idea of a staggered release was total bullshit. That left me with a sour taste but life isn't perfect.&lt;/p&gt;
&lt;p&gt;Now as I am in the UK my release day was three days after the USA. Between starting my game and the USA launch the swarm of connection issues started to come to light. When I finally got home after work at 8:30pm I was unable to boot into the game. The start screen updater kept crashing. Sadly there was no help or support so I just had to re-install and keep on trying.&lt;/p&gt;
&lt;p&gt;Around 10pm I got my first taste of SimCity. I was unable to boot into the tutorial city which is required before you can play the game as you wish. Due to the game struggling with the connections with my every interaction the experience was painful and unplayable. Around 12pm I finished the tutorial and was no longer experiencing connection issues.&lt;/p&gt;
&lt;p&gt;For the next two hours I made my first city. &lt;/p&gt;
&lt;p&gt;The city building is always exciting, you never feel cheated if you run out of money/power/water because that is your job. If you fail to make place for a building you brought then that is your problem and poor planning.&lt;/p&gt;
&lt;p&gt;My biggest issue was the traffic. It just didn't work how I expected it to. The problems with the motorway that was passing through my city was insane. The traffic down my main street was a 24 hour stand still. I stopped playing for the night when 12 buildings burned down due to the fire department being stuck two buildings away in traffic.&lt;/p&gt;
&lt;p&gt;Next day I tried to log back on, sadly the connection issues where back. I moved to a different server only to find my cities are not cross server. Also I had to play the tutorial again. My second city has far more success, sadly the traffic woes kept coming back. After a while your city has an explosion of growth. All of your major buildings start turning into skyscrapers. Suddenly your energy, garbage, water, waste and population become un-manageable.&lt;/p&gt;
&lt;p&gt;This is the core fun of the game is the back and forward, trying to survive. It is at this point the game tells you to move to another city. I opted to keep on trucking. &lt;/p&gt;
&lt;p&gt;What happened next was what I love and hate about SimCity. My power went out because the traffic was so bad the coal couldn't get to the factory. My population started to drop and my services shut down causing a bigger loss of money. I had to destroy my coal power plant and build a nuclear one. By that point it was too late, my city could no longer sustain itself, I had lost too many people and the taxes/factories where not making as much money.&lt;/p&gt;
&lt;p&gt;Before my city went bankrupt I started a new city and then moved back to my original one, from there I moved all services to my new city as well as all my money. Then I went back to my new city. Suddenly everything was sorted, I could never go back to my original city out of fear it was run out of cash any moment. By playing in other cities the problems of my first city were frozen.&lt;/p&gt;
&lt;p&gt;SimCity is still riddled with problems but if you want a SimCity game then you can only play a SimCity game. The multiplayer is shit and not live, the servers are crappy and you can expect them to pester you to buy add-ons. However if you want to play a city building game and suffer some real rage as it tears its self apart, buy SimCity.&lt;/p&gt;
&lt;p&gt;Maybe wait till it gets a little cheaper�&lt;/p&gt;</description>
<link>http://www.amateurprotagonist.com/a-98-simcity-digital-deluxe-edition-review.php</link>
<pubDate>Sat, 10 May 14 10:00:00 -0700</pubDate>
<guid>http://www.amateurprotagonist.com/a-98-simcity-digital-deluxe-edition-review.php</guid>
</item>

<item>
<title>When Should I Use A PHP Framework?</title>
<description>&lt;p&gt;An interesting question at my last job was raised in my direction. I was asked for some consultancy advice on how to improve the PHP development for future external projects. To give you some background the projects should be promised as waterfall development and quickly boil down to rushed agile fixes and changes. There were no development standards or any real development plan.&lt;/p&gt;
&lt;p&gt;My first suggestion was to create a development standards document for the programmers. Once a standard to compare work is in place you start to create realistic goals and understand the quality of work VS timescale. My second suggestion was to implement SVN. If nothing else this would help enforce a structure.&lt;/p&gt;
&lt;p&gt;While helping with the development documentation and implement/training users with SVN I was asked my opinion regarding classes in PHP. Now classes do work in PHP, however it is arguable in smaller projects if a library of global functions is more useful when you have no real grounds to build classes. I explained that due to the skill set of the programmers and the size of the projects he would suffer if he went "the whole nine yards."&lt;/p&gt;
&lt;p&gt;After a few meetings as was asked what "the whole nine yards" really entailed for me. I said that the inclusion of a PHP framework in their development strategy would be going all the way. &lt;/p&gt;
&lt;p&gt;This brings me in an interesting point, would they have seen any real improvement over the quality of their code by bringing in a PHP framework? The development work was almost always ad-hoc and normal not performed by trained programmers; more often than not it was anyone who would pick up a PHP book.&lt;/p&gt;
&lt;p&gt;By using a framework they would go against the very reason I warned against using PHP classes, they would raise the entry level to who would successful modify the code. A major issue was changing the code and not understanding the impact it would have across the project. When you deal in single pages it is extremely easy to isolate problematic code.&lt;/p&gt;
&lt;p&gt;With the implementation of the SVN going successfully they would be able to track where and when the issues happened but that does not means that would be able to work around the problems faced.&lt;/p&gt;
&lt;p&gt;Looking back with hindsight it is clear to me that a PHP framework would not only hinder their development but would also create a greater divide on their resources. Higher entry level to understand the code might come with performance improvements but it will heavy restrict the employees you have which can contribute. &lt;/p&gt;
&lt;p&gt;Ideally in a company where you do require PHP development you will hire a dedicated developer, they will be able to call the shots regarding PHP frameworks and the usage of classes. However as their only developer was leaving with no replacement it would be short sighted to believe the hobbyist programmers would successful contribute. This is not to down play the abilities you can learn when teaching yourself but a realistic opinion of a professional VS someone who is going above their job description to help.&lt;/p&gt;
&lt;p&gt;While picking a PHP framework it is important to consider the learning curve and who will be working on the project. As much as I feel I have moved on for completely separate PHP pages written independently of each other, in that work environment the ah-hoc speed in which pages where modified and created called for such a practice. &lt;/p&gt;
&lt;p&gt;While many attempts were made to unify the source code the project was simply too large, this was also hindered by the fact multiple users had attempted a "from scratch" approach resulting in more fragmented code.&lt;/p&gt;
&lt;p&gt;The inclusion of a PHP framework would not only have called for a massive rewrite of an unknown amount of code but also the knowledge for someone to understand uncommented code from two years ago against legacy systems.&lt;/p&gt;
&lt;p&gt;While PHP frameworks come with a truck load of advantages even when you read up on the different frameworks available they all support the same methodology.&lt;/p&gt;
&lt;p&gt;PHP frameworks are fantastic however they are like tools on a work-man's belt. It is up to the work-man to understand when to use each tool. Your screwdriver might fix all of your current issues but it is not suited to deal with nails.&lt;/p&gt;
&lt;p&gt;When consulting PHP development it is as important to understand the current skill sets and resources available as well as the desired outcome.&lt;/p&gt;</description>
<link>http://www.amateurprotagonist.com/a-97-when-should-i-use-a-php-framework.php</link>
<pubDate>Sun, 20 Apr 14 10:00:00 -0700</pubDate>
<guid>http://www.amateurprotagonist.com/a-97-when-should-i-use-a-php-framework.php</guid>
</item>

<item>
<title>Secure PHP, MySQL and jQuery AJAX Login</title>
<description>&lt;p&gt;Throughout my time developing login's I have never made a real AJAX login that covers all my security concerns. Now a login/registration system I consider the bread and butter of any web developer, and AJAX login tutorials are all over the internet. Yet when it came to making my own AJAX login I found myself worried about how secure it really was.&lt;/p&gt;
&lt;p&gt;The basics of a dynamic login system are as follows:&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Main login page&lt;/li&gt;
&lt;li&gt;Another page to handle incoming requests and respond with XML or JSON&lt;/li&gt;
&lt;li&gt;A good JavaScript framework because doing it from scratch gives you little benefit (normally)&lt;/li&gt;
&lt;li&gt;Your collection of logins, normally a database&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;What happens if your end user is looking at a login form, then they enter in their details before pressing login. Once they have kicked this off your JavaScript comes into play, the button that would normally start the POST process has some JavaScript functions assigned to it.&lt;/p&gt;
&lt;p&gt;The JavaScript will then go and pass the login details to your other page, this page responds as if it was accessed directly like any other web page. The JavaScript then carries this postback information and transforms it into something we can use (turns XMLs/JSON into objects to access in our code.)&lt;/p&gt;
&lt;p&gt;Now with the postback information the JavaScript will work out if this has worked or not. Depending on the yes or no that came back the JavaScript will display a message to the user.&lt;/p&gt;
&lt;p&gt;This is all well and good however there are a few more complicated issues for what I wanted to achieve.&lt;/p&gt;
&lt;p&gt;These where my objectives:&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Lightbox that will prompt the user for login details, this lightbox needs to be reusable  from any location on the website.&lt;/li&gt;
&lt;li&gt;Upon a successful login the user will be redirected to the "home page" for logged in users.&lt;/li&gt;
&lt;li&gt;Upon failure the lightbox will be updated with what details are missing.&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;This may sound very simple however I had one major issue. The successful login had to redirect the user. My problem with a redirect is I do not have the option to POST values when redirecting the user. Any values I want to push across must be done via GET. My second issue is due to the way my PHP framework was constructed I am unable to assign a session or cookie to say the user is logged in.&lt;/p&gt;
&lt;p&gt;Another issue is the highjacking of logins. While I can do my best to encrypt the username and password of the user in the AJAX process, how can I assign them a value which links them to their account without compromising their account? A common issue often overlooked is shared computers. Using an insecure GET can result in users having their accounts abused by the history function of most browsers.&lt;/p&gt;
&lt;p&gt;So how can you get around these issues?&lt;/p&gt;
&lt;p&gt;A very simple solution is to use a token. Here is the plan, expand the database to hold a timestamp/datetime as well as a random 64 random character string. The idea is the first request that comes through will not only respond with a success or fail but also with the token assigned to that login.&lt;/p&gt;
&lt;p&gt;The first POST of data will send the username and password to the waiting page, this waiting page will check the login details, if it finds a match it will update the row with the current datetime as well as updating the randomly generated token.&lt;/p&gt;
&lt;p&gt;Now we will respond with a JSON success or failure, the failure contains the message of why it failed. The success will also respond with the token.&lt;/p&gt;
&lt;p&gt;Once the token has come through the JavaScript will redirect the user and pass the token via the URL (GET.)&lt;/p&gt;
&lt;p&gt;The redirected page will then simply look at the token and check the timestamp, once a valid record has been matched we then assign the session and deem them logged in. This extra security given by the token allows us to be more flexible.&lt;/p&gt;</description>
<link>http://www.amateurprotagonist.com/a-96-secure-php-mysql-and-jquery-ajax-login.php</link>
<pubDate>Sat, 05 Apr 14 10:00:00 -0700</pubDate>
<guid>http://www.amateurprotagonist.com/a-96-secure-php-mysql-and-jquery-ajax-login.php</guid>
</item>

<item>
<title>Amazing Game Ideas That Need To Be Made</title>
<description>&lt;p&gt;Some game ideas are so amazing that no one dares to take them on. Here are a few of the most amazing game ideas I have but not the time to complete. Feel free to poach my ideas like the bottom feeding pawns you are.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;The Ex - A Game About Getting Over It&lt;/b&gt;&lt;br /&gt;
This is a rouge like first person emotional interactive drama. You have broken up with your ex but you stay friends. She was cheating on you the whole time and they are set to know get married as you are out the picture romantically. &lt;/p&gt;
&lt;p&gt;The game follows you supporting your ex as everything goes perfectly in her life, all the time you have a sanity and friendship meter. If the friendship meter reaches zero (you didn�t spend enough time with her or are mean.) then she bans you from the wedding and spreads lies about you. The game over screen is her husband beats you up in an alleyway and leaves you for dead. You can crawl around on the floor but can�t leave the alleyway. The only way to end the game at this point is to power down your computer.&lt;/p&gt;
&lt;p&gt;The other meter is the sanity meter which goes down by spending time and being nice to your ex. If it gets to zero then the game ends with you in a broken down home drinking vodka, this is all you can do. Every three drinks the character stands a chance to break down in tears. The only way out of this screen is to turn off your computer.&lt;/p&gt;
&lt;p&gt;The game sees you playing best man, not sleeping with any of her friends or anyone that is part of the wedding. You have to keep secrets and wish every to be happy. The best outcome in the game is you get hit by a bus at the end of the wedding. The game is also score based on how fast to reach to questions and tasks. There are high scores to keep the game competitive.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Ragdoll - You Are Not The Player&lt;/b&gt;&lt;br /&gt;This is a Kinect only exclusive. In the game you have to move in time with the commands that show up on the screen. The only catch is on your monitor is a fat overweight unemployed pervert. Then sit on their bed playing the game using a controller. This translates into what you have to do in the game.&lt;/p&gt;
&lt;p&gt;You can choose between playing a shooter, adventure or MMO game. For each of these you can choose how good the �player� is, the worse they are the more often you have to redo the same sections.&lt;/p&gt;
&lt;p&gt;Also as an added bonus you don�t get to see the game you only get to move as told. This game will also include day one DLC with is multiplayer. One player plays a normal game and the actions of the protagonist you have to follow along with.&lt;/p&gt;
&lt;p&gt;Depending what you select the player may make you do embarrassing poses while pleasuring themselves.  This would be designed and done in such a way to be as disgusting as possible, if you can make someone throw up then you are on the right track.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Power Down Land - The Trails Of Time&lt;/b&gt;&lt;br /&gt;This is a timeless classic, a 2D side scrolling plat former. In charming and non-opposing 16-bit style the characters will jump and run their way to the end game. It is a simple and easy game designed for casual play. The games length is around two hours with no real new mechanics, just a fun one time run.&lt;/p&gt;
&lt;p&gt;The twist is very few people will ever complete the run. The game will randomly close, this is a completely random chance whenever the game timer clicks over. It is roughly a 30% chance. This chance is rolled whenever the user does an action or a second passes.&lt;/p&gt;
&lt;p&gt;This game also features party mode when up to 16 players can all join in to complete the game. The game also is perma death with no save points. When the game closes it completely closes, on the Xbox the machine shuts down and on the PC it will close the window.&lt;/p&gt;
&lt;p&gt;The end of the game the player gets to see a random woman flash them, also the women is too 16-bit as to not break the style of the game. There is nothing else to this game.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Crowd Sourced - The Interactive Free Help&lt;/b&gt;&lt;br /&gt;In this fourth-wall breaking experimental title the user will program a computer game. This is a pure multiplayer experience. Users are not named and have no interaction with each other but a score. The idea is in four hours the randomly teamed group must produce a game. Over the next two weeks a panel of random players will review the game. They each score it out of 10, this directly adds score to the players who made the game.&lt;/p&gt;
&lt;p&gt;The biggest part of the game is every six months a selection of the highest rated games get reviewed by a larger player base. The winner of out these games will each receive $60! Yes that�s right it�s the game that pays its players BACK.&lt;/p&gt;
&lt;p&gt;Also all the code produced is owned by the Crowd Sourced developers. This means if this game is not a massive hit you have tones of stuff to make the next big it, all for $60 every six months. What a great deal!&lt;/p&gt;
&lt;p&gt;Well that is a big list of pure gold if I say so myself. I look forward to seeing these hits on stream and xbox live arcade over the coming weeks.&lt;/p&gt;</description>
<link>http://www.amateurprotagonist.com/a-95-amazing-game-ideas-that-need-to-be-made.php</link>
<pubDate>Tue, 25 Mar 14 10:00:00 -0700</pubDate>
<guid>http://www.amateurprotagonist.com/a-95-amazing-game-ideas-that-need-to-be-made.php</guid>
</item>

<item>
<title>Helpful Tips For Handling Customers Financial Details</title>
<description>&lt;p&gt;Now everyone knows when you handle someone else�s money or financial details you have to be careful. If you are too lax you could give away their details or money to the wrong people. However there are a few banks and companies which have taken a �no-shit� approach. I am sure we are all very thankful for the delays caused by the high levels of security regarding when I can access their website, one day.&lt;/p&gt;
&lt;p&gt;If you deal with overseas customers the first and most important factor to consider is a simple one. Different time zones, how can you maintain high levels of customer service if you are asleep? You could tell your customers that their requests will not be dealt with until next business day in your own time zone. If that scares you, then you could simply not function outside highly restrictive business hours that match only your own country!&lt;/p&gt;
&lt;p&gt;Why should I be angry at the six hour window I have to transfer money overseas from an account I own? Hell it�s not like England and Australia can have a 12 hour time difference or anything. Oh wait, they can totally have a 12 hour time difference. So guess what I am doing during your business hours? Relaxing the fuck out.&lt;/p&gt;
&lt;p&gt;Even better is this service does not run on weekends or public holidays, after all we all can clearly see the chaos that putting a request in without the monkeys typing it out would cause. It�s not like this is the internet or anything?&lt;/p&gt;
&lt;p&gt;Sometimes you need to go into your bank to sort out some details. You know the types of moments when you simply have to go into the bank, the moment you have called three different people and they all say go in and see your bank manager. My bank manager? Heck I met the guy once and he couldn�t pronounce my last name, oh and he is always busy or on holiday. Maybe I should go to the bank and stand there until my �personal bank manager� shows up to help me with my problems of pounds and pennies.&lt;/p&gt;
&lt;p&gt;So how can you as a bank make this as easy as possible? Well like with the overseas method there are ways around it, however if we can�t offer the service maybe we can cover it up by simply not being open! Genius, everyone in the boardroom screams. We simply close the bank and open in crazy peak of business hours so it�s really bad in the bank and only people with no jobs can visit us.&lt;/p&gt;
&lt;p&gt;Now this happens with a lot of banks so it�s hard for me to pick on them for that. I mean it�s not like it�s the government regarding your tax file number and where your tax rebate goes. Oh wait no its them fuckers too. I have to take a day off work and book an appointment two years in advance and bring everything from  a picture of my birth to a blood sample so you can send me the bit of paper that is charging me more money? Did you guys every study anything ever about anything? Why the fuck would I drag my dick through shards of glass only to have you squeeze a lemon over me? Why not make it easy to encourage me to be on top of this?&lt;/p&gt;
&lt;p&gt;Still in between people just shutting down important services designed for customers who need it at all hours and having bricks and motor shops closed, it�s not like you are hiding my money?&lt;/p&gt;
&lt;p&gt;Let me just go check my superannuation online, by having my online banking and super linked into one I can see it all any time 24/7. I mean what an amazing system, huh it�s not showing up. The account is there but no money is showing up. Maybe I can click the name? Nope that�s not a link. Oh I see to get access for a number of how much money is in that account I have to go into my bank and ask�&lt;/p&gt;
&lt;p&gt;But the bank is closed�&lt;/p&gt;
&lt;p&gt;Fuck you.&lt;/p&gt;</description>
<link>http://www.amateurprotagonist.com/a-94-helpful-tips-for-handling-customers-financial-details-or-money.php</link>
<pubDate>Thu, 20 Mar 14 10:00:00 -0700</pubDate>
<guid>http://www.amateurprotagonist.com/a-94-helpful-tips-for-handling-customers-financial-details-or-money.php</guid>
</item>

<item>
<title>Minecraft 1.2.5 Server Running PVP Vanilla No Whitelist</title>
<description>&lt;p&gt;Our UK (London) based server provides you with the best Vanilla, fully PVP, no whitelist, always online, always up to date Minecraft Multiplayer Online Action. We pride ourselves on maintaining a secure no rules server. We do enforce a no mods policy however.&lt;/p&gt;
&lt;p&gt;What do you mean No Rules?&lt;/p&gt;
&lt;p&gt;We wanted to create a normal vanilla Minecraft Server that you could join without applying or paying for. We want you to play the game how you play in single player, only with friends.&lt;/p&gt;
&lt;p&gt;If no rules why do you not allow mods?&lt;/p&gt;
&lt;p&gt;We feel mods unbalance the game, everyone has an equal chance on our Minecraft Server. It doesn�t matter if you are new or been playing from Alpha, our always free, always open server is welcome to you.&lt;/p&gt;
&lt;p&gt;Do you always have the latest version running?&lt;/p&gt;
&lt;p&gt;We currently have around a 3 or 4 hour delay from a new Minecraft Server Version being released to us going live. By running the standard vanilla version of Minecraft you do not have to worry about slowdowns or delays.&lt;/p&gt;
&lt;p&gt;Sounds great what is the IP?&lt;/p&gt;
&lt;p&gt;You can join in right now with the following details to our 1.2.5 Minecraft Server.&lt;/p&gt;
&lt;h3&gt;46.20.119.7:30265&lt;/h3&gt;
&lt;p&gt;Is the server full PVP? &lt;/p&gt;
&lt;p&gt;Yes it is! You can attack anyone at any time, we feel changing that fact makes the game dull and uninteresting. Once you have built your massive castle you need to protect it! From Monsters and Players!&lt;/p&gt;
&lt;p&gt;What is new in the Minecraft 1.2.5 Server Release?&lt;/p&gt;
&lt;p&gt;Now you can shift-click inside the furnace for after smithing as well as the direct connect remembering the last IP you joined (so you can come back to us even quicker.) Also there has been some changes to the TNT block, even with a flint and tinder you can punch a block of TNT to get it back (however setting it on fire will activate the TNT!)&lt;/p&gt;
&lt;p&gt;Also this new version is bringing in heaps of bug fixes, so be sure to have fun and join the forums!&lt;/p&gt;</description>
<link>http://www.amateurprotagonist.com/a-93-minecraft-one-two-five-server-running-pvp-vanilla-no-whitelist.php</link>
<pubDate>Mon, 17 Mar 14 10:00:00 -0700</pubDate>
<guid>http://www.amateurprotagonist.com/a-93-minecraft-one-two-five-server-running-pvp-vanilla-no-whitelist.php</guid>
</item>

<item>
<title>When And Why Should I Use Static Functions?</title>
<description>&lt;p&gt;Now I am by no means the best developer, not the smartest or even the cleverest. I learn new things every day and this is one of the things I learnt some time back that I want to revisit. When I first started programming using Classes I heard about Static Functions but never used them. Yesterday I once again used a Static Function and it struck me that I done so without a second thought. &lt;/p&gt;
&lt;p&gt;Like many other programmers who are still learning what many would consider "core skills" I am always eager to try new things in my code, without my thought to if I require it. Part of being a better programmer is knowing when to use the right tools and techniques. The reason for this lengthy introduction is because I have fallen into the trap where I have a hammer and everything looks like a hammer.&lt;/p&gt;
&lt;p&gt;Onto Static Functions, now I assume you are aware of the basics of a Class in programming. For this article I will post any code in PHP however the idea and reasons remain the same for almost all Object Oriented Programming Languages.&lt;/p&gt;
&lt;p&gt;First to make use of a function inside a Class you are required to declare the Class (normally with a new statement like so.)&lt;/p&gt;
&lt;pre class="brush: php; toolbar: false;"&gt;
$fish = new Fish();
&lt;/pre&gt;
&lt;p&gt;After that you have the class (also known as the object.) in your code and accessible. From here you have access to all public methods and functions within that class, because you have declared it. However lets say you want to check if the name of the fish is already taken. For example:&lt;/p&gt;
&lt;pre class="brush: php; toolbar: false;"&gt;
$fish = new Fish();
$fish_name_free = $fish-&gt;is_name_free('carp');
if($fish_name_free) {
    echo 'party';
}else{
    echo 'do not worry, there are plenty more fish in the sea!';
}
&lt;/pre&gt;
&lt;p&gt;Now the code above can easily be improved in a number of ways (for one there really is no need to assign the return of is_name_free to a variable.) however this is a simple example which shows that sometimes creating a new object or class is overkill. What if I told you we never make use of the fish object / class ever again in that section of code?&lt;/p&gt;
&lt;p&gt;There really is no need for use to declare the new class /object for such a simple task. Now this is just one example. How about this one:&lt;/p&gt;
&lt;pre class="brush: php; toolbar: false;"&gt;
$endangered = FALSE;
$fish = new Fish();
$fish-&gt;load_fish('carp');
$locations_of_fish = $fish-&gt;all_locations();
foreach ($locations_of_fish as $location) {
    if($location-&gt;is_endangered()) {
        $endangered = TRUE;
    }
}
return $endangered;
&lt;/pre&gt;
&lt;p&gt;Again this code can be improved and really is just proving a point. With the code above all the code we are using can be inside the class, inside protected functions. Do I really need access to all functions I have listed? What if I need to do this pattern in multiple places? No good creating a new function for it as I still in to instant the class / object every time.&lt;/p&gt;
&lt;p&gt;A Static Function allows you to make use of the class without ever declaring the class. Now if you need to interact or use the class in multiple ways a Static Function should be avoided. However in both cases I displayed really all I need is a TRUE or FALSE back from the class. I am not going to use the class anywhere else in that script. It is just a one off reference. Also what if I need to use these scripts in multiple places? If I change how my class works I could break a lot of stuff.&lt;/p&gt;
&lt;p&gt;Here is the first example but as a static function.&lt;/p&gt;
&lt;pre class="brush: php; toolbar: false;"&gt;
$fish_name_free = Fish::is_this_name_free('carp');
if($fish_name_free) {
    echo 'party';
}else{
    echo 'do not worry, there are plenty more fish in the sea!';
}
&lt;/pre&gt;
&lt;p&gt;Again that code can be improved but as a basic easy to reuse line it makes sense. And now the second script as a static function, even less this time around as we would move all the code to inside the class.&lt;/p&gt;
&lt;pre class="brush: php; toolbar: false;"&gt;
return Fish::is_endangered('carp');
&lt;/pre&gt;
&lt;p&gt;That's it. Now you can reuse that piece of code without worrying about making future changes. Now note that I did not reference any updating, deleting or editing of data in my examples. Generally speaking a Static Function is very handy if you need minimal data back and don't want to be rewriting large chunks of code everywhere.&lt;/p&gt;
&lt;p&gt;Now the temptation is to simply have a Static Function that returns the object but doesn't create the class. So basically you can access all the variables the class would normally set but none of the functions. Unless you really have to lock down your code and don't want people using your functions this is not a good idea. You will end up limiting yourself unless you have a very good reason to use the Static Function.&lt;/p&gt;
&lt;p&gt;Some examples of Static Functions I have seen range from simply performing checks if something is TRUE or FALSE and even the crediting of customers' accounts, if there is an error the Static Function just returns and exception prompting the client to get in touch with the develops (because there is very little that could go wrong.) the reason it was in a Static Function was so it could easily be called and if any changes were made to the class it would not affect the customers getting their credits, because that is still called in the same way. &lt;/p&gt;
&lt;p&gt;Anyway I hope you find Static Functions as exciting as I do!&lt;/p&gt;</description>
<link>http://www.amateurprotagonist.com/a-92-when-and-why-should-i-use-static-functions.php</link>
<pubDate>Tue, 11 Feb 14 10:00:00 -0800</pubDate>
<guid>http://www.amateurprotagonist.com/a-92-when-and-why-should-i-use-static-functions.php</guid>
</item>

<item>
<title>Helping You Understand JSON And Why We Love It</title>
<description>&lt;p&gt;So who is this JSON fella and whats he doing fooling around in my PHP. Well first thing my English Chap is lets get the tools very clear here. Firstly, if you are going to be making an AJAX application chances are you want to use JSON to transfer the data in between requests.&lt;/p&gt;
&lt;p&gt;So for lets not reinvent the wheel and end up with a square. I mean thousands of years of evolution and the wheel is still round. So lets get it right with our tools to help us debug and get writing some sexy AJAX using JSON. First ensure you are using Google Chrome as your browser. The debugging in Chrome is extremely fantastic, sure you can get FireFox and then get FireBug plugin, I find most people who do that than get Chrome also enjoy dicks in their arse. Just sayin'.&lt;/p&gt;
&lt;p&gt;Now we want to use jQuery as our JavaScript "framework" the reason for this is jQuery is polished and wants to do everything it can to make our lives sexier. Simply using jQuery day to day will increase your chances of getting laid (not verified.) Now what we want to do is basically an AJAX post/get to a PHP which returns some useful information that we then display on the page.&lt;/p&gt;
&lt;p&gt;So lets clear up what JSON is and why we are not using the AJAX XML. JSON stands for JavaScript Object Nipples. The important bit is Object. JSON works with JavaScript Objects, so you can serialise a form into an object or if you use a PHP framework like CodeIgniter chances are you are already using objects in your code. Well I hope you are.&lt;/p&gt;
&lt;p&gt;So lets come up with some example that we can use JSON for� Erm� Should of done this before hey? Why not get a random insult display thing? I like that idea. We will make a button that triggers a JSON request to pull back an insult. Or something, lets see what happens.&lt;/p&gt;
&lt;p&gt;First lets make a basic index page, something fun maybe. Tell ya what lets shake this up and make the index page HTML, so make an index.html file. Be sure to reference jQuery in your header as well, just get it from Google than dicking around with downloads for now. Here is my code.&lt;/p&gt;

&lt;pre class="brush: xml; toolbar: false;"&gt;
&amp;lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&amp;gt;
&amp;lt;html&amp;gt;
&amp;lt;head&amp;gt;
&amp;lt;title&amp;gt;Damn Girl - I Like The Way You Move&amp;lt;/title&amp;gt;
&amp;lt;style&amp;gt;
* {font:14px verdana;padding:0;margin:0;color:purple;}
body {text-align:center;margin-top:50px;}
h1,h2 {font-size:18px;margin-bottom:7px;}
&amp;lt;/style&amp;gt;
&amp;lt;script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"&amp;gt;&amp;lt;/script&amp;gt;
&amp;lt;/head&amp;gt;
&amp;lt;body&amp;gt;
&amp;lt;!-- We will play around with these! --&amp;gt;
&amp;lt;h1 id="header"&amp;gt;&amp;lt;/h1&amp;gt;
&amp;lt;h2 id="subheader"&amp;gt;&amp;lt;/h2&amp;gt;

&amp;lt;!-- Better have a button or something --&amp;gt;
&amp;lt;a href="http://www.amateurprotagonist.com" onClick="OnShitBusta(); return false;"&amp;gt;
    There Are So Many Things I Like About You
&amp;lt;/a&amp;gt;

&amp;lt;!-- Feel free to delete the next bit, if you don't mind me hunting you down, game on bitches --&amp;gt;
&amp;lt;p&amp;gt;I stole from AmateurProtagonist.com because I am a cheapskate.&amp;lt;/p&amp;gt;

&amp;lt;!-- Yeah I am putting script stuff here, deal with it --&amp;gt;
&amp;lt;script type="text/javascript"&amp;gt;
// This means when the page has finished loading do this
$(function() {
   OnShitBusta();
});

// This is a JavaScript function, you knew that right?
function OnShitBusta() {
  
}
&amp;lt;/script&amp;gt;
&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;	
&lt;/pre&gt;

&lt;p&gt;As you see here I have some JavaScript setup already. Now basically I am going to call the function we want on page load. So not only do you learn about your friend JSON but you learn about loading elements of a page after the page has finished loading. This may save your life on day. (Note it may not, but is helpful.)&lt;/p&gt;
&lt;p&gt;Note in my code the A tag that links to my site which has an onClick event. This call the same JavaScript function as the document ready. Also it has return false after it. Try clicking the link and nothing will happen. The return false stops it from working as a link, yet still activates the JavaScript function.&lt;/p&gt;
&lt;p&gt;Lets start by editing OhShitBusta to make a get request to a PHP file (which we will write in a mo.)&lt;/p&gt;

&lt;pre class="brush: javascript; toolbar: false;"&gt;
function OnShitBusta() {
  $.getJSON("WhoMe.php", function(data) {
    $('#header').html(data.headline);
    $('#subheader').html(data.lovethemsubs);
  });
}
&lt;/pre&gt;

&lt;p&gt;So he is a break down. getJSON is a jQuery function that takes a number of parameters. We have no need to send data so we will simply get data back. By using getJSON we are saying we are expecting a JSON postback from the PHP we are calling. This means we don't need to do any decoding or anything unexpected.  We then take the data (postback from the script) and fill them suckas in. Now reloading the page does nothing but give you errors. You should get a 404 error in your network tab. If not you must be off track or some kind of God. I say off track.&lt;/p&gt;
&lt;p&gt;Now then, lets create this sexy PHP page. I will comment some of it so you understand it. Be sure to pay attention as lots of people get lost at this point. (PHP file is called WhoMe.php)&lt;/p&gt;

&lt;pre class="brush: php; toolbar: false;"&gt;
&amp;lt;?php
// We store stuff in the array
$result = array();
// The key is how we reference it on the other end, remember what we were calling from data postback
$result['headline'] = 'But Most Of All';
$result['lovethemsubs'] = 'But YEAH Most Of All';
// Encode it like you have never encoded before
echo json_encode($result);
?&amp;gt;
&lt;/pre&gt;

&lt;p&gt;Now this is pretty easy, so after you complete the page save it and then rerun your index.html file. Nothing happens, then the page finishes loading and BAM. Code bitches. Have a look at the network tab and you can see the data coming back from the request. Now in situations where you have tones of data or information that is hidden unless requested then using this method of loading (maybe even on click than page load) can save you seconds when it comes to showing the user what they really want. Save the extras unless they need them.&lt;/p&gt;
&lt;p&gt;Now this is pretty unimpressive. You see how easy it is to use JSON in the JavaScript, it is already an object so JavaScript loves it. Let's make the PHP more interesting so when you click the link something happens.&lt;/p&gt;

&lt;pre class="brush: php; toolbar: false;"&gt;
&amp;lt;?php
// We store stuff in the array
$result = array();

// Make this random
$random = array(
'Bitch Please',
'I Like The Way Your Friend Moves',
'I Hate So Many Things About You',
'I Hate The Way You Smell So Strong',
'I Like The Way You Cant Dance',
'I Like The Way You',
'YEAH Most Of All',
'But Most Of All',
'I LIKE THE WAY YOU MOVE',
'I Wish You Didnt Put Your Hands In The Air',
'I Wish You Didnt Stare So Much'
);
// Get a random element for each line
$headLine = array_rand($random);
$subLine = array_rand($random);

// The key is how we reference it on the other end, remember what we were calling from data postback
$result['headline'] = $random[$headLine];
$result['lovethemsubs'] = $random[$subLine];
// Encode it like you have never encoded before
echo json_encode($result);
?&amp;gt;
&lt;/pre&gt;

&lt;p&gt;Nothing to be scared of here, just creating a random array which we then select an element (key/index) from and then call that element for each line, I find this combination of lines is pretty funny what comes up.&lt;/p&gt;
&lt;p&gt;So load up the page and see the random message. Then click the link and it will change! Keep an eye on the network tab to get an idea of what is happening and what the magic happen.&lt;/p&gt;
&lt;p style="text-align:center;"&gt;&lt;img src="http://vidawn.webs.com/video%20pics/ilikethewayyoumove1.jpg" alt="I LIKE THE WAY YOU MOVE" /&gt;&lt;br /&gt; I may have been listening to this.&lt;/p&gt;
&lt;p&gt;My personal favourite that came up was:&lt;br /&gt;Bitch Please&lt;br /&gt;I Wish You Didnt Put Your Hands In The Air&lt;/p&gt;
&lt;p&gt;Hehe, anyway I hope this was a fun and different intro to using JSON in your PHP projects to load elements of a page after the page has been loaded as well as basic jQuery usage. No need to thank me, just give me all of your money.&lt;/p&gt;</description>
<link>http://www.amateurprotagonist.com/a-91-helping-you-understand-json-and-why-we-love-it.php</link>
<pubDate>Sun, 09 Feb 14 10:00:00 -0800</pubDate>
<guid>http://www.amateurprotagonist.com/a-91-helping-you-understand-json-and-why-we-love-it.php</guid>
</item>

<item>
<title>GIT vs SVN In NetBeans The Basics - What Not To Do</title>
<description>&lt;p&gt;Currently where I work we use SVN for our version control. This makes a lot of sense for the original project. One main project which everyone should have the same code to, at no point should there be a conflict.&lt;/p&gt;
&lt;p&gt;Sadly the real world does not fit around perfect situations, to quote a co-worker. Nothing is perfect but that's ok. It was not long before the need for splitting and merging trees reared its ugly head. Suddenly using SVN seemed like the final nail in a coffin. Merging two trees in SVN is like getting a chocolate and vanilla ice cream cone and smashing them together considering the end result to be vanilla with a hint of chocolate.&lt;/p&gt;
&lt;p&gt;GIT luckily does a much better job of merging and managing code, it is also faster (however in general usage of larger projects it is not really worth mentioning.) Where GIT comes into its own is the merging. SVN has one centre point that everything references. GIT everyone has a local as well as a remote copy. You can play with your remote copy all you want then merge your local to the remote location to merge with everyone else.&lt;/p&gt;
&lt;p&gt;This is a good and a bad thing. The good thing is this method does not require a consent internet connection to commit changes (as they commit to your local until you push them to the remote location.) it is also good for the graceful merging of documents. This make three-way vendor merging very simple (not easy, three way merging is never easy, if anyone says it is, kick them in the fucking balls.) The bad point is because of the extra process (the local repo) there is an extra step involved in learning and using GIT over SVN.&lt;/p&gt;
&lt;p&gt;I can see the advantages of GIT and wish to learn more so I jumped in like the stupid person that I am. I signed up on BitBucket to get a remote repository for free (turns out you get loads more free too!) From there I downloaded my code from my FTP server. Now you can't simply upload code to GIT as a first commit. &lt;/p&gt;
&lt;p style="text-align:center;"&gt;&lt;img src="http://www.mememaker.net/static/images/templates/2580.jpg" alt="One does not simply" /&gt;&lt;br /&gt;
ONE DOES NOT SIMPLY UPLOAD GIT FILES.&lt;/p&gt;
&lt;p&gt;I had to create a new folder and turn that into my local repository. Then I had to push the first commit from my local to BitBucket (nice and easy with push.) Then my files were all on the remote repository. Now I had to boot up Netbeans to use GIT and get editing some code.&lt;/p&gt;
&lt;p&gt;Now here is where I went majorly wrong, so I will say the way I think it should be done. My problem was I already had the code and I was attempting to simply say "Hey GIT here is my code keep an eye on that while I do unspeakable things to it KTHXBI." To which GIT gave me the middle finger and was all like "Hey why not fuck you?"&lt;/p&gt;
&lt;p&gt;So first you need to create a new local repository from NetBeans and then you need to do a pull/fork request on the remote server. From there you will get all your code and it will be correctly setup. I had no idea it was a twostep process. Remember GIT uses a local repo to do all the work which you then go outside of NetBeans to push your local to the remote.&lt;/p&gt;
&lt;p&gt;This is more involved than the more simplistic SVN. However there is an argument for both, in my personal example SVN would have been a better option, as internet connection and having my code in different places at the same time is not a beneficial factor for me. I was looking for version control of my own personal code.&lt;/p&gt;
&lt;p&gt;GIT however should be your first move for group projects, sooner or later merging will come up and everyone will look at someone and say "Who suggested this fucking crap?" That said it is worth having some experience in both, like most things in programming it is more about knowing the right time to use one of your tools than picking the best for everything.&lt;/p&gt;
&lt;p&gt;When you have only a hammer everything looks like a nail.&lt;/p&gt;
&lt;p&gt;When you only have a screwdriver everything needs to be screwed, which is a chat up line I have yet to see work.&lt;/p&gt;</description>
<link>http://www.amateurprotagonist.com/a-90-git-vs-svn-in-netbeans-the-basics-what-not-to-do.php</link>
<pubDate>Fri, 07 Feb 14 10:00:00 -0800</pubDate>
<guid>http://www.amateurprotagonist.com/a-90-git-vs-svn-in-netbeans-the-basics-what-not-to-do.php</guid>
</item>

<item>
<title>Moving From Your Website Email To Gmail</title>
<description>&lt;p&gt;If like me you have been using your website's default email client then you are either scared or crazy. You may also be crazy scared or scared crazy but that is for another article.&lt;/p&gt;
&lt;p&gt;I have had my AmateurProtagonist.com email for some time now, three years to be spot on. At first I used squirrel mail which handled HTML emails like how I handle assault inquires, I don't. After that my host was kind enough to upgrade me to round cube. Which honestly is really, really good.&lt;/p&gt;
&lt;p&gt;However I have an Android phone, for years I have been setting up my POP3 accounts left right and centre, I could tell you my default settings off by heart. I have a terrible memory yet I have had to setup my email so many times in so many places I might as well be a qualified expert in setting up my mail. Hell I should start charging my server host for handling their email troubleshooting.&lt;/p&gt;
&lt;p&gt;The problem is POP3 has some big draw backs. The main drawback is POP3 is dumb. Just like how owning an Apple product makes you a cunt, using POP3 makes you repeat yourself a hell of a lot.&lt;/p&gt;
&lt;p&gt;The difference between IMAP and POP3 is POP3 simply "pops" emails (see what I did there?) it just says "hey, here are all your emails, fucked if you have read them or not, I am just a POP3 server." However if you use IMAP your email is two way, if you read an email on your phone it is marked as read, delete an email on your tablet? It is deleted from the server (if you wish.)&lt;/p&gt;
&lt;p&gt;GoogleMail is perfect for handling multiple emails and if you own an Android device it will reduce your email clients to one, just Gmail.&lt;/p&gt;
&lt;p&gt;Here is a simple guide to making the right decision.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Step 1&lt;/strong&gt; - Login to your Gmail, now go make a coffee because you are a hard working son-of-a-bitch.
&lt;br/&gt;&lt;strong&gt;Step 2&lt;/strong&gt; - Click the giant cog (settings) on the top right of Gmail, make sure you select settings. If you fail at either of these steps I suggest the suicide for dummies books in your local library.  
&lt;br/&gt;&lt;strong&gt;Step 3&lt;/strong&gt; - This step is if you use mail clients, if you want to simply use Gmail app and Gmail in your browser skip this step.
&lt;br /&gt;Step 3.1 - To enable IMAP click on forwarding and POP/IMAP tab along the top.
&lt;br /&gt;Step 3.2 - Scroll down to the radio buttons regarding enabling IMAP. This may come as a shock to you but now you want to select enable and click save. Big shock I know.
&lt;br/&gt;&lt;strong&gt;Step 4&lt;/strong&gt; - Select Accounts from the tab along the top inside of settings.
&lt;br/&gt;&lt;strong&gt;Step 5&lt;/strong&gt; - Setup your email in the outgoing, the second section (labelled: send mail as) is where you want to go. Click Add an address you own.
&lt;br/&gt;&lt;strong&gt;Step 6&lt;/strong&gt; - Fill in your details and unselect treat as an alias. 
&lt;br/&gt;&lt;strong&gt;Step 7&lt;/strong&gt; - Select send from your own domain via SMTP. It will then ask you for your details to connect to the server. We do this step so you can still send emails from your own server than having the shitting sent from Gmail bullcrap. I mean come'on Gmail I love ya and all but I don't want people to see us together.
&lt;br/&gt;&lt;strong&gt;Step 8&lt;/strong&gt; - Your sending email should now be setup. Now Select check email using POP3  for getting your email from your own domain. This is under the label for send mail as.
&lt;br/&gt;&lt;strong&gt;Step 9&lt;/strong&gt; - This setup is very much like step 7 and should be extremely straight forward. I suggest ticking the box to leave the messages on the server just in case. It is always nice to have a backup. Be sure to keep an eye on your inbox size once a month or so, like I said it is just a nice backup incase you don't like Gmail or you find you are into homosexual relationships. Nothing against gay people, but if you don't like this new setup you may also enjoy a dick in your arse.
&lt;br/&gt;&lt;strong&gt;Step 10&lt;/strong&gt; - Enjoy the coffee you made in step 1 as your emails are been pulled down and you are now a demi god.&lt;/p&gt;
&lt;p&gt;It is really is that simple, for years I have been worried about linking my email with Gmail with fears of things going wrong and down time. This method means no interruption and no more fears about missing emails and no need to change any name servers or DNS's.&lt;/p&gt;
&lt;p&gt;I am really enjoying this new setup. Personally I use Gmail on my Android phone and then just have a tab open in my Google Chrome with Gmail open. Did I mention I had a Google tattoo on my dick?&lt;/p&gt;&lt;p&gt;Hope that helps you crazy scared crazies out there.&lt;/p&gt;</description>
<link>http://www.amateurprotagonist.com/a-89-moving-from-your-website-email-to-gmail.php</link>
<pubDate>Wed, 05 Feb 14 10:00:00 -0800</pubDate>
<guid>http://www.amateurprotagonist.com/a-89-moving-from-your-website-email-to-gmail.php</guid>
</item>

<item>
<title>Free Vanilla PVP No Mods 1.2 Minecraft Server</title>
<description>&lt;p&gt;You know what the problem with most 1.2 Minecraft Servers? Hell even most Minecraft Servers?&lt;/p&gt;
&lt;p&gt;They are scared of players using new features and having a good time. I don't want to join a server to find a list of do's and don'ts. If I want to go and set fire to every wooden house or steal the Minecraft diamonds out of all the chests, then who are they to stop me.&lt;/p&gt;
&lt;p&gt;We at Mein Kraft the greatest PVP Minecraft Server agree that this is fucking stupid.&lt;/p&gt;
&lt;p&gt;You know what would be better? A fair playing field where everyone can do anything, no mods, no rules, full PVP. This is the perfect 1.2 Minecraft Server.&lt;/p&gt;
&lt;p&gt;Our Minecraft Server is free to play, you don't have to give us anything unless you are feeling extra kind. Also we do not see a problem with griefing or PVP. If you want to make some new friends take them miles away and have them dig Minecraft diamonds before killing them, you can!&lt;/p&gt;
&lt;p&gt;Our 1.2 Minecraft Server does not have mods, our users do not have client side mods. This is the real raw Minecraft experience people where hooked on.&lt;/p&gt;
&lt;p&gt;We like pure, which is why all our server admins have killed all relatives that were not pure blooded minecraft fans.&lt;/p&gt;
&lt;p&gt;Go dig all day, go burn all day, go live in our 1.2 Minecraft Server all day. Our Minecraft Server is not here to make to do lists or even have you play how we want, our Minecraft Server is there so we can all have a laugh.&lt;/p&gt;
&lt;p&gt;Build that skyscraper, defending it during the night, defend it during the day from other players. Steal some gold, trick someone to drink lava, find a creeper and hug it.&lt;/p&gt;
&lt;p&gt;We believe in a pure Minecraft Server, so join our new 1.2 Minecraft Server today.&lt;/p&gt;
&lt;p style="text-align:center;"&gt;&lt;a href="http://minecraftviewer.com/servers/3879/view" target="_blank"&gt;&lt;img src="http://cache.multiplayuk.com/b/1-3879-560x95-1-FF5519-FFFFFF.png" alt="Server Banner" style="border:0;width:560px;height:95" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;strong&gt;English ~ British Minecraft 1.2 Server ~ Fuck Yeah&lt;/strong&gt;&lt;p&gt;
&lt;p&gt;Want more? Well we have reset our world just for Version 1.2 of Minecraft. So we have the latest and newest of everything. New villages untouched by anyone. New animals never seen by anyone. Be the very first in our Minecraft Server.&lt;/p&gt;
&lt;p&gt;We know it's never fun to join half way through, so now is a chance to be a founder. Be the core of our Minecraft Server. You could be the first to get Iron. You could be the first pimp with your gold armour. In our Minecraft Server you can truely be king.&lt;/p&gt;
&lt;p&gt;So join our forums or just simply jump straight into our MineCraft Server. I'll see you there.&lt;/p&gt;
&lt;p&gt;So if you see SirProtagonist, run as fast as you can.&lt;/p&gt;</description>
<link>http://www.amateurprotagonist.com/a-88-free-vanilla-pvp-no-mods-one-two-minecraft-server.php</link>
<pubDate>Sat, 01 Feb 14 01:00:00 -0800</pubDate>
<guid>http://www.amateurprotagonist.com/a-88-free-vanilla-pvp-no-mods-one-two-minecraft-server.php</guid>
</item>

<item>
<title>Top Six Worst Things About Living In Another Country</title>
<description>&lt;p&gt;&lt;strong&gt;6. You Are The One With The Accent&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;So you stroll into your local Subway and walk up to the counter. The pretty lady on the other side of the mystical screen guard asks what you want with a seductive wink. &lt;/p&gt;
&lt;p&gt;"White foot long please." You reply with your British charm oozing out of you. &lt;br /&gt;
"Sure, what bread do you want."&lt;br /&gt;
"Erm I am pretty sure I told you. "White please."&lt;br /&gt;
"Oh, I am sorry I couldn't understand your accent. I thought you said one foot long." You both laugh as you make a mental note to never go back.&lt;/p&gt;
&lt;p&gt;This happened to me here in Australia. When in England I simply had an English accent. Now I am in Australia I have a very strong cockney accent and sound just like Jimmy Carr.&lt;/p&gt;
&lt;p style="text-align:center;"&gt;&lt;img src="http://2.bp.blogspot.com/_u6ydwQ3W57g/S-LVdk0PvOI/AAAAAAAAAHI/69H0fFsL3Ms/s1600/Jimmy_Carr_09.jpg" height="300px" alt="Jimmy Carr Eating Someones Soul" title="Jimmy Carr Eating Someones Soul" /&gt;&lt;br /&gt;Not Me&lt;/p&gt;
&lt;p&gt;Now you are the one from faraway lands with the strange twang. This can come as a bigger shock than you would think. For one you will be repeating yourself a lot more and trying to pick up the local accent just so people hear you the first time.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;5. You Lose The Ability To Detect Accents&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Before I came to Australia I could pick up accents very well. To the point I could place a person in England to their stereotypical region perfectly almost every time. Now I fail to even pick up a plain British accent. &lt;/p&gt;
&lt;p&gt;The problem is an accent that is the same as yours is not an accent, it is how you are &lt;i&gt;meant&lt;/i&gt; to talk. You need to program yourself to listen for the normal to pick up the same accent. Four months I have been living in Australia and everyone sounds strange to me. &lt;/p&gt;
&lt;p style="text-align:center;"&gt;&lt;img src="http://upload.wikimedia.org/wikipedia/commons/thumb/0/0d/Kangaroo_and_joey03.jpg/220px-Kangaroo_and_joey03.jpg" height="300px" alt="Sterotypical Australian Local" title="Sterotypical Australian Local" /&gt;&lt;br /&gt;So Where In Iceland You From?&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;4. Your Common Knowledge Is Worthless&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Everything you know about where you live is now wrong. Everything you say to anyone is now wrong.  The problem with different countries is everyone has their own interpretation. For example in England it is rude to speak to a stranger. People keep to themselves. However in other countries it is rude to not acknowledge someone.&lt;/p&gt;
&lt;p&gt;If you believe shaking with your right hand is common knowledge, you are wrong. Some countries you shake with your left and you look like a complete fool.&lt;/p&gt;
&lt;p style="text-align:center;"&gt;&lt;img src="http://www.alienaffect.com/wp-content/uploads/2010/04/roswell_meeting.jpg" height="300px" alt="That Awkward Greeting" title="That Awkward Greeting" /&gt;&lt;br /&gt;Sniff my what?&lt;/p&gt;
&lt;p&gt;You are better off assuming everything is wrong and asking too many questions.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;3. No One Had The Childhood You Had&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;What do you mean you didn't make mud pies as a children when it would rain? Probably because it is always raining in England. Oh well you really missed out.&lt;/p&gt;
&lt;p&gt;Places are different and the culture is different, everyone knows this as a fact. What you might not know is everything you loved about your childhood is different and makes no sense to anyone else.&lt;/p&gt;
&lt;p&gt;It is best to avoid talking about your childhood and what you go up to as you can easily sound extremely offensive without knowing what you done wrong.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;2. Normal Is Totally Fucking Weird On A Whole New Scale&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;When it was snowing in England I was in 30 degrees C. The problem with this is it is normal. No one is sweating, no one is complaining because everyone (but me) knows it is only going to get worse.&lt;/p&gt;
&lt;p&gt;Everything you think is strange and out of place is more often than not completely normal. Again asking too many questions can help you out here. Simply asking if the weather is always like this at this time of year can save you a ton of awkward conversations.&lt;/p&gt;
&lt;p&gt;Also remember everything you know as normal is totally fucking weird. For example I never got a driver licence because I lived close to work and in England public transport is not the worst thing in the world (underground Kings Cross to the O2 in 20 minutes.) Problem here is everyone in Australia has a licence, simply because you have to.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;1. No Understands Your Humour So Shut Up&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Turns out humour is not only subjective but it is also dependent on where you are from. Sometimes your flavour of humour is extremely offensive or makes no sense. Worse your type of humour might be seen as childish! (unless that was the point.)&lt;/p&gt;
&lt;p style="text-align:center;"&gt;&lt;img src="http://images.travelpod.com/users/chunhin/2.1283288481.baked-chicken-and-potato-too-much-oil-xd.jpg" height="300px" alt="Do I Look Like I Want More Fucking Potatos?" title="Do I Look Like I Want More Fucking Potatos?" /&gt;&lt;br /&gt;I would fucking love more Potato thanks!&lt;/p&gt;
&lt;p&gt;So you need to be extra careful who you joke around with. To the point you might find the first weeks of meeting someone new to tell them I am joking after everything you say. It's OK though, just watch some old British films and comedies to cure that home sickness!&lt;/p&gt;</description>
<link>http://www.amateurprotagonist.com/a-87-top-six-worst-things-about-living-in-another-country.php</link>
<pubDate>Wed, 01 Jan 14 10:00:00 -0800</pubDate>
<guid>http://www.amateurprotagonist.com/a-87-top-six-worst-things-about-living-in-another-country.php</guid>
</item>

<item>
<title>Minecraft Sever - The Best PVP and No Rules</title>
<description>&lt;p&gt;So you are chilling with friends, when one of them pipes up. "Hey guys lets go play some Minecraft and have some fun." So you go on the internet and look up some Minecraft Servers. Some you need to sign up to, others have a whitelist. You even find two where you need to pay the owner. All the rest have stupid amounts of mods which turn their minecraft server in some FPS game.&lt;/p&gt;
&lt;p&gt;The point is good servers are hard to come by. Sometimes you just want to have some fun doing what you love in Minecraft, but you want to do it online with friends.&lt;/p&gt;
&lt;p&gt;Our Minecraft Server is designed to run the latest vanillia version of Minecraft. We don't use any mods and we don't expect you to use any mods. This is the fun and joy of single player Minecraft with friends on a Minecraft Server.&lt;/p&gt;
&lt;p&gt;So here is why our Minecraft Server is the best PVP Server for Minecraft ever.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;We don't use any mods and we do not allow mods. Everyone has a fair chance as the next guy.&lt;/li&gt;
&lt;li&gt;There are no rules, if you want to chase your friend to the ends of the earth and push him off stealing his stuff. You can.&lt;/li&gt;
&lt;li&gt;We allow griefing. The world is open to do with it what you desire. You want to turn Minecraft into a fire place, you can.&lt;/li&gt;
&lt;li&gt;No whitelist, not now, not ever. We believe everyone is welcome no matter how active.&lt;/li&gt;
&lt;li&gt;Only 8 slots. By keeping the slots small we can devote more resources to keeping the game fast and lag free.&lt;/li&gt;
&lt;li&gt;A British owned Minecraft Server&lt;/li&gt;
&lt;li&gt;We believe in fun. Do what you want how you want. No one tells you how to play Minecraft, so why should we?&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Also the world has just been reset. So now is the perfect time to make your mark on the world. Build massive buildings to the sky or tunnel through the ground to find all them tasty Minecraft diamonds.&lt;/p&gt;
&lt;p style="text-align:center;"&gt;&lt;a href="http://minecraftviewer.com/servers/3879/view" target="_blank"&gt;&lt;img src="http://cache.multiplayuk.com/b/1-3879-560x95-1-FF5519-FFFFFF.png" alt="Server Banner" style="border:0;width:560px;height:95" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;So join in the fun and bring your friends. Careful not to make too many enimies...&lt;/p&gt;</description>
<link>http://www.amateurprotagonist.com/a-86-minecraft-sever-the-best-pvp-and-no-rules.php</link>
<pubDate>Mon, 21 Oct 13 10:00:00 -0700</pubDate>
<guid>http://www.amateurprotagonist.com/a-86-minecraft-sever-the-best-pvp-and-no-rules.php</guid>
</item>

<item>
<title>Minecraft Server 1.1 No Whitelist Free To Play Online Now</title>
<description>&lt;p&gt;The latest and greatest in Minecraft 1.1 Servers is back up and running. We here at Mein Kraft pride ourselves on full on PVP action with no rules. You know what made the single player Minecraft so much fun? You could do anything you wanted.&lt;/p&gt;
&lt;p&gt;We have but one rule, keep it fair. No mods allowed. If everyone has a fair playing field then they can do what they want. For example if you find some amazing sand built house on the beach you can move in or flood the place. What you do is completely up to you.&lt;/p&gt;
&lt;p&gt;Finally a Minecraft Server where you and your friends can do what you want and muck around, we keep our spaces limited to reduce lag and so you don�t get hoards of random people joining then leaving.&lt;/p&gt;
&lt;p&gt;Our Minecraft Server is running the latest 1.1 Minecraft Vanilla edition. We don�t have a whitelist so anyone can hop on and have a go. If you are interested in learning more or want to be heard by the admins you can use the forums right here! (Link on the top of the page, Mein Kraft.) &lt;/p&gt;
&lt;p&gt;So be sure to save us in your top servers, why? Because we don�t require you to give us money, or put you through some bullshit sign up process, we always have the latest version running so little or no down time and we want you to enjoy Minecraft back before you could play it online. To enjoy them amazing moments with friends as well as making a few new ones.&lt;/p&gt;
&lt;p&gt;Then killing the new friends, burning down the home you built together and running off with their loot. It�s a tough world out there so come join us.&lt;/p&gt;
&lt;p&gt;&lt;center&gt;&lt;a href="http://minecraftviewer.com/servers/3879/view" target="_blank"&gt;&lt;img src="http://cache.multiplayuk.com/b/1-3879-560x95-1-FF5519-FFFFFF.png" alt="Server Banner" style="border:0;width:560px;height:95" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;b&gt;Minecraft Server, Always Awesome&lt;/b&gt;&lt;/center&gt;&lt;/p&gt;
&lt;p&gt;Also we always seem to have a problem with people pretending to be Admins. Here is a quick tip, ask to be kicked. When kicked you are told and discounted from the server, you can join straight back with no problems. A real Admin is happy to kick you no questions asked.&lt;/p&gt;
&lt;p&gt;So go punch some Minecraft Server Blocks!&lt;/p&gt;</description>
<link>http://www.amateurprotagonist.com/a-85-minecraft-server-one-one-no-whitelist-free-to-play-online-now.php</link>
<pubDate>Sun, 20 Oct 13 10:00:00 -0700</pubDate>
<guid>http://www.amateurprotagonist.com/a-85-minecraft-server-one-one-no-whitelist-free-to-play-online-now.php</guid>
</item>

<item>
<title>Make Your Online Shopping Experience Addictive</title>
<description>&lt;p&gt;Many different online companies try heaps of techniques to get you to buy again from them. It is important I say again. You need to remember there are two methods when it comes to increasing online revenue (They may apply offline too but that isn't my gig.)&lt;/p&gt;
&lt;p&gt;Increase the number of customers or increasing the average spend per customer. This is being very black and white, for example adding offers to get someone to buy more at once falls into the later category as it is about increasing the amount people spend, whereas mass indirect advertising would be increasing number of customers (However an email campaign to existing customers falls into increasing average spend).&lt;/p&gt;
&lt;p&gt;I will be talking about making your customer spend more and turn into repeat business. If you have a steady conversion of around 3-2% and get over 1,500 customers on your site a day, then increasing average spend should be your focus. If you are not getting that number of customers you need more business as your figures can change too much, thus harder to spot trends, alternatively if you do not have a good stable conversion to monitor changes by you need to think about your website's flow and why people are dropping off the cart.&lt;/p&gt;
&lt;p&gt;We are going to talk about an interesting study with is commonly known as "BF Skinner's Box". Basically rewarding an action, in the study a rat was reward with food for pressing a button. This is the basic idea behind action reward.&lt;/p&gt;
&lt;p&gt;What happens when a customer adds something to the cart? Are they rewarded? Here is an interesting idea for you. Let's say all your orders get free shipping, you have a few adverts around the website telling them so. However in my personal experience most people over look such large important adverts unless they wanted to know about shipping. Some people want to know the shipping before they get to the cart so it is important to publicise your costs. What if when your customer adds something to the cart you tell them they have now qualified for free shipping. So if you have an overlay there is a banner image before the confirmation, telling them they qualify for free shipping, or if they go straight to the basket a larger full width banner with the same information.&lt;/p&gt;
&lt;p&gt;What is important here is the customer has received a prize. They did not have free shipping before, now with these items they do. Now in the example I just gave, this is more geared towards increasing your conversion rate, however it is the underlay for all examples and ideas I will give, action and reward.&lt;/p&gt;
&lt;p&gt;People like to achieve things, personal achievements make a person feel good and unique. There is a fine line between every time someone clicks a link they get an award to spending ten times the average amount in one go. You need a balance between possible and not common.&lt;/p&gt;
&lt;p&gt;Let's say you give free shipping on order over �50. If you have Google Analytics linked in with your ecommerce store you can easily find out your average customer spend. Your best bet is average spend is �52 or something like that. So what do you do? You raise the free shipping to �60, basically increased it by 10-20% with hopes of your average spend increasing.&lt;/p&gt;
&lt;p&gt;Now it is not just good enough to keep on pushing that number up. You need to reward people for getting to your free shipping. Products that are over the free shipping threshold need to have that displayed, clearly. Make a big deal that "Buying this products means free shipping anywhere in the United Kingdom!" For products that do not get free shipping simply show the shipping cost are per normal. However I want you to change the basket page. Work out the difference between their cart total and the free shipping threshold and tell them. "Spend another $7.30 and get free 2 working days shipping." Now you have this displayed you need to make getting that reward as easy as possible. A good idea is to then show related products under this notice. Alternatively, depending on your market, you could show more expensive alternative products that do qualify for free shipping. &lt;/p&gt;
&lt;p&gt;Let's move onto another idea as we have covered that one a lot. Reward points, now I am not talking about the bullshit every �10 you spend you get one point, get a thousand points and you can have a free yo-yo. I means every item has a custom amount of reward points. When your account gets to say 300 points your next order gets free shipping. Leave a review for an extra point, leave a video review, if approved gets 100 points. Get your users to treat your website like a computer game. Actions equal points. Buying more than five items? Double points on this order. The best way to use this technique is to only tell them about the basics to getting points. Here is my example.&lt;/p&gt;
&lt;p&gt;Buy this shirt and get 150 XP. Leave a review of this shirt and receive 20 XP. To get to level 2 you need 190 XP, your award for getting to level 2 is free shipping.&lt;/p&gt;
&lt;p&gt;In this example the points are XP and getting a set amount of XP levels the customer up. Each level comes with perks that are exclusive to that level. Also note that simply buying the shirt and going back to leave a review will leave the customer just short of the next level. This is a rough idea that can easily be improved based on your market. Let's say you have a website that sells watches, you don't really want to advertise points and repeat business can be extremely hard. This idea is far more complex than the free shipping and is also limited to what markets would react well to it. However you can use the principle in other ways.&lt;/p&gt;
&lt;p&gt;Every customer has a customer level. This level can be standard, regular, loyal and executive. You need a number of points to get to each one, 0 (simply register), 3, 5 and 20 respectively. If you place an order you get a point, if you click a link from an email campaign (the first time) and you are signed in you get another point. If you place an order over �70 you get a point. A customer is told these simple rules to their customer level. A customer can very easily get from standard to regular within a single order, their next order will easily see them level up again, however each level from that point on will get a little harder. The idea is it starts of stupidly easy but slowly gets harder. Now how do you use this? Well the highest level will get emails and offers of all levels however the lowest only gets the basic email. If you are a loyal customer you may get an email that says for loyal customer level's only etc. Also you can one day send them a free small gift in the post and simply say free gift for loyal customers. This idea is not so much to make them spend more as a really good reason for you to stay in contact with your customer. We have some stock we need to sell this week, let's email everyone. Now becomes we have some stock that needs to sell this week, target these customers only and tell them they have 4 days left. Then 2 days later send an email to everyone including the selected levels from before and tell them they have 2 days left. If you make it clear in both emails that the selected level's got it first (even better if you can show the stock has decreased) it will motivate customers to act quicker to your deals and to give your marketing emails more attention.&lt;/p&gt;
&lt;p&gt;Hopefully this gives you some ideas on how to increase your customers spend. I might write another piece depending on the reaction to this one. If not I will move on top another topic. Maybe another list of websites doing things I hate. As always any questions about anything I have written, just use the comment section or get directly in contact!&lt;/p&gt;</description>
<link>http://www.amateurprotagonist.com/a-84-make-your-online-shopping-experience-addictive.php</link>
<pubDate>Sat, 19 Oct 13 10:00:00 -0700</pubDate>
<guid>http://www.amateurprotagonist.com/a-84-make-your-online-shopping-experience-addictive.php</guid>
</item>

<item>
<title>Top Five Sins Of Mobile Websites</title>
<description>&lt;p&gt;Every day more and more website join the mobile revolution. Sometimes you will be having a quick search on your phone for the closest kebab shop only to find they have a website, which when opened has a mobile optimised interface (this has never happened to me but should.) Or maybe you where booking tickets and couldn't get to a computer.&lt;/p&gt;
&lt;p&gt;It is the same story everywhere, you get a sudden surprise when yet another website creates a special mobile experience. Which don't get me wrong is a nice thing, just so many people get it so very wrong. So here are my top five sins of mobile websites.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;5. Look At Our Special Mobile Website&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Now when I do a search on Google for the latest stock information on peanut butter and click on the first link, I expect to see what I was looking for. This has long been the accepted convention and is the correct way if you ask me. &lt;/p&gt;
&lt;p&gt;So why has it suddenly been ok for websites to detect you are on a mobile device, take to you the special mobile skin and then redirect you to the home page. This just pisses me off to no end. Normally problems I talk about can be pretty complex to solve, however this is just pure laziness.&lt;/p&gt;
&lt;p&gt;You designed the mobile skin and for some strange unbeknown reason said to yourself that they had to see the home page so they understand what is going on. Even better if you have a little sign that says �You are now using our mobile layout." Thanks Mr Website for a second there I thought you had a really strange resolution and button layout.&lt;/p&gt;
&lt;p&gt;It may be hard for you to understand but even on a mobile device I want to get stuff done, quickly. If anything I want to get it done quicker on a mobile device than a desktop. I will see you have a special mobile skin and appreciate the work you put in as I read / look / buy the said thing I came to you for. If you take me to your home page I will leave.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;4. This Layout Is So Special You Get Nothing Else And Like It&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;So I have your tasty nice mobile layout. I am enjoying using your service and browsing your site. Let's say I want to buy the product I am looking for, or maybe I want to email this product to a friend. Not everyone has but I have, accepted that sometimes stuff doesn't work on the mobile platform and is normal website only feature. I am ok with that, really I am.&lt;/p&gt;
&lt;p&gt;I am not ok with you not giving me an option to go to your normal website. If you are going to have a mobile website here is the top feature you should have no matter what. A button that says go to our desktop website and a button on your normal website to go to the mobile one.&lt;/p&gt;
&lt;p&gt;Granted this is a technical issue and is only achievable if you program your website to make use of a mobile session or cookie and track the state. Basically you are always ready to show a page as mobile or desktop at all times, if the mobile is not available it will show a friendly error telling you to try the desktop version if you need to. Also don't just show the option to change at errors. At all times I should be able to change in between the two formats with minimal fuss.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;3. Look At My Featureless Limp Mobile Website&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Let's say you run a burger van and you have a website to tell local businesses what the specials are that day. One day someone says �Why don't you have a mobile version because I am slightly unhappy with your current service and I am related to a horse." Ok maybe not the horse bit. Either way you go off and get a mobile website designed to run next to your normal website. &lt;/p&gt;
&lt;p&gt;Your website looks great apart from one thing. You cannot view the daily specials, which was the whole point of the website originally. Sure you can sign up to the newsletter but do you honestly believe I just wanted to get your bi-monthly emails so badly I would load your site up on my phone and be happy that is all I can do?&lt;/p&gt;
&lt;p&gt;This sin comes hand in hand with no being able to switch back to the desktop website. If your mobile platform removes what can easily be considered core functionality with no way to get that functionality on a mobile device then you may want to reconsider even getting or having a mobile website.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;2. The Slow Loading I Have No Clue Mobile Website&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Every now and again someone will commit a crime against humanity, creating a highly specialised website without thinking about why it is specialised is one of them crimes. I have stubbed my toes, I have been kicked in the balls, I have even had staples in my head, yet every time I see a slow loading graphic intensive mobile website I shudder and die a little on the inside.&lt;/p&gt;
&lt;p&gt;Mobile websites, believe it or not, are designed for mobile devices. Let says for arguments sake that if you are on a mobile device you are more likely to be running 2G/3G/4G and not broadband speeds. Let's say that you are billed based on your data usage and bandwidth used. This may come as a shock but that is in fact not a hypothetic situation but real life.&lt;/p&gt;
&lt;p&gt;There are two reasons for creating a mobile website, one to optimise your website to look it's best on a mobile device so no wasted white space, forms are nice and big, easy to use navigation for someone's finger. Secondly so you can cut out any large slowly loading images that could hold someone up if they are not on an ADSL/broadband connection. If the website loads quickly even on a 2G connection you have a major advantage over your competition. Even a very basic display with core information and then the page they were looking for with a button to go to the desktop version would be perfect. You straight away give them what they are looking for, contact details if they need help urgently, some basic functionality if they need to browse the site and most important of all a way back to the desktop version if they need full functionality and accept it will be a tad strange on a mobile device.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;1. The Mobile Website That Is A Completely Different Website&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;This is easily the top sin and has happened to me not that long ago. The major issue here is when your mobile website and normal website are running completely different and unrelated databases. What I mean is two websites that are basically the same (one mobile, one normal) however if you register on one your login details do not work on the other because they are running different databases and your details only exist on the first instance.&lt;/p&gt;
&lt;p&gt;My personal experience with this was attempting to buy some movie tickets online, due to us being slow on agreeing a time it came down to me in a bar at lunch to book them. So out comes my phone and I load up the website. Much to my surprise they have a very good nice mobile website with full functionality.  I am able to sign up and get everything sorted bar the payment due to a redirect error that would be fine on a desktop but not a mobile device, so poor testing on their part but basically everything was done so I was happy to wait till I got home.&lt;/p&gt;
&lt;p&gt;I got home loaded up the laptop and accessed the website, their normal website is just as nice and all the colours and styles are in line with the mobile website. I go to login only to find it did not work. So I opened my emails where I had an email with my email and even my password and a link to the login page, still nothing. I tried forgotten password only to find my email did not exist on their system, despite having an email from them.&lt;/p&gt;
&lt;p&gt;I called up and found out I would have to register again as their data servers only sync every week. EVERY WEEK. So in about three days time I will be on their system twice with identical records. All because they did not believe someone would go from one device to another within a weeks time. Also this is not my account did not get created correctly the first time around as my account was valid and functional. I could not enter a billing address without completing their labyrinth questionnaire first.&lt;/p&gt;
&lt;p&gt;Maybe next time they will run their mobile and desktop website off the same database and save everyone a whole heap of trouble.&lt;/p&gt;</description>
<link>http://www.amateurprotagonist.com/a-83-top-five-sins-of-mobile-websites.php</link>
<pubDate>Fri, 18 Oct 13 10:00:00 -0700</pubDate>
<guid>http://www.amateurprotagonist.com/a-83-top-five-sins-of-mobile-websites.php</guid>
</item>

<item>
<title>No White List No Mods Minecraft Server 1.0.1 No Rules</title>
<description>&lt;p&gt;The latest and greated Minecraft Server is now open again. Due to some changes on our end we were a little behind the crowd for once. However we have once again go our server ready for all you loyal Minecraft fans.&lt;/p&gt;
&lt;p&gt;Minecraft is officially out of Beta, it is now a finished product to be enjoyed by the masses. We pay for our server with our own money so you can enjoy this great game. So what do we ask in return to be on our Minecraft Server? It is dead simple. No mods, none. We do not have any mods on our server and we don't want you to have any mods!&lt;/p&gt;
&lt;p&gt;So don't wait around for us to get you to join, just paste in our IP (shown below in the banner) and away you go to the amazing world of Minecraft via your friendly friends at Mein Kraft the greatest PVP no rules server of all time!&lt;/p&gt;
&lt;p&gt;&lt;center&gt;&lt;a href="http://minecraftviewer.com/servers/3879/view" target="_blank"&gt;&lt;img src="http://cache.multiplayuk.com/b/1-3879-560x95-1-FF5519-FFFFFF.png" alt="Server Banner" style="border:0;width:560px;height:95" /&gt;&lt;/a&gt;&lt;/center&gt;&lt;/p&gt;
&lt;p&gt;So there we have it the latest Minecraft 1.0.1 Server ready and waiting for you. Our server is open 24/7 and is based in London England. Just in case you did not know where London is...&lt;/p&gt;
&lt;p&gt;We have a no rules policy as well, so you can grief, you can mine, you can attack. As long as you are not using mods and it is an even playing field for all then we allow it. So our server is open to you! Invite your friends and make some new ones!&lt;/p&gt;
&lt;p&gt;Our Minecraft Server does feature Administrators as well. Look on our forums for more information about them. If you are ever unsure if someone is an Administrator ask them to kick you, being kick removes you from the server but you can join right back in. Plus the Admins love to kick people.&lt;/p&gt;
&lt;p&gt;So why do you want in on our Mien Kraft Minecraft Server? Well for one we offer no rules fun, we offer amazing awesome enjoyment, we also don't tie you into anything. You play when you want and we pay for the server. So come and enjoy before we have a change of heart and turn on the whitelist :P Don't worry that is... Slightly unlikely.&lt;/p&gt;</description>
<link>http://www.amateurprotagonist.com/a-82-no-white-list-no-mods-minecraft-server-one-zero-one-no-rules.php</link>
<pubDate>Thu, 17 Oct 13 10:00:00 -0700</pubDate>
<guid>http://www.amateurprotagonist.com/a-82-no-white-list-no-mods-minecraft-server-one-zero-one-no-rules.php</guid>
</item>

<item>
<title>New Yoga Site And Relaxing With Life</title>
<description>&lt;p&gt;I have finished my latest freelance work for Blue Sky Yoga (link at the bottom I promise!) and it has gotten me thinking. I have never been a man to stop and meditate. If I am honest I am damn right against it really. It boils my blood when I am told to "get in touch with my spiritual side" never really known why it annoys me so but it does.&lt;/p&gt;
&lt;p&gt;After finishing Blue Sky Yoga I got it all up and running, keeping a close eye for how the new owner is liking it, yet at no point have I really thought about yoga. I mean I know what it is and why people do it. I mean really think about yoga, as in go out and do some yoga and try to not only see but feel why people do it.&lt;/p&gt;
&lt;p&gt;My life is currently going through some big changes, to the point anyone I talk to I fear I am simply complaining about everything that is happening. I have for the past three hours been sorting bank accounts, waiting for emails, trying to update this websites code and wondering about work tomorrow. I have always been someone who would be doing something and keep on going than to stop. I do not enjoy loose ends and it bugs me to stop and start.&lt;/p&gt;
&lt;p&gt;Sadly this means I will start a project and work until I can't or just hate what I am doing. This is often the case with my own personal projects. I will often get half way through and then simply not be happy with it and thus not want to return to it. In the past three months I have done a total of 5 website designs and back end programming. Yet at no point have I stopped to reflect on any work once completed. I simply learn while working and then deem it completely unless the client has more suggestions or wants changes. I often work to the tune of "Once completed you should never revisit this." This has served me through over three years of being developer. The idea that I should get it right the first time it is written off, then for the next week iron out bugs and deem it complete.&lt;/p&gt;
&lt;p&gt;I have no idea how important reflect of your own work is as I have never done it. With loads of changes in my life, many of which I am completely in the dark about, I have to wonder if I should also change how I approach my work life. I have always been overly dedicated to my job, some people say that is character others say it is because I am a Leo. Either way taking a step back is not something I enjoy or ever aim to do.&lt;/p&gt;
&lt;p&gt;Maybe now is the time to reflect on what I have done in the UK before I leave for Australia. Running servers, maintaining e-commerce websites, online support, re-designing/re-programming per clients spec, software/hardware support and even a little business management, sometimes I wonder what is more important a CV with achievements and driven aspirations or the ability to know when to slow down. Maybe the knowledge of when to stop comes with age.&lt;/p&gt;
&lt;p&gt;I have never tried yoga and I guess thinking about it I don't understand what it truly means to be at peace. I wish Blue Sky Yoga The best of luck with their new website which I hear has already attracted new clients. Please do visit &lt;a href="http://www.blueskyyoga.co.uk" title="Blue Sky Yoga"&gt;Blue Sky Yoga&lt;/a&gt; and hopefully you can find time to slow down.&lt;/p&gt;</description>
<link>http://www.amateurprotagonist.com/a-81-new-yoga-site-and-relaxing-with-life.php</link>
<pubDate>Wed, 16 Oct 13 10:00:00 -0700</pubDate>
<guid>http://www.amateurprotagonist.com/a-81-new-yoga-site-and-relaxing-with-life.php</guid>
</item>

<item>
<title>Leaving Windows Behind - A Tale Of Struggle</title>
<description>&lt;p&gt;If there is one aspect of my day to day computing habits I would like to change it would be my choice of operating systems. For a long time now I have yearned to move over to Ubuntu (having tried other Linux distributions I am simply not comfortable enough yet.) Yet I have never made the full transition to Linux, I always keep my main computer Windows.&lt;/p&gt;
&lt;p&gt;Now I am not talking about dual booting here either, I mean full on leave Windows behind. There is a list of reasons why I want to do this. Firstly I believe truly believe I will come out a better programmer by having a more in depth knowledge of Linux, I whole heartily believe that. I also know that personally I learn by working with a product day and day out. I also want to increase my general knowledge of computers. Troubleshooting a problem in SUSE I learnt more than days' worth of trouble shooting on a Windows machine. The reason really comes down to Windows generally being a more polished system in my eyes (That is a personal opinion and it may be wrong, however I strongly feel that is the reason.)&lt;/p&gt;
&lt;p&gt;I like the idea behind the flexibility and freedom that Linux offers; do I have a requirement for that freedom? No. Do I have a requirement to develop on mobile devises? No, but I always insist on getting developer focused products. In my mind to be a better programmer and developer I need to immerse myself in as much language and day to day running's of programs as possible.&lt;/p&gt;
&lt;p&gt;I have no hatred for Microsoft or their products. I have tried out the developer preview of Windows 8 and it is simply amazing. I love what they are doing and fully support what they want to achieve. Looks how Android is merging tablets and phones. Now think about all devices, mobiles, tablets, computers and consoles that is what Microsoft wants to achieve. Complete synchronicity between all electronic devices. I believe that to be a beautiful dream. &lt;/p&gt;
&lt;p&gt;I am a .NET developer and normally find myself working on IIS. That said I can still do all of that from a Linux machine. Turning your computer into a localhost server? Just as easy on Linux as Microsoft, so what is really stopping me?&lt;/p&gt;
&lt;p&gt;To be extremely blunt and simple, fear. I fear what I could miss; I fear I could lose out and become stubborn in my ways. What if I am required to use a product and I can't on Linux? Prime example Visual Studio, realistically speaking you should always develop on the OS you are developing for, simply because it makes fucking sense. Which ties me into my greatest fear, becoming a Linux/PHP only developer, why should I dual boot to work on .NET for Windows? Why not just use Windows then? I do not enjoy dual booting, having multiple machines, having multi copies in different locations. I am an extremely tidy person when it comes to my virtual storage and use. Different browsers have set uses and locations, everything is in place. Why should I go and do that twice, one for each OS on the machine.&lt;/p&gt;
&lt;p&gt;Programs and games, games not so much, however sometimes it is not good enough to simply get an "Alternative" prime example, Photoshop and GIMP, how people even compare the two amazes me. I am sure you can do the same quick jobs in both but the ease and pleasure will always for me sit in Photoshop. The point I am making is sometimes the best programs and tools for the job are simply not on Linux (That said it does happen the other way around however that rarely impacts me.)&lt;/p&gt;
&lt;p&gt;Maybe I should move away from Windows and .NET but then my skill base will shrink. Linux and PHP developers seem to be popping up all over the place with dirt cheap rates. The only way I can compete is by going into .NET with my past experience. The jobs for .NET seem to pay more and offer more longevity whereas the PHP based roles seem more expendable. &lt;/p&gt;
&lt;p&gt;One day I hope to move to Linux and truly gain a grasp of computing and at more core level. However until then I guess I will stick to getting my head around networking or some other code.&lt;/p&gt;</description>
<link>http://www.amateurprotagonist.com/a-80-leaving-windows-behind-a-tale-of-struggle.php</link>
<pubDate>Tue, 15 Oct 13 10:00:00 -0700</pubDate>
<guid>http://www.amateurprotagonist.com/a-80-leaving-windows-behind-a-tale-of-struggle.php</guid>
</item>

<item>
<title>Google Nexus One And Android 4.0 Ice Cream Sandwich</title>
<description>&lt;p&gt;It has now been announced by Google that Android 4.0 Ice Cream Sandwich will not be coming out on the Google Nexus One. Now if you have read my articles you will know I own a Google Nexus One.&lt;/p&gt;
&lt;p&gt;I originally had my Nexus One with Vodafone, as such Vodafone intercepted my updates and made them shit. About one month ago I rooted by Nexus One to run off the Google Updates and take Vodafone out the loop. Straight away my auto suggest was fixed but the phone was a little slower.&lt;/p&gt;
&lt;p&gt;I have noticed my touch screen has degraded over time, this is a two year old phone and it is starting to show its age. About two days ago I was an extremely happy man. It was announced  that the Google Nexus One will get the Android 4.0 Ice Cream Sandwich! However today I found out that the Google top brass said that the Google Nexus One will &lt;b&gt;NOT&lt;/b&gt; be updates to version 4.0.&lt;/p&gt;
&lt;p&gt;This comes as a shock to me as someone has already made a port for the Nexus S (yes Android 4.0 Ice Cream Sandwich is already coming out on the Nexus S, however some people don't like to wait.) The Nexus S was not a major improvement upon the Nexus One.&lt;/p&gt;
&lt;p&gt;There was a video of someone running Android 4.0 Ice Cream Sandwich on the Nexus One, however it was a pre-release, it was running pretty slow. Honestly my Google Nexus One is running Android 2.3.6 and it is not the smoothest experience. &lt;/p&gt;
&lt;p&gt;I brought the Google Nexus One because I wanted to push the Google phones and get the developer features. Yet time and time again I have been punished. At first it seemed Google was a sweet lover now Google is just a progressive rapist. Maybe a little extreme, however my point is valid. Google has really shit on the original investors in their technologies. I will get the Android 4.0 Ice Cream Sandwich when someone ports it to the Nexus One regardless if they advise it or not.&lt;/p&gt;
&lt;p&gt;Sadly due to changes in my personal life I will be unable to get my upgrade. Instead I am having to cancel my phone contract and keep my phone. Whereas the people who waited a little longer they got different phones with lower contracts and now have the Samsung Galaxy S II, which will be getting the Android 4.0 Ice Cream Sandwich.&lt;/p&gt;
&lt;p&gt;In the end of the day I love the Android OS and have sat down and looked at getting a Chromebook (my boss has one and it is amazing.) Just like my article about the Google Merchant Center, Google seems to be getting more and more reckless with their actions.&lt;/p&gt;
&lt;p&gt;Don't get me started on the changes Google are making with Analytics and their HTTPS search, or with their government transparency, it is sad that Google has made the decision to display that data than the governments themselves.  Anyways I hope no one else gets a kick in the balls about the Android 4.0 Ice Cream Sandwich update.&lt;/p&gt;</description>
<link>http://www.amateurprotagonist.com/a-79-google-nexus-one-and-android-four-ice-cream-sandwich.php</link>
<pubDate>Mon, 14 Oct 13 10:00:00 -0700</pubDate>
<guid>http://www.amateurprotagonist.com/a-79-google-nexus-one-and-android-four-ice-cream-sandwich.php</guid>
</item>

<item>
<title>MineCon London 2011 Minecraft - Show Them Yanks How To Party</title>
<description>&lt;p&gt;MineCon London 2011. Feeling left out because you can't go to America and attend MineCon? Well we were too. I mean who cares about some fucking awesome capes anyways? However if you want MineCon and have a free Halloween then you can join us in our very own, not related to Mojang, MineCon London 2011!&lt;/p&gt;
&lt;p&gt;From the 29th of October to the 31st of October the MeinKraft server admins will be kicking back in London. Drinking and crazy parties are in order. We are not yet sure how to update where we will be as we are not totally sure. However we will be there! Two nights and three days of celebrating the greatest PVP server ever, MeinKraft.&lt;/p&gt;
&lt;p&gt;So come join us for our very own MineCon London 2011. Buy us a print and we will give you one of our very own MeinKraft business cards, met the team and talk to us about anything! Help us make this the greatest Halloween MineCon London event ever. Luckily not many people have events that met that category so it should be easy to beat.&lt;/p&gt;
&lt;p&gt;Get your tickets into London and experience the British Capital in true MineCon tradition, with heavy drinking and stumbling around a strange city talking about iron blocks.&lt;/p&gt;
&lt;p&gt;MineCon London 2011. If you are interested please express your interest below in our Facebook comments, if we see a big interest we will sort out a pub to all meet in. Who knows, you could met your true MineCraft love. So come join us for MineCon London 2011 and lets show them yanks you can't keep the British out!&lt;/p&gt;
&lt;p&gt;Let's show them yanks how we party right here in London and get MineCon 2011 off to an amazing start. Met us this Halloween and let the Minecraft infection spread! So join us, invite your friends, invite their friends and have them invite more people. MineCon London 2011, together we can build it.&lt;/p&gt;
&lt;p&gt;Keep on digging.&lt;/p&gt;</description>
<link>http://www.amateurprotagonist.com/a-78-minecon-london-twenty-eleven-minecraft-show-them-yanks-how-to-party.php</link>
<pubDate>Sun, 13 Oct 13 10:00:00 -0700</pubDate>
<guid>http://www.amateurprotagonist.com/a-78-minecon-london-twenty-eleven-minecraft-show-them-yanks-how-to-party.php</guid>
</item>

<item>
<title>L33t Hackers Take Over YouTube As Reported By The BBC</title>
<description>&lt;p&gt;Hackers left, right and centre, we should be careful of all the hackers the news keeps on reporting. Let's not beat around the bush about this one, all the hackers the BBC are incorrectly reporting. This is plain old fashioned scare mongering. Hacker, it sounds a lot more intimating than thief or website defacer. &lt;/p&gt;

&lt;p&gt;Today a story came to my attention thanks to my American friend, hackers uploaded several pornographic videos. Let me break this story down to what it is. Someone gained access to Sesame Street's YouTube channel and uploaded pornographic videos. First this is a real dick move to do that to a children's channel, secondly this is not hacking.&lt;/p&gt;

&lt;p&gt;Whoever done this GAINED ACCESS, they guessed/knew the password and logged into their account. Please tell me where the hacking is in that, otherwise I am "Hacking" whenever I log into a customer's account.&lt;/p&gt;

&lt;p&gt;This sums up what hacking is very nicely thanks to Wikipedia.&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;A hacker is someone who breaks into computers and computer networks.&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;Note the keywords breaks and into computers and computer networks, the point I am making is getting access to a single user is not hacking. Getting access to all users in a database or mass changes to a service would be a better time to use the word hacker but even then that is not completely true.&lt;/p&gt;

&lt;p&gt;The term hacker has changed over the years. A hacker at its very core is someone who changes a system or computer for a challenge. I regard people who create jail breaking software or mods for your favourite games "Hackers". &lt;/p&gt;

&lt;p&gt;When I was younger I was sucked into this subculture of "Hackers", however the true hackers the ones who honestly understand the flow of data and how to manipulate information are rarely found there. The people you are most likely to meet are infatuated with SQL Injection, which is just data theft in the end of the day. You simply exploit a security hole. So what is it called when you get access past security systems? That is Cracking. That is because you literally crack open the security, this could be getting into someone's PC to getting information from a salted password.&lt;/p&gt;

&lt;p&gt;The point I am making is hacking is a term that is becoming too generalised. The problem with this scare mongering is what is the level difference between two hackers? One could have guessed a YouTube password whereas the other redirected the banks EDI system to change the account numbers and sort codes during the transfer of data and logged out security systems. The media would call both of them Hackers, yet one is clearly hacking whereas the other is just some lucky bored teenagers.&lt;/p&gt;

&lt;p&gt;This is normally something that does not really annoy me but the fact guessing someone's password makes you a hacker simply discredits the whole term. How would you like it if everyone with an online blog is now a "reporter"? It makes sense to use that term but if you know anything about the world of media then you would find the thought repulsive.&lt;/p&gt;

&lt;p&gt;Maybe the media should stop scare mongering every single person that they can when it comes to technology and focus on helping people understand what is happening. For example with this YouTube issue why not explain that it was just their account that was compromised, and then get an expert to explain why good passwords are so very important.&lt;/p&gt;

&lt;p&gt;People need to start thinking about the after effects and stop trying to spin a story.&lt;/p&gt;</description>
<link>http://www.amateurprotagonist.com/a-77-elite-hackers-take-over-youtube-as-reported-by-the-bbc.php</link>
<pubDate>Sat, 12 Oct 13 10:00:00 -0700</pubDate>
<guid>http://www.amateurprotagonist.com/a-77-elite-hackers-take-over-youtube-as-reported-by-the-bbc.php</guid>
</item>

<item>
<title>Google Product Search Merchant Center Destroying Businesses</title>
<description>&lt;p&gt;On the 22nd of September 2011 Google changed its policies for the Google Product Search. The Google Product Search is where you type what you want into Google and you go to shopping or sometimes it shows up in between the organic listings.&lt;/p&gt;

&lt;p&gt;Venders who list their products on the Google shopping for free will know this as Google Merchant Center (Froggle or Base depending on your country.) For many years venders have been selling their products on the Google Shopping pages without much of an issue. There are rules and policies to follow but generally speaking no one really ran into any problems.&lt;/p&gt;

&lt;p&gt;Any issue a merchant ever ran into could be quickly fixed, maybe a misunderstanding of your website or a problem with the technical side of how you upload your products. All of this changed on the 22nd of September. The new policies were to be enforced and the technical aspects of the feed were also changed. This does not pose a major issue. Ask any developer and they will tell you that such changes are normally welcomed and easy to pre-empt.&lt;/p&gt;

&lt;p&gt;However Google made some mistakes, some major mistakes. Let's skip ahead to the current date, the 5th of October, the Google forums are a mess with companies going out of business, merchants unable to get answers and everyone being left in the dark by Google.&lt;/p&gt;

&lt;p&gt;When the new spec for the feed was released there was no full solid way to test any of it, no one really knew how it would act. Failure on Google's behalf for not providing updated tools or services to assist with the new policies (at the time of writing the Merchant Center is unchanged and thus just as unhelpful.) No one really knew how this would affect them, Google kept on saying they would enforce the new policies with some aggression and frankly based on the lax in the past I don't think anyone believed them.&lt;/p&gt;

&lt;p&gt;Now coming up to the big change you would think there would be a planned staggered system (e.g. USA first then after a month trial, the UK etc.) There was no staggered release. Google Shopping for the first time demanded a global change of everyone. Whatever the Google Shopping Team wanted to change, it was big. Still one email was sent out a month before the 22nd of September as a reminder.&lt;/p&gt;

&lt;p&gt;I would at this part like to point out that if your business runs on Google Apps the majority of emails from Google by default go to your spam. That is right, you read that last sentence correctly. Emails from Google when you are using Gmail will go to your spam.&lt;/p&gt;

&lt;p&gt;Now with the poor pre-planning and massive global change you can assume what happened did not go smoothly. You would be correct in assuming this. In the end of the day this was an extremely flawed plan from the start due to pressure on the Google Shopping Team to produce changes. Now I have never spoken to anyone from the Google Shopping Team, I have only ever read their blog. Google Shopping like many sub division teams (they are, when you think about it, only a department inside of Google Search) very unknown and basically impossible to communicate with.&lt;/p&gt;

&lt;p&gt;What happened was the Google Merchant Center had a code behind change. I have no idea who on the development team got on top of their chair and said, "I have a great idea" but I can only assume he also takes his toaster to bed with him. The idea was that anyone with a policy violation or problem with their feed would be disapproved. The theory here is solid. Old sellers who do not keep up with standards will be lost, only the best of the best would be left. By removing all the filth you end up with a good as new shiny product. All the merchants that were violating the rules and policies will be punished, one massive sweep to show that messing them around yields no reward.&lt;/p&gt;

&lt;p&gt;Now I don't know what Google Shopping or Merchant Center really looks like in the code behind, I do not work for Google, what I do know is I work for a Merchant who is at the mercy of Google, as the lead developer this can be awkward to explain. Not many people keep their job after walking in and saying "We are no longer on one of our top revenue streams and I don't know why."&lt;/p&gt;

&lt;p&gt;The reason I did not know why was because no emails where sent. When you list products on Google Merchant Center and you are in a policy violation or whatever problem, your products are not listed and you are emailed, Google never sent the emails.&lt;/p&gt;

&lt;p&gt;Let's have a little role play to demonstrate the extremes here. You run an online business selling shoes; you employ four people, one salesman, one developer, one accountant and one picker packer. You have a website that the developer maintains, a salesman to handle calls and raise purchase orders, the accountant keeps the books in order and keeps an eye on cash flow and the picker packer will unload the lorry and pack the goods to be sent same day. This is a completely sustainable and realistic image of a small starter online business.&lt;/p&gt;

&lt;p&gt;Keeping with the role play you ask your developer where traffic and revenue come from, the majority of small starting businesses will have the same figures. You will get the most traffic from organic listings, you will buy traffic from AdWords to supplement sales with an aim to make bigger profits on repeat business and finally your best converting traffic is Google Shopping. Google Shopping traffic is made up of people who know what they want and have compared prices who now want to buy.&lt;/p&gt;

&lt;p&gt;What would you do if you lost that overnight despite every effect you and your developer done? Now if anyone reading this is a CEO or director you might have just opened up your cash flow in sheer panic and now have some tough questions for your developer. A shock like that can very easily end a business. It is that simple, losing Google Shopping for a starting internet business can mean the end.&lt;/p&gt;

&lt;p&gt;So when your business is on its last legs and no email has come through saying what went wrong you will start to freak out. You will be pointed in the direction of the forums. On the Google Merchant Forums you will find thousands, literality thousands of business owners just like you who have no fucking clue what is going on. One person will post in your thread (Celebird, who I am convinced has some connection to Google) telling you the only way to contact Google is to fill out two different forms.&lt;/p&gt;

&lt;p&gt;After filling out these forums you will get an automated email in two working days saying they have received it, then nothing. This is where you will get desperate, your business is now in the hand of someone who you have never met and will never speak to. They do not care how many generations you have been making shoes for or how much money and time you poured into this. They are the faceless anonymous of the Google Merchant Center Support.&lt;/p&gt;

&lt;p&gt;The worst part of this is, you need to use one of the forms just to find out what the problem with your feed is! So because Google messed up and never sent the email, you have to wait an unlimited amount of time just to know what is wrong. Keep in mind this has nothing to do with re-approving your feed, only just to find out what to fix.&lt;/p&gt;

&lt;p&gt;Now you will search the forums for every shard of information you can find, this is where Google becomes the Double Edged Sword. You will now change everything and devote everything to getting your Google Shopping Feed back online, any change to your website will take minutes not weeks. Do you know why before it would take weeks? Because you would have been thinking about the impact a change makes.&lt;/p&gt;

&lt;p&gt;Suddenly changes you promised never to make are happening all over the site, before you know it; you will be going against all your knowledge of the internet just to get your business and revenue back. Keep in mind Google Shopping and Google Search are not one of the same. If you do something stupid you could find yourself removed from Google Search (organic listings, the one your developer said the most traffic comes through.)&lt;/p&gt;

&lt;p&gt;It is at this point you should know that Google Merchant Center was free and always will be free. Thus they do not need to give you a telephone number, an email or even own you anything. They are the untouchable Google and if you have been banned by the biggest search engine out there, you can only sit and wait.&lt;/p&gt;

&lt;p&gt;I use Google products in all aspects of my life, my browser is Google Chrome, I make use of all the developer tools and Google API's, I use Google Apps, my phone is an Android Google Nexus One and even to the point of the maps application I use, it is Google Maps. This is by far a worse flop, an unforgivable flop, than Google Wave (which I might add I enjoyed a lot.)&lt;/p&gt;

&lt;p&gt;The problem here is they wanted to do a massive global release and remove a lot of accounts, at which point no one figured they would be a massive influx of people wanting to have their feeds checked. To have your feed checked or to find out what the problem is, is a manual job. That is right, one of the biggest companies in the world and a massive provider of services still requires a manual help desk from time to time. So with that in mind you would think to staff it better coming up to the change.&lt;/p&gt;

&lt;p&gt;Poor planning and poor implementation, Google will all its experience should know better than to green light what was set out to be a massive product re-vamping, without the proper infrastructure in place.&lt;/p&gt;

&lt;p&gt;I for one am disappointed in the lack of communication from Google and more so by the lack of sympathy for the companies that are filing for bankruptcy. So much for don't be evil.&lt;/p&gt;</description>
<link>http://www.amateurprotagonist.com/a-76-google-product-search-merchant-center-destroying-businesses.php</link>
<pubDate>Fri, 11 Oct 13 10:00:00 -0700</pubDate>
<guid>http://www.amateurprotagonist.com/a-76-google-product-search-merchant-center-destroying-businesses.php</guid>
</item>

<item>
<title>Minecraft Server 1.8.1 No Mods No Whitelist</title>
<description>&lt;p&gt;Like always when a new big update comes out in the world of Minecraft it is quickly followed by another. Normally bug fixes and little patches which apparently only come to light after 24 hours. Even though a pre release was made...&lt;/p&gt;
&lt;p&gt;Still don't let the man keep you down! Our new Minecraft 1.8.1 Server is up and running like a fat guy to cake. Or a Miner to Gold. Whatever one sounds better to you fatty.&lt;/p&gt;
&lt;p&gt;So our Minecraft Server now has 1.8.1 running with no issues. To enjoy the new release we are opening up our whitelist by turning it off! So anyone can join at any time!&lt;/p&gt;
&lt;p&gt;Also as we run a vanilla server we are always first on the list to go live and get updates. The only time we are behind is when one of the admins is asleep!&lt;/p&gt;
&lt;p&gt;Run by passionate developer MeinKraft is not only the sexiest 1.8.1 Minecraft Server it is also the most awesome. We allow PVP, we even allow griefing. All we ask is people do not use mods on our servers. SIMPLES!&lt;/p&gt;
&lt;p&gt;So join our amazing PVP Minecraft 1.8.1 Server and enjoy the sweet relaxing tunes of jazz, the soft sound of endermen attacking your wife and more importantly the joy of an Admin hunting you down for no other reason than they had a bad day.&lt;/p&gt;
&lt;p&gt;We have already uncovered a load of towns for you to explore as well as some massive mine systems. Our server has it all and keeps on giving. So don't wait around for night fall and keep killed by a creeper, join us now!&lt;/p&gt;
&lt;p&gt;Join the awesome glow at: &lt;b&gt;46.20.119.7:30265&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Also remember if it's not attacking you it sure as hell will!&lt;/p&gt;
&lt;p&gt;So see you on our Minecraft Server and enjoy Minecraft Version 1.8.1, plus when you get the chance join our server and ask to be whitelisted. That way when the whitelist kicks back in the fun does not need to end.&lt;/p&gt;</description>
<link>http://www.amateurprotagonist.com/a-75-minecraft-server-one-eight-one-no-mods-no-whitelist.php</link>
<pubDate>Thu, 10 Oct 13 10:00:00 -0700</pubDate>
<guid>http://www.amateurprotagonist.com/a-75-minecraft-server-one-eight-one-no-mods-no-whitelist.php</guid>
</item>

<item>
<title>Minecraft Server 1.8 No Mods Adventure Mode Live And Open</title>
<description>&lt;p&gt;That time again as a new Minecraft Server Update Has hit the internet with the very same floods of bugs that Minecraft is known for. However this time it is different. This time it is�&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Minecraft Adventure Update 1.8 for Clients and Servers.&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;That is the right We are now running a 1.8 Minecraft Server the adventure mode. Adventure Minecraft Server are basically like the single player 1.8 Minecraft Clients. There are pre made buildings, abandoned structures, massive caves and rivers. The new blocks are changing the way we design and the new mob has already started to claim it's first victims. &lt;/p&gt;
&lt;p&gt;Minecraft 1.8 Server - MeinKraft is up and running like a whore on her period. We currently run multiple worlds from one Server which you can hope between so we are able to create multiple worlds on the fly so we can have old versions of the world, while still enjoying Minecraft 1.8 Adventure Update for SMP.&lt;/p&gt;
&lt;p&gt;So what can you do on our 1.8 Minecraft Server running Adventure mode? Well you can eat, live, play and get your arse kicked in so many ways it is medically amazing. We support the total destruction of some worlds and even hold random events to get players together. This ranges from enderman survival to capture the block.&lt;/p&gt;
&lt;p&gt;Wait there is more, like the candy man who touches children but no one arrests because he hands out candy, Minecraft Servers have all been given this patch however a few are online, why? Because we can run our server in vanilla mode meaning no mods at all so we can hope on and play the latest 1.8 Minecraft Server Adventure Update before anyone else.&lt;/p&gt;
&lt;p&gt;How butt fucking awesome is that? So thinking of join our 1.8 Minecraft Server? Well sign up to our forums and tell us why you should be allowed to join in our adventuring fun? Tell us a story that will make us say "hey now, this guy is fucking insane, we need him."&lt;/p&gt;
&lt;p&gt;So come join our 1.8 Minecraft Server and enjoy the latest Minecraft Adventure Update.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;EXPLORER REPORTING.&lt;/b&gt;&lt;/p&gt;
&lt;center&gt;&lt;p&gt;&lt;a href="http://minecraftviewer.com/servers/3879/view" target="_blank"&gt;&lt;img src="http://cache.multiplayuk.com/b/1-3879-560x95-1-FF5519-FFFFFF.png" alt="Server Banner" style="border:0;width:560px;height:95" /&gt;&lt;/a&gt;&lt;br /&gt; Limited time only - &lt;b&gt;No White List / No Mods&lt;/b&gt;&lt;/p&gt;&lt;/center&gt;
&lt;p&gt;So get your 1.8 Minecraft arses online now and start punching some endermen!&lt;/p&gt;</description>
<link>http://www.amateurprotagonist.com/a-74-minecraft-server-one-eight-no-mods-adventure-mode-live-and-open.php</link>
<pubDate>Wed, 09 Oct 13 10:00:00 -0700</pubDate>
<guid>http://www.amateurprotagonist.com/a-74-minecraft-server-one-eight-no-mods-adventure-mode-live-and-open.php</guid>
</item>

<item>
<title>How To Create An Auto Bot In Twitter With PHP And The API</title>
<description>&lt;p&gt;Creating an auto bot on twitter is a lot simpler than you would first believe. When Twitter first started with their API it was a simple method of using your username and password which would allow you to do whatever you wanted.&lt;/p&gt;

&lt;p&gt;The problem was this opened accounts up for heaps of abuse so this method was scarped for a more secure method. This put a lot of people off re-creating their new application from scratch again, me being one of them.&lt;/p&gt;

&lt;p&gt;I was surprised by how easy it is to post to twitter via a website. In fact it is amazingly easy. So what I am going to do is show you the basics first then show you how to create your easy to use auto twitter bot just like mine. If you want to see the end result just follow @&lt;a href="http://twitter.com/#!/Tangent_Mind" title="Amateur Protagonist On Twitter"&gt;Tangent_Mind&lt;/a&gt; on twitter and see my random quotes.&lt;/p&gt;

&lt;p&gt;First we need to get setup on twitter. So sign yourself up for a twitter account if you already have one which you want to use then we are all good and one step ahead. I am not going to take you through creating a twitter account because that would be fucking stupid.&lt;/p&gt;

&lt;p&gt;Now we need to head over to the &lt;a href="https://dev.twitter.com/apps/new" title="Dev Twitter"&gt;developer twitter&lt;/a&gt; and sign up for an account. This is very straight forward and you just use your normal twitter credentials. You will now need to agree to the twitter terms of service thingy. Do not worry this agreement is a pretty standard API agreement that was don�t be a total fuck nut in legal terms (because apparently fuck nut is not allowed on legal documents.) You will now need to set up a new app. You will need to name and provide some other details about the app but frankly it doesn�t matter what you put in there, however make sure you mark it as level 2 access that is read and write. You should not require full totally open access as we only want to post tweets.&lt;/p&gt;

&lt;p&gt;What we are interested in is the special keys you get given from your application. You will need CONSUMER_KEY and CONSUMER_SECRET to access the twitter API. Basically every action you do with twitter will require these. This helps twitter track API usage and all other types of sexy stats. Now we are interested in using our own twitter account. This is lucky as it saves tons of time. There is a button under your key�s that will automatically link your twitter account with the API you are creating. Basically if you wanted access to an users account you need to get an OAUTH_TOKEN and an OAUTH_SECRET. Normally you would have to get the user to accept you want access and then store the details somewhere etc. This is so you don�t need to store passwords and shit. However with the twitter API it lets you link the two and gives you the keys there and then, which is perfect!&lt;/p&gt;

&lt;p&gt;Now the twitter dev app API page has all the key, token and secret stuff for now so let�s get on with some code. You will require three PHP files in total, OAuth.php, twitterOAuth.php and index.php. OAuth.php is a standard PHP class that handles OAuth. The twitterOAuth file is to deal with twitter�s REST API.
You can download the whole pack from here, &lt;a href="http://github.com/abraham/twitteroauth/zipball/0.2.0-beta3" title="Abraham Twitter OAuth library"&gt;Abraham Twitter OAuth library&lt;/a&gt;, keep in mind you only need the OAuth.php file and twitterOAuth.php you do not require anything else. I suggest you create a new folder, call it twitter to be original, and paste them two files. Now create a blank index.php file to go in there too. Now we have that set up lets jump into our index.php and start working. First lets open up our PHP tags and add in our include.&lt;/p&gt;

&lt;pre class="brush: php; toolbar: false;"&gt;
// OAuth To Twitter
require_once 'twitteroauth.php';
&lt;/pre&gt;

&lt;p&gt;As you see my code believes you are all in the same folder thus why I asked to start with. We do not need to reference OAuth as the twitterOAuth does that for us. OAuth is the real code and twitterOAuth is a wrapper for that.&lt;/p&gt;

&lt;p&gt;Now we need to add our tokens and keys. Normally you would need to get these from a user etc. however as this is just for us we can hard code them in there no problems.&lt;/p&gt;

&lt;pre class="brush: php; toolbar: false;"&gt;
// Do NOT Share
define("CONSUMER_KEY", "YOUR_APP_KEY");
define("CONSUMER_SECRET", "YOUR_APP_SECRET");
define("OAUTH_TOKEN", "YOUR_ACCOUNT_OAUTH_TOKEN");
define("OAUTH_SECRET", "YOUR_ACCOUNT_OAUTH_SECRET");
&lt;/pre&gt;

&lt;p&gt;So we check all the credentials are all gold, I then pull the stuff back into a variable called content. You can do an if statement on this if the credentials did not match up etc. however we know they always will this is just to send the data to twitter so we are up to date and singing from the same hymn sheet. You can leave that line out your code if you so wish.&lt;/p&gt;

&lt;pre class="brush: php; toolbar: false;"&gt;
// Post To Twitter
$connection = new TwitterOAuth(CONSUMER_KEY, CONSUMER_SECRET, OAUTH_TOKEN, OAUTH_SECRET);
$content = $connection-&gt;get('account/verify_credentials');
$connection-&gt;post('statuses/update', array('status' =&gt; 'Just testing my new twitter bot thanks to http://www.amateurprotagonist.com'));
&lt;/pre&gt;

&lt;p&gt;Now we can add a new tweet to this account. The code is straight forward and sets the standard for all code in the twitter API. So you are sending a post and the first section defines what you are trying to do. The second part is an array showing I only want to send a new status.

&lt;p&gt;So in short this code is saying I want to do something to do with statuses or updates and I want to insert a new status with this content.&lt;/p&gt;

&lt;p&gt;Here is the full code.&lt;/p&gt;

&lt;pre class="brush: php; toolbar: false;"&gt;
// OAuth To Twitter
require_once 'twitteroauth.php';
// Do NOT Share
define("CONSUMER_KEY", "YOUR_APP_KEY");
define("CONSUMER_SECRET", "YOUR_APP_SECRET");
define("OAUTH_TOKEN", "YOUR_ACCOUNT_OAUTH_TOKEN");
define("OAUTH_SECRET", "YOUR_ACCOUNT_OAUTH_SECRET");
// Post To Twitter
$connection = new TwitterOAuth(CONSUMER_KEY, CONSUMER_SECRET, OAUTH_TOKEN, OAUTH_SECRET);
$content = $connection-&gt;get('account/verify_credentials');
$connection-&gt;post('statuses/update', array('status' =&gt; 'Just testing my new twitter bot thanks to http://www.amateurprotagonist.com'));
// All Done Here
&lt;/pre&gt;

&lt;p&gt;Now that was basic, simple, pointless. You get the idea. On it�s own this is not much to be impressed by. So now we will add in a random quote selector. We are going to update our code to select a random quote from as many as we want and then post it to twitter.&lt;/p&gt;

&lt;p&gt;So add some spaces between your opening tag and the include once. We will use an array to hold all of our random quotes. You can very easily swap out hard coding the codes into a database call as when you return values from the database you often use an array so it�s perfect. As you see we have added a few.&lt;/p&gt;

&lt;pre class="brush: php; toolbar: false;"&gt;
// Quotes
$quotes[] = 'http://www.amateurprotagonist.com is the greatest site ever.';
$quotes[] = 'I am so automated it hurts my CPU.';
$quotes[] = 'Follow @Tangent_Mind for his larger than average man parts.';
&lt;/pre&gt;

&lt;p&gt;Now some magic on how you select a random entry from an array. We will use srand here to predefine the seed for the rand function (just good house keeping guys.)&lt;/p&gt;

&lt;pre class="brush: php; toolbar: false;"&gt;
// Select Random Quote
srand ((double) microtime() * 1000000);
$random_number = rand(0,count($quotes)-1);
&lt;/pre&gt;

&lt;p&gt;We now have a random number that is relative to your array. So we just need to swap out our hardcoded status for a sexier random quote. To do this we simply call the array and call the random number we got earlier.&lt;/p&gt;

&lt;pre class="brush: php; toolbar: false;"&gt;
$connection-&gt;post('statuses/update', array('status' =&gt; $quotes[$random_number]));
&lt;/pre&gt;

&lt;p&gt;Now for the full code with some added error checking in case you run into random problems as you grow the code.&lt;/p&gt;

&lt;pre class="brush: php; toolbar: false;"&gt;
// Credit to Alister Sneddon | Amateur Protagonist.com
// Looking for errors? I feel bad for you son, 99 logs but an error isn't one
try {
	// Quotes
	$quotes[] = 'http://www.amateurprotagonist.com is the greatest site ever.';
	$quotes[] = 'I am so automated it hurts my CPU.';
	$quotes[] = 'Follow @Tangent_Mind for his larger than average man parts.';
	// Select Random Quote
	srand ((double) microtime() * 1000000);
	$random_number = rand(0,count($quotes)-1);
	// OAuth To Twitter
	require_once 'twitteroauth.php';
	// Do NOT Share
	define("CONSUMER_KEY", "YOUR_APP_KEY");
	define("CONSUMER_SECRET", "YOUR_APP_SECRET");
	define("OAUTH_TOKEN", "YOUR_ACCOUNT_OAUTH_TOKEN");
	define("OAUTH_SECRET", "YOUR_ACCOUNT_OAUTH_SECRET");
	// Post To Twitter
	$connection = new TwitterOAuth(CONSUMER_KEY, CONSUMER_SECRET, OAUTH_TOKEN, OAUTH_SECRET);
	$content = $connection-&gt;get('account/verify_credentials');
	$connection-&gt;post('statuses/update', array('status' =&gt; $quotes[$random_number]));
	// All Done Here
} catch (Exception $e) {
	echo 'Caught exception: ' .  $e-&gt;getMessage() . "\n";
}
&lt;/pre&gt;

&lt;p&gt;Adding more quotes is easy just add more to the array at the top!&lt;/p&gt;

&lt;p&gt;There you go a fully functioning and ready to go auto twitter bot. I have my code accessed by a cron job every hour so everyone can get a salty taste of my randomness.&lt;/p&gt;

&lt;p&gt;Any improvements or suggestions please comment below!&lt;/p&gt;

&lt;p&gt;If you would like me to talk about some code for you or maybe review a script please use the contact button to get the ball rolling!&lt;/p&gt;</description>
<link>http://www.amateurprotagonist.com/a-73-how-to-create-an-auto-bot-in-twitter-with-php-and-the-api.php</link>
<pubDate>Tue, 08 Oct 13 10:00:00 -0700</pubDate>
<guid>http://www.amateurprotagonist.com/a-73-how-to-create-an-auto-bot-in-twitter-with-php-and-the-api.php</guid>
</item>

<item>
<title>Arrays Have A Time And A Place - Learn It</title>
<description>&lt;p&gt;This post comes after I was creating a store locator in PHP without a database. I needed structured data that I could call and query so I put the lng/lat as well as store info in a XML file.&lt;/p&gt;
&lt;p&gt;Now in an ideal world I would use a database however we have to pay extra for a database so that was not possible at the time.&lt;/p&gt;
&lt;p&gt;So I do the calculation on how far away they are and can return the correct results from the XML files. I put the results inside an Array. This is a simple Array with simply the ID and the distance. I would then order the Array and very easily query the XML to using the ID.&lt;/p&gt;
&lt;p&gt;This was all well and good until I hit a major problem. My ID's where labelled as 1 onwards and an Array starts at 0. As I was using the ID as the ID of the Array and was trying to avoid multiarrays you can see the problem. However this was solved by using a loop and just do a minus one to get the correct array.&lt;/p&gt;
&lt;p&gt;I then tried to sort the Array based on the distance and that is when everything went to shit. My ID's were changed and I could no longer find my place.&lt;/p&gt;
&lt;p&gt;I am sure if I spent some more time on it I could of gotten it to work with no problems. A multi array could of solved the problem however the script was so lengthy it was pointless.&lt;/p&gt;
&lt;p&gt;In the end of the day it is important to know when to use and not use an array. Honestly I struggle to find good uses for arrays and when I do use them it is normally because the program forces that list upon you as it is the default best. Maybe I am looking to use arrays too often or am too eager to use them.&lt;/p&gt;
&lt;p&gt;I find databases too be far too effective even for simple data, maybe I over use databases and my lack of any other type of storage has lacked because of it. Another prime example was a program that checked for failed transactions it stored the last ID checked. It orginally done this in a text file as it needed to be stored over program shut downs etc. Thinking about it, it may of been easier to load the last one every time and work from internal memory, hold the ID's in a variable. Once again I used a litedatabase to store the information which added to the program size greatly.&lt;/p&gt;
&lt;p&gt;I believe I have a lot more to learn about arrays after that run in and would be interested to go back and create a store locator using only XML files removing the need for a database. It would be so helpful for anyone without DB access.&lt;/p&gt;</description>
<link>http://www.amateurprotagonist.com/a-72-arrays-have-a-time-and-a-place-learn-it.php</link>
<pubDate>Mon, 07 Oct 13 10:00:00 -0700</pubDate>
<guid>http://www.amateurprotagonist.com/a-72-arrays-have-a-time-and-a-place-learn-it.php</guid>
</item>

<item>
<title>Online Dating How To Find The Perfect Man</title>
<description>&lt;p&gt;As a male pot of bubbling testosterone, I am often asked by passing women how they could one day achieve finding the perfect man (me) so I believe writing a post to be a far more effective method than flexing and doing squat thrusts.&lt;/p&gt;
&lt;p&gt;First go set your online dating profile up. So here is my how to guide on finding the perfect man via online dating. My methods are simple and easy. Trust me I am a doctor in arse kicking I know my stuff.&lt;/p&gt;
&lt;p&gt;Lets start with your profile picture. Lets be honest between me and you, you have a better chance at applying for the next horror film than find a man with that mug. So lets do some simple steps on what picture to use.&lt;/p&gt;
&lt;p&gt;Never use a picture of someone else because that is just plain lying. So lets go through your old photos and by old photos we are talking 10 to 20 years ago. Now pick a photo that has you in a sexy outfit with no kids so he doesn't know you have five boys and three girls. Also important to note you are the centre focus of the picture none of this group shit ladies.&lt;/p&gt;
&lt;p&gt;Now you have chosen your photo is it important to make it look a bit better, I suggest downloading photoshop for a free trail and using the expand and shrink tool. You know what bits I am talking about. Get to it. Now you may worry that you don't know what you are doing but that is ok. If you can believe the photo then it's working. Half of the game is tricking yourself.&lt;/p&gt;
&lt;p&gt;You should now have a photo that looks like a young what you hoped you looked like self. This is perfect. If you can find any clip art of flowers (roses if you can) to add in on the bottom to cover up them nasty legs of yours go for it.&lt;/p&gt;
&lt;p&gt;Now for the likes and dislikes. I want you to go out and talk to some friends you know the ones I am talking about. The ones that don't have kids and earn loads of money having a great time. Use their likes and dislikes. I suggest avoiding pets, don't say you like them you crazy 20 cat lady and don't say you hate them. Keep your self open. Believe you are the canvas for a man to paint on, not the moany controlling bitch you really are.&lt;/p&gt;
&lt;p&gt;I suggest likes such as going to the pub, threeways with women, porn, football, pushing cows over etc. For dislikes I suggest along the lines of leaving the kitchen. Now none of this will be true but this is all part of the plan don't worry it will all work out.&lt;/p&gt;
&lt;p&gt;Now your profile. Here is a quick tip, copy a popular girl. You want to make yourself seem fun. Lets not talk about the 72 hours you spend cleaning your empty house to keep the cats and countless children happy. Try not to talk about all the failed relationships and abortions. Generally speaking I would class that shit as turn offs.&lt;/p&gt;
&lt;p&gt;Now your profile should be full set up. Any extras you don't want to do however it is clear how desperate you are. Now just post the same message to as many guys as possible. Just say hey I want to met up. Maybe add a smily face to show you are kinky bitch who is into anything and everything and not the stale stubborn unlike-able bitch you really are. You want to go for sexy bitch not Liberian bitch.&lt;/p&gt;
&lt;p&gt;Now you will be beating men off with a broom handle or whip. Just remember to never met up with any of them because they will see that is was all a bit lie to drag them in. So I guess this guide didn't really work. Maybe you will met a guy who lied just as much as you and you will live happily ever after with your fugly children.&lt;/p&gt;</description>
<link>http://www.amateurprotagonist.com/a-71-online-dating-how-to-find-the-perfect-man.php</link>
<pubDate>Sun, 06 Oct 13 10:00:00 -0700</pubDate>
<guid>http://www.amateurprotagonist.com/a-71-online-dating-how-to-find-the-perfect-man.php</guid>
</item>

<item>
<title>Sexual Minecraft Server Hardcore Girls Only Server</title>
<description>&lt;p&gt;That's right, 100% women, 100% 16 bit tits, 100% Minecraft block sex and above all hardcore girls only Minecraft server. The most sexual server of them all.&lt;/p&gt;
&lt;p&gt;Two of my top keywords into this website are "Minecraft Girl Server" and "Minecraft Sexual Server". So clearly there is a big demand.&lt;/p&gt;
&lt;p&gt;Well put your fears to rest for I am here for all your 16 bits sexual fantasies. So sit back and let her rub your pick down while you punch her tits. (careful they might fall off and you could end up with a hard very to explain block when your mum walks into the room.)&lt;/p&gt;
&lt;p&gt;So you want this server what do you have to do? Send me large amounts of money and then we can get started! Don't worry about how much you send I will totally cyber with you all in our sexual Minecraft world, it totally will not be an automated bot, really I swear.&lt;/p&gt;
&lt;p&gt;So why the demand for 16 bit whores? Well why does any game need whores? I mean look at Deus Ex, hookers made up 80% of that game. I am pretty sure that is the correct statistic as well.&lt;/p&gt;
&lt;p&gt;What happens in a sexual Minecraft Server? Same thing that happens in a strip club. Punching trees, picking up water in buckets and mining for iron. Wait maybe that is what happens in Minecraft...&lt;/p&gt;
&lt;p&gt;Still the point stands, send me stupid amounts of money in return I may get around to opening up my super sexual hardcore girls only Minecraft server. Of did I mention all the women on the server are lesbians and totally into each other as well as you? Yeah they are.&lt;/p&gt;</description>
<link>http://www.amateurprotagonist.com/a-70-sexual-minecraft-server-hardcore-girls-only-server.php</link>
<pubDate>Sat, 05 Oct 13 10:00:00 -0700</pubDate>
<guid>http://www.amateurprotagonist.com/a-70-sexual-minecraft-server-hardcore-girls-only-server.php</guid>
</item>

<item>
<title>PHP Contact Form With ReCaptcha Built In</title>
<description>&lt;p&gt;ReCaptcha is the amazing captcha service from Google (they brought the original guys out) which by solving capcha's you are also helping computers read books.&lt;/p&gt;
&lt;p&gt;How does that work? Well simply put you have two words and you need to get one of them right, the other the computer is attempting to figure out what it says. So it may know the world is Programming but it will see the responses of everyone who solved that captcha and see what everyone else thinks it is.&lt;/p&gt;
&lt;p&gt;So why do you want it inside your PHP contact forms? Well ReCaptcha is the best out there, not only does it provide a speech function to read out the words but it is pretty much a standard that people expect to see and know how to use.&lt;/p&gt;
&lt;p&gt;The problem with Google's example of ReCaptcha in PHP is it requires two pages. Lots of people will trip over when they need one page. I have written a guide on how I use ReCaptcha in one page.&lt;/p&gt;
&lt;p&gt;First you will need three PHP files also you need the ReCaptcha files too. The three files you need are as follows. Header.php, this file is all the header info so the opening of html and all your style and stuff. Footer.php, this fill is the footer stiff and closing off all the html and styles. Lastly you need contact.php, this is the meat of the page and will be the main content and controller. Basically we load up contact and then call header and footer.&lt;/p&gt;
&lt;p&gt;So how will we be doing our code? Basically we will assume they are accessing this code on a post back and are attempting to send an email.&lt;/p&gt;
&lt;pre class="brush: php; toolbar: false;"&gt;require_once('recaptchalib.php');

if (isset($_POST['email'])) {
$privatekey = "YOUR KEY";
$resp = recaptcha_check_answer ($privatekey,
                                $_SERVER["REMOTE_ADDR"],
                                $_POST["recaptcha_challenge_field"],
                                $_POST["recaptcha_response_field"]);
if (!$resp-&gt;is_valid) {
include("Header.php");&lt;/pre&gt;
&lt;p&gt;So what are we doing here? Well this should be the first thing inside contact.php (inside &amp;lt;?php). First it calls the ReCaptcha PHP files for us. Then it checks if they have submitted an email address, if they have then lets check if they did not complete the captcha correctly&lt;/p&gt;
&lt;p&gt;After this code you would close your PHP tags and do the html for them failing. Now we do an else for if they complete the ReCaptcha correctly and send an email.&lt;/p&gt;
&lt;pre class="brush: php; toolbar: false;"&gt;} else {
$email = $HTTP_POST_VARS[email];
$mailto = "YOUR EMAIL";
$mailsubj = "Contact Form";
$mailhead = "From: $email\n";
reset ($HTTP_POST_VARS);
$mailbody = "Values submitted from web site form:\n";
while (list ($key, $val) = each ($HTTP_POST_VARS)) { $mailbody .= "$key : $val\n"; }
if (!eregi("\n",$HTTP_POST_VARS[email])) { mail($mailto, $mailsubj, $mailbody, $mailhead); }
include("Header.php");
&lt;/pre&gt;
&lt;p&gt;This page simply takes the email and puts it into a basic PHP mail function (comes with PHP normally) so how does it know what fields to show in your email? Well it simply takes every input field in your form and puts them in your email. This is a quick and easy way to ensure you get all fields and all data. After this PHP code again put your html outside for what to tell them it worked. Now that leaves us with one situation. They want to fill the form out.&lt;/p&gt;
&lt;pre class="brush: php; toolbar: false;"&gt;}
}
else
{
include("Header.php");
&lt;/pre&gt;
&lt;p&gt;Now outside this PHP you add your html form as you normally would. Where you want your ReCaptcha challenge to show you add this code.&lt;/p&gt;
&lt;pre class="brush: php; toolbar: false;"&gt;$publickey = "YOUR KEY";
echo recaptcha_get_html($publickey);
&lt;/pre&gt;
&lt;p&gt;Which leaves us to tidy up at the very bottom of the page you need this.&lt;/p&gt;
&lt;pre class="brush: php; toolbar: false;"&gt;}
include("Footer.php");
&lt;/pre&gt;
&lt;p&gt;So lets wrap this up and show you what the whole form should look like for you guys who cannot be arsed to do it themselves.&lt;/p&gt;
&lt;pre class="brush: php; toolbar: false;"&gt;
&amp;lt;?php 
require_once('recaptchalib.php');
if (isset($_POST['email'])) {
$privatekey = "YOUR KEY";
$resp = recaptcha_check_answer ($privatekey,
                                $_SERVER["REMOTE_ADDR"],
                                $_POST["recaptcha_challenge_field"],
                                $_POST["recaptcha_response_field"]);
if (!$resp-&amp;gt;is_valid) {
include("Header.php");
?&amp;gt;
&amp;lt;p&amp;gt;Failed ReCaptcha!&amp;lt;/p&amp;gt;
&amp;lt;?php
  } else {
$email = $HTTP_POST_VARS[email];
$mailto = "YOUR EMAIL";
$mailsubj = "Contact Form";
$mailhead = "From: $email\n";
reset ($HTTP_POST_VARS);
$mailbody = "Values submitted from web site form:\n";
while (list ($key, $val) = each ($HTTP_POST_VARS)) { $mailbody .= "$key : $val\n"; }
if (!eregi("\n",$HTTP_POST_VARS[email])) { mail($mailto, $mailsubj, $mailbody, $mailhead); }
include("Header.php");
?&amp;gt;
&amp;lt;p&amp;gt;GOT IT!&amp;lt;/p&amp;gt;
&amp;lt;?php
}
}
else
{
include("Header.php");
?&amp;gt;
&amp;lt;form method="POST"&amp;gt;
&amp;lt;strong&amp;gt;Name:&amp;lt;/strong&amp;gt;&amp;lt;br /&amp;gt; &amp;lt;input type="TEXT" name="name"&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;
&amp;lt;strong&amp;gt;Email:&amp;lt;/strong&amp;gt;&amp;lt;br /&amp;gt; &amp;lt;input type="TEXT" name="email"&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;
&amp;lt;strong&amp;gt;Body:&amp;lt;/strong&amp;gt;&amp;lt;br /&amp;gt;
&amp;lt;textarea rows="5" cols="50" name="Body"&amp;gt;&amp;lt;/textarea&amp;gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;
&amp;lt;?php
$publickey = "YOUR KEY";
echo recaptcha_get_html($publickey);
?&amp;gt;
&amp;lt;br /&amp;gt;
&amp;lt;input type="SUBMIT" name="Send" value="Send Email"&amp;gt;
&amp;lt;/form&amp;gt;
&amp;lt;?php
}
include("Footer.php");
?&amp;gt;
&lt;/pre&gt;
&lt;p&gt;Hope that helps guys! If you have another coding requests use the contact form and I will see what I can do for you!&lt;/p&gt;</description>
<link>http://www.amateurprotagonist.com/a-69-php-contact-form-with-recaptcha-built-in.php</link>
<pubDate>Fri, 04 Oct 13 10:00:00 -0700</pubDate>
<guid>http://www.amateurprotagonist.com/a-69-php-contact-form-with-recaptcha-built-in.php</guid>
</item>

<item>
<title>Who Really Owns The Server You Are Playing On?</title>
<description>&lt;p&gt;Often people who run servers are told how to do their job, more importantly they are told everything they are doing wrong for other people. I have ran a number of servers in my time and I can tell you no matter what the medium or game you will get the same shit always.&lt;/p&gt;
&lt;p&gt;It would seem a lot of people struggle with the concept that people are putting money, time and effort forward to give back something which they will not see the full benefit of. Very often server owners will not play the game as much and simply settle into a server administrator mode at all times. They start to spend more time monitoring CPU usage than playing the game or using the service.&lt;/p&gt;
&lt;p&gt;My problem is when people disagree or call server rules unfair. A prime example of this is when Team Fortress Two went free to play. Many servers installed a mod which auto banned free to play users. A lot of new players were put off by this fact, when really it is completely in their right as server owners to do what they want, regardless its effect on the game. Yes that move did drive players away but it also increase the quality and bond with its current user base to that server.&lt;/p&gt;
&lt;p&gt;In the end of the day if I ban someone for not talking English I can, if I change the server so that only players with a set IP can ever play well I can. In the end of the day server owners will never completely see eye to eye with developers. This is the reason lots of online games provide their own servers so there will always be the free open developer managed servers available to players. If you choose to go onto a server ran and hosting by someone outside of the development group you are stepping into their game.&lt;/p&gt;
&lt;p&gt;What amazes me if the amount of people who fair to understand it is my server thus my rules. Very often I have joined games in the past where I have been banned for next to no reason. In the end of the day it is their game and they can do what they wish with it. They put their money on the table and brought themselves some server space it is up to them to maintain that however they see fit. If they see that banning everyone with the letter e in their name they can.&lt;/p&gt;
&lt;p&gt;I believe it is time that more players became educated in how their games work, the true setup and costs of a server. Many players are unsure about what it takes to run a server and few Admins will ever tell you, in the end of the day you need servers but everyone having a server will be very unfun. I feel with Minecraft there needs to me attention given to not only what is going on in the games development but also what is required of the Admins. This comes down to sabotaging servers and generally causing server spikes. With these things always happening it is very clear to me why most servers are overly strict and impose heavy bans for the simplest of offences, it is because they are sick and tired of you being the third person that day to ask/break the rules.&lt;/p&gt;</description>
<link>http://www.amateurprotagonist.com/a-68-who-really-owns-the-server-you-are-playing-on.php</link>
<pubDate>Thu, 03 Oct 13 10:00:00 -0700</pubDate>
<guid>http://www.amateurprotagonist.com/a-68-who-really-owns-the-server-you-are-playing-on.php</guid>
</item>

<item>
<title>Disadvantages Of Using A PHP Framework</title>
<description>&lt;p&gt;PHP frameworks have been around for some time now, they come in countless forms and types. Some of the biggest frameworks have had very impressive websites and even businesses built from it. However are frameworks the answer to all the questions out there?&lt;/p&gt;
&lt;p&gt;What is a PHP framework and what benefits are there? A framework should make a range of commonly used classes and features even more accessible. For example a good frame work will streamline for connection to a database as well as cleaning up common issues. PHP frameworks should allow you to not only grow at a faster rate and with improved tools but should reduce errors and duplication.&lt;/p&gt;
&lt;p&gt;If PHP frameworks are so amazing why do we not use them all the time? Well some people do, however that is a double edged sword. The problem with coding inside of a framework is it will narrow your vision. Once you work inside a framework you begin to follow their traits, which is not a bad thing, but when PHP is such an open language with many different methods it can be a bad thing to work in a narrow spectrum.&lt;/p&gt;
&lt;p&gt;Also once you have a framework in place you can run into a lot of problems when you need to develop outside of the normal pattern. Every framework will excel in its own area, however it can be problematic to merge different frameworks in one website.&lt;/p&gt;
&lt;p&gt;The use of frameworks can also restrict your use of a programmer. One framework is not like another, you will go all out on one or a jack of all. The use of frameworks only serves to spilt up the community of PHP developers. Until PHP comes up with a standardised method and increases the amount of pre made classes frameworks will carry on splitting developers up.&lt;/p&gt;
&lt;p&gt;A prime example of a framework that works well is the .NET framework. The .NET framework can easily be expanded onto other frameworks and even have frameworks on top of it. However it will always have its core methods.&lt;/p&gt;
&lt;p&gt;PHP needs to extend its current methods and functions, also in a bid to reduce the amount of frameworks. Even better to take on a basic framework feel, by creating the feel and strengths of a framework you will get more developers accustom quicker.&lt;/p&gt;
&lt;p&gt;I would by no means say PHP Frameworks are a huge disadvantage but I would have a word of warning about cutting yourself off from other forms of PHP development.&lt;/p&gt;</description>
<link>http://www.amateurprotagonist.com/a-67-disadvantages-of-using-a-php-framework.php</link>
<pubDate>Wed, 02 Oct 13 10:00:00 -0700</pubDate>
<guid>http://www.amateurprotagonist.com/a-67-disadvantages-of-using-a-php-framework.php</guid>
</item>

<item>
<title>When Will The World End Scientifically</title>
<description>&lt;p&gt;Why are people even searching for this? Are you so scared everything will end that you are search on Google for it? This phrase is a top search on Google.&lt;/p&gt;
&lt;p&gt;So why do people want to know so badly? I mean if the world was going to end and it was know then would it not be bigger news? It is not like the end of the world is really an event someone can miss is it now?&lt;/p&gt;
&lt;p&gt;If you are searching for when the world will end then you are the same person who buys life insurance at the age of 20.&lt;/p&gt;
&lt;p&gt;Lets face it, everything in life has its risks, heck even being alive is a risk of life. Just the other day I saw a bird get taken out by a cat, did I cry and go on Google to find out when my time will be? No! I was just happy I am bigger than that bad arse cat. I hope that very same cat finds you and hunts you down. Maybe then you will learn that cats are the only force in the world, none of this physics bullshit.&lt;/p&gt;
&lt;p&gt;So what do Google top trends and most commonly search queries tell us about the world? Well firstly almost all Google search suggestions will come down to two big categories. First is pregnancy, second is relationships.&lt;/p&gt;
&lt;p&gt;You know what this tells me? There is not enough information out there at hand for people. I mean yes sometimes you need to know and you will just Google the question. Think for a moment, all this worried mothers about their future children, does that not strike you as very naive?&lt;/p&gt;
&lt;p&gt;You really should not be having kids if you need to Google the question to how do babies breath in the womb. I mean Jesus people! Think for a second. Also relationships are the next big one. If you are basing your relationships on Google searches you are one of two things. First and most likely you are unable to make decisions for yourself as you can not handle responsibly and thus are easily lead. Secondly you have no friends or don't trust a single word they say. Either way you end up with 15 kids and have to Google everything they ask you, even their last name because it will be with different fathers.&lt;/p&gt;
&lt;p&gt;So When Will The World End Scientifically? When time ends. Think about that.&lt;/p&gt;</description>
<link>http://www.amateurprotagonist.com/a-66-when-will-the-world-end-scientifically.php</link>
<pubDate>Tue, 01 Oct 13 10:00:00 -0700</pubDate>
<guid>http://www.amateurprotagonist.com/a-66-when-will-the-world-end-scientifically.php</guid>
</item>

<item>
<title>Why Steve Jobs Is Really The Devil</title>
<description>&lt;p&gt;Ah, brother you have made it to my humble abode. Come closer my brother and let us find a spot on the floor for you to lay. Not there the dog craps there. Try in the other room with the other nut jobs.&lt;/p&gt;
&lt;p&gt;Don't worry about the intro, it is to throw Steve Jobs off the scent. Now lets get down to business. I am sure many of you are wondering how I know Steve Jobs Is Really The Devil, well it is easy really to tell. Firstly have you seen that tail he has? No? Ah well apparently only attractive people can see it... Awkward.&lt;/p&gt;
&lt;p&gt;Also did you know that Steve Jobs eats baby rabbits as they are born? It is totally true I swear, look I drew a picture so it must be true! Steve Jobs Is Really The Devil because he eats live baby animals as they are born. He believes it helps him focus. Just don't get him on a bad day.&lt;/p&gt;
&lt;p&gt;Did you know Steve Jobs and Bill Gates get on really well? Clearly Steve Jobs has put a curse on Bill, the curse of shortness I believe. More evidence that Steve Jobs Is Really The Devil.&lt;/p&gt;
&lt;p&gt;Lets talk about software for a bit, he changed the way companies look at designing products and how to target smaller but higher profit niche markets, more evidence that Steve Jobs Is Really The Devil. Because only the Devil believes in hard work, I try to avoid it at all costs for that reason.&lt;/p&gt;
&lt;p&gt;Plus did you see him blow up that school of homeless children? I might of made that one up but you believe it because we both know that Steve Jobs Is Really The Devil.&lt;/p&gt;
&lt;p&gt;If you add up all the letters in Steve Jobs and turn the numbers into pictures. Throw a cat in the bath as you read the Bible backwards. Then grow your own oak tree with an apple, Steve Jobs will sneeze. Frankly that is the nail in the argument that Steve Jobs Is Really The Devil.&lt;/p&gt;
&lt;p&gt;Steve also helps people make really bad bugging shit software, something only the Devil attempts to do. Create buggy software.&lt;/p&gt;
&lt;p&gt;Did you know Steve Jobs likes the idea of DRM, clearly prove that Steve Jobs Is Really The Devil.&lt;/p&gt;
&lt;p&gt;So really why am I saying Steve Jobs Is Really The Devil? Well frankly I had to use an Apple product today and it reminded me of everything I hate about Apple.&lt;/p&gt;
&lt;p&gt;I mean fuck, what a crazy bunch of loyal bastards. Have you ever gone into an Apple Shrine? Sorry they are called stores not so people stop pointing out that Steve Jobs Is Really The Devil.&lt;/p&gt;
&lt;p&gt;Them Apple Shrines are scary places. Avoid if you can.&lt;/p&gt;
&lt;p&gt;So what can you do to help prove that Steve Jobs Is Really The Devil? Well if someone could throw a blue ballpoint pen at him we can find out, we all know the blue ballpoint pen is the Devil's weakness. Should Steve Jobs explode then we know for a fact Steve Jobs Is Really The Devil.&lt;/p&gt;
&lt;p&gt;p.s. I hate Apple products and you should feel bad you use them.&lt;/p&gt;</description>
<link>http://www.amateurprotagonist.com/a-65-why-steve-jobs-is-really-the-devil.php</link>
<pubDate>Mon, 30 Sep 13 10:00:00 -0700</pubDate>
<guid>http://www.amateurprotagonist.com/a-65-why-steve-jobs-is-really-the-devil.php</guid>
</item>

<item>
<title>How To Code Like You Are A Crack Addict</title>
<description>&lt;p&gt;So there you are looking through maybe 4,500 lines of code. Then you see it, that random comment that makes no fucking sense, out of no where everything you know and value in life has been turned on it's head.&lt;/p&gt;
&lt;p&gt;So you want to code like a crack addict? Well here is a plain and simple method to pissing off anyone who needs to read/modify/edit your code.&lt;/p&gt;
&lt;p&gt;What nice line spacing you have there. What better way to piss of the world and shove a middle finger to the world than removing all white space from your code?! Why not! Heck it's not like I enjoy being able to read code, I mean I am sure it was not that important. Oh wait if that the core API integration, well fuck me then.&lt;/p&gt;
&lt;p&gt;Never comment like you have a working brain, everyone loves comments, so avoid. Don't you love reading code, not in a paedophile reading a book to a school kind of way, more a programmer reading code kind of way.&lt;/p&gt;
&lt;p&gt;Well make sure you use comments, there are two options here to maximise your chance of being called a crack addict. First comment everything, you heard me, comment the if statement, comment the bool variable heck even go out your way to comment you opened the PHP or are calling a system file in .NET.&lt;/p&gt;
&lt;p&gt;Secondly you can only randomly comment when it makes no sense to. Even better add comments randomly claiming you have no fucking idea what is going on. Nothing better than finding a comment only to see it claims insanity and a verse from the old testament.&lt;/p&gt;
&lt;p&gt;Now everyone knows crack addicts have no real functioning brain, it is all an illusion created by the marx government.&lt;/p&gt;
&lt;p&gt;Now use the most random bat shit crazy variables you can think of, make sure they are long too. This works even better in PHP where they will run into countless problems. Why use names like $DocXMLRecieve when you can have $IAteABabyDeerOnceAndPeedMySelfTotallyNotAXMLFile. Lets face it, I know what one I think is better.&lt;/p&gt;
&lt;p&gt;Also remember how you enjoy reading code? Well fuck them hard by encoding all your scripts and making them run through a salt key first! Because hey it was hard to write and I am not going to let you just change it with plain and simple ease.&lt;/p&gt;
&lt;p&gt;Now if your co-workers have not called the police yet you are doing well because you have already murdered them with your Visual Studio box.&lt;/p&gt;
&lt;p&gt;Now to complete your insanity, create text art inside your code, extra points if the code is fully functional. Now get your meat suit and tin foil hat and insist you must wear it when coding else the Norse Gods can not communicate effectively with you.&lt;/p&gt;
&lt;p&gt;Now you are coding like a true crack addict, now all you need to do is release the code and then stop supporting it, LOL I am joking only Apple does stupid shit like that.&lt;/p&gt;</description>
<link>http://www.amateurprotagonist.com/a-64-how-to-code-like-you-are-a-crack-addict.php</link>
<pubDate>Tue, 24 Sep 13 10:00:00 -0700</pubDate>
<guid>http://www.amateurprotagonist.com/a-64-how-to-code-like-you-are-a-crack-addict.php</guid>
</item>

<item>
<title>Why Skyrim Will Make You Dump Your Girlfriend And Buy Beans</title>
<description>&lt;p&gt;Bethesda are up to their sexual tricks again. The latest Elder Scrolls game Skyrim will be taking the souls of unborn children and making them love PC/Xbox RPG's again.&lt;/p&gt;
&lt;p&gt;For the few of you who don't know how I feel about the elder scroll games clearly do not stalk me with the efficiently I expect.&lt;/p&gt;
&lt;p&gt;Right now I am replaying Oblivion all over again on my Xbox AND PC because you are not human if you did not buy this game as many times as possible and get all the DLC (bar horse armour.)&lt;/p&gt;
&lt;p&gt;Skyrim will not be a bigger world than Oblivion but it does not need to be. It will be filled to the brim with more to do and better environments.&lt;/p&gt;
&lt;p&gt;So what does this mean for you? Well it means NPC will have jobs and be a living breathing part of the world. Remember how so many NPC's would just be there, no real point, just there like that rash you got after last night. Now with everyone playing their part and filled with purpose you will get the experience you have always wanted from an elder scrolls game.&lt;/p&gt;
&lt;p&gt;Also the levelling system is totally different this time around, which sounds way better. Lets face it there was an alpha build and you only went against it for shits and giggles. Now you can grow as you want and wish. Plus skill trees will keep you hooked for hours. I love skill trees, I love elder scrolls and frankly I think I will love Skyrim.&lt;/p&gt;
&lt;p&gt;So what do I want from Skyrim that Oblivion gave me? Nightmares. I had nightmares about fighting vampires on the hardest difficulty because at the time I could not beat a section. That is how involved in this game I am. Any game that becomes part of my life is always a good sign.&lt;/p&gt;
&lt;p&gt;When you pick up a game as in depth as the elder scrolls you will never forget it. So pre-order Elder Scrolls: Skyrim because it will go towards Bethesda and frankly them guys fucking deserve it.&lt;/p&gt;
&lt;p&gt;One point, I did not really think much of Morrowind, if you wanted to power through the game you couldn't the people who loved it enjoyed the always unforgiving nature of the game. However Oblivion you could play both methods, people were moaning about fast travelling, well don't fucking you it then you useless cunts.&lt;/p&gt;
&lt;p&gt;I hope like Oblivion Skyrim will be filled with options, moment where you sit and think about what you are doing. You know the type. You save the game just before because you are that scared of the outcome. This is the scale I am talking.&lt;/p&gt;
&lt;p&gt;I for one see a long standing relationship with Skyrim, heck I play Oblivion now and love it. Skyrim will be my new addiction and I can not wait.&lt;/p&gt;</description>
<link>http://www.amateurprotagonist.com/a-63-why-skyrim-will-make-you-dump-your-girlfriend-and-buy-beans.php</link>
<pubDate>Sun, 22 Sep 13 10:00:00 -0700</pubDate>
<guid>http://www.amateurprotagonist.com/a-63-why-skyrim-will-make-you-dump-your-girlfriend-and-buy-beans.php</guid>
</item>

<item>
<title>Google Nexus One Gets Android 2.3.4 On Vodafone Network</title>
<description>&lt;p&gt;Holy fish fuck sticks people. The Google Nexus One has been updated to version 2.3.4 which is not the highest but God damn it is an improvement.&lt;/p&gt;
&lt;p&gt;Firstly why is this a big deal? Well if you read my blog (Which you really should or I will hunt you down with a rusty spoon.) you will know I was majorly dick slapped when Vodafone told me I was not getting the Android updates.&lt;/p&gt;
&lt;p&gt;The Nexus One is a developer phone so I expect it to be cutting edge tech. Not getting left behind because my phone provider, the cunts also known as Vodafone, did not feel the need. However after a massive moment on the forums and generally people getting fucked off we have an update!&lt;/p&gt;
&lt;p&gt;The update is coming OTA and is extremely painless to install, in fact it does it all for you. So why am I so damned happy?&lt;/p&gt;
&lt;p&gt;Them sweet sweet bug fixes. My WiFi will no longer drop for no fucking reason, my phone will respond when I tell it to and to top it all off IT LOOKS THE NUTS.&lt;/p&gt;
&lt;p&gt;Is it just me that needed a trip to change my underwear at that screen sleep press? You know when you lock your phone. It closes like an old CRT television, which is just fucking awesome. GOD DAMN, I just done it again because I love that little perk so FUCKING much.&lt;/p&gt;
&lt;p&gt;So what has really changed? Fuck, I love that screen close, well the icons on a lot of the standard android stuff have had a new lick of paint. The new icons are more colourful and generally the colours scheme is way nicer.&lt;/p&gt;
&lt;p&gt;You know how Google has been changing their search and making it more grey and red, the android is now, green, black and grey. They go together so nicely. However sometimes it looks a little odd but I will get adjusted to that no problems.&lt;/p&gt;
&lt;p&gt;So what else has changed? Well not a lot really, this update has been a long time coming and is still not the latest. Still I hope this is a new road to which I might get my updates on fucking time.&lt;/p&gt;
&lt;p&gt;p.s. I still hate you vodafone, go choke on a dick.&lt;/p&gt;</description>
<link>http://www.amateurprotagonist.com/a-62-google-nexus-one-gets-android-two-three-four-on-vodafone-network.php</link>
<pubDate>Fri, 20 Sep 13 10:00:00 -0700</pubDate>
<guid>http://www.amateurprotagonist.com/a-62-google-nexus-one-gets-android-two-three-four-on-vodafone-network.php</guid>
</item>

<item>
<title>Google+ Invites To Give Away For Free</title>
<description>&lt;p&gt;That is right you snake nibblers. Luckily a friend of mine on Facebook had some Google+ invites to hand out. So being the nice guy I had I pressured him for an invite like a hooker with half a face.&lt;/p&gt;
&lt;p&gt;Now if you just want an invite outright and want to cut to the chase. It is very simple. Use my contact form and send me an email asking to be invited. I will need your email address. I am pretty sure it needs to be a Google Account at the moment so you can't just go and start one afresh. P.S. If you are a Minecraft player tell me! Then I will add you to my Minecraft circle and keep you up to date!&lt;/p&gt;
&lt;p&gt;&lt;b&gt;First Impressions Of Google+&lt;/b&gt;&lt;br /&gt;Ok the first thing I saw was... It is all in SSL. Thank the fucking lord for that one. Now the cookies are fully encrypted and you don't have to worry about session stealing on public networks. I mean even Facebook falls over on it's fat fucking face there.&lt;/p&gt;
&lt;p&gt;Also the amount of control you have is amazing. Now not only can I spilt people into groups (circles) but I can post messages only to them or set groups, or just plain public. Also it fits with my phone like a glove. Photos instantly on the web. However they are not public just on the web. So now if you lose or delete your photos you don't have to worry. Now you are moving all your data to the cloud without thinking about it.&lt;/p&gt;
&lt;p&gt;I also love the UI, the full interface of Google+ is truly amazing. It is so sleek and easy to use. Nothing offence about the design. It is perfect.&lt;/p&gt;
&lt;p&gt;Now someone pointed out that there was no Adverts but not to worry they will come soon. Or will they? Gmail does not have adverts... See where I am going with this? By having Google+ be the centre of your life it allows you to get on with searching the web, sharing pages and sharing links. Webpages and Google products have adverts. That is where the money will always be made. You are forgetting this is not something to attract more people into Google, it is so Google is a bigger part of your life.&lt;/p&gt;
&lt;p&gt;Personally I love the Google+ and I have been waiting for it from the days of Google Wave.&lt;/p&gt;
&lt;p&gt;One thing I want to see now. Google+ comments... Then I can get rid of these Facebook comments and let users have Google+ and give them a true Google experience on my website. Oooo I can't wait.&lt;/p&gt;
&lt;p&gt;Some people are saying this is a phase like Google Wave, however Google has pretty much linked all of their products into this and even done a global UI change for it. It may not look the same in 6 months but by God it is here to stay and I fucking love it.&lt;/p&gt;</description>
<link>http://www.amateurprotagonist.com/a-61-google-plus-invites-to-give-away-for-free.php</link>
<pubDate>Wed, 18 Sep 13 10:00:00 -0700</pubDate>
<guid>http://www.amateurprotagonist.com/a-61-google-plus-invites-to-give-away-for-free.php</guid>
</item>

<item>
<title>Best Security Practices And How To Keep Your Passwords Safe</title>
<description>&lt;p&gt;For the few that have no idea I am being sarcastic, there is no full proof method to protecting your online identity or passwords. So I will be doing a top 5 ways to piss people off by making them believe you can help their security. &lt;/p&gt;
&lt;p&gt;The major flaw with online passwords is they are pointless. There, let me be the first developer to put their hand up for that. The huge issue is, if I have the password for your email I will always know and have full access to all your accounts. How? Because you trust your email too much, when the bank asks you a million questions you just accept it, but if your email does it is "pointless"? &lt;/p&gt;
&lt;p&gt;&lt;b&gt;5. Have Our Pointless Handheld Machine That Has No Real Point&lt;/b&gt;&lt;br /&gt;
Now my bank has sent me one of them pin machines. The basic idea is when I log on online I will turn it on and get a random number back. This number will then be required as part of the login process. Thus improving my security in the way the criminals would need the machine to break in. &lt;/p&gt;
&lt;p&gt;So why is it so flawed?&lt;br /&gt;
Firstly, name ONE person who has had their online banking compromised. I kid you not, you will struggle to find any level headed person who has. If I am going to steal details and money I will do it via the card not your online banking where my every action is logged! &lt;/p&gt;
&lt;p&gt;Also how does the machine communicate with the server to say what number it made? Here is a little known fact. IT DOESN'T. I will not go too in depth with the technology used but it is possible to predict the numbers on the machine. So why has no one cracked it yet? Because they are too busy cloning your card, you know the easy fucking way. &lt;/p&gt;
&lt;p&gt;So why is it annoying?&lt;br /&gt;
I have to not only remember my online banking number but also the machine needs its own pin too. To top it all off they removed my online pin where they ask for second, third and fourth. I loved that system! Now I have to remember a secret question and use the pin machine. So what does that mean? I cannot check my bank account away from home. Well done Mr bank, you have made it that bit harder to know how much I have spent this month or pay any bills on the day away from home. &lt;/p&gt;
&lt;p&gt;&lt;b&gt;4. Ask Me For More Than One Mobile Number&lt;/b&gt;&lt;br /&gt;
Sometimes they like to increase security by having you use your phone to verify who you are. I mean hell anyone who has go access to your account can now use this to ensure they always have a back door into your account, because lets face it not many people set it up. &lt;/p&gt;
&lt;p&gt;So why is it so flawed?&lt;br /&gt;
Asking for a mobile or landline number and having an automated system read or text one time use numbers to you is a great system. I am a big fan of this system and it works really well. I hate when I am asked for a backup number to my number, which is in fact used for a backup. Basically you want me to have another mobile number so I can backup my backup? &lt;/p&gt;
&lt;p&gt;So why is it annoying?&lt;br /&gt;
Sorry Mr rich cunt do you have two mobiles you can use and remember which is the backup? I have one phone and I cannot even use all the features on it, let alone having another phone for the crazy online verification. &lt;/p&gt;
&lt;p&gt;&lt;b&gt;3. One Security Question Is My Date Of Birth&lt;/b&gt;&lt;br /&gt;
Well you kill a few birds with this one, you get to know how old they are and it is pretty unlikely anyone will know your date of birth on the other side of the world once they have cloned your stuff and attempted to buy stuff. &lt;/p&gt;
&lt;p&gt;So why is it so flawed?&lt;br /&gt;
Not sure, but have you heard of a little thing called Facebook? Apparently its pretty big these days. Someone was telling me you could just type in someone name and find out where they were, how old they are and see all their pictures. &lt;/p&gt;
&lt;p&gt;Sorry what? How old you are on your Facebook? You mean to say your full Date Of Birth? So when they have your card with your full name on it which they can search online you really believe my date of birth will give me the edge in protecting my card details? &lt;/p&gt;
&lt;p&gt;So why is it annoying?&lt;br /&gt;
It is so fucking annoying to see such a pointless lame attempt at security. Maybe 30 years ago this was a pretty solid method of security from the other side of the world. However the internet has made your life and date of birth public. &lt;/p&gt;
&lt;p&gt;&lt;b&gt;2. Email Me My Password.&lt;/b&gt;&lt;br /&gt;
Forgotten your password? Well we will just email you your old password so you can log back in. Now you remember the password and you might use it elsewhere so you will remember it for them website too now. &lt;/p&gt;
&lt;p&gt;So why is it so flawed?&lt;br /&gt;
If any company can email you, your own password that means they do not encrypt their password. This is not such a big deal if someone has access to your email because they already have you by the balls by that point. This is a big deal if their data is stolen or goes missing. Unencrypted password and email address database? I wake up having a wet dream about that kind of stuff and have to tell my girlfriend I was thinking of her. I am joking, real programmers do not have girlfriends. &lt;/p&gt;
&lt;p&gt;So why is it annoying?&lt;br /&gt;
I had to call up a company to get access to an account. This was at work mind you and the company I was calling is a pretty big and very profitable company. These people deal in accounting solution addons and money transfer, so security is pretty big. Turns out we used the same email address twice so we had two accounts on their system. So how did we find out which was correct? &lt;/p&gt;
&lt;p&gt;He read out my password. I fucking kid you not. The guy over the phone read out my password. Not just my password, the COMPANY password. Think about that for a second. If your company uses the same password for say a few mission critical sections and someone you have never met just reads it out after saying it matches your email, you shit yourself a little and cry. &lt;/p&gt;
&lt;p&gt;What if that database gets stolen? All your security is for nothing because another company did not encrypt your password. Which is a very EASY thing to do, no programmer has any reason to fail this. &lt;/p&gt;
&lt;p&gt;&lt;b&gt;1. Your Password Is Not Strong Enough.&lt;/b&gt;&lt;br /&gt;
So there you are about to buy a new thong online when it asks you to create a password. You type in Cat, it shows a bar saying extremely weak password. You carry on anyway. Suddenly you are kicked back saying you cannot use that, your password is too weak. A good password should use 190 characters or more, be only know or applicable to you, have a mix of everything on the keyboard a minimum of twice (including upper and lower case) as well as a few Russian and Hebrew symbols for good measure. &lt;/p&gt;
&lt;p&gt;So why is it so flawed?&lt;br /&gt;
I do not want to have a super password and I will never remember it, unless I really want to buy from you again I will not go through the failed password routine (only to find you email me a copy of the password any because you do not know how to encrypt!!!) I will just shop elsewhere next time because you are so damn anal about your passwords. Nothing can stop the brute forcing of passwords, you only make it harder by having more complex passwords. In the end of the day you are not that important, you let the customer do what they want up to that point why get so anal? &lt;/p&gt;
&lt;p&gt;So why is it annoying?&lt;br /&gt;
If my password is the word password then it is my fucking fault when I get hacked! All you do is auth my card with a third part gateway anyways so you do not even have my card details. Tell me what is so amazing about my account that requires the Fort Knox combination code to get into? I will most likely never buy from you again so lets speed this up and take my fucking money already. &lt;/p&gt;
&lt;p&gt;In the end of the day do not force security on your users. Always have the options there for them. As a business it is your job to enforce good password polices and encryption on your end, not onto your customers. Encrypt your customers data and advise them, never force them.&lt;/p&gt;</description>
<link>http://www.amateurprotagonist.com/a-60-best-security-practices-and-how-to-keep-your-passwords-safe.php</link>
<pubDate>Tue, 17 Sep 13 10:00:00 -0700</pubDate>
<guid>http://www.amateurprotagonist.com/a-60-best-security-practices-and-how-to-keep-your-passwords-safe.php</guid>
</item>

<item>
<title>Donate To Minecraft And Making Money From A Minecraft Server</title>
<description>&lt;p&gt;Good news guys, I have added a donate button on the article pages and the about page. Also you can find it on the bottom of the Minecraft forum on every page.&lt;/p&gt;
&lt;p&gt;It does not look super pretty but I was out drinking last night and frankly it will have to do for now.&lt;/p&gt;
&lt;p&gt;So what can you donate? Well you can buy me beer or donate for the Minecraft server, it is possible to change the quantity of your donation when you go through to pay.&lt;/p&gt;
&lt;p&gt;With the money regarding the server or Minecraft will be used to improve and cover running costs for the server.&lt;/p&gt;
&lt;p&gt;Buying me a beer, is simply put, buying me a beer. This money will do towards me drinking, if I do get some people giving me beer money I will have to post some photos of me enjoying the cold refreshing taste.&lt;/p&gt;
&lt;p&gt;I will get around to make it look pretty but for now it will do. This will not turn a profit and I do not ask for any address details. It is what it says on the tin. A donations towards everything I and the Minecraft server team stand for.&lt;/p&gt;
&lt;p&gt;We hope you donate and I hope you enjoy the blog.&lt;/p&gt;
&lt;p&gt;All the best from Alister Sneddon.&lt;/p&gt;</description>
<link>http://www.amateurprotagonist.com/a-59-donate-to-minecraft-and-making-money-from-a-minecraft-server.php</link>
<pubDate>Mon, 16 Sep 13 10:00:00 -0700</pubDate>
<guid>http://www.amateurprotagonist.com/a-59-donate-to-minecraft-and-making-money-from-a-minecraft-server.php</guid>
</item>

<item>
<title>Minecraft Server 1.7_01 Active No Mods All Fun PVP Server</title>
<description>&lt;p&gt;You heard me right cocksuckers. Our Minecraft Server Version 1.7_01 is active like a girl when she hits 18 years old. This just does not get any better.&lt;/p&gt;
&lt;p&gt;Once again thanks to our super smart thinking and our Vanilla Minecraft Server you can get playing now!&lt;/p&gt;
&lt;p&gt;Don't waste time on them Modded Servers where everything is unfair and full of shit, join our super fantastic 1.7_01 Minecraft Server today!&lt;/p&gt;
&lt;p&gt;So what makes us so arse smackingly good? Other than the fact the server owners are well hung (you know in the pants department.) Well because we don't use mods, mods are forbidden on our no rules go crazy Server.&lt;/p&gt;
&lt;p&gt;Fair play, fair meat. If you can kill them, do it. If you can grief them, do it. If you can get an Admin in the corner of the mud hut and beat him within an inch of his life and then insult his sister. By all means do it.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://minecraftviewer.com/servers/3879/view" target="_blank"&gt;&lt;img src="http://cache.multiplayuk.com/b/1-3879-560x95-1-FF5519-FFFFFF.png" alt="Server Banner" style="border:0;width:560px;height:95" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;So why hang around waiting for the mods to get up to speed when there is an Active No Rules PVP Vanilla Minecraft Server Ver 1.7_01 waiting for you! *breath in*&lt;/p&gt;
&lt;p&gt;So don't be some lone ranger playing single player like some masturbator in the girls locker room. Be like the dude who freeballs it into the girls locker room and demands everyone sucks him off. Because we are bold like that ya know?&lt;/p&gt;
&lt;p&gt;So boot up Minecraft and join the Minecraft 1.7_01 Server with this sexual IP Address: &lt;b&gt;83.222.240.111:27865 &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Oh and by the way we have 20 slots open and free so fill them up and go crazy!&lt;/p&gt;
&lt;p&gt;P.S. Admins may harm children.&lt;/p&gt;</description>
<link>http://www.amateurprotagonist.com/a-58-minecraft-server-one-seven-zero-one-active-bo-mods-all-fun-pvp-server.php</link>
<pubDate>Sun, 15 Sep 13 10:00:00 -0700</pubDate>
<guid>http://www.amateurprotagonist.com/a-58-minecraft-server-one-seven-zero-one-active-bo-mods-all-fun-pvp-server.php</guid>
</item>

<item>
<title>Leaving A Big Shit Around Your Friends House - Not A How To</title>
<description>&lt;p&gt;This maybe an odd title for this post however it is in light of a blog I came across. Somehow I know her or her sister on facebook? I honestly don't remember that was two tabs ago.&lt;/p&gt;
&lt;p&gt;Aside from the post I read asking if you leave large shits in your friends toilet the blog has some amazing recipes. One I read was on cooking Chicken and Asparagus Pie, let me be honest with you. I have NEVER, never used asparagus in any of my cooking. I was borderline believing the shops sell it as an in joke or something like that.&lt;/p&gt;
&lt;p&gt;The blog is without any doubt &lt;a href="http://mynomnomnom.blogspot.com/" title="MyNomNomNom"&gt;MyNomNomNom&lt;/a&gt;. Which also is the greatest name for a food blog ever.&lt;/p&gt;
&lt;p&gt;So lets run head first into a few of the big questions not covered by her food knowledge (lets face it, if this was about food knowledge I would only know the number for two local takeaways.)&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Do you leave a big shit at your friends house?&lt;/b&gt;&lt;br /&gt;Now for someone who focuses on food I can understand how this is not your normal forte so hopefully I can shine some light on the topic. Some people do this for a very simple reason, they don't want it floating around at their house. Male public toilets, for example, normally have shit on the walls and pee on the floor. By no means do the same men walk into their bathroom and try and shit in the sink as they pee in the shower, they are taking advantage of the fact they don't have to clean up or get blamed.&lt;/p&gt;
&lt;p&gt;On the flip side many people in the UK who have common sense would not go to the toilet at a friends house at all due to the fear of being "judged", not saying you invite your gay friend over and later find a condom and large shit floating around in the loo, just that some people are more private.&lt;/p&gt;
&lt;p&gt;If you do have a friend who comes over just for taking large shits I believe they are also the friend that turns up at 3am drunk half naked saying "does this rash look funny to you?"&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Men who don't normally cook never shut up about it&lt;/b&gt;&lt;br /&gt;I hold my own hand up high for this one. My girlfriend always made me help out in the kitchen and would slowly give me more to do over the weeks (kind of how you train a child at anything.) Now before she had me cooking I was a strict pizza, pasta, microwave man. Meaning in short if it takes longer than 10 minutes and requires more than me looking blanking at it, I can't cook it.&lt;/p&gt;
&lt;p&gt;The story I never shut up about is my half attempts at roasts and the few good stir-fry dishes I done. Her boyfriend (on the MyNomNomNom blog) has only gone and made something I dare not attempt to pronounce or spell (that is how I know food is fancy.)&lt;/p&gt;
&lt;p&gt;Normally I would not do a post about me reading another blog, because hey, that is kind of lazy. However there is one quote that I saw.&lt;/p&gt;
&lt;p&gt;"No seriously Lu, come watch me stir this". - I have said that. Ok without the Lu bit, but I have said that word for word.&lt;/p&gt;
&lt;p&gt;Seeing this made me laugh because it put me right back in the kitchen making something new and demanding attention to ensure I am getting it right and my girlfriend is aware how right I am getting it.&lt;/p&gt;
&lt;p&gt;It all comes back to men at a BBQ in the end of the day. All the men look at a grill and all comment on the one man cooking. As silly as it is commenting on the grill it is still a step up from taking a large shit in someone else's toilet and sending them a picture message about it when you leave.&lt;/p&gt;</description>
<link>http://www.amateurprotagonist.com/a-57-leaving-a-big-shit-around-your-friends-house-not-a-how-to.php</link>
<pubDate>Thu, 12 Sep 13 10:00:00 -0700</pubDate>
<guid>http://www.amateurprotagonist.com/a-57-leaving-a-big-shit-around-your-friends-house-not-a-how-to.php</guid>
</item>

<item>
<title>How To Write Your Cancellation Letter To Esporta Gym</title>
<description>&lt;p&gt;Now if you know anything about Esporta Health Club you would know they have had the BBC watch dog on them, countless complaints and generally are deemed untruth worthy.&lt;/p&gt;
&lt;p&gt;The big thing with Esporta is you need to sign up to a year membership and they are normally over priced. I got a special price per month as I work in a local business (and complained about some stuff) which was 45 pounds a month. That is a hell of a lot of money for a gym (yes we had a pool too but it was total shit.) The other local gyms (thats right there are about 4 in total.) Charge around 17 pounds a month.&lt;/p&gt;
&lt;p&gt;So what was I getting for this amazing price from Esporta? Well I could join in any of the classes but I work 9-5 so really only about 2 classes in the afternoon could I ever do and they were all shit anyway. Free access to the gym and pool when ever I wanted, however the pool was so filled with chlorine it was painful to swim in, very nasty experience. They did have a "spa" which was a jacuzzi, steam room and sauna. Pretty standard stuff that even 20 pound a month gyms would offer.&lt;/p&gt;
&lt;p&gt;Now Esporta have this little trick to save money, they hire sales guys dirt cheap with the promise of MASSIVE commissions as long as they hit their targets. Now lets me tell you this, I know three people who have worked in that Esporta and they have all assured me it happens nation wide. They give the sales guys 2-3 months to hit the target, however the targets are always unreachable. This means two things, one they don't have to pay loads for really dedicated pushy salesmen who need the jobs badly and how know they are not hitting the targets and secondly you will never get any extras you agree in your contract because they will not be there in 2 months time.&lt;/p&gt;
&lt;p&gt;I have just written to Esporta to cancel as it is coming up to the full year (which automatically renews if you don't cancel!) and I signed up in August. Only just found out my membership lasts until the first of September... So know Esporta are going to charge me for all of September, I just know it.&lt;/p&gt;
&lt;p&gt;Esporta Health Club and Gym, more like Esporta Raping Your Bank Account.&lt;/p&gt;
&lt;p&gt;Now I am really bad at writing letters and stuff but I finally got something together that is to the point and official, here is a copy of what I wrote to them, change it to suit you so you can too be free.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;LETTER TO ESPORTA, CHANGE AS NEEDED&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Customer Relations&lt;br /&gt;
Esporta Health Club&lt;br /&gt;
{insert your local clubs' address here}&lt;/p&gt;
&lt;p&gt;To whom it may concern,&lt;br /&gt;
I have been a member of Esporta Health Club/Gym for almost a full year now and have no intension of continuing my membership. I am writing to inform you that I will not be renewing my contract for another year.&lt;/p&gt;
&lt;p&gt;I understand that I joined in {month joined} however the first payment was the 1st of {month after}, meaning my membership is to renew on the 1st. However as I am cancelling my membership I do not expect to be charged {your monthly fee} for the month of {that month after you said above}.&lt;/p&gt;
&lt;p&gt;Dated: {current date when you signed it, make sure this is the date you hand it to them!}&lt;br /&gt;
{full name}&lt;br /&gt;
Membership Number: {found on your card}&lt;/p&gt;
&lt;p&gt;Signed:&lt;br /&gt;
{your signature in ink after printing goes here}&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Finished&lt;/b&gt;, just fill out the {} bits and you are good to go! I handed mine in today and I hope it worked and I just killed the Esporta leech.&lt;/p&gt;
&lt;p&gt;I wonder is Esporta use AdWords? They might be advertising on my website right now... Might have to block them, report them as a scam website.&lt;/p&gt;</description>
<link>http://www.amateurprotagonist.com/a-56-how-to-write-your-cancellation-letter-to-esporta-gym.php</link>
<pubDate>Wed, 11 Sep 13 01:00:00 -0700</pubDate>
<guid>http://www.amateurprotagonist.com/a-56-how-to-write-your-cancellation-letter-to-esporta-gym.php</guid>
</item>

<item>
<title>Top 10 Ways To Annoy And Stop Customers From Buying</title>
<description>&lt;p&gt;Now I am sure you read my other article about how to slaughter all hope of a joyful experience at the checkout point. Now if you are trying to piss off a customer at the checkout process who for some crazy reason figured your website was alright and not a monster in the cupboard (which it really is.)&lt;/p&gt;
&lt;p&gt;Now you see companies focus so much on losing customers on the checkout process they are missing out on a key moment. What about when customers first land on your website? Think of the thousands upon thousands of pounds your company is pouring into getting people to the website. Hell you would be about as mentally stable as a 3 legged dog to not ruin that and drive as many away as possible.&lt;/p&gt;
&lt;p&gt;I mean if I put money into AdWords I will try my damned hardest to make sure all of it is wasted. Now really I don't try and do that, I didn't think anyone would do or even think that. However I am written a top ten on just that, so maybe they do.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;10. Hide The Call To Action&lt;/b&gt;&lt;br /&gt;
You know what I love about visiting a website when going to buy something? Not being able to buy it, I mean hell I have only spent 20 minutes price hunting for a damn sock and finally found a good price and nice style, but wait. You want to buy that? It's like the website started to blush and hide the buy button.&lt;/p&gt;
&lt;p&gt;Yes I like the animations and the logo very much but I really want to just buy this, no I didn't want to see your social links. Oh a picture of the owner, brilliant now I know who to punch in the street. More PDF's, oh is that a buy button? No that is the upsell of a related product (God forbid you buy what you are looking at.) What's that? Holy shitting nipples *mental image* they have only gone and included a buy button! Well that must be a mistake; I was so sure they didn't want to. Click that and just checko... Where the fuck is the checkout button?&lt;/p&gt;
&lt;p&gt;Lesson here guys, make it clear what you are about, like a hooker on a street, you are either splitting your legs for cash or you are picking up the kids (hard to tell sometimes.) &lt;/p&gt;
&lt;p&gt;&lt;b&gt;9. Every Image Is A Moving GIF Because Why Not?&lt;/b&gt;&lt;br /&gt;
These days everyone is going speed crazy, yet when I last 5 seconds in bed and compare it to a webpage load time I am the freak? Jeez someone hasn't watched the Google Chrome adverts. Now with load times on the front of everyone's face, as they wave their Internet Bibles, we need to streamline our designs.&lt;/p&gt;
&lt;p&gt;Streamline designs you cry out? Why he must mean large GIF animations that are pointlessly long and add nothing to the page but amazing load times. Well not really but it seems some of you have gone ahead and done this anyway.&lt;/p&gt;
&lt;p&gt;Not only is the webpage moving like a women with a fear of spiders inside that spider bit in Harry Potter, but it also takes the better bit of my day to load. Basically a massive middle finger to mobile phone users too, because hey, they are not real people.&lt;/p&gt;
&lt;p&gt;Lesson here is if you can't be trusted with GIFs just don't use them.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;8. Tailor My Experience Depending Where I come From&lt;/b&gt;&lt;br /&gt;
I use a lot of different methods and means to get to a website. I could see the URL and go direct, I could use a search engine, I could use a shopping channel, hell I could use a pen and paper. I want to see your website the same always.&lt;/p&gt;
&lt;p&gt;Let's say I buy something from you, I know what you are saying "Buy Alister you amazing stallion of a man, why would you grace my shit website?" I know it's unlikely but let's say I did. Now I see your URL pop up in shopping and I click through because hell I know you.&lt;/p&gt;
&lt;p&gt;What's that? 5% off for Google Base customers? YOU DICK. All you have achieved is under valuing your business. Well-done, you have a won a gold star, in how to be a total arsehole to people that give you money.&lt;/p&gt;
&lt;p&gt;Lesson here is I know sometimes customers from said streams spend more money, but let's not devalue our business over one extra sale?&lt;/p&gt;
&lt;p&gt;&lt;b&gt;7. Put Adverts For Competitors On Your Own Website&lt;/b&gt;&lt;br /&gt;
"Hey Dave, you know all the people who don't buy from us?" "Why yes I do Richard, what are your thoughts on the subject matter good chum?" "Well why don't we add adverts to help us monetise on said customers?" "By Jo he's got it!" "My name is Richard, we have been working together for three years now you should know it."&lt;/p&gt;
&lt;p&gt;I want to buy from you, I don't want to see adverts. Frankly seeing adverts just makes me think you are a struggling company and will put me off buying from you. You really want to earn an extra pound a day and sell less? Unless what you are selling only results in less than a pound of profit in which case how are you in business still?&lt;/p&gt;
&lt;p&gt;Lesson here, if you sell, sell. If you advertise, advertise. Kind of simple that one.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;6. Side Sell Me Everything&lt;/b&gt;&lt;br /&gt;
We see you are looking at buying a cat flap, you would be interested in purchasing this oak chest of draws.  I know draws and claws rhyme but this is just taking the piss. If I am looking at a cat flap why not suggest items a cat owner would need regularly. A cat flap is a one off purchase however tempting them with cat food would be a perfect chance to make them come back.&lt;/p&gt;
&lt;p&gt;Even a poor attempt like Cat Flap and a Hammer. Maybe you need the hammer to fix the Cat Flap? In the end of the day don't drive me away or make me distracted with items that have no real place together. It's like sticking a privately school child in a dole office. Just doesn't work or end well.&lt;/p&gt;
&lt;p&gt;I know you really like the new chairs you sell but I am here for a phone cover. I understand what some phone owners require chairs and don't float in the air all the time. However by that logic I will start to sell children's soap and bleach together in unmarked bottles because hey they both go in a house right?&lt;/p&gt;
&lt;p&gt;Lesson here is I want to know about what I came for, side sell me if I am going to leave, upsell me if I am buying.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;5. I Vomited On My Website Sorry About That&lt;/b&gt;&lt;br /&gt;
Is that green, on top of yellow writing with a pink shadow, or has someone behind me vomited onto my screen? Look I know colours are great fun, I am not going to stand (sit) here and moan about colours. Let me be honest with you, when I was a child I loved colours, hell sometimes I mixed colours that other kids didn't dare to mix. However we all grow up.&lt;/p&gt;
&lt;p&gt;You know all the websites you love and use almost every day? You know how they all have a set theme and blend the colours together nicely? Some even match the logo when you would have thought it impossible? Oh you DO know about them websites! Thank fuck, there I was looking at your website thinking you believe hippy to be a type of colour.&lt;/p&gt;
&lt;p&gt;Why choose between all the amazing colours of the rainbow when you can have ever fucking one of them? Why have a threesome when you can hire twenty hookers? You know why? A little thing called moderation. Also don't think I could last that long.&lt;/p&gt;
&lt;p&gt;Lesson here is just because you can does not mean you should. This is one of them rules that gets applied through all life, so why stop on the internet?&lt;/p&gt;
&lt;p&gt;&lt;b&gt;4. We Have An Inhouse Flash Animator&lt;/b&gt;&lt;br /&gt;
How did you know I hear you cheering from the windows? Well because EVERY fucking thing is in flash. I bet someone came up to you and said "You know not everyone supports Adobe." To which you got your dick out and slapped him around the face with it. After that you were never reinvited to the family Christmas dinner.&lt;/p&gt;
&lt;p&gt;Not everyone like flash and honestly it kind of has a bad rep. The best bit is there is more ban examples than good. This is one of them things you can go to high end companies and see their website littered with flash, even they think it's good. Then again they make all their money offline and are wasting money with ecommerce like a homeless man wastes money on hair shampoo.&lt;/p&gt;
&lt;p&gt;Lesson here, everyone hates flash. Really now, everyone does.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;3. I Want To Leave, I Can't Let You Do That Dave&lt;/b&gt;&lt;br /&gt;
If I want to leave your website then for the love of all that is holy let me leaving your fucking website. No amount of popup boxes are going to keep me from leaving what is increasingly the worst website in the world.&lt;/p&gt;
&lt;p&gt;Yes I want to leave, no mr popup this is for real, yes I am extremely sure. Why yes I don't care for discounts and want to leave. Look here you little shit I don't want to! Oh wait you swapped them around and now I am still on the page. Around this time my laptop "falls" on the ground.&lt;/p&gt;
&lt;p&gt;If someone is leaving your website go ahead and assume it is because they want to. Otherwise you are just begging for them to stay. Let's face it begging normally is a bad sign. Remember them door to door salesmen? I don't myself but let's go ahead and pretend we both do. See how much people hated them pressuring them to buy shit? That is what your pop up is. Shit, also pressuring.&lt;/p&gt;
&lt;p&gt;Lesson here, you cannot stop people from hating on you by begging with them.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;2. Clear As Day Search Engine Food&lt;/b&gt;&lt;br /&gt;
We have all seen it, the writing at the bottom of the website designed to help get a boost in the search engine rankings. Hell if you read it the links are all strange and it doesn't make much sense. Do you have any idea how off putting it is to see a website trying so damn hard to be liked. &lt;/p&gt;
&lt;p&gt;You remember the kid who wore trainers than shoes to school to be cool and got made fun of? No? Then it was you. Everyone hates try hards. Even more when it is pinned on their face like a zit of shame.&lt;/p&gt;
&lt;p&gt;Keep your SEO away from my content, if you want to do that, then its fine, just keep it the fuck away from me. I don't want to know or see what you are up to because it looks like you are failing and trying everything you can to stay afloat with fears of going under at any moment.&lt;/p&gt;
&lt;p&gt;Lesson here, focus on the customer first, they like to feel special. Don't invite someone to bed and when they turn up someone else is there.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;1. My Lovers Hidden Song&lt;/b&gt;&lt;br /&gt;
Well this looks a good website, wait a second my music has changed. I don't remember this beat. Better pause my music and look at the track... Hm the music is still playing, well all I have done is open up this webp... Oh. Oh I have been sucked into a time warp back into the 90's.&lt;/p&gt;
&lt;p&gt;Now I am not talking about music on a website, which is pretty annoying. I am talking about music embedded into the body element of the website. What these means for you stoneage people accessing this website by rubbing the rocks together is there is no way to control it.&lt;/p&gt;
&lt;p&gt;Basically this music will reload and start again on every refresh as well as looping forever. Someone has thought I love elevator music and so do my made up friends. My website will feature this relaxing music on every page because they must like it too!&lt;/p&gt;
&lt;p&gt;It is not good enough to give control, you must REMEMBER the control also, don't let me pause it and then start it again on the next webpage. I want to buy something not re-enact being in side an overpriced store. &lt;/p&gt;
&lt;p&gt;Next time you want to add music, stop. Pick up a very sharp pencil, and shoot yourself with a gun you fucking dick.&lt;/p&gt;
&lt;p&gt;Lesson here, never add music. When you do you stop listening to customers, because you will not have any.&lt;/p&gt;</description>
<link>http://www.amateurprotagonist.com/a-55-top-ten-ways-to-annoy-and-stop-customers-from-buying.php</link>
<pubDate>Tue, 10 Sep 13 10:00:00 -0700</pubDate>
<guid>http://www.amateurprotagonist.com/a-55-top-ten-ways-to-annoy-and-stop-customers-from-buying.php</guid>
</item>

<item>
<title>Top 10 Ways To Piss Off E-Commerce Customers Checking Out</title>
<description>&lt;p&gt;Now we have all been there, Jo Blogs, Developers, Directors and even Nuns (so I have heard.) the worse e-commerce experience of our life.&lt;/p&gt;
&lt;p&gt;Sometimes you will be inches, na, seconds away from that dream purchase. You found that obscure necklace she has always wanted, that only comes from one part of the world, is known to cause skin irritation and the plague.&lt;/p&gt;
&lt;p&gt;Suddenly the shit hits the fan, all kinds of crazy batshit crazy stuff happens. Before you know it two goats are outside your house and your mother has been emailed pictures of you naked in a corset. Oh we have all been there, the horror of poor e-commerce systems, the pain of not knowing and the confusion of using a system designed to drive lab mice to suicide (I am sure it's a real thing.)&lt;/p&gt;
&lt;p&gt;So lets have a top 10 of some of the worse things you can do for your customers, the painful bit is they would of all steamed from some good idea. Much like sex is a good idea and then paedophiles take it a step too far, basically these developers have done that.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;10. Use a 3rd Party Payment Gateway&lt;/b&gt;&lt;br /&gt;We have all been there. You are about to get to the paying bit, you the part that every company goes through hell and high water to get totally right. Well some bright spark said, "We want the payment to be sleek and easy, but I don't want to spend along time on it, have any responsibility and it needs to be dirt cheap." Now nothing really meets that criteria bar the absurd-never-heard-of 3rd party payment gateway.&lt;/p&gt;
&lt;p&gt;Want to pay? Sorry you need to sign up with this extra company you have never heard of and whose website is worse than the one you was just one. Want to just blindly put in your card details and buy the fucking 1kg of butter? Sorry, you need to read why we are so secure. Look mr 3rd party. If I have problems about you been secure I would look for help or information. If I am typing in details and pressing "PAY" you can go ahead and assume I am accepting everything you have said and ever will say.&lt;/p&gt;
&lt;p&gt;Lesson here is that sometimes the standard is the right solution, lets not reinvent the wheel.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;9. We Have Nine Different Newsletters&lt;/b&gt;&lt;br /&gt;I don't care if you have a 3rd nipple. Lets face it, I want to be part of your stupid pointless spam or I don't. Do you think I will filter through every department of your website and suddenly go "Hey! its all shit, but damn that looks really good." It doesn't happen. Sign me up and let me unsubscribe when I can be asked.&lt;/p&gt;
&lt;p&gt;I am creating an account because I want to buy from you, not because I really really fancy hearing about bedside tables for the next two months. If you have customers who like that kind of crap, stick a sign up form on the website and have a general include into mailer selection on the checkout.&lt;/p&gt;
&lt;p&gt;Lesson here, don't distract me with choices I don't care about when checking out.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;8. We Are Social - Facebook Whores&lt;/b&gt;&lt;br /&gt;Why yes didlo express .com I do want to share this purchase with my friends so they too can experience your website. I really fail to see the point of prompting me to  follow or like you just to buy from you. Lets say I done a sale in my garden and you wanted to buy a CD off me. Would you want me to stand there and say "Sure, just call your friends first while I stare at you and tell him I have a nice smile." If at this point you didn't tell me to fuck off then you might like that feature, I believe you also have someone reminding you to breath or not listen to the voices.&lt;/p&gt;
&lt;p&gt;The lesson is just let me buy from you, I couldn't care if you tweet offers 24/7 I just want my goods, this is not a life long commitment I am getting into, so stop making feel like that.&lt;/p&gt;
&lt;p&gt;Also most are poorly coded and you can get around pretty easily, mugs.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;7. Your Age, Height And Sex&lt;/b&gt;&lt;br /&gt;I am sorry you need my what? I just want to buy a DVD. Ok my age, hell I have a credit card but sure why not. I mean you need to be over 18 to have a credit card, but I like your method more. Just ask me, no one lies on them things anyway, right? Oh... My height? But... This really has nothing to do with my purchase... Hell this doesn't even help with customer profiling, I have never heard anyone say "Yes well the demographic is ages 20-25, male, white, middle class and around 5 foot 6 inches." Lets face it, you just don't need to know.&lt;/p&gt;
&lt;p&gt;Normally this comes with e-commerce software them pointless questions. It is so painful when you do not change the stock install to make more sense to what you do. Take what information you need, not as much as you can.&lt;/p&gt;
&lt;p&gt;Lesson here, my shoe size does not help me choose shipping options.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;6. In And Out Of SSL&lt;/b&gt;&lt;br /&gt;Ah another website using extended validation, I am glad they value my details, oh. It's disappeared. Now my entering of address is not secure, well I guess my card details are. Oh wait the form remembered them and sent them over again outside the secure encryption. Well I am glad they have not cheaped out on me or anything. Or even better you made the purchase and now the whole website is in SSL. Because hey you liked that page in SSL so much the WHOLE website will now use it! What's that problems with non secure pages? Might be because you have only gone and put normal http hard coded images on product pages which are now all in https! Congratu-fucking-lations, your programmers are cunts.&lt;/p&gt;
&lt;p&gt;Lesson here, known when to use SSL, its just amateur otherwise.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;5. Type Your Billing, Now Type Your Shipping And Retype...&lt;/b&gt;&lt;br /&gt;Look, I am not fucking typing my address two times. God I hate typing my email in twice. I mean sure sometimes that is important but lets face it, if I get it wrong that kind of is my problem isn't it? Stop making me retype every bit of information. I mean hell if you are worried about getting stuff right use automated services. Postcodeanywhere. Use it. ALWAYS. Nothing makes me madder than typing my address on multiple lines with tool tips so my tab button is as useful as your form.&lt;/p&gt;
&lt;p&gt;The best way is not to get me to retype everything but make me type as LITTLE as possible. Doesn't matter if my browser knows it all already, I still need to click through and look at that huge pointless form.&lt;/p&gt;
&lt;p&gt;Lesson here is make me type less, its faster, cleaner and makes your forms smaller. Speaking of which.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;4. Like My 5,000 Fields?&lt;/b&gt;&lt;br /&gt; Don't show me all the form fields if I don't need to fill them out. Hell show me an email only, then ask for my name. Now this is really important. Do not put them on different pages. Use some fucking jQuery and just hide and show when needed. If the form looks like 5 things and two of them are repeated passwords I will jump in. Email, First/Last Name and Password. Then show me what bits of the forms I need to see. e.g. Don't show me state if I am in the UK.&lt;/p&gt;
&lt;p&gt;Even better put everything on one page but then HIDE what I don't need. So your form does half of what I suggested. It looks a nasty long form and then randomly hides elements like you can't be trusted with them. Just looks so bad.&lt;/p&gt;
&lt;p&gt;Lesson here is to keep the forms clean. A clean form is a happy form.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;3. Upsell After I Have Paid&lt;/b&gt;&lt;br /&gt;Ah just finished that painful checkout, have an account, three kids in Africa, gave money to some random charity, given full access to my Facebook and told them where I live. Now I can log off and go back to be... Would I like to buy this highly required product? Well. You know what, even if I need that to live. I will not buy it from you, you have basically taken my blood and now, NOW, you want to push me again? Not in a week, not in a month. Right this second now. I put my card away, like hell do I move twice out my chair for a website. You just know it will not be easy, you will pay for shipping twice and you know for a stone cold fact it will not be easy.&lt;/p&gt;
&lt;p&gt;Could of upsold me on the product page, could of done the upsell on the basket, no, could of thrown products at me on the order review page where you have all my details and card all ready to go, no. You are now not going to say thanks for buying from you, you are now going to blatantly bleed me dry for cash with no remorse.&lt;/p&gt;
&lt;p&gt;Lesson here, once I hit that order complete page I am finished with your website. Give me your kisses and get out the car, you have your money and I have a bad STD.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;2. Fuck You Tax&lt;/b&gt;&lt;br /&gt;Ok everything is going really smoothly, I love the website, the product, the price, hell I love it all. Got my shipping and I assume this is the card part where we say our vows, wait... What's that? You want an extra 0.50 pounds for using a VISA card? What the fuck is wrong with you? I will click on the contact page and hunt you down. I know where you will be when I break into your house. Swimming in your bath of FUCK YOU TAX. All them five pound notes around your bloated hairy carcase of a body.&lt;/p&gt;
&lt;p&gt;Don't let me get so close I can taste your sweat and then say "Oh because you are buying from us you need to pay extra." Fucking hell, everyone gets charged for card transactions, people know this, companies know this. You know what the general acceptable thing to do is? SWALLOW THE FUCKING COST. If you need to charge me 50 pence for using a VISA card, why not increase the product or the shipping by that much so I don't know? I don't know how much shipping will cost, I don't know if you make profit on your shipping. However now I know you make clean cut profit off your card processing. The best bit of it all. That extra 50 pence is still charged! So you don't even seen a whole 50 pence as a company!&lt;/p&gt;
&lt;p&gt;Picture this, you are in a burning building, lets say 50th floor. A fire fighter comes up to the window on his ladder (big ladder.) You run over and he stops you "I need to charge you a fiver to use this ladder because he pay to maintain it when you are using it." At this point you shout FUCK YOU. Thus the term fuck you tax. Because that is the tax applied to people when you have their pants down and your fist in their arse. Then as they have tears in their eyes you remind them they have to pay. It is just unrequired pain.&lt;/p&gt;
&lt;p&gt;Lesson here, if you are so cheap to charge me for card processing do it in a way I will not suspect.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;1. Hey, Great Idea Guys, Lets Use Google Checkout&lt;/b&gt;&lt;br /&gt;Holy fuck nibbles. Now If you have used Google Checkout it is pretty straight forward and works very well for the customer. As a business owner you get a checkout logo on your AdWords heck you even get a boost in the Google Shopping for being part of the family.&lt;/p&gt;
&lt;p&gt;This is a swear to God true message about a company and Google Checkout "I got my email from [company] first but it was never marked as shipped in Google, yet another company that doesn't not know how to use Google Checkout." Let me tell you people, I raged. I raged hard. If anything was going to push me over the edge and go on a killing spree. It would be that. Let me tell you about Google Checkout, first. It is an alternative checkout to be used from the basket, not sign up first, or email checks. Nope it's all Google, nothing to do with your company.&lt;/p&gt;
&lt;p&gt;Also you know how most payment gateway companies kinda do things that same way? Well not Google. Because hey fuck you world, we are Google. No Google display address information like a dead person displays affection, it doesn't. Google have no idea how anyone uses information and intents to allow customers to enter their address details with no real validation done.&lt;/p&gt;
&lt;p&gt;Now because this is all done by Google you need to send everything to Google, but wait! Google also has a set of defaults! So rather than report a problem, nope it goes back to them shipping options from the UK from four years ago. Suddenly you have to send a salad fork to Spain for less than a pound.&lt;/p&gt;
&lt;p&gt;Now Google sends information back to a webpage on your website with all the order stuff and what happened. Shame their code is unpredictable and doesn't always do what it should. What's that? Customer ID is all numbers? Well we know but I want to send it as a string than int right now. Oopsy your website just went down.&lt;/p&gt;
&lt;p&gt;In terms of communication with Google it is like your second cousins aunty. You don't really talk and when you do no one (including both of you) have any idea of what is being said.&lt;/p&gt;
&lt;p&gt;Then to top it all, know that lovely back office you have that does everything? Well Google thinks life would be better if you just used them. So they will make life as hard as humanly possible for you.&lt;/p&gt;
&lt;p&gt;Know how it is really handy and simple to do full seamless integration with PayPal? Google looked at that and said, "Like we give a fuck!" and made life hell for everyone.&lt;/p&gt;
&lt;p&gt;The best bit! It normally costs more in commissions than other systems as well as having all the flexibility of a rhino.&lt;/p&gt;
&lt;p&gt;Lesson here is sure use Google Checkout for the Google related perks, but try to avoid customers really using it...&lt;/p&gt;</description>
<link>http://www.amateurprotagonist.com/a-54-top-ten-ways-to-piss-off-e-commerce-customers-checking-out.php</link>
<pubDate>Mon, 09 Sep 13 10:00:00 -0700</pubDate>
<guid>http://www.amateurprotagonist.com/a-54-top-ten-ways-to-piss-off-e-commerce-customers-checking-out.php</guid>
</item>

<item>
<title>Only Gone And Integrated Facebook Comments In PHP</title>
<description>&lt;p&gt;First things first, this is post 53! YEAH! Slowly increase of numbers, can you feel the love?&lt;/p&gt;
&lt;p&gt;Now this title is just one big huge lie, no joke it really is. The Facebook integration has taken me less than 5 minutes, you set yourself up as an app (so you can monitor comments with ease.) then use a little meta data with some easy JavaScript and you are all done. Or as they say in my world, hey why are you not working on my website yet?&lt;/p&gt;
&lt;p&gt;I have been looking to get a comment system on these blogs for so God damned long now. Luckily Facebook was all like "Shit motherfucker I can do that." Because Facebook is now a stereotypical black man from the 80's, maybe early 90's.&lt;/p&gt;
&lt;p&gt;I had to sort out all this bullshit with the Facebook, they wanted an icon for it's my face. No joke. My Facebook application's logo is my face, am I the only one who see's that as uncanningly whitty?&lt;/p&gt;
&lt;p&gt;Sorry but Chrome says I misspelt uncanningly, I honestly don't believe it is even a word, however it should be.&lt;/p&gt;
&lt;p&gt;Now just an update on all things code and IT. The Minecraft server is running fine for now and I am pinning A LOT of hopes on version 1.7 giving us a massive boost, otherwise we will downgrade and look to go another angle. I am still working on the dance studio website, I just keep redesigning and getting annoyed with it. I hate the designing stage. Programming is fine, but don't make me design. I really need to be in the mood to design, sadly that is the same mood as "Hey Oblivion, lets kill some vampires with my level 6 mage (who already has the best spells fyi.)" Pretty sure I can not put brackets inside speech marks... Looks like I whisper it or something, maybe a backing singer does that bit.&lt;/p&gt;
&lt;p&gt;Erm fixing a laptop at the moment, it is very painful to remove Ubuntu for Windows XP, only to find my WiFi is no longer working! Just great, I love running wires around the house like some mental person attempting to connect to the outside world by using spark plugs and a stale chip. The joke is in chips are foods as well as core components.&lt;/p&gt;
&lt;p&gt;Think my humour has slipped with the excitement of hitting 53 posts, with maybe 10 half good interesting stuff on them. Well maybe 5 at a push.&lt;/p&gt;
&lt;p&gt;I was thinking how to improve this and I know what to do. I will remove them stupid addme links and replace it with the sexy magical Google +1 button! So I will work on that first, I say first because the next thing is making sure I can post on this article like a boss.&lt;/p&gt;
&lt;p&gt;I should be cheezy and put "First" or is that plain sad on my own blog? I am pretty sure it's sad.&lt;/p&gt;</description>
<link>http://www.amateurprotagonist.com/a-53-only-gone-and-integrated-facebook-comments-in-php.php</link>
<pubDate>Sun, 08 Sep 13 10:00:00 -0700</pubDate>
<guid>http://www.amateurprotagonist.com/a-53-only-gone-and-integrated-facebook-comments-in-php.php</guid>
</item>

<item>
<title>Making Money Of A Minecraft Server - Is It Right?</title>
<description>&lt;p&gt;Most of you are aware of the Minecraft server I run. The only problem is the massive cost with running a server.&lt;/p&gt;
&lt;p&gt;The big problem with making money of a Minecraft server is how do you do it and is it fair? Now lots of people know how you can do it.&lt;/p&gt;
&lt;p&gt;For example I could charge you to have your name a different colour, let you have extra powers in the game. Or maybe you can buy sets of armour and equipment. Another method would be adverts that show up in the chat windows every couple of minutes or so.&lt;/p&gt;
&lt;p&gt;The issue is you need a huge user base for that to work, with having that kind of user base you need the money to support it. So basically I need to tip money into making the user base huge so I can monetise them. That people is a fully fledged business strategy, no someone who hops onto their server a few times a week.&lt;/p&gt;
&lt;p&gt;Hell I should go to Dragons Den with ideas like that. Really now is it fair to make money off your server? I mean if someone has �10 to burn they could make life hell for everyone else and buy loads of extra tools and protect their homes etc. in short I would be saying to people "Hey for a tenner you can fuck people off." Really that is all people want to do.&lt;/p&gt;
&lt;p&gt;The only "fair" and "right" method would be adverts on the server which you charge only the amount required to cover the server. Players could live with it and it is a sound business model. One small problem with that.&lt;/p&gt;
&lt;p&gt;Who wants to advertise to Minecraft Server Players? Erm... People with their own Minecraft Servers?&lt;/p&gt;
&lt;p&gt;Hell I am looking to put the server back to 8 slots because upgrading was a total waste of my time and money. The only way the game will be fair and just for all is if I put on a whitelist and played papa hitler and told everyone what they can and cant do. Fuck I might as well make bedrock zones between areas and only let you work in a set area, then if you need materials you need to buy them off me. If you want someone to see what you have done you need to buy a guest pass. If you want to take photos and videos you need to pay me royalties. I believe the term for that business model is called the "Steam - Team Fortress Two - We Hate Our Customers Model" is the official trademarked term I believe.&lt;/p&gt;
&lt;p&gt;What gets to me is I pour money into the server and then get told by people, people who still live with their mothers, what to do with my server. "Hey why don't we install this mod so I can do this." When I call them a cunt and tell them to read the rules I get the same bullshit, "In my server we do that." WHAT? In YOUR server? Why the fuck are you here? Must be the fucking balls of a server for you to think "I am pouring loads of money into this server, lets look and enjoy someone else's." Unless you are just making total bullshit up which is FAR more likely.&lt;/p&gt;
&lt;p&gt;So where do we go, do I manage the server like some nazi on speed and spend my time ensuring it is a safe place for everyone who helps out, or do I go down the current road where the world is slowly destroyed and griefers tell me how to run a server?&lt;/p&gt;
&lt;p&gt;Hell I could charge for stuff if there was not so many God damned modders!&lt;/p&gt;</description>
<link>http://www.amateurprotagonist.com/a-52-making-money-of-a-minecraft-server-is-it-right.php</link>
<pubDate>Sat, 07 Sep 13 01:00:00 -0700</pubDate>
<guid>http://www.amateurprotagonist.com/a-52-making-money-of-a-minecraft-server-is-it-right.php</guid>
</item>

<item>
<title>Minecraft Server Upgraded - The Greatest 1.6.6 No Rules Server</title>
<description>&lt;p&gt;Today the server has been upgraded to 20 slots! That's right 20 of you complete nut bags can now play at once! Also we could not just have 20 slots and let the game slow down now could we.&lt;/p&gt;
&lt;p&gt;We have doubled the amount of RAM our server has! So we have gone from 8 slots to 20 but also two times the RAM!&lt;/p&gt;
&lt;p&gt;This is yet another financial invest made by the Admin's for you, so cut the bullshit when we come online. Also just to clear up there are in fact four Admin users. Who are they? Trying using mods and see how quickly you are banned.&lt;/p&gt;
&lt;p&gt;So what can I tell you about our amazing sexy 1.6.6 server? Well it is so amazing and awesome here are some screenshots!&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Creeper hit by lighting - super charged&lt;/b&gt;&lt;br /&gt;&lt;i&gt;Fuck off was I getting closer...&lt;br /&gt;&lt;/i&gt;
&lt;img src="http://img849.imageshack.us/img849/91/20110514174515.png" alt="Electric Creeper" width="680px" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Double Japsa&lt;/b&gt;&lt;br /&gt;
&lt;img src="http://img37.imageshack.us/img37/8109/20110601192734.png" alt="Double Japsa" width="680px" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Amazing Waterfall by A Player&lt;/b&gt;&lt;br /&gt;
&lt;img src="http://img844.imageshack.us/img844/270/20110609203511.png" alt="Amazing Waterfall by A Player" width="680px" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Admin Castle&lt;/b&gt;&lt;br /&gt;
&lt;img src="http://img847.imageshack.us/img847/6018/20110604193259.png" alt="Admin Castle" width="680px" /&gt;&lt;/p&gt;
&lt;p&gt;So join us and destroy or build. Either way lets fill them 20 slots!&lt;/p&gt;</description>
<link>http://www.amateurprotagonist.com/a-51-minecraft-server-upgraded-the-greatest-one-six-six-no-rules-server.php</link>
<pubDate>Fri, 06 Sep 13 10:00:00 -0700</pubDate>
<guid>http://www.amateurprotagonist.com/a-51-minecraft-server-upgraded-the-greatest-one-six-six-no-rules-server.php</guid>
</item>

<item>
<title>Hosting A Terraria Server Better Or Worse After Update</title>
<description>&lt;p&gt;Terraria has had an update which has improve a lot of features as well as adding new stuff too. One big change that will effect you and your friends is the hosting change. Before you needed to have Terraria running twice. Once for the server and once for you to play.&lt;/p&gt;
&lt;p&gt;Now you host and play in the same game of Terraria! Hosting a Terraria server just got a hell of a lot easier! Or has it.&lt;/p&gt;
&lt;p&gt;If you want to leave the server running you need to be logged in, you can not have the server running without your player being logged in. As the world is stored on the server along with everything not on the players person you can not just change to a new server and keep everything with you. Someone has to keep the server running for you to play. Before if you friend when out or had a shower they would just leave the server running and log out themselves. However no that can not be done. Now they need to be in the game at all times. Meaning they will die a lot of times.&lt;/p&gt;
&lt;p&gt;Maybe this is not a huge deal as you normally play with friends only, however Terraria will not get the backing of big servers and mass hosting if it does not have a server version of Terraria, they are missing a trick to really booming with their user base.&lt;/p&gt;
&lt;p&gt;Or do I just want Terraria to be more like Minecraft? The problem is they are two types of the same game. They are against each other. They could learn a lesson from each other in more than one way, however right now I will focus on the Terraria Server Hosting.&lt;/p&gt;
&lt;p&gt;This is clearly a step in the right direction to allow easy server hosting with little effort, however it has a long way to come yet before they become the best they can be.&lt;/p&gt;
&lt;p&gt;Terraria is a game that needs to be played with friends, it offers so much in the way of team work as well as expanding the games life so much. It is easy to create new characters and go back to old ones on the fly.&lt;/p&gt;
&lt;p&gt;Lets just see what the new update brings in terms of multiplayer servers.&lt;/p&gt;</description>
<link>http://www.amateurprotagonist.com/a-50-hosting-a-terraria-server-better-or-worse-after-update.php</link>
<pubDate>Thu, 05 Sep 13 10:00:00 -0700</pubDate>
<guid>http://www.amateurprotagonist.com/a-50-hosting-a-terraria-server-better-or-worse-after-update.php</guid>
</item>

<item>
<title>Minecraft Server 1.6.6 Playing With Fire Baby</title>
<description>&lt;p&gt;Hello people looking for a new server. Big new for you today. We are running 1.6.6 once again proving we are top of the bunch when it comes down to speed in upgrades.&lt;/p&gt;
&lt;p&gt;We have done loads of work chatting with you guys finding out what you want! But don't worry we are kind people, well the other admin's of the Minecraft Server are, I am kind of a dick.&lt;/p&gt;
&lt;p&gt;So there we have it, Minecraft Server 1.6.6 totally open, no whitelist, no rules, go crazy pure minecraft.&lt;/p&gt;
&lt;p&gt;Our dream is to recreate them moments when you first played Single Player bit with friends! The best bit? They steal your stuff, beat them to death and take it back!&lt;/p&gt;
&lt;p&gt;One point, but no rules I mean none of this "oh you need to fill out this form before you can play, don't hit him, don't take that. that is someone else's house you can't go in there." We say balls to it! You wana do something who are we to stop you from having a good time!&lt;/p&gt;
&lt;p&gt;&lt;a href="http://minecraftviewer.com/servers/1003/view" target="_blank"&gt;&lt;img src="http://cache.multiplayuk.com/b/1-1003-560x95.png" alt="Server Banner" style="border:0;width:560px;height:95" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;That said we do frown on modded clients. The game just is not as fun when you get everything you want. We make you WORK for your cock and balls statue!&lt;/p&gt;
&lt;p&gt;Also the Admin's are more than aware about the spawn. It is looking pretty bad, we will be fixing this soon don't worry. If you have any questions about what we are doing or planning behind closed doors pop into the forums. It's the link at the top that says Mein kraft The Minecraft Server 1.6.6! well it says Mein Kraft. Oh and we are all English, the name is just an in joke. Sorry none of us are German so please stop speaking in German to us.&lt;/p&gt;
&lt;p&gt;Some of the Admin's are finishing up Law Uni and being big shots so they are a little busy right not. Japsa is on pretty often as am I (SirProtagonist) how can you tell the difference between us? Japsa may help you, I will stand next to you and mock you.&lt;/p&gt;
&lt;p&gt;See you guys on the server! We are always the first to get updates and we never slow you down!&lt;/p&gt;</description>
<link>http://www.amateurprotagonist.com/a-49-minecraft-server-one-six-six-playing-with-fire-baby.php</link>
<pubDate>Wed, 04 Sep 13 10:00:00 -0700</pubDate>
<guid>http://www.amateurprotagonist.com/a-49-minecraft-server-one-six-six-playing-with-fire-baby.php</guid>
</item>

<item>
<title>Xbox Trade In And Why Lager Helps Me Design</title>
<description>&lt;p&gt;In my free time between the Minecraft Server, Terraria Server and Work, I am currently doing a redesign for Apton Dance Studio.&lt;/p&gt;
&lt;p&gt; In between all that, like today, I got a chance to enjoy natural sun light and pop into town for 20 minutes. My mission, to trade in 11 Xbox 360 games. Low behold I got �60 for it all! Fucking sweet!&lt;/p&gt;
&lt;p&gt;I can not believe Gamestation gave me �14.70 for Brink! I told the guy that is way too much to give someone for it. God I did hate Brink, the more I played it and watched it collecting dust the more I hated myself for been dragged into advertising.&lt;/p&gt;
&lt;p&gt;La Noire pocketed a good solid �20. Not bad I pre ordered it for �36 so I am pretty happy with that. Turns out you can do free roam after the missions all finish but I did not feel the replay value or need. Soon I will sell my Xbox in the later months too. However before that I kept two games, one of them is Call Of Duty Black Ops. This is because my brother plays and we have a good chat and a laugh on there. I can't put a price on one of the few methods I used to communicate and have a laugh with my brother.&lt;/p&gt;
&lt;p&gt;The next game may seem strange to you when I tell you I Traded in New Vegas. Oblivion. I LOVE Oblivion, it is just so much fun, so much to do. I have completed it so many times and every now and again I will go back and do it all over again! Also with that I have an expansion pack too.&lt;/p&gt;
&lt;p&gt;So with my money a pop into the shops and found you can buy Tiger Lager in a 0.6 Litre bottle, so along with my super noddles, pizza and chicken slices... A bottle of larger. That reminds me of Hangout Part 2 I watched last night, meh. Not a great film, go watch it for the few laughs but don't think it has any stand on Hangover 1. People own Hangover 1, no one should own Hangover 2 unless they make a third for a box set. The bastards.&lt;/p&gt;
&lt;p&gt;Now with designing the website I really need Photoshop back but that is on an old laptop, gone forever. So I could only get the 30 day trail so I better have a clear picture what to do. I can see the design in my head and on paper but the colours I have to work with are not complementing at all, we have an extremely light almost highlight colour then black and white. Pretty hard to see them fitting all in a website without it looking very empty or very dark.&lt;/p&gt;
&lt;p&gt;I was hoping I could do something fancy with the navigation but that will involve me drawing that up and really getting it right, I might do the navigation first and work the rest of the website to that spec.&lt;/p&gt;
&lt;p&gt;I tried GIMP 2 but frankly it is total shit, I mean really now. It is not so much an alternative as a wake up call for anyone who has used Photoshop, it is far too polished a program to really compete with.&lt;/p&gt;
&lt;p&gt;Also it would seem my localhost has totally fucked up on my desktop meaning I need to fix that to speed up my programming and designing work. On the bright side I have Visual Studio 2010. Shame it does not have any PHP support the fucking dicks. ARGH, I need PHP support you snail sniffers... I am sure that is a real word.&lt;/p&gt;
&lt;p&gt;Final note, yesterday the website had 2,073 Visitors according to Google Analytics. Yay! New record for me! Now I just need my Google AdSense to make stupid amounts of money...&lt;/p&gt;</description>
<link>http://www.amateurprotagonist.com/a-48-xbox-trade-in-and-why-lager-help-me-design.php</link>
<pubDate>Tue, 03 Sep 13 10:00:00 -0700</pubDate>
<guid>http://www.amateurprotagonist.com/a-48-xbox-trade-in-and-why-lager-help-me-design.php</guid>
</item>

<item>
<title>Minecraft Server 1.6.5 Fully Working And High Speed</title>
<description>&lt;p&gt;We have upgraded our server to Minecraft Version 1.6.5. This upgrade has all been sorted and hopefully the CPU load is less.&lt;/p&gt;
&lt;p&gt;The problem with Minecraft server 1.6 is the massive CPU load on the server. Notch is currently working on fixing that problem.&lt;/p&gt;
&lt;p&gt;So what has been happening on the server then? Well firstly we have had griefers on the server however as long as the server is open and public this will happen.&lt;/p&gt;
&lt;p&gt;Also the Nether is working correctly! This means you create a portal and travel to the Nether on our Version 1.6.5 Minecraft Server! &lt;b&gt;Bam!&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Now if you want to join our server and have one hell of a good time just click the link for our Mein Kraft Forums at the top of the page to visit them and get the IP. Or just type the IP and port from this handy always up to date banner!&lt;/p&gt;
&lt;p&gt;&lt;a href="http://minecraftviewer.com/servers/1003/view" target="_blank"&gt;&lt;img src="http://cache.multiplayuk.com/b/1-1003-560x95.png" alt="Server Banner" style="border:0;width:560px;height:95" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;There has been some interesting talk about what to do with the Minecraft server. We have had the server for over two months now and changed it's aim a lot over that time. We settled on the idea of the ultimate PVP SMP Minecraft Server. Why? Well we want to bring the fun of single player Minecraft to you and your friends, we do not have a whitelist, PVP is on and anyone can do anything.&lt;/p&gt;
&lt;p&gt;Lots of people abuse these factors however for the most this makes for some real fun game play. You find most players group together, however you are joining with people you don't know. Sometimes you build homes together and they kill you and take all your gold. It happens. The biggest complaint is people working together who hit each other, they ask for PVP to be turned off. Frankly you just need to be more careful.&lt;/p&gt;
&lt;p&gt;It would seem after all the damage done to the server and that blame is placed mostly on creepers is here to stay.&lt;/p&gt;
&lt;p&gt;We are currently having talks about maybe increasing the amount of slots on our server as well as making a new world. This would take full advantage of the new world generator and clean up some odd issues that have happened in between updates.&lt;/p&gt;
&lt;p&gt;We do still see a high CPU usage with highs of around 180% for all you math geeks out there, yes it would never be higher than 100%. For all you computer geeks yes it should never be higher than 80% in my personal view.&lt;/p&gt;
&lt;p&gt;So version 1.6.5 is ready to play and live on our server so be sure to stop by, we are always the first server to get the new upgrades and always up to date. If you have any question or comments use the contact page or the forums.&lt;/p&gt;</description>
<link>http://www.amateurprotagonist.com/a-47-minecraft-server-one-six-five-fully-working-and-high-speed.php</link>
<pubDate>Mon, 02 Sep 13 10:00:00 -0700</pubDate>
<guid>http://www.amateurprotagonist.com/a-47-minecraft-server-one-six-five-fully-working-and-high-speed.php</guid>
</item>

<item>
<title>Minecraft Server 1.6.4 Up And Running But What Happened?</title>
<description>&lt;p&gt;We had some strange problems on our Minecraft server after upgrading to 1.6.4 and I wanted to take a change to talk about them.&lt;/p&gt;
&lt;p&gt;First due to problems with Minecraft our CPU goes through the roof and causes unforeseen problems with our SSD card. This SSD card failed and was basically completely destroyed. Do you have any idea how much a new SSD can cost? Go look it up. Alot.&lt;/p&gt;
&lt;p&gt;However we use a host who's job is it is looking after the hardware thus it came under their warranty. However I don't think we are too popular with them now.&lt;/p&gt;
&lt;p&gt;However this was a problem because of Minecraft in the updates and I accept this can happen. What I don't accept is what happened next. During the space of the last 4 hours our Minecraft server has gone live. Someone has decided with a hacked client to turn everything into TNT and set it off.&lt;/p&gt;
&lt;p&gt;This causes a number of problems, first a spike in the CPU, second all players are then logged our for around 10 minutes. Then the game can not destroy the TNT as it needs a player present to finish it all off.&lt;/p&gt;
&lt;p&gt;I have logged in to find myself floating with TNT in the about to explode animation everywhere. The server usage went sky high as did my own PC. Luckly my new PC is more than up to the job and was coping fine. The server however could not.&lt;/p&gt;
&lt;p&gt;End effect? A ruined world that can never recover.&lt;/p&gt;
&lt;p&gt;However our back up are so regular I could move the world back to yesterday morning where my stats show nothing really important happened.&lt;/p&gt;
&lt;p&gt;My end goal here is to understand why someone would do it, sure on your own game for a laugh, but on a server?&lt;/p&gt;
&lt;p&gt;Having our Minecraft server up costs us money, it is not a cheap solution or a cheap host. We wanted the best so we can give the best play with your friends. Our dream for the server was the Minecraft single player but with your mates. All them videos you watch on youtube of Minecraft look so much fun, why? Because they are not alone.&lt;/p&gt;
&lt;p&gt;To destroy so much in a server and basically ruin the world only acts as a temporary inconvenience. To fix the world has only taken me three minutes. No joke that is how quickly this problem was seen, looked into and solved.&lt;/p&gt;
&lt;p&gt;However anyway attempting to join that server would be treated to blue everywhere with TNT animations and unable to move, they may never come back.&lt;/p&gt;
&lt;p&gt;If the people who do this have an end game of getting more people to their own server I can kind of see the point, but for the shake of three minutes work? Seems pointless. It is the same effect as putting your rubbish next to the bin, the cleaner with sigh and pity you for attempting to rebel against the world and put it in the bin.&lt;/p&gt;
&lt;p&gt;Now if you made a huge cock and balls on the Minecraft server out of gold blocks and called all the mods cunts, I would be impressed, heck I wouldn't remove something like that. I would think, shit, this guy means business.&lt;/p&gt;
&lt;p&gt;Anyway another pointless vandalisation fixed on the server because of modded clients.&lt;/p&gt;
&lt;p&gt;Lets hope this is an attitude that changes in the future of Minecraft.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;You can join our Minecraft Server &lt;a href="http://www.amateurprotagonist.com/minecraft/article2.htm" title="Minecraft Server"&gt;Mein Kraft Minecraft Server&lt;/a&gt; - Click for our IP address and loads more all completely free! No sign up's required!&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://minecraftviewer.com/servers/1003/view" target="_blank"&gt;&lt;img src="http://cache.multiplayuk.com/b/1-1003-560x95.png" alt="Server Banner" style="border:0;width:560px;height:95" /&gt;&lt;/a&gt;&lt;/p&gt;</description>
<link>http://www.amateurprotagonist.com/a-46-minecraft-server-one-six-four-up-and-running-but-what-happened.php</link>
<pubDate>Sun, 01 Sep 13 10:00:00 -0700</pubDate>
<guid>http://www.amateurprotagonist.com/a-46-minecraft-server-one-six-four-up-and-running-but-what-happened.php</guid>
</item>

<item>
<title>Host Your Own Terraria Server And Play On It Like A Boss</title>
<description>&lt;p&gt;Now here is how to host your own Terraria server and play on it for FREE that is right, totally &lt;b&gt;FREE&lt;/b&gt;.&lt;/p&gt;
&lt;p&gt;First go download Hamachi, it is a free VPN. Also it is EXTREMELY easy to use so give it a go. Now your friend will always need Hamachi too.&lt;/p&gt;
&lt;p&gt;Now you need to download the Unmanaged Hamachi version, as do your friends.&lt;/p&gt;
&lt;p&gt;Now power up Hamachi and start your own server. Call it what ever you like and give it a random password. Give this information to your friends and let them all connect.&lt;/p&gt;
&lt;p&gt;Now start up Terraria and make it start a server, when it says waiting for clients you have done it right. A WORD OF WARNING, these are your worlds, if you delete one you delete it form single player too! This also means you can bring your current single player map online!&lt;/p&gt;
&lt;p&gt;Now open up Terraria again. This time conenct to &lt;b&gt;localhost&lt;/b&gt;, BAM you are playing your own server. Now in Hamachi you will have a string of numbers next to your name, your friends need to connect to that IP and there they will be right next to you.&lt;/p&gt;
&lt;p&gt;Best bit is, basically zero lag. I was doing this with a wireless device that connects to a router shared between 5 people and everyone had a great time.&lt;/p&gt;
&lt;p&gt;So give it a try and host your own Terraria game anytime!&lt;/p&gt;</description>
<link>http://www.amateurprotagonist.com/a-45-host-your-own-terraria-server-and-play-on-it-like-a-boss.php</link>
<pubDate>Fri, 30 Aug 13 10:00:00 -0700</pubDate>
<guid>http://www.amateurprotagonist.com/a-45-host-your-own-terraria-server-and-play-on-it-like-a-boss.php</guid>
</item>

<item>
<title>What Is Terraria And Why Is Everyone Playing It</title>
<description>&lt;p&gt;Now there is an elephant in the room we need to shot first. Yes Terraria is JUST like Minecraft. However they have made some big changes which may mean people who love Minecraft could hate Terraria and people who never like Minecraft could really enjoy it.&lt;/p&gt;
&lt;p&gt;Now Terraria is a 2D game on Steam. This means you need the bloatware known as Steam, I am just not a fan ok? Now once you have that up and running and shelled over �5.whatever you can get playing.&lt;/p&gt;
&lt;p&gt;Where Terraria moves away from Minecraft is the massive amounts of things to do. For one you need to build a town which will attract NPC's with different jobs. I have 5 fucking houses perfect and ready so I am pretty sure I am doing something wrong. There are also boss battles, random events and lots of ways to level up. In some ways Terraria will reward you MORE than Minecraft for being a good player.&lt;/p&gt;
&lt;p&gt;Death is different in Terraria, you lose some money and sometimes items. The only problem I have is there is no real way to "grind" you need to get lucky explorer a lot and always have an end goal in mind. Minecraft felt more free however I believe that is down to it being 2D. Even though the worlds are massive it just doesn't feel as in depth. However the fact it is 2D makes for some really good old fashioned monster fighting. That is one thing Terraria is not short of is monsters.&lt;/p&gt;
&lt;p&gt;Terraria feels like the more advance version of Minecraft when it comes to what the game is about, it feels more complete and objective focused with real physical goals to be had. It is not a matter of mine loads of goal so I can make a goal dick outside my brick house that a creeper will fuck up. It is more a I want to kill this boss and get that weapon. I guess the appeal here is less on the free range do what you want and make your own fun and more MMO based.&lt;/p&gt;
&lt;p&gt;Let me say this, the multiplayer in Terraria is amazing. So well done. Your items and character will always be the same, no matter what server or what world. That world not working out for you? Well make a new one and keep all your stuff (on your person) Saying that I might do just that so I can get some damn people in my houses!&lt;/p&gt;
&lt;p&gt;Terraria is the game where you have a wiki open next to it, sadly I have not been doing that thus my slow process. I will point out that for me Terraria is more fun in single player that Minecraft. The NPC's make it less lonely and you know all the great stuff you find will stay with you.&lt;/p&gt;
&lt;p&gt;If you are not sure about Terraria give some of the videos a watch on youtube, if you think it looks fun then by all means jump in and you will not be disappointed. If it looks too pixelly and just not your thing then your head will be on the money. Terraria is the kind of game that watching is like playing, if you watch it and want to be there it will be as fun as it looks. In Minecraft most videos are pre planned for the point of the video, when you try and do it or copy anything it will not have the same feel.&lt;/p&gt;
&lt;p&gt;It all comes down to showing off online to other players I guess.&lt;/p&gt;</description>
<link>http://www.amateurprotagonist.com/a-44-what-is-terraria-and-why-is-everyone-playing-it.php</link>
<pubDate>Tue, 27 Aug 13 10:00:00 -0700</pubDate>
<guid>http://www.amateurprotagonist.com/a-44-what-is-terraria-and-why-is-everyone-playing-it.php</guid>
</item>

<item>
<title>LA Noire And Why You Should Buy This Amazing Game</title>
<description>&lt;p&gt;So LA Noire turns up on Thursday and I just have not stopped playing it. Quick way to tell you are in for a hell of a time. The box has THREE disks! Something really retro and child-like when I see more than one disk. In my experience most games with more than one disk never disappoint.&lt;/p&gt;
&lt;p&gt;First it is single player only and looks just like GTA, if you wanted to be really harsh you could say it was just GTA with another skin, the core mechanics are just that. Also they could of worked in some multiplayer but lets face it, other than free roam GTA multiplayer was a bit shit. So not having it meant more room and time for the single player.&lt;/p&gt;
&lt;p&gt;The big thing about this game is the fact they used 360 degree cameras on real actors for when you need to tell if they are lying, holding out or telling the truth. You know what? It fucking works. All the little details and discomforts, they all show. Also I love the feature where you have points which can be used to help you guess. One removes and answer and the other asks the community. The thing which ask the community is they are not always right! It works so well, I love it!&lt;/p&gt;
&lt;p&gt;I am currently on disk two and completely gripped. My guess is the mass murder is the top guy at the police station the Irish one.&lt;/p&gt;
&lt;p&gt;The game play is smooth and feels well thought out. The game is well tested, all the cars feel different and despite the linear game play there is tons of stuff to do! I was thinking at the start where is the re-play value? They I found I was solving crimes and not finding all the clues. All of a sudden the clue finding game because a challenge, you start looking for patterns and knowing what to do first. There is no instruction manual instead the game prompts you to do what is needed when. This lets you focus on having a good time.&lt;/p&gt;
&lt;p&gt;No matter how many gun fights you do it will always show you how to move about cover, and you know what. It does not break the immersion, it helps in a big way. You never really look directly at the prompts because you know what they will say after a while but knowing one came up will always trigger you to think more about what just happened.&lt;/p&gt;
&lt;p&gt;I LOVE the characters, everyone feels so unique, some people hate you, other people only hate you in front of others. They all have their own way of dealing with criminals. I just done the mission where a guy is found kissing a dead body, every time he says "It's not illegal!" he gets a punch from my partner, fucking love it. It feels good to have your partner sometimes been more forceful when you need to be more stern.&lt;/p&gt;
&lt;p&gt;A word of warning, this game really is an 18. I know the other GTA's most teens played them, it was like an interactive scar face movie. LA Noire has you closely inspecting women you have been anally violated, completely naked, stomped on and cut up. The first time I had a mission with one such body I just felt a little sick. You are so into the game and its all happy and nice, yeah there are bad guys but its ok. Then it's like... fuck, this is wrong. It really do produce an emotional reaction and it works well in the games favour. However I was playing and that odd thought came into my mind... What about people who get off to this sort of thing, they game later rebounds that will the guys kissing the dead body and who is cut off before he says what him and his friends do with dead women.&lt;/p&gt;
&lt;p&gt;This game will play off emotions, this game will make you comfortable, this game will shock you by putting the world on you and the tension that you are the only straight cop that can help.&lt;/p&gt;
&lt;p&gt;By God it works well. This is easily one of the best games I have played, the biggest reason is there are no other games on my shelf anywhere close to this game in terms of style and theme. Hopefully we will see these types of games evolve because frankly, they are fucking good.&lt;/p&gt;
&lt;p&gt;I hope when you was reading this you stopped to buy it before carrying on, really now, buy this game.&lt;/p&gt;</description>
<link>http://www.amateurprotagonist.com/a-43-la-noire-and-why-you-should-buy-this-amazing-game.php</link>
<pubDate>Sun, 25 Aug 13 10:00:00 -0700</pubDate>
<guid>http://www.amateurprotagonist.com/a-43-la-noire-and-why-you-should-buy-this-amazing-game.php</guid>
</item>

<item>
<title>Why I Would Never Touch Volusion With A Ten Foot Pole</title>
<description>&lt;p&gt;Let me start with this, I was at Internet World and Volusion had a talk. Now first off it has just started and was about half empty, we got seats at the front with ease. Even had room for our bags.&lt;/p&gt;
&lt;p&gt;Now remember when you was at school and in teams? You read a line each to pad it out? Yeah they done that.&lt;/p&gt;
&lt;p&gt;One of the guys was not too bad but he had very short topics, must of been new because he was smiling. The other guy was too far from the mic and had all the thrill and personality and having a pit bull feasting on your balls.&lt;/p&gt;
&lt;p&gt;Even when they got to something interesting they skimmed over it, I mean what was this? A sales pitch? Trying to get developers? Heck just burning time? I could not work it out. It look like a sales pitch but that would offend sales teams everywhere.&lt;/p&gt;
&lt;p&gt;The best bit, at the end they had 10 minutes left and asked for question. Nothing, not even one question where someone feels bad for them. Everyone just wanted to leave. Then he says thanks and goodbye. NO ONE CLAPPED. No one. Not a soul. How bad is that? They just wanted to leave so badly.&lt;/p&gt;
&lt;p&gt;Anyway the problem with Volusion and why I would not touch them or use them. They will forever control your store, you never truly have an power they will always leech off you. Never trust a solution that wants to drip feed your money unless there is a really good reason. Now they are playing the whole its cheap and great for anyone wanting to start a business. No it's not. Remember when your mother told you about the whole too good to be true? Yeah look at their website and think. If I only have 20 products I could be selling online for �22 a month? You can host a website for less than a quarter of that and get a free well supported shopping cart with millions more add-ons and own it for life and always be in your control? I mean who are they trying to fool? The best bit is they advertise on my website. It makes me laugh when I see them.&lt;/p&gt;
&lt;p&gt;Volusion is for people who don't want to look any more, people who are scared but the stories Volusion make up about doing it yourself. Also have you seen their videos? It's not the fucking political debate, get over your selves.&lt;/p&gt;
&lt;p&gt;I am always shocked by companies that get far in the whole buy marketing alone. Lets not get into who they originally hired to write large sections of their buggy code. Looks like I know something about them they would raver I didn't.&lt;/p&gt;
&lt;p&gt;Also why do they advertise everywhere with the huge compared against thing? They use pointless features as "first to" awards that no one gave them.&lt;/p&gt;
&lt;p&gt;Volusion is the bastard rich kid in class who buys the same shoes as you and comes in next day and get really angry when no one says how amazing they are, so next day he buys shoes for everyone as gives them to people as long as they say you are a dick and they are no longer your friend. I am not joking, that is what they are like.&lt;/p&gt;
&lt;p&gt;Bit nice to see how far they would of gotten without their cheap labour and large investments of cash labelled "don't fucking fail".&lt;/p&gt;
&lt;p&gt;If you are that tight for cash use a free open source solution with PayPal. Then all you pay if the hosting charges. The cunts even gave me a t-shirt. I am so burning it.&lt;/p&gt;</description>
<link>http://www.amateurprotagonist.com/a-42-why-i-would-never-touch-volusion-with-a-ten-foot-pole.php</link>
<pubDate>Fri, 23 Aug 13 10:00:00 -0700</pubDate>
<guid>http://www.amateurprotagonist.com/a-42-why-i-would-never-touch-volusion-with-a-ten-foot-pole.php</guid>
</item>

<item>
<title>Added New Social Media Sharing In A Few Clicks</title>
<description>&lt;p&gt;Everyone tells me to be more social media focused. More maybe just social, I don't know I was inside at the time.&lt;/p&gt;
&lt;p&gt;Just to give it a go I have added the Add This service to the article pages or blog posts what ever you like to call them.&lt;/p&gt;
&lt;p&gt;I was going to give them their own neat place but then I saw putting it in between two adverts will cause confusing and may increase the amount of attention the adverts get. So in a sneaky way I have added it.&lt;/p&gt;
&lt;p&gt;Just a couple of lines of Javascript and it seems to be working well. I was going to go with smaller icons but I like them been clean and big like they are. If you were to hide all the adverts I bet it would look pretty nice.&lt;/p&gt;
&lt;p&gt;Yeah I just removed the adverts and it was not too bad. I am always impressed by little snippets of code that can really spice a website up. Maybe I am truly becoming web 2.0. Or maybe web 3.0 because I am using HTML 5? Na lets stick with 2.0 for now. One version at a time please.&lt;/p&gt;
&lt;p&gt;Now I am thinking who really uses these social icons? Do there really think ah add to Facebook, well it's so easy and this post made me smile so I will. If you like it that much you copy and paste the URL? Maybe I am old fashioned like that, you know, copy and paste.&lt;/p&gt;
&lt;p&gt;Well we will see how it goes, if it increases my AdSense then all the better, I am not it will really work but hey ho.&lt;/p&gt;
&lt;p&gt;I mean really? I just don't see the point of this stuff are people really that lazy, sure I get the whole try and convert and call to action bull shit but this is crazy. Do I know need to code everything for every service because God forbid you do it yourself. You know what, people have been spoiled by the big companies that at the moment are pouring more money into calling each other gay in the playground than developing the open web. No really look at the whole Facebook calling Google names thing. Why would you admit to that?&lt;/p&gt;
&lt;p&gt;Anyway lets see how this goes for the website. I may just leave it because I am lazy like that. You know what I should get a plug-in to use Visual Studio with PHP. Otherwise it is just getting dust as I have an amazing time with PHP all snuggled in my bed with me as ASP.NET eat the scraps from its bowl in the basement. Huh? Ah right the social media thing.&lt;/p&gt;
&lt;p&gt;My problem with Social Media is do you really trust it? If you see someone on Facebook saying "Who 5** I love Nandos" do you really believe that was them or were they liking a random profile? You really can't tell. I swear Facebook is borderline spam half the time and the other half is people putting their relationship as single and then went someone comments saying "I just don't want to talk about it." Why did you post it on Facebook then?!? Sorry that should of read "I's jst dnt wana cht bout it yea?" I know my spelling isn't the best but I sure do give it the old college try!&lt;/p&gt;</description>
<link>http://www.amateurprotagonist.com/a-41-added-new-social-media-sharing-in-a-few-clicks.php</link>
<pubDate>Thu, 22 Aug 13 10:00:00 -0700</pubDate>
<guid>http://www.amateurprotagonist.com/a-41-added-new-social-media-sharing-in-a-few-clicks.php</guid>
</item>

<item>
<title>Which Anti Virus Really Is The Best In 2011</title>
<description>&lt;p&gt;Now first off, it's not Norton. Norton can go and die before being found in a ditch by it's loved ones who will not cry nor care. Look Norton I don't care if you are on every computer and bundle, it does not make you any good. Forcing yourself on everyone is one of the many reasons I hate you.&lt;/p&gt;
&lt;p&gt;Now the big talk this year is in fact Trend Micro, I used them for 6 months and it was pretty annoying. Always slowing me down, when I read they changed how it works so it does not slow you down I laughed out loud. Talk about awkward moment in the office, either your not doing your work or you have gone insane and your program now works in multicolours.&lt;/p&gt;
&lt;p&gt;Everyone has their tongue in Trends anus so when it was not for me I was a bit lost. I was going to go back to just using Spybot Search And Destroy. Only problem is Spybot takes the living piss when you tell it to do a scan, and trust me you will always forget until the shit hits the fan. You are better off with nothing and when the shit hits the fan getting Spybot (its free!)&lt;/p&gt;
&lt;p&gt;HOWEVER when I got my new desktop it came with some new anti virus free. It was a give away for something that normally only costs �40 for three PC's. That's right �13 a year per a PC.&lt;/p&gt;
&lt;p&gt;Now with this low price I am thinking I am going get some real arse worthless piece of software. I was wrong.&lt;/p&gt;
&lt;p&gt;Let me say this again. I. Was. Wrong. I am talking about Webroot Anti Virus. These guys know what you want, it runs in the background so quietly I have not turned it off to play games, best bit is it has an auto gamer mode, but it is so good I have not had to use it! It comes with the standard stuff "Do you want to let x, y, z infect your computer?" No thanks, not today.&lt;/p&gt;
&lt;p&gt;I was so impressed how well it runs and how quick the scans where I went to their website to find out some more about these amazing guys at Webroot.&lt;/p&gt;
&lt;p&gt;Right I want you to do something, go to their website and look at the blog. These guys are fucking funny. They love what they do. I can just picture a small group of guys laughing and finding new virus's (viri?) and loving every moment of it. These guys really seem to love what they do, they are passionate. Now in fact they are a big company but it does not feel like it. It feels personal and custom. Now to get that feeling from some anti virus software is pretty amazing.&lt;/p&gt;
&lt;p&gt;If you are looking for some Anti Virus skip what the Trend dicks are saying, go and snuggle in bed with Webroot. It is powerful and doesn't get in your way. This maybe the first time ever I will renew my payment with an anti virus company.&lt;/p&gt;
&lt;p&gt;I was not joking about their blog, really go have a look at it. Amazing stuff them guys know how to have a laugh.&lt;/p&gt;</description>
<link>http://www.amateurprotagonist.com/a-40-which-anti-virus-really-is-the-best.php</link>
<pubDate>Tue, 20 Aug 13 10:00:00 -0700</pubDate>
<guid>http://www.amateurprotagonist.com/a-40-which-anti-virus-really-is-the-best.php</guid>
</item>

<item>
<title>Improve Bounce Rate In Google Analytics With Javascript</title>
<description>&lt;p&gt;First what is a Bounce? A Bounce in Google Analytics when someone visits your website and then does not carry on, basically Google did not see any interaction. So someone comes to your product page, picks up the phone and buys it over the phone and then leaves your website would show up as a bounce.&lt;/p&gt;
&lt;p&gt;Lets say you want a bounce to be someone who is on the website for less than 5 seconds after it loaded and left. That seems a real bounce to me. I want to know where people are looking for the shortest amount of time and then leaving. That means the page is not engaging enough.&lt;/p&gt;
&lt;p&gt;So what we are going to do is reduce our bounce by using an event. This single line of Javascript goes with your tracking code.&lt;/p&gt;
&lt;p&gt;Now if you are using the new Google Analytics Asynchronous Tracking code then it is a little different.&lt;/p&gt;
&lt;pre class="brush: javascript; toolbar: false;"&gt;
// Normal
setTimeout('pageTracker._trackEvent(\'NoBounce\', \'NoBounce\', \'Over 5 seconds\')',5000);
// Updated
setTimeout('_gaq.push([\'_trackEvent\', \'NoBounce\', \'Over 5 seconds\'])',5000);
// Just some Javascript spacer
// This code goes INSIDE your current Google Analytics tracking
&lt;/pre&gt;
&lt;p&gt;Now as Google classes a bounce as no interaction the event trigger will force a second interaction, taking them off your bounce list. The reason the timing in the Javascript looks huge is because Javascript works in milliseconds.&lt;/p&gt;
&lt;p&gt;This simple line of code inside your tracking Javascript from Google Analytics will help you spot the real problem pages and people who can't see what they need.&lt;/p&gt;
&lt;p&gt;Also if your boss is on your back about bounce rates this is a golden way to get that pay raise!&lt;/p&gt;</description>
<link>http://www.amateurprotagonist.com/a-39-improve-bounce-rate-in-google-analytics-with-one-line-of-javascript.php</link>
<pubDate>Sun, 18 Aug 13 10:00:00 -0700</pubDate>
<guid>http://www.amateurprotagonist.com/a-39-improve-bounce-rate-in-google-analytics-with-one-line-of-javascript.php</guid>
</item>

<item>
<title>Brink After Completing The Game Is It Any Better?</title>
<description>&lt;p&gt;Now I done a review of Brink for the Xbox 360 back here &lt;a href="http://www.amateurprotagonist.com/a-36-why-you-should-not-buy-brink-for-the-xbox.php"&gt;Why You Should Not Buy Brink For The Xbox 360&lt;/a&gt;. However I clearly say that I only done one half of the game, so now I have finished it after another 3 hours or so of playing, also I have now played it online.&lt;/p&gt;
&lt;p&gt;Wow, just wow. It is so bad. The cut scenes are so nice and polished but the rest is just a half eaten sandwich throw at your balls.&lt;/p&gt;
&lt;p&gt;The story is so weak and short. The what if's are complete bull shit. Also the customisation has pissed me off, it is very limited. You know they said they couldn't add women because it would mean re-deigning a lot of the stuff. WHAT FUCKING STUFF. I know there are three body types but that impact is so little. I can see it would be a pain but when you think you have a skin and wrap it around a 3D model it quickly becomes clear that it wouldn't take that long. I means what did they spend their time on? The fucking cut scenes that's where!&lt;/p&gt;
&lt;p&gt;The story is total bull shit. Really guys just give Brink a miss, this is one game I will not play again. I mean there is lots for me to unlock still, like that hat or that pointless ability.&lt;/p&gt;
&lt;p&gt;The online play is so poor. It is just the main game. It really feels like just an add-on to the single player. That is really bad. I hoped they had done the Halo thing where multiplayer was really fun but there was a whole single player to explore too. This was a complete rip.&lt;/p&gt;
&lt;p&gt;I have already pre-ordered La Noire and there was me thinking I would not have enough time because the games where so close release date wise. Turns out I will have tons of time.&lt;/p&gt;
&lt;p&gt;I am amazed at the money that has gone into marketing this game, I was brought in because I love Bethesda, if I was gona be a fan boy it would be for them. So I am not sure who's fault this really is. All I know is I don't regret buying the game but I will never play it.&lt;/p&gt;
&lt;p&gt;The game feels slow and rough. It feels like I am playing a game I downloaded of the internet. This feels like the first game a company has ever made, yet all parties have made games before. Maybe too many cooks?&lt;/p&gt;
&lt;p&gt;I stick by my guns. Give this one a miss. Also this may sound strange... But why is everyone in this game trying or is black? I have no problem with this but even the white or hispanic guys are trying to be black.&lt;/p&gt;
&lt;p&gt;Maybe I am the wrong target for this game, maybe if your dream is to be in a riot and you really love your hip hop you might enjoy this game. I just feel they have been lazy.&lt;/p&gt;
&lt;p&gt;I really can't get over how everyone seems the same, they have tried to make you attached to them but once you play both sides you see it is just three guys chatting about the same stuff. Oo they are different but so the same! Wow I feel so touched and this game is giving me an emotional response. Fuck off. Lazy just plain fucking lazy. That really sums up this game, it could be a lot more. Maybe the heavy marketing shot it's self in the foot.&lt;/p&gt;
&lt;p&gt;So save your cash or go pre-order La Noire which looks like something different to really give all your games an edge.&lt;/p&gt;
&lt;p&gt;The more I play Brink the more I seem to hate it.&lt;/p&gt;</description>
<link>http://www.amateurprotagonist.com/a-38-brink-after-completing-the-game-is-it-any-better.php</link>
<pubDate>Sat, 17 Aug 13 10:00:00 -0700</pubDate>
<guid>http://www.amateurprotagonist.com/a-38-brink-after-completing-the-game-is-it-any-better.php</guid>
</item>

<item>
<title>Simple PHP Captcha For Any Form And Free</title>
<description>&lt;p&gt;Now I have made all my programming by hand in notepad. It is a painful process and leads to stupid amount of errors. So I take great pride in all my work. Now on this very website I use a contact form which was the first PHP script I had ever written.&lt;/p&gt;
&lt;p&gt;The code I use is well over 4 years old. However it always works. One thing it has always been missing is a Captcha to stop spam.&lt;/p&gt;
&lt;p&gt;Now when I say the same for 4 years I have slowly changed it to keep up with the times. I believe on one of my websites I create a basic Captcha which required you to type in the next whole number. The code worked off using sessions which most bots failed to hold, so even if they could solve the question they did not have a session thus failing. However this was almost half a days work. It is not a great solution.&lt;/p&gt;
&lt;p&gt;I have heard and see ReCaptcha in the past and never used it. I heard it was easy to use but never believed it. I figured why not give it a go and then blog about it.&lt;/p&gt;
&lt;p&gt;My plan was to do the PHP script live as I blogged so to take you through each step but it was all over so quickly! Trust me that is the only time you want someone to tell you it was over too quickly and it be a good thing... Unless your a runner or something.&lt;/p&gt;
&lt;p&gt;First first step. Go sign up to ReCaptcha at &lt;a href="http://www.google.com/recaptcha"&gt;ReCAPTCHA&lt;/a&gt;, now this is owned by Google so you can sign up and it uses your Google account.&lt;/p&gt;
&lt;p&gt;So Select Get ReCAPTCHA and then enter your domain and select global. That way it works with or without www.&lt;/p&gt;
&lt;p&gt;All done! You should now have two keys.&lt;/p&gt;
&lt;p&gt;Now here is the easy bit. Go to &lt;a href="http://code.google.com/apis/recaptcha/docs/php.html"&gt;ReCAPTCHA PHP&lt;/a&gt; and this is the step by step of what to do. First download the library they tell you to. Now stick &lt;b&gt;recaptchalib.php&lt;/b&gt; somewhere on your website, you will need to call this code.&lt;/p&gt;
&lt;p&gt;Now when Google does the code they assume you are going to a different page, I use one page for my contact form so I needed to change the code. First I done the require_once first in my code so I use it for the check and the call.&lt;/p&gt;
&lt;p&gt;My code was very simple in the fact it checks if there is a post back and if so send the email. There was no fail message so I had to add that. But putting it into my code was so stupidly easily.&lt;/p&gt;
&lt;p&gt;I also changed the die on their error failed message. I changed that to say sorry you failed. Like I said just keep it simple.&lt;/p&gt;
&lt;p&gt;I am completely amazed by how easy it was to implant this into this very website. For total time it was under 5 minutes. I uploaded the files, edited the contact page on the server, then tested it twice. Once correctly and once incorrectly. It behaved just how it should. Also the best bit is I have a red theme and the default for ReCAPTCHA is red! Sorted!&lt;/p&gt;
&lt;p&gt;If you want to change the look or feel have a look at &lt;a href="http://code.google.com/apis/recaptcha/docs/customization.html"&gt;Changing ReCAPTCHA Look and Feel&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;I will have to use ReCAPTCHA everywhere now, its so simple and it works very well.&lt;/p&gt;
&lt;p&gt;Next time I will have to try it out on an ASP.NET website! Hm maybe not, I love PHP too much.&lt;/p&gt;</description>
<link>http://www.amateurprotagonist.com/a-37-simple-php-captcha-for-any-form-and-free.php</link>
<pubDate>Thu, 15 Aug 13 10:00:00 -0700</pubDate>
<guid>http://www.amateurprotagonist.com/a-37-simple-php-captcha-for-any-form-and-free.php</guid>
</item>

<item>
<title>Why You Should Not Buy Brink For The Xbox 360</title>
<description>&lt;p&gt;I spent most of yesterday after work playing Brink on my Xbox 360 and I can say. Just save your money for something better.&lt;/p&gt;
&lt;p&gt;First the single player is shockingly short and painful. You get tasks like defend this for 10 minutes, and God knows you lose it in the last 30 seconds meaning you have to defend the next point for ANOTHER 10 minutes. Also the customisation is totally pointless. I mean really now I just could not give a shit. It is so empty. I get new clothes and I can pick the colours from a set list. Also my gun can have attachments, to which EVERYTHING needs a downside. So because I have two mags attached to each other it takes me an un-measurable amount of time more to pull it out?&lt;/p&gt;
&lt;p&gt;Not everything needs a downside. Also I completed the police campaign in 2 hours. There are 8 missions and 2 more what if missions, what a fucking drag. Who's idea was it "Hm Brink is pretty short let add two more what if mission" Erm, no? If I done what is required for the what if mission to happen during the main campaign I would fail. Not why add two different endings for each campaign with two different missions? That would be more interesting.&lt;/p&gt;
&lt;p&gt;You can play online with real people on your team but I hate people so I stuck to bots. Why can I not tell them to focus? Why do we need another fucking command post when we have 1 minute to go and I am the only cunt hacking the mainframe? Get your fucking arse over here because I am the only one killing them and completing the mission.&lt;/p&gt;
&lt;p&gt;You can do challenges for more stuff but they are pretty annoying so I only done two.&lt;/p&gt;
&lt;p&gt;The big thing of the game is it is fast moving and very flexibly with the SMART movement whatever.&lt;/p&gt;
&lt;p&gt;It is pretty fun and adds to the game but there is no real need to use it. Also the game is NOT fast paced. Black Ops is fast paced, this is not. If you think Black Ops is slow then you will hate this.&lt;/p&gt;
&lt;p&gt;The guns don't feel any good and the whole knocking them over with a melee is total shit and even more pointless.&lt;/p&gt;
&lt;p&gt;All in all just save your money, no one will talk about this game in a months time. Lets hope they just put the SMART movement into a good game next time and don't base the whole game on it.&lt;/p&gt;
&lt;p&gt;On last point, they use the whole fucking RPG element for getting stuff and getting new abilities. It is a real hook to get you to repeat them pointless 10 minutes of waiting by a glowing wall.&lt;/p&gt;
&lt;p&gt;Skip it and lets hope the developers stick to kick arse RPG adventure games next time. Leave the FPS games to the pros.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Update:&lt;/b&gt; Find my final review of Brink after completing it here &lt;a href="http://www.amateurprotagonist.com/a-38-brink-after-completing-the-game-is-it-any-better.php"&gt;Brink After Completing The Game Is It Any Better?&lt;/a&gt;&lt;/p&gt;</description>
<link>http://www.amateurprotagonist.com/a-36-why-you-should-not-buy-brink-for-the-xbox.php</link>
<pubDate>Wed, 14 Aug 13 10:00:00 -0700</pubDate>
<guid>http://www.amateurprotagonist.com/a-36-why-you-should-not-buy-brink-for-the-xbox.php</guid>
</item>

<item>
<title>Do I Want A PHP Or .NET Shopping Cart - E-Commerce System</title>
<description>&lt;p&gt;On of the biggest problems facing people or businesses wanting to get online is not just e-commerce system to buy but what language to buy it in.&lt;/p&gt;
&lt;p&gt;The two main programming languages for most shopping carts available today are either PHP or .NET. So what are the differences and why does it matter.&lt;/p&gt;
&lt;p&gt;If you are just starting up, it does not really matter, the only time this impacts you is in the long run. When you buy a PHP solution the chances are it will use free software and run off a Linux server, reducing your over head costs. If you buy a .NET solution you are being tied into Microsoft products.&lt;/p&gt;
&lt;p&gt;PHP is pretty simple to pick up and the entry into learning PHP is simpler in my personal opinion than other programming languages. With the lower over headers it is easier for independent developers to learn.&lt;/p&gt;
&lt;p&gt;What this means is larger pool of developers and lower costs in the long run.&lt;/p&gt;
&lt;p&gt;With such a strong argument many businesses buy into PHP solutions for the lower start up costs and the cheaper more widely available labour. However this comes at a great cost.&lt;/p&gt;
&lt;p&gt;Many people claim to be PHP developers can have very little knowledge of more complete systems, it is harder to have a set agreement of coding structure and style. Basically there are countless ways to skin a cat, this flexibility can be the downfall when bring a PHP programming to work on code they have not written.&lt;/p&gt;
&lt;p&gt;On the other side is .NET. Now .NET is a framework in which many languages can be used, however for online the main languages are C# and VB. Learning Microsoft languages normally means attending a class or following the guidelines pre set out by Microsoft. You can still do the same thing many different ways, however it would be wise not too. Because you are buying into a Microsoft solutions, they have designed it to work around their other products. This makes development quicker and more predicable for a new programmer who has never seen your code before.&lt;/p&gt;
&lt;p&gt;This cost maybe higher but the whole solution is learnt by the programmers. Also Microsoft .NET can use DLL's quickly and easily, meaning many people can sell add-ons and attachments to you without risking their own programming been discovered (easily, there will always be ways for the die hard.) &lt;/p&gt;
&lt;p&gt;So what solution is best for you? Do you just need the Shopping cart, do you just want to try online. Maybe your budget means you need to keep costs down. In which case PHP is easily the language for you, chances are you want lots of developments done as you are in your early stages and just want to see results with little damage to the bank.&lt;/p&gt;
&lt;p&gt;If you are more interested in a future prof solution and have clear objectives planned. Lets say a business that wants to sell online as the main source of income and wants to start on that point. .NET maybe the way to go for you. The developers and overheads maybe more but you will end up with a cleaning solution you can easily keep building on.&lt;/p&gt;
&lt;p&gt;Personally I know both PHP and C#. If you want to spend under �1,000 go with PHP. If you want to spend more than that with big plans ahead, look into buying a .NET based shopping cart with the source code to give you full control.&lt;/p&gt;</description>
<link>http://www.amateurprotagonist.com/a-35-do-i-want-a-php-or-dot-net-shopping-cart-e-commerce-system.php</link>
<pubDate>Sun, 11 Aug 13 10:00:00 -0700</pubDate>
<guid>http://www.amateurprotagonist.com/a-35-do-i-want-a-php-or-dot-net-shopping-cart-e-commerce-system.php</guid>
</item>

<item>
<title>Internet World 2011 What Was The Hot Topic This Year</title>
<description>&lt;p&gt;I have just gotten back from Internet World 2011 London Earl's Court.&lt;/p&gt;
&lt;p&gt;This year the big word been shouted high and low was social. Social networking is slowly taking over. What is the reason for this? Basically all the SEO firms are looking five years ahead and they see the social developments are the logical way forward.&lt;/p&gt;
&lt;p&gt;The major search engines are slowly starting to include social events in their results. In short it is harder for black hat SEO firms to create whole people. Everything from products, reviews, companies and where is good to eat. All this information is already being used and collected.&lt;/p&gt;
&lt;p&gt;So what is the big picture? What do "they" all say you should be doing? Getting people to talk about your website. That is the long and short of it. Get people talking.&lt;/p&gt;
&lt;p&gt;You know how 100 years ago the best way to get new customers was for an old customer to convince their friend to try you out. That is what they want to recreate. Why? Because human conversation and life is not something that is currently easy to manipulate.&lt;/p&gt;
&lt;p&gt;Lets say Facebook knows who your closest friends are by how often you chat and look at their updates. This friend posts a review about how he loved Nandos. You are in London three days later and you do a search for local places to eat. Despite that Nandos not being the one he reviewed it will be given a higher placement because it comes with a known review personal to you.&lt;/p&gt;
&lt;p&gt;In the future search results will be more random and harder to predict. They will be almost custom for every single person. This would mean major co-operation between the big three. Google, Microsoft and Facebook, because everyone else is frankly owned by one of them. (Crazy fact for the day, know how Facebook and Google hate each other right now? Strange that Microsoft own a major part of Facebook, hm?)&lt;/p&gt;
&lt;p&gt;So pretty much to sum up any internet event for the new two years. SOCIAL MEDIA IS SO AMAZING I LOVE MYSELF.&lt;/p&gt;
&lt;p&gt;Part of me hopes I am wrong but it seems to good an algorithm for any company to pass up.&lt;/p&gt;
&lt;p&gt;P.S. The women there we crazy hot. Like you just would, what ever your type. She was there.&lt;/p&gt;</description>
<link>http://www.amateurprotagonist.com/a-34-internet-world-what-was-the-hot-topic-this-year.php</link>
<pubDate>Sat, 10 Aug 13 10:00:00 -0700</pubDate>
<guid>http://www.amateurprotagonist.com/a-34-internet-world-what-was-the-hot-topic-this-year.php</guid>
</item>

<item>
<title>Virgin Media Super Hub NAT Type And Slow Internet</title>
<description>&lt;p&gt;So I paid for the 50mb Virgin Media Broadband. Now Virgin Media are very well known for often giving under half of what they say they will. A quick test done just now shows I am getting 26mb during peer hour. In off peer I get 47mb.&lt;/p&gt;
&lt;p&gt;The problem with the Virgin Media Super Hub is it comes pre set with all the "helpful" settings already on.&lt;/p&gt;
&lt;p&gt;So what is happening? Well your Super Hub is checking everything that you load from the internet against a firewall. Which is you have an anti virus software on your computer and have some level of intelligence is simply un-required. Also your Virgin Media Super Hub will perform filtering of content and restricting types of traffic.&lt;/p&gt;
&lt;p&gt;When I first got the Super Hub it was stupidly fast, yet video streaming and buffing was slow as hell. Turns out that issue was also impacting my Xbox Live. The Virgin Media Super Hub will turn your Call Of Duty: Black Ops NAT type to Strict or Moderate. This mean you can only play against players close by (UK only if strict.)&lt;/p&gt;
&lt;p&gt;This is also mess with your mic on Xbox Live as well as general use. Personally I want my open NAT type back and all internet traffic to be treated equal.&lt;/p&gt;
&lt;p&gt;I don't care if Virgin believe video streaming should be restricted so webpages can load faster. If I am watching a video I am not browsing the internet am I? Also with 50mb that should not matter.&lt;/p&gt;
&lt;p&gt;Now I am a big Spotify user and they restricted my traffic on that! Spotify buffing on a PC. UNHEARD OF.&lt;/p&gt;
&lt;p&gt;So now &lt;b&gt;How TO Fix It!&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;First turn your Super Hub on and off. Now login to the ip address they give you on the back of the Super Hub and enter the user name and password.&lt;/p&gt;
&lt;p&gt;Now you are taken to a splash page, at the bottom of the nice images under the writing is a link to advance options.&lt;/p&gt;
&lt;p&gt;Now on the left on the navigation you should see services.&lt;/p&gt;
&lt;p&gt;This will take you to a list of services that are all optional. Let me stress this, none of these are required and it is much much faster without any of these. Untick everything and turn the router off and on again.&lt;/p&gt;
&lt;p&gt;Now Xbox Live is will be faster and lag free. Also videos online will be a hell of a lot faster.&lt;/p&gt;
&lt;p&gt;Why should you turn off these settings? Well a router is a very basic bit of hardware, even a hub is very basic at it's core. It does not have a lot of processing power. So why have tasks that your powerful computer does being done by something as powerful as a microwave? It doesn't make sense. It also slows your internet down.&lt;/p&gt;
&lt;p&gt;Lets hope Virgin Media next time leave the computing power to the computers and stop trying to do what it assumes everyone needs.&lt;/p&gt;</description>
<link>http://www.amateurprotagonist.com/a-33-virgin-media-super-hub-nat-type-and-slow-internet.php</link>
<pubDate>Fri, 02 Aug 13 10:00:00 -0700</pubDate>
<guid>http://www.amateurprotagonist.com/a-33-virgin-media-super-hub-nat-type-and-slow-internet.php</guid>
</item>

<item>
<title>You Want Backlinks Well I Want A Can Of Coca Cola</title>
<description>&lt;p&gt;Backlinks in case you did not know are the currency of the SEO (Serach Engine Optimisation) market.&lt;/p&gt;
&lt;p&gt;The real nuts and bolts of getting your website to rank better comes down to people finding your websites and then they really like what is on it. As in they love it. So much love in fact they go and talk about it on their blog. After a sometime another person visits and loves it even more and shares it on Facebook and their own website. Then a reporter find your website and loves it to the point they do an article on the BBC home page which links to you.&lt;/p&gt;
&lt;p&gt;Now in Google's eyes the backlinks means people must be talk about you and thus you are good shit. Now anyone can have a blog and this one that person a owns is very small and only been around for a couple of weeks. As that website does not have any links it's self it doesn't really give you anything in terms of a good word or boost. The next person, person b has a fair few backlinks and Google really likes them. Google see them linking to you and thinks you must be worth something, so this is a positive boost. Person c gave you gold and you should make love to.&lt;/p&gt;
&lt;p&gt;Google has something called PR (Page Rank) it is a rough way of saying how much of an authority a website is. The more authority you have, the easier it is to out ranking other websites.&lt;/p&gt;
&lt;p&gt;The short easy way it to get good backlinks with relevant words in the link. You don't want twenty links to your website all with the words cheese hats when you sell beer mats, Google will get the wrong idea.&lt;/p&gt;
&lt;p&gt;Most people pay a SEO company to do this work for them, they slowly build up backlinks from fresh sources so it all looks natural. Or you can go out on a limb and hire a black hatter to get your link out their in as many places as possible.&lt;/p&gt;
&lt;p&gt;Or you can find websites that let you include a link. Normally blogs and the like.&lt;/p&gt;
&lt;p&gt;So you want backlink but have no cash to buy backlinks or hire someone? Lets then this is your few hours task every day then.&lt;/p&gt;
&lt;p&gt;First hunt around for websites in your sector or complimenting sectors (this helps) now do a page rank check on them all. Now check if the links on the website have ref="nofollow" if the PR is low or they have nofollow then skip them. Then leave your link and hope that their are not many other links on the page (like spam, that will hurt you). That is basically it. In a real simple world that in the bare bones of off page SEO. It is a hell of a lot more complex but if you are starting out and need to understand how to hell you outrank competitors then you need SEO and you need backlinks.&lt;/p&gt;</description>
<link>http://www.amateurprotagonist.com/a-32-you-want-backlinks-well-i-want-a-blowjob.php</link>
<pubDate>Thu, 01 Aug 13 01:00:00 -0700</pubDate>
<guid>http://www.amateurprotagonist.com/a-32-you-want-backlinks-well-i-want-a-blowjob.php</guid>
</item>

<item>
<title>Cheap Advertising For Small Business With High Conversion Rates</title>
<description>&lt;p&gt;One big issue for business's is the advertising budget. Even bigger for a small or starting up company.&lt;/p&gt;
&lt;p&gt;Now due to the nature of what I know we will focus on online advertising. However what type of advertising is just as important as where. One problem many small business's face is why am I advertising.&lt;/p&gt;
&lt;p&gt;The first answer for almost all small or starting business's is the same "To make more money." Often a business with advertise for conversions and conversions alone.&lt;/p&gt;
&lt;p&gt;Now again due to the nature of what I know lets say you advertising on AdWords. I love AdWords and personally have managed budgets around �5,000 a month. With AdWords small business are be over powered with options.&lt;/p&gt;
&lt;p&gt;First, what are you selling. How is a conversion made. Is a conversion when someone uses your sign up page? Or is it when they buy a product. First assign a cash figure to your conversions. This will be used to measure if you are making a profit or not. Lets say a sign up to you means �20. That means you need to have your cost per conversion under �20 to make any profit. Also keep into account margins, what if out of that �20 you only make �8 profit? In which case your true goal's value is �8. It is important to always work from true profit than over all figures. Otherwise you will be losing money and never know.&lt;/p&gt;
&lt;p&gt;Now I mentioned most small or starting business's want conversions. I say most because sometimes its just a name you need. If you own a local business you want your name to come up as many times as possible to people in your local area.&lt;/p&gt;
&lt;p&gt;This brings us nicely to how to spend your money and not waste any of it. First set a geographic location. If you are an e-commerce store in the UK but can ship worldwide still set it to the UK only, I say this because I assume your website and largest user base is UK based.&lt;/p&gt;
&lt;p&gt;If you are a local business depending on the nature of your business you can set the rules a bit differently. Lets say you are a local dentist, set your area within say an hour drive from your location, or just to the same area as the next dentist. When geo targeting your adverts think about other small or even large business's in your area that do the same thing. If you are only doing a few towns be sure to think about extending to cover their area as well. Customers love options and it may give you that extra edge against the bigger longer standing businesses.&lt;/p&gt;
&lt;p&gt;Now if you are just starting I would turn off the search network. Only focus on Google search. This gives you greater control over your small business budget.&lt;/p&gt;
&lt;p&gt;Now keywords are a whole other topic and I may post on that in the future so for now lets talk about some of the finer points.&lt;/p&gt;
&lt;p&gt;Set your adverts to show at set times of day. If you sell a small timer merchant chances are you don't want people clicking your adverts at midnight.&lt;/p&gt;
&lt;p&gt;Why should a small business stop their adverts based on time of day? Because no one is on the phones and you need to question is this the most targeted traffic or are they bored and browsing?&lt;/p&gt;
&lt;p&gt;Now how much do you spend. This depends on how well your traffic converts. If you can say 50% of people who visit your website will convert then make sure you are always number one and think about expanding your keywords. If like most people your converting numbers are low then you want to just be number one.&lt;/p&gt;
&lt;p&gt;Now you want to get smart. First make sure that the keywords are 9 or 10 out of 10 when it comes to relevant to the landing page. This means Google likes what it sees and thinks you are the best, thus &lt;b&gt;Lowering your costs&lt;/b&gt;. Now look at your landing pages, make sure they are engaging. If you can keep the bounce rate low (by making them click any link and carrying on with your website) you will again reduce your costs.&lt;/p&gt;
&lt;p&gt;It is possible to pay �0.20 and be number one always and second place to be paying �0.30. This is because your advert is more relevant and Google believes it to be better for the end user.&lt;/p&gt;
&lt;p&gt;So keep the traffic lower and targeted, ensure your traffic is engaging with your website. Then do not increase your bid, but increase your daily spend to get more customers. When you have a campaign working for your small business. Make a new campaign to try new ideas, areas and keywords. That way you do not risk damaging your already well performing keywords.&lt;/p&gt;</description>
<link>http://www.amateurprotagonist.com/a-31-cheap-advertising-for-small-business-with-high-conversion-rates.php</link>
<pubDate>Sat, 27 Jul 13 10:00:00 -0700</pubDate>
<guid>http://www.amateurprotagonist.com/a-31-cheap-advertising-for-small-business-with-high-conversion-rates.php</guid>
</item>

<item>
<title>The Nether In Minecraft Multiplayer</title>
<description>&lt;p&gt;The Nether coming to a multiplayer server near you!&lt;/p&gt;
&lt;p&gt;Notch has announced that Version 1.6 of Minecraft will not only have bug fixes but maps also. Maps are still very up in the air, the idea is as you move around the world your map will plot out where you are.&lt;/p&gt;
&lt;p&gt;As part of maps you will hopefully be able to share maps, then you can see where friends are, as what they have explored.&lt;/p&gt;
&lt;p&gt;The Nether has been long coming to SMP (Survival Multi Player) Minecraft, the Nether is accessed by a portal taking you to the Minecraft version Hell.&lt;/p&gt;
&lt;p&gt;This could also mean the chance to fight ghasts as well as long distance travel.&lt;/p&gt;
&lt;p&gt;The Nether is worked out that every block in the Nether is 8 blocks on the Minecraft real world. So you can tavel 100 blocks in the Nether and be 800 blocks travelled in the Minecraft real world.&lt;/p&gt;
&lt;p&gt;Version 1.6 of Minecraft will also be bringing in a lot of bug fixes. Thanks to all the wikis with bug reports, Notch is fixing them all, hopefully.&lt;/p&gt;</description>
<link>http://www.amateurprotagonist.com/a-30-the-nether-in-minecraft-multiplayer.php</link>
<pubDate>Fri, 26 Jul 13 10:00:00 -0700</pubDate>
<guid>http://www.amateurprotagonist.com/a-30-the-nether-in-minecraft-multiplayer.php</guid>
</item>

<item>
<title>Google Analytics And The Best Alternative</title>
<description>&lt;p&gt;I love Google Analytics and I can not stress enough that you should not move away from it. I personally use the alternative and Google together.&lt;/p&gt;
&lt;p&gt;I am talking about Piwik. Piwik is an open source PHP/MySQL solution to monitoring your traffic. It is currently in version 1.4 and worth a shot. Google is a powerful beast however something you want more. You want to drill down to one person and follow that person, which is very hard in Google Analytics. With Piwik, I can see live when you visit the website, what search term you used and sometimes where that term ranked! Piwik is a must have tool for SEO enthusiasts.&lt;/p&gt;
&lt;p&gt;The reason I love Piwik is it does not feel such a faceless monster, you have all the code. You can use their API, create a new API, do what ever you want with it. The live visitors is a big one for me, if anything I feel it sells it on its own.&lt;/p&gt;
&lt;p&gt;Piwik is not as smart as Google Analytics just yet as it still picks up bots, like phishing bots that check a website before or after you visit it (anti-virus) I couldn't figure out why I was creating hits when I had my own cookie set. Turns out Trend Micro was also visiting the website (using webroot now, so much happier).&lt;/p&gt;
&lt;p&gt;Now I need to sort out Microsoft over Office been installed on 3 computers already. I JUST UNINSTALLED IT YOU DICK. Fucking telephone support.&lt;/p&gt;</description>
<link>http://www.amateurprotagonist.com/a-29-google-analytics-and-the-alternative.php</link>
<pubDate>Thu, 25 Jul 13 10:00:00 -0700</pubDate>
<guid>http://www.amateurprotagonist.com/a-29-google-analytics-and-the-alternative.php</guid>
</item>

<item>
<title>Life Changing Moments And Spotify</title>
<description>&lt;p&gt;Sadly today is not a happy day for me, having to say good bye to your best friend forever is never a good feeling. On the Brightside I will chat a little about Spotify.&lt;/p&gt;
&lt;p&gt;Now Spotify has been in the news of late due to them limiting their free users more. Frankly I could not agree more, I mean they are a paid for service, the benefit of not buying CD's and always being up to date cost money somewhere down the line.&lt;/p&gt;
&lt;p&gt;I pay for the full service so I also get Spotify on my Android phone. Perfect replacement for my dying iTouch.&lt;/p&gt;
&lt;p&gt;I saved up for almost a year to buy an iTouch, it was very expensive and I only had a part time job as well as other bills, yet I could not be happier to get rid of it. Just one of many reasons why I hate Apple.&lt;/p&gt;
&lt;p&gt;Spotify gives you a freedom with your music like no other, you can merge what songs you already have with the never ending supply from Spotify. Remember when you brought CD's and would take them back after burning them? It is basically that but without the hassle.&lt;/p&gt;
&lt;p&gt;Also I have a new desktop and I am currently moving everything over. So I am be a little off with some information as I port a lot of stuff from my Acer Laptop to my Acer Desktop (fanboy much?) Just want to say, I LOVE my Predator G5, it is a beast.&lt;/p&gt;
&lt;p&gt;I highly suggest you give the Spotify free a change, it is free and perfect tester. The paid for is faster and works on the go making it perfect anywhere. Ideal for the quiet offices!&lt;/p&gt;</description>
<link>http://www.amateurprotagonist.com/a-28-life-changing-moments-and-spotify.php</link>
<pubDate>Sat, 20 Jul 13 10:00:00 -0700</pubDate>
<guid>http://www.amateurprotagonist.com/a-28-life-changing-moments-and-spotify.php</guid>
</item>

<item>
<title>How To Get On A Rail 1km Achievement Minecraft</title>
<description>&lt;p&gt;There has been a lot of confusion regarding the On A Rail Achievement Get. The 1km on a Minecraft achievement is a lot simpler than people are saying. Just a pain to get the resources.&lt;/p&gt;
&lt;p&gt;Now lets get one thing straight first thing. To get the One A Rail Achievement you need to travel 1km on a Minecraft without stopping. Now when I say 1km I mean you need to end up 1km away from where you started. So building in a straight line is the way to go.&lt;/p&gt;
&lt;p&gt;As you are going in a straight line I highly suggest powered rails as well to help you along. Now it seems that the powered rails also count as distance traveled however to be safe we work this out as if they do not.&lt;/p&gt;
&lt;p&gt;Now 1km in Minecraft is 1,000 blocks. Each block is counted as one meter.&lt;/p&gt;
&lt;p&gt;To make tracks you need 6 smelted iron and one stick in the middle. A power track is made by 6 smelted gold a stick in the middle and redstone under the stick.&lt;/p&gt;
&lt;p&gt;Now for every set of rails you make you get 16. So lets do 1000 / 16 = 62.5. Let say that is 63. Now 63 x 6 (amount of iron we need per) = 378, so we need a hell of a lot of iron. Lets say you put a powered rail every 16 so you only need 63 then.&lt;/p&gt;
&lt;p&gt;Remember you need to travel 1km away from where you go on the rail to get the On A Rail Achievement.&lt;/p&gt;</description>
<link>http://www.amateurprotagonist.com/a-27-how-to-get-on-a-rail-one-km-achievement-minecraft.php</link>
<pubDate>Mon, 10 Jun 13 10:00:00 -0700</pubDate>
<guid>http://www.amateurprotagonist.com/a-27-how-to-get-on-a-rail-one-km-achievement-minecraft.php</guid>
</item>

<item>
<title>Turn Your Old PC Into A Minecraft Server - Complete Guide</title>
<description>&lt;p&gt;Now to extend on my last post here is a complete guide to turning your old PC into a minecraft server.&lt;/p&gt;
&lt;p&gt;Now before we start some prep work, first lets check the specs of the old PC.&lt;/p&gt;
&lt;p&gt;First please ensure the PC is wired, not wireless. Too many problems with that, secondly check you have a minimal of 2GB RAM, the more the better!&lt;/p&gt;
&lt;p&gt;Now you will need a dual processor unless you want 4 people or less on the server and don't intend on using boats, TNT or other resource heavy items.&lt;/p&gt;
&lt;p&gt;Right now this old PC we are going to turn into a server! So that means on basically all the time (or just when you want to play minecraft) as well as getting very hot in very very old machines.&lt;/p&gt;
&lt;p&gt;Quick note, if this is going to be a server for you and your mates then take the monitor, keyboard and mouse off the server. All you need is the power and an ethernet cable.&lt;/p&gt;
&lt;p&gt;Now on the old PC to get Minecraft up and running you need to download the server client! Now you will need to open up port &lt;b&gt;25565&lt;/b&gt;, this is your standard TCP/UDP connection. Now port opening is done on your router. So login and open them ports! If you don't know how just do a Google search for "Open ports &lt;i&gt;myrouter&lt;/i&gt;" with myrouter being in fact, your router.&lt;/p&gt;
&lt;p&gt;Now go to Java and make sure you have the latest version downloaded and ready.&lt;/p&gt;
&lt;p&gt;Now start up Minecraft (server version)&lt;/p&gt;
&lt;p&gt;Now close it again, we just wanted all the files to be created and make sure it is all working.&lt;/p&gt;
&lt;p&gt;Now you need to go to the Minecraft server folder and edit server.properties in notepad.&lt;/p&gt;
&lt;p&gt;So a brief cover on settings you want. First change the max players to the number you will need or just set 100. Change the server name to AmateurProtagonist.com, naa I'm joking change it to what ever you want. Turn public off, otherwise all sorts of randoms can join, unless you want that kind of thing. Last thing is change motd  which is message of the day shown when someone logs in.&lt;/p&gt;
&lt;p&gt;Small note a lot of people say set verify names with Minecraft to false, this is a huge risk and can result in accounts being stolen. Just don't do it.&lt;/p&gt;
&lt;p&gt;Right you are all ready to play now. So all you need to do is start the Minecraft server up!&lt;/p&gt;
&lt;p&gt;Open up the text file Externalurl which contains the URL you need to give people so they can connect to your Minecraft Server.&lt;/p&gt;
&lt;p&gt;This guide is a how to create your own Minecraft server that anyone in the world can connect to, so maybe use a whitelist if you are scared of people finding it.&lt;/p&gt;
&lt;p&gt;Do not use the old machine for playing Minecraft leave it as a server, if you wish to use it, connect with this URL http://www.minecraft.net/play.jsp?ip=127.0.0.1&amp;amp;port=25565. It just points Minecraft to its self.&lt;/p&gt;
&lt;p&gt;That should be it, just be careful of your ISP going mad and limiting you :)&lt;/p&gt;</description>
<link>http://www.amateurprotagonist.com/a-26-turn-your-old-pc-into-a-minecraft-server-complete-guide.php</link>
<pubDate>Sat, 01 Jun 13 10:00:00 -0700</pubDate>
<guid>http://www.amateurprotagonist.com/a-26-turn-your-old-pc-into-a-minecraft-server-complete-guide.php</guid>
</item>

<item>
<title>Hosting Your Own Public Or Private Minecraft Server</title>
<description>&lt;p&gt;The biggest question I get asked if how to host your own Minecraft server. Many people want us to change our own server to do an event for them, however the answer is always the same "Why can't you use your own server?"&lt;/p&gt;
&lt;p&gt;Now the easiest method and the one I suggest to EVERYONE is to go to multiplaygameservers. These guys are extremely good and for the price really can't be beat.&lt;/p&gt;
&lt;p&gt;For our Mein Kraft Minecraft server we use them. Normally extremely up to date and generally awesome.&lt;/p&gt;
&lt;p&gt;Now if you just want a minecraft server to go public or even just for you and your mates stick with multiplaygameservers. However if you need more control then you better read on.&lt;/p&gt;
&lt;p&gt;Now first things first, you will need some kind of ip address that you can access. Also you need to run the server exe.&lt;/p&gt;
&lt;p&gt;This rules out almost all basic web hosting packages.&lt;/p&gt;
&lt;p&gt;If you want total control and are doing on the cheap, try using an old machine with good RAM and CPU. Then you can play Minecraft online multiplayer on your local network.&lt;/p&gt;
&lt;p&gt;But if you need it only and need total control then you better get a VPS. Or your own server but VPS is a lot cheaper!&lt;/p&gt;
&lt;p&gt;So go find a windows VPS where you can remotely login. You will run Minecraft server as if you were about to run Minecraft client and just leave it. Also keep in mind you will need to open the correct ports, so have a word with your hosts before. Normally you need to have port 25565 open so chat with them about that, unless you know how to do that yourself (might piss them off.)&lt;/p&gt;
&lt;p&gt;That really is all you need! However your control will be limited so I suggest looking into modded Minecraft servers to give you more control.&lt;/p&gt;
&lt;p&gt;Again very very few people need this level of control and it is a hell of a lot more expensive. However VPS is always there if you really need.&lt;/p&gt;
&lt;p&gt;If you ever need help hosting or starting up a Minecraft Server do get in touch and we can see what we can do.&lt;/p&gt;
&lt;p&gt;If this sounds a real pain in the arse you can always log into Mein Kraft Minecraft Server and just have a fun time that way!&lt;/p&gt;</description>
<link>http://www.amateurprotagonist.com/a-25-hosting-your-own-public-or-private-minecraft-server.php</link>
<pubDate>Mon, 20 May 13 10:00:00 -0700</pubDate>
<guid>http://www.amateurprotagonist.com/a-25-hosting-your-own-public-or-private-minecraft-server.php</guid>
</item>

<item>
<title>Minecraft Update 1.5 And Making Money</title>
<description>&lt;p&gt;Minecraft 1.5 is now out and kicking it. To be totally accurate it is 1.5_01 after some last second bug fixes.&lt;/p&gt;
&lt;p&gt;This new update brings the weather into play. Now the thunder storms make the map so dark monsters can spawn. So it is once again shit scary.&lt;/p&gt;
&lt;p&gt;The performance increases in this update are amazing. The memory leak is fixed and lower spec laptops can join in the fun with little or no issues. I know my RAM and CPU would shoot through the roof before but now that is all under control.&lt;/p&gt;
&lt;p&gt;The Minecraft servers are currently running 1.5_02 because they had another patch after 1.5_01 caused major issues. However that is all fixed.&lt;/p&gt;
&lt;p&gt;Some fun things that have been added with weather. If lighting hits a pig it turns into a zombie pigman. If lighting hits a mob it becomes super charged. If lighting hits a creeper the explosion is bigger!&lt;/p&gt;
&lt;p&gt;Not sure what happens if it hits you...&lt;/p&gt;
&lt;p&gt;Also if you kill a pig by fire it will drop cooked pork. So now using a flint and tinder is risky but pays off even more.&lt;/p&gt;
&lt;p&gt;The achievements are now in full swing. Small bug, go into single player and press I then come back to multiplayer. That is the only bug. The achievements are still very buggy but the foundations are there, so lets look forward to the new goals.&lt;/p&gt;
&lt;p&gt;Now the making money part. Looks like my Google AdSense account has been approved and is live. Lets hope it helps to keep this server afloat!&lt;/p&gt;
&lt;p&gt;Back to Minecraft, we are thinking long and hard about what to do with the server and get more people online. The mods and admins (including myself) will become a hell of a lot more active after this month ends. Then there will be some big world changes.&lt;/p&gt;
&lt;p&gt;One of the big changes will be protected towns and random towns, all for you to move into and call your own. It is never fun to join in when everyone is settled and miles apart. I mean what fun is it if you can't take someone you have never met before and push them in a lava cave?&lt;/p&gt;
&lt;p&gt;So the big Minecraft improvements will help us shape this new world, more developments in the forums with what will happen there.&lt;/p&gt;</description>
<link>http://www.amateurprotagonist.com/a-24-minecraft-update-one-point-five-and-making-money.php</link>
<pubDate>Sat, 18 May 13 10:00:00 -0700</pubDate>
<guid>http://www.amateurprotagonist.com/a-24-minecraft-update-one-point-five-and-making-money.php</guid>
</item>

<item>
<title>Minecraft On Ubuntu 11.04 And Why I Hate Sudo</title>
<description>&lt;p&gt;So there I was, hey new Ubuntu beta? Well I have an old Amilo Laptop laying around making me look more of a slob than I am. Why don't I give it a go? I always wanted to get more into Linux.&lt;/p&gt;
&lt;p&gt;Two Long painful hours later and I couldn't care if this would be the last time I ever saw Minecraft or that dick sudo.&lt;/p&gt;
&lt;p&gt;If you have never used a Linux computer let me introduce sudo to you. Know how in Microsoft Windows you get that pop up saying you need to be an administrator press ok to continue? Remember how much everyone bitches about it? Now what if that always happened but you had to type a password in everytime? Fun right? Oh and if you didn't use sudo in your command it just get rejected so you need to type it out again. Then the password. THAT is fucking annoying, not a pop up.&lt;/p&gt;
&lt;p&gt;Sudo is basically master user, or as I like to call him Sadistic Urinating Dick Oliver (never did like people called oliver anyway.) Well Mr Sudo is a total cunt. Don't let anyone tell you otherwise. Met someone called Sudo? Punch them for me.&lt;/p&gt;
&lt;p&gt;Now other than my grip with sudo Linux is pretty fun, the new Ubuntu beta 11.04 is fucking amazing, so sleek and easy. First thing I did, get my motherfucking chrome browser back. Somehow it is even sexier in Linux.&lt;/p&gt;
&lt;p&gt;So I log onto facebook check out the new features and even move a file using sudo! That dick.&lt;/p&gt;
&lt;p&gt;So what next, well better update everything and dig around. I should say I have used Linux before and use Joli OS on my netbook. I am a fan of Linux when I have time for it.&lt;/p&gt;
&lt;p&gt;So naturally I want to play Minecraft. Ok download MInecraft, yeah no problems. Then they start.&lt;/p&gt;
&lt;p&gt;Quick walk through to help you start with playing Minecraft, just to warn you I still failed, however it maybe due to my graphics card which is highly likely.&lt;/p&gt;
&lt;p&gt;First right click on minecraft.jar and go to properties. Now under permissions allow it to be executed.&lt;/p&gt;
&lt;p&gt;Now would be a good time to get the real Java, not the fake Java they give you.&lt;/p&gt;
&lt;p&gt;So go applications and Ubuntu Software Centre. Once that opens go Edit and then software sources, then enter your password (cunts), from here go to other software and tick canonical partners. Once that is done and synced close it down.&lt;/p&gt;
&lt;p&gt;Now open up the terminal (under applications - accessories. Now paste this (paste by right clicking and selecting paste)&lt;/p&gt;
&lt;pre class="brush: plain"&gt;
sudo apt-get update &amp;&amp; sudo apt-get install sun-java6-jre sun-java6-plugin
&lt;/pre&gt;
&lt;p&gt;Oh hello sudo, what's that? A password you say, oh OF COURSE it's youreacunt. Ah it worked thank you.&lt;/p&gt;
&lt;p&gt;Now it will download and install Java. You will be asked to type y and press enter. One thing, when the licence agreement comes up change what you are selecting with the TAB key. Wish someone told me that one.&lt;/p&gt;
&lt;p&gt;Now one more step to ensure we should have no problems. System &gt; Administration &gt; Additional Drivers. Hopefully there will be one to download or even better nothing and it goes to plan.&lt;/p&gt;
&lt;p&gt;Now right click minecraft.jar and select properties again. Now select open with Java. Not fake Java.&lt;/p&gt;
&lt;p&gt;Double click and WAYYYYY you just done what everyone keeps posting the fucking terminal for. Nice and easy.&lt;/p&gt;
&lt;p&gt;Now for me I login in and then get the error.&lt;/p&gt;
&lt;pre class="brush: plain"&gt;
[failed to get system properties (java.lang.NullPointerException)]

java.lang.IllegalStateException: Only one LWJGL context may be instantiated at any one time.
at org.lwjgl.opengl.Display.create(Display.java:846)
at org.lwjgl.opengl.Display.create(Display.java:784)
at org.lwjgl.opengl.Display.create(Display.java:765)
at net.minecraft.client.Minecraft.a(SourceFile:197)
at net.minecraft.client.Minecraft.run(SourceFile:559)
at java.lang.Thread.run(Thread.java:636)
&lt;/pre&gt;
&lt;p&gt;Dicks the lot of them. I hope you get a lot more out of this than I did. If I learnt anything it is I still like Windows and I have an unnatural hatred for people called Sudo.&lt;/p&gt;
&lt;p&gt;I'm going to play fucking Black Ops and God help me if the Xbox goes wrong.&lt;/p&gt;</description>
<link>http://www.amateurprotagonist.com/a-23-minecraft-on-ubuntu-elven-point-zero-four-and-why-i-hate-sudo.php</link>
<pubDate>Wed, 15 May 13 10:00:00 -0700</pubDate>
<guid>http://www.amateurprotagonist.com/a-23-minecraft-on-ubuntu-elven-point-zero-four-and-why-i-hate-sudo.php</guid>
</item>

<item>
<title>Adding Price Range For Variants In ASPDOTNETStorefront</title>
<description>&lt;p&gt;ASPDOTNETStorefront is an amazing piece of software, the only problem is getting to be your amazing piece of software.&lt;/p&gt;
&lt;p&gt;Chris Martz has written a very nifty snippet of code that every store needs. With enough support it could even end up in a release, but for now lets just learn.&lt;/p&gt;
&lt;p&gt;Now I assume you own the source code to ASPDOTNETStorefront, if not you really should. If you are outside of the USA, getting the source will very quickly become a must.&lt;/p&gt;
&lt;p&gt;Now this code can just as easily be used in the App_Code, however you would need to reference thiscustomer at some point, which I hope to blog about next.&lt;/p&gt;&lt;p&gt;This code will fit very snug inside XsltExtensionBase.cs inside the ASPDOTNETStorefront Core. So pick a tidy place to insert this new class maybe after line 1,000 or something. I don't have the code infront of me now but somewhere pretty deep in but not inside another class should be good.&lt;/p&gt;
&lt;p&gt;Now what this code will do is it will add the functionality to use a single line of code to get "$30.30 - $56.89" or "$32.76". What does this mean? It means price ranges for your variants inside categories or even search pages. Now you can show one product and say the price range of variants inside it. This code also accounts for single variants and most important of all, sales on some variants but not all.&lt;/p&gt;
&lt;p&gt;So lets get with the code right off the bat.&lt;/p&gt;
&lt;pre class="brush: csharp"&gt;
public virtual string GetProductPrice(String sProductID)
        {
            // Written by Chris Martz
            // Thanks!
            int productID = Convert.ToInt32(sProductID);
            decimal min_price = decimal.Zero;
            decimal max_price = decimal.Zero;
            decimal min_compare = decimal.Zero;
            decimal max_compare = decimal.Zero;
            int num_of_variants = 0;
            string min = string.Empty;
            string max = string.Empty;

            string results = string.Empty;

            String CacheName = "GetCategoryPricesByProduct_" + sProductID;
            if (AppLogic.CachingOn)
            {
                String CacheData = (String)HttpContext.Current.Cache.Get(CacheName);
                if (CacheData != null)
                {
                    if (CommonLogic.ApplicationBool("DumpSQL"))
                    {
                        HttpContext.Current.Response.Write("Cache Hit Found!&lt;br /&gt;");
                    }
                    return CacheData;
                }
            }

            using (SqlConnection conn = DB.dbConn())
            {
                conn.Open();
                using (IDataReader rs = DB.GetRS(string.Format("SELECT COUNT(VariantID) AS num_of_variants, MIN(isnull(SalePrice,Price)) AS min_price, MAX(isnull(SalePrice,Price)) AS max_price, MIN(Price) AS min_compare, MAX(Price) AS max_compare FROM productvariant WITH (NOLOCK) WHERE ProductID={0} AND Deleted = 0 AND Published = 1", productID), conn))
                {
                    if (rs.Read())
                    {
                        num_of_variants = DB.RSFieldInt(rs, "num_of_variants");
                        min_price = DB.RSFieldDecimal(rs, "min_price");
                        max_price = DB.RSFieldDecimal(rs, "max_price");
                        min_compare = DB.RSFieldDecimal(rs, "min_compare");
                        max_compare = DB.RSFieldDecimal(rs, "max_compare");
                    }
                }
            }

            string min_pricef = Localization.CurrencyStringForDisplayWithExchangeRate(min_price, ThisCustomer.CurrencySetting);
            string max_pricef = Localization.CurrencyStringForDisplayWithExchangeRate(max_price, ThisCustomer.CurrencySetting);
            string max_comparef = Localization.CurrencyStringForDisplayWithExchangeRate(max_compare, ThisCustomer.CurrencySetting);

            if (num_of_variants &gt; 1)
            {
                if (min_price != min_compare &amp;&amp; min_price != max_compare)
                {
                    min = "&lt;span style=\"color: " + AppLogic.AppConfig("OnSaleForTextColor") + ";\"&gt;" + min_pricef + "&lt;/span&gt;";
                }
                else
                {
                    min = min_pricef;
                }
                if (max_price != max_compare &amp;&amp; max_price != min_compare)
                {
                    max = "&lt;span style=\"color: " + AppLogic.AppConfig("OnSaleForTextColor") + ";\"&gt;" + max_pricef + "&lt;/span&gt;";
                }
                else
                {
                    max = max_pricef;
                }
                if (min_price != max_price)
                {
                    if (min.Contains("span style") &amp;&amp; max.Contains("span style"))
                    {
                        results = "&lt;span class=\"variantprice\"&gt;" + min + " &lt;span style=\"color: " + AppLogic.AppConfig("OnSaleForTextColor") + ";\"&gt;-&lt;/span&gt; " + max + "&lt;/span&gt;";
                    }
                    else
                    {
                        results = "&lt;span class=\"variantprice\"&gt;" + min + " - " + max + "&lt;/span&gt;";
                    }
                }
                else
                {
                    results = "&lt;span class=\"variantprice\"&gt;" + min + "&lt;/span&gt;";
                }
            }
            else
            {
                if (min_price != min_compare)
                {
                    min = "&lt;span class=\"variantprice\"&gt;&lt;span style=\"color: " + AppLogic.AppConfig("OnSaleForTextColor") + ";\"&gt;" + max_pricef + "&lt;/span&gt;&lt;/span&gt;";
                }
                else
                {
                    min = "&lt;span class=\"variantprice\"&gt;" + min_pricef + "&lt;/span&gt;";
                }

                results = min;
            }

            if (AppLogic.CachingOn)
            {
                HttpContext.Current.Cache.Insert(CacheName, results.ToString(), null, System.DateTime.Now.AddMinutes(120), TimeSpan.Zero);
            }
            return results.ToString();
        }
&lt;/pre&gt;
&lt;p&gt;Insert, build and use like so (inside your XML package.)&lt;/p&gt;
&lt;pre class="brush: xml"&gt;
&amp;lt;xsl:value-of select="aspdnsf:GetProductPrice(ProductID)" disable-output-escaping="yes" /&amp;gt;
&amp;lt;!-- end line --&amp;gt;
&amp;lt;!-- end line --&amp;gt;
&amp;lt;!-- end line --&amp;gt;
&lt;/pre&gt;
&lt;p&gt;Dead easy and super fun. I will come back to this code as well as some more in depth articles about what is going on.&lt;/p&gt;
&lt;p&gt;If you and your developer do not understand this code you have two options, fire your developer or hire Chris Martz.&lt;/p&gt;
&lt;p&gt;Join me next for when I steal other peoples work and give them credit in hopes I carry on getting away with it!&lt;/p&gt;</description>
<link>http://www.amateurprotagonist.com/a-22-adding-price-range-for-variants-in-aspdotnetstorefront.php</link>
<pubDate>Sun, 12 May 13 10:00:00 -0700</pubDate>
<guid>http://www.amateurprotagonist.com/a-22-adding-price-range-for-variants-in-aspdotnetstorefront.php</guid>
</item>

<item>
<title>Minecraft Update 1.4 - Wolfs And Achievements Put In Place</title>
<description>&lt;p&gt;What didn't happen in this massive update? Well for one achievements.&lt;/p&gt;
&lt;p&gt;The big one is the new Wolfs. You can tame them by holding a bone to them until they spring love hearts. Then they will attack your enemies and slaughter your young... Maybe.&lt;/p&gt;
&lt;p&gt;Cakes too boring for you? Well have a mother fucking 64 bit cookie bitches. Everyone loves food, yeah I am looking at you fat fucks out there.&lt;/p&gt;
&lt;p&gt;Also sleeping in a bed sets it as your spawn. Which removes a lot of confusing when dieing but makes the game a little easier. Be nice to turn that off honestly.&lt;/p&gt;
&lt;p&gt;Don't you hate ladders? Well holding shift now keeps in you in place. So you can build when you are on a ladder which is a godsend.&lt;/p&gt;
&lt;p&gt;Now the big one is the achievements have been built in. They are not in effect but are ready. So it is just a matter of next update.&lt;/p&gt;
&lt;p&gt;What achievements will there be? Well how many trees you punch, how many pigs you rid off a cliff etc. Basically stupid stuff that happens with no intension. Really just to get you out there and playing the game.&lt;/p&gt;
&lt;p&gt;Also an API is being built in which again is a massive step forward. This means mods will have some method of working without editing the core code. Which has been a long time coming.&lt;/p&gt;
&lt;p&gt;I can't wait for the next update with the new API and achievements.&lt;/p&gt;</description>
<link>http://www.amateurprotagonist.com/a-21-minecraft-update-wolfs-and-achievements-put-in-place.php</link>
<pubDate>Fri, 10 May 13 11:00:00 -0700</pubDate>
<guid>http://www.amateurprotagonist.com/a-21-minecraft-update-wolfs-and-achievements-put-in-place.php</guid>
</item>

<item>
<title>Using A Minecraft Modded Client Online</title>
<description>&lt;p&gt;A lot of mods for Minecraft improve features or even fix many of the known bugs, but should you use these modded clients online?&lt;/p&gt;
&lt;p&gt;The problem is online play is the lack of rules regarding your client. You go and download a client that gives you full access to all blocks then go online and use that mod.&lt;/p&gt;
&lt;p&gt;Problem we now have is the few that will use this to ruin servers. The issue with this is most people pay for their server. Would you buy a car and be OK with people drawing on it? Most likely not.&lt;/p&gt;
&lt;p&gt;Because of this most server use a whitelist to ensure only player who want the same as them can join in. The servers without whitelists are thus at risk.&lt;/p&gt;
&lt;p&gt;Or are they? What if a set of rules or checks could be performed on the client. If we make the mods force an identity we could look at the client, see what mods are install and say if they can enter.&lt;/p&gt;
&lt;p&gt;That is the kind of control a server host needs, otherwise you spend more time fixing silly errors and performing back-ups.&lt;/p&gt;
&lt;p&gt;So should you use a modded client? Or be punished? There is no right answer as some mods only perform fixes where as others give you full access to anything.&lt;/p&gt;
&lt;p&gt;Until there is more control over modded clients in Minecraft servers will carry on punishing players they believe to be modded, or worse modded clients with carry on destroying worlds.&lt;/p&gt;</description>
<link>http://www.amateurprotagonist.com/a-20-using-a-minecraft-modded-client-online.php</link>
<pubDate>Fri, 10 May 13 10:00:00 -0700</pubDate>
<guid>http://www.amateurprotagonist.com/a-20-using-a-minecraft-modded-client-online.php</guid>
</item>

<item>
<title>Using Minecraft Schematics With WorldEdit Like A Boss</title>
<description>&lt;p&gt;So you are using WorldEdit on Minecraft and you too want to use schematics files? Well this easy step by step guide will not only help you but also increase your perceived sexual musk by the other sex.&lt;/p&gt;
&lt;p&gt;First when you use a schematic you are loading it into your in game clipboard. From there you just paste it where you need it, thus very quick development of large cities.&lt;/p&gt;
&lt;p&gt;Currently our server host does not allow us to upload files directly to the game, so we needed to put in a support ticket to have it included. If you are too on an online server check with your host if they allow you to use schematics.&lt;/p&gt;
&lt;p&gt;If you need to know where to put your schematics file just try to load a schematic in game.&lt;/p&gt;
&lt;p&gt;This is the easy bit. Just type &lt;b&gt;//load [filename]&lt;/b&gt; so for example you would type &lt;b&gt;//load farmhouse&lt;/b&gt; note that I did not have to use .schematic, if I had a file in the correct folder called farmhouse.schematic it would be loaded into my clipboard for me to paste.&lt;/p&gt;
&lt;p&gt;So you are all set up now I assume, you know where to put the files, how to load them and then paste them (&lt;b&gt;//paste&lt;/b&gt;) hope that helps!&lt;/p&gt;
&lt;p&gt;If you want to learn how to create schematic files for Minecraft check out MCEdit and the videos on YouTube for more information.&lt;/p&gt;</description>
<link>http://www.amateurprotagonist.com/a-19-using-minecraft-schematics-with-worldedit-like-a-boss.php</link>
<pubDate>Mon, 01 Apr 13 10:00:00 -0700</pubDate>
<guid>http://www.amateurprotagonist.com/a-19-using-minecraft-schematics-with-worldedit-like-a-boss.php</guid>
</item>

<item>
<title>Back Up And Running</title>
<description>&lt;p&gt;A massive hand to GlobalGold for sorting the move and making as streamline as possible.&lt;/p&gt;
&lt;p&gt;The new hosting means lighting response times in the UK and EU as well as more security and little or no downtime!&lt;/p&gt;
&lt;p&gt;We have also create the Mein Kraft Forum the best PVP Minecraft server there is.&lt;/p&gt;
&lt;p&gt;Now that the databases are all sorted and all DNS's are pointing here we can get started!&lt;/p&gt;
&lt;p&gt;I have lots of posts planned so lets hope I write them all!&lt;/p&gt;</description>
<link>http://www.amateurprotagonist.com/a-18-back-up-and-running.php</link>
<pubDate>Sat, 30 Mar 13 10:00:00 -0700</pubDate>
<guid>http://www.amateurprotagonist.com/a-18-back-up-and-running.php</guid>
</item>

<item>
<title>AspDotNetStorefront Conference MultiStore</title>
<description>&lt;p&gt;First a heads up. MultiStore is now ML9 and ML9 is MultiStore. It is now called MSx, basically now you buy your normal one store for the normal price. But lets say you want another store and to turn it into multistore? Well you pay another $500 and your done!&lt;/p&gt;
&lt;p&gt;This talk by Matthew Bertulli of &lt;a href="http://www.demacmedia.com/" title="Demac Media"&gt;Demac Media&lt;/a&gt; was one of my favourite talks. He was a real developer that wanted to talk about being a developer. Loved it.&lt;/p&gt;
&lt;p&gt;He enforced the need to version control and how they do it, as well as tools for mass updating say 200 stores that need the same core but are not multistore.&lt;/p&gt;
&lt;p&gt;The main focus was when do you want to use multistore and when do you want single stores. Maybe even single stores using the same database.&lt;/p&gt;
&lt;p&gt;Big point, with multistore your customers can log into all the stores or one. No middle ground. Also all pricing and product information is the same. The only thing you can change is mapping.  This is good if you have say 300 products and you want each store to sell a different 100 each, then it is perfect. You can change the skin on each store the process is basically the same but the products are different on each store (via mapping). The best bit is it is all controlled via one back end.&lt;/p&gt;
&lt;p&gt;If you need something where the same products but different pricing then you will hit a brick wall. Single stores have clean separation but you will struggle with data replication if needed. With multistore you have the same process and only the skin can change. (basically)&lt;/p&gt;
&lt;p&gt;I have only spoken a little about the 3 pages I have on this talk. Please do get in contact with Matthew, if he can't help you I am sure he will make you laugh.&lt;/p&gt;</description>
<link>http://www.amateurprotagonist.com/a-17-aspdotnetstorefront-conference-multistore.php</link>
<pubDate>Wed, 20 Mar 13 10:00:00 -0700</pubDate>
<guid>http://www.amateurprotagonist.com/a-17-aspdotnetstorefront-conference-multistore.php</guid>
</item>

<item>
<title>AspDotNetStorefront Conference Integrations Part Three</title>
<description>&lt;p&gt;The last conference of the day was a split between Brilliance Business Solutions (two of them) and Mike Catalfamo of eBridge.&lt;/p&gt;
&lt;p&gt;The first talk by Brilliance was about DotNetNuke getting back in bed with AspDotNetStorefront. Only problem was they have not done it yet, only started. If you want to know more you need to sign up with them. Personally I would custom develop that be dependant on another system, we already have AspDotNetStorefront updates to deal with as it is.&lt;/p&gt;
&lt;p&gt;I feel sorry for Mike as he was the last speaker. I had a chat with him in the morning and he is a funny guy. Very much into driving business forward. He had a very strong talk, however like Stone Edge I would suggest his talks be put on the merchant track.&lt;/p&gt;
&lt;p&gt;Other than that is talk went really well bar the last bit he said. If the product does not already exist in your accounting/ERP package then it will not complete. Why not just create it? There is enough data there. Can we not pick between throw it away or add it? Hopefully that is an update they are rolling out.&lt;/p&gt;</description>
<link>http://www.amateurprotagonist.com/a-16-aspdotnetstorefront-conference-integrations-part-three.php</link>
<pubDate>Mon, 18 Mar 13 10:00:00 -0700</pubDate>
<guid>http://www.amateurprotagonist.com/a-16-aspdotnetstorefront-conference-integrations-part-three.php</guid>
</item>

<item>
<title>AspDotNetStorefront Conference Design And Motion</title>
<description>&lt;p&gt;This was a talk by Jesse Hodges from AspDotNetStorefront about using jQuery to animate than flash.&lt;/p&gt;
&lt;p&gt;Sadly the room was very empty and he did seem very on edge, well I know I would be. He showed some really good examples of using jQuery as well as the pretty much unknown x-packname.aspx method (happy I did know about it!) The display was very good for anyone not using jQuery that wanted to add a flare to their site.&lt;/p&gt;
&lt;p&gt;Sadly it finished will a lot of time left and no really examples of code, we were shown the code but it was as straight forwards as this large block of code does this and then showed us.&lt;/p&gt;
&lt;p&gt;It was a good display and I feel a complementing display on using jQuery would really of taken it to the next level. Bit annoyed I didn't do a talk about jQuery filtering client side the two talks could of gone nicely. Oh well maybe next year I could do a split talk with him.&lt;/p&gt;
&lt;p&gt;I got a moment to have a chat with Jesse and he is a funny but business headed guy. He will make a joke and have a laugh but he still is representing a company and keeps that in mind. I do hope to see more of his work in the future as well as his new ideas. If you are looking for design ideas or new customer experience I suggest tracking him down!&lt;/p&gt;</description>
<link>http://www.amateurprotagonist.com/a-15-aspdotnetstorefront-conference-design-and-motion.php</link>
<pubDate>Thu, 14 Mar 13 10:00:00 -0700</pubDate>
<guid>http://www.amateurprotagonist.com/a-15-aspdotnetstorefront-conference-design-and-motion.php</guid>
</item>

<item>
<title>AspDotNetStorefront Conference Integrations Part Two</title>
<description>&lt;p&gt;Unlike the integrations part one this was worth the visit to Vegas, a huge thank you goes out to Jim Sawyers of &lt;a href="http://www.bounce10.com/" title="Bounce10"&gt;Bounce10&lt;/a&gt; and Nigel Davies of &lt;a href="http://www.vortx.com/" title="Vortx"&gt;Vortx&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;First was Jim and he spoke about when to use WSI and SQL. He done a great job and made it clear the pros and cons of both as well as some case studies. He also focused on making applications work together, it is no longer good enough to simply say I only need this synced, we now need to be making the connections between applications as seamless as possible for the end user. Personally I am a big fan of that idea.&lt;/p&gt;
&lt;p&gt;Now sadly for Jim, Nigel was about to steal the show. He explained that Vortx had created what can only be called the perfect middleware. It links to all systems (if not already done an adapter is built) as well as accepting an insane amount of inputs. How can it do this so well? Well the middleware called "VIP"? (It was VIP or something that sounds like that) turns all data into OAGIS format, a standardised format for the transfer of data. Thus you only need to build adapters for new inputs or output, never change the core code.&lt;/p&gt;
&lt;p&gt;Also it had a huge range of inbuilt transfer protocols, so it can send the data via FTP, HTTP, Socket, mouse with cheese, all of them.&lt;/p&gt;
&lt;p&gt;Then on top of this is the amazing queuing feature. It understands that some data needs to get to where it needs to go before other data, it also does not destroy failed data. It just resends at a later time.&lt;/p&gt;
&lt;p&gt;But now the cleaver bit, the application will send data to ALL applications. No more point to point, all of that point to point bullshit cut out.&lt;/p&gt;
&lt;p&gt;I did speak with Nigel afterwards and despite that fact I was making no sense and he was in a hurry he did give me the time of day, that's the British for you! Top guy and I hope to see some more of his work in the future!&lt;/p&gt;</description>
<link>http://www.amateurprotagonist.com/a-14-aspdotnetstorefront-conference-integrations-part-two.php</link>
<pubDate>Wed, 13 Mar 13 10:00:00 -0700</pubDate>
<guid>http://www.amateurprotagonist.com/a-14-aspdotnetstorefront-conference-integrations-part-two.php</guid>
</item>

<item>
<title>AspDotNetStorefront Conference Integrations Part One</title>
<description>&lt;p&gt;Well the talk was by Barney Stone of Stone Edge and BJ O'Reilly of InfoSys. Really the guys name is BJ. Don't think Americans call it a blow job so they missed that joke.&lt;/p&gt;
&lt;p&gt;This talk started with them saying they should be on the merchant side and they were right. This talk was not for developers which is a real shame because they are passionate about their product but talking to the wrong crowd.&lt;/p&gt;
&lt;p&gt;Tell you one thing, this set the trend for everyone being against QuickBooks, I mean fucking hell only one company springs to mind that did not slag them off and that was because they supported them!&lt;/p&gt;
&lt;p&gt;Not really much to say about this talk as it just was not for me, we do our own integrations not buy them, for selling stuff talk to the store owners not the coders, we do not control the budget.&lt;/p&gt;
&lt;p&gt;Oh and they had it in for cloud based services too, they did try the old but it might be for you trick but it was plain as day, they were selling their product. That is fine but like I said, I could not give a flying fuck, I just got this trip paid for, last thing I want to do is ask for more cash!&lt;/p&gt;
&lt;p&gt;Next year AspDotNetStorefront make sure all your speakers are in the right section.&lt;/p&gt;</description>
<link>http://www.amateurprotagonist.com/a-13-aspdotnetstorefront-conference-integrations-part-one.php</link>
<pubDate>Tue, 12 Mar 13 10:00:00 -0700</pubDate>
<guid>http://www.amateurprotagonist.com/a-13-aspdotnetstorefront-conference-integrations-part-one.php</guid>
</item>

<item>
<title>AspDotNetStorefront Conference Source Code Management</title>
<description>&lt;p&gt;Source code management by John Morrison. The first day and the first presentation. Now I had no idea how good or bad this would be. Let me tell you now. It changed my life. If this show was worth anything it was for that.&lt;/p&gt;
&lt;p&gt;John Morrison, if you ever read this, thank you. In short he showed how to maintain your source code as well as how to make upgrading and including patches STUPIDLY easy. Let me say that again with bold. &lt;b&gt;STUPIDLY EASY&lt;/b&gt;.&lt;/p&gt;
&lt;p&gt;Now I believe AspDotNetStorefront will be doing a talk on this after a request by unitednow.com, so if you want to know more just keep pushing AspDotNetStorefront to do a webinar on it, or go to &lt;a href="http://www.morrisonconsulting.com/" title="Morrison Consulting"&gt;http://www.morrisonconsulting.com&lt;/a&gt;, they done the speech after all!&lt;/p&gt;
&lt;p&gt;In short the idea was to use SVN with the original code, your development code and the update code. Then use SVN to compare and merge.&lt;/p&gt;
&lt;p&gt;Personally I have been winmerge'ing like no tomorrow, also with this SVN method you can roll back changes, how fucking awesome if that?!?&lt;/p&gt;
&lt;p&gt;So in short stuff about trunks and treating the new update as another developer and then merging the code as well as comparing to the original AspDotNetStorefront code.&lt;/p&gt;
&lt;p&gt;So you have 8.0.1.1 original code as the base in its own trunk, then you create a new folder/trunk with current and put the code there. Then you copy it to your development code. Now you update the development code and 8.0.1.2 comes along. So you put that code in its own trunk and in the current. Now merge the current with your developer code, it will compare the two as well as looking at the code in your 8.0.1.1 code to see who made the changes!&lt;/p&gt;
&lt;p&gt;I might of gotten that wrong so do wait for AspDotNetStorefront to do a demo on it or get in touch with them.&lt;/p&gt;
&lt;p&gt;I have 4 pages on what he said so I will not write them all down, but that is the most I have written on anyone, that is how big this talk was.&lt;/p&gt;
&lt;p&gt;Hello fearless source code editing!&lt;/p&gt;</description>
<link>http://www.amateurprotagonist.com/a-12-aspdotnetstorefront-conference-source-code-management.php</link>
<pubDate>Sun, 10 Mar 13 12:00:00 -0700</pubDate>
<guid>http://www.amateurprotagonist.com/a-12-aspdotnetstorefront-conference-source-code-management.php</guid>
</item>

<item>
<title>AspDotNetStorefront Masterclass In Las Vegas</title>
<description>&lt;p&gt;Well just got back from the AspDotNetStorefront masterclass. I was promised I would leave with one good idea. Jason Lavin the speaker who owns GoldenComms was taking the place of Jo Benson, can't help but feel she would of been a lot better.&lt;/p&gt;
&lt;p&gt;However I was promised on idea and I have that. Was it worth the money? No. The Masterclass is perfect for developers to pick up the people who have no idea how to start off. Everyone who was already using their store and was pretty tech savvy would of just had their own ideas agreed with. Don't get me wrong that is important, but go elsewhere for free to have your ego rubbed.&lt;/p&gt;
&lt;p&gt;Now my biggest problem was PageRank was referenced as if it was the Google ranking algorithm. It is not. PageRank is a factor in the Google algorithm, not the fucking thing.&lt;/p&gt;
&lt;p&gt;I questioned him about this to which it turned into a yes it is not it isn't argument. To which I was told no one knows the PageRank algorithm, I at this point was too pissed off to play it nice and stated it is posted on the damn Wiki entry you had up. The algorithm is know and it used to pre-guess browsing habits of the users and assign points to where the user is most likily to end up. The more points a site has, the more it offers. Simply put that is PageRank, one of over 400 KNOW factors in the main organic rankings of Google.&lt;/p&gt;
&lt;p&gt;Other than that it was pretty standard, he tripped up a lot and you could see this was not a talk he planned. I think maybe that is why I disliked it was because it was not set out in his style and maybe not what he wanted to talk about. When it came to social media he was all over it, which luckly brightened up the Masterclass for me.&lt;/p&gt;
&lt;p&gt;Like I said lacking in a few areas that I feel Jo would of spent a day and a half chatting about but a strong come back with good points on Social Media.&lt;/p&gt;
&lt;p&gt;If you are brand new to e-commerce and have AspDotNetStorefront then the Masterclass is for you, you will learn the power of AspDotNetStorefront on a basic level and meet some top developers. However if you know what you are doing then just attend the conference and give Masterclass or Starterclass a miss.&lt;/p&gt;
&lt;p&gt;Jason mentioned about blogging and how they blog back, don't think I will see a link from them guys in sometime...&lt;/p&gt;</description>
<link>http://www.amateurprotagonist.com/a-11-aspdotnetstorefront-masterclass-in-las-vegas.php</link>
<pubDate>Thu, 28 Feb 13 17:00:00 -0800</pubDate>
<guid>http://www.amateurprotagonist.com/a-11-aspdotnetstorefront-masterclass-in-las-vegas.php</guid>
</item>

<item>
<title>Minecraft Zombie Survival - My Vision</title>
<description>&lt;p&gt;Ok this is my idea for how Minecraft Zombie Survival should work. Oh one quick thing.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Peter Molyneux Go FUCK yourself.&lt;/b&gt; I hate the dogs in Fable, also Fable is the ONLY game I regret buying. I am glad Notch said he would add wolves than giving pet dogs. Wolves I can live with but pet dogs and I will be petrol bombing a lot of people.&lt;/p&gt;
&lt;p&gt;Back on track (sorry I really do hate Peter Molyneux and his fucking shit ideas) my vision for zombie survival.&lt;/p&gt;
&lt;p&gt;First this should be a separate game type. I say by building a portal, maybe make the zombies drop brains which can be made into a brain block or something along them lines.&lt;/p&gt;
&lt;p&gt;Now there will be day and night rotations, with one difference mobs will always attack (spiders) and there will be reduced neutral mobs (so bring pork with you.)&lt;/p&gt;
&lt;p&gt;Now the big part, there will be not just zombies but all mobs, however in the night they will spawn like crazy. The day night rotation is to be swapped so night is longer than day.&lt;/p&gt;
&lt;p&gt;You are scored on mobs killed, time you survive counts for nothing. Also mobs can dig. I say mobs I mean zombies can dig, spiders stay the same, creepers have more powerful explosions and there will be ghasts. We need them to fuck your night up if you build up high.&lt;/p&gt;
&lt;p&gt;Outside the portal should be a sign saying top player and there score, that way it would work for single and multi player.&lt;/p&gt;
&lt;p&gt;Now in terms of Zombies digging they should be slow, maybe four times slower than the player. So if you made a dig house you are fucked. Also creepers should activate two blocks away, so one block buildings are at risk.&lt;/p&gt;
&lt;p&gt;This game type will make the first four/five nights a true nightmare until you get your base set up correctly. Oh and if no one is in the zombie mob it should be reset. This will stop people slowly building up each time, this will still be possible via clever multi player but still hard.&lt;/p&gt;
&lt;p&gt;I would really like to see mobs being about to destroy stuff, like I said before when I first started playing and it sounded like they were digging in I really did shit myself. Once I knew I was safe with a bit of sand the game got easy. Build a house in the mountain and dig in. Maybe add an extra difficulty where mobs are more deadly? Where creepers can blow up at random and totally fuck up your defence walls, zombies can slowly dig towards you and archers can have flaming arrows (maybe a one percent change like the spider archers.)&lt;/p&gt;
&lt;p&gt;Also as a side note how creepy would it be if the world would be generated with random human made structures? You would be digging and you find a small cave with two zombies and torches... That would made the game a bit more interesting, then you can explore for a ready made structure but be at risk at what is in there and maybe bits you don't know as you did not make it. Maybe there is a hidden entrance, stuff like that.&lt;/p&gt;
&lt;p&gt;Anyway I would zombie survival and I will be watching what happens with this whole dogs bullshit as well. Fucking hate dogs.&lt;/p&gt;</description>
<link>http://www.amateurprotagonist.com/a-10-minecraft-zombie-survival-my-vision.php</link>
<pubDate>Mon, 04 Feb 13 14:00:00 -0800</pubDate>
<guid>http://www.amateurprotagonist.com/a-10-minecraft-zombie-survival-my-vision.php</guid>
</item>

<item>
<title>Mein Kraft Forums Coming Sooner Than A Virgin Watching Porn</title>
<description>&lt;p&gt;I will be coding my first HTML 5 forums soon using my old forum code. Very basic set up. Just three main pages, view all (or the post selected), reply or post new and login/out. Simples.&lt;/p&gt;
&lt;p&gt;We will be making our Minecraft server public soon and this forum will be the centre point for communications.&lt;/p&gt;
&lt;p&gt;Our server, currently called Mein Kraft is a nice friendly place where you are encouraged to build, live and make a profit. An odd group of admins normally online to keep everything inline.&lt;/p&gt;
&lt;p&gt; Hopefully we will be adding more mods to increase the fun and purpose of the server. Frankly most minecraft server are pretty samey.&lt;/p&gt;
&lt;p&gt;I would like to have an all out war server, two towers and everyone vs everyone. In fact this comes back to some ideas I have had for Zombie survival.&lt;/p&gt;
&lt;p&gt;Anyway I should get working on them forums. I might do a quick post about my ideas for zombie survival.&lt;/p&gt;</description>
<link>http://www.amateurprotagonist.com/a-9-mein-kraft-forums-coming-sooner-than-a-virgin-watching-porn.php</link>
<pubDate>Thu, 10 Jan 13 10:00:00 -0800</pubDate>
<guid>http://www.amateurprotagonist.com/a-9-mein-kraft-forums-coming-sooner-than-a-virgin-watching-porn.php</guid>
</item>

<item>
<title>Can't Connect To Minecraft.Net But It's Online</title>
<description>&lt;p&gt;Here is the short answer. Minecraft.net was the main server once upon a time, so if the website was down you could not connect. However now the Amazon Cloud deals with the bulk of requests so it is a coding error or a problem with the cloud.&lt;/p&gt;
&lt;p&gt;But Minecraft.net is down too, sometimes they are linked other times they are not. I do plead you not start a million posts everywhere you can because they are already aware this has happened.&lt;/p&gt;
&lt;p&gt;When me and a few friends purchased our minecraft server we have used it religiously. To the point I no longer play offline. The only problem is sometimes I want to just blow shit up. With a shared server I can not do that. So most of my time is spent making building, moving out of that building and making another.&lt;/p&gt;
&lt;p&gt;Also as we have hmod and we are Admins I just give myself the stone needed, is this a good or bad thing? Well its good because I can make amazing buildings but its bad because there is no real motivation other than the end result.&lt;/p&gt;
&lt;p&gt;When I played offline on my own I always had a shit house and would dig to the bottom. When I first started playing I believed the mobs could dig so i was shit scared, they I found out they can't and the game became a lot easier.&lt;/p&gt;
&lt;p&gt;Anyway back to the point, if Minecraft is down and you can not work out why then it may be because of the Amazon Cloud or a programming error, either way they know about it and are on it.&lt;/p&gt;
&lt;p&gt;I just get sick of a million messages about one issue that until the right person fixes it nothing can be done.&lt;/p&gt;</description>
<link>http://www.amateurprotagonist.com/a-8-cant-connect-to-minecraft-net-but-its-online.php</link>
<pubDate>Mon, 16 Jul 12 12:00:00 -0700</pubDate>
<guid>http://www.amateurprotagonist.com/a-8-cant-connect-to-minecraft-net-but-its-online.php</guid>
</item>

<item>
<title>AspDotNetStorefront Conference In Las Vegas</title>
<description>&lt;p&gt;I will be attending the AspDotNetStorefront Las Vegas conference 2011.&lt;/p&gt;
&lt;p&gt;I fly out on Monday, I will try and keep this blog updated with what happens.&lt;/p&gt;
&lt;p&gt;I am keen to see what Amazon have to say as well as the jQuery team, which by the way just updated to 1.5.1 fixing loads of IE 9 bugs.&lt;/p&gt;
&lt;p&gt;From the looks of things Mobile commerce is the big topic on everyone's minds at the moment.&lt;/p&gt;
&lt;p&gt;Hate to be a prick but is mobile commerce that big a deal? I mean most users are fine with a well built website, why make your developer create two websites.&lt;/p&gt;
&lt;p&gt;Sometimes you can ask too much of a developer, if your developer does not point out problems and works blindly you may end up in the deep end.&lt;/p&gt;
&lt;p&gt;If I am asked to develop something that has a low ROI, high time and effort and complex to implement I stand and question if it is really worth the wasted time and money.&lt;/p&gt;
&lt;p&gt;I hope if they do push mobile commerce they do have some real solid examples. Guess I am not big fan of mobile commerce, not with apps around anyway.&lt;/p&gt;</description>
<link>http://www.amateurprotagonist.com/a-7-aspdotnetstorefront-conference-in-las-vegas.php</link>
<pubDate>Sun, 15 Jul 12 10:00:00 -0700</pubDate>
<guid>http://www.amateurprotagonist.com/a-7-aspdotnetstorefront-conference-in-las-vegas.php</guid>
</item>

<item>
<title>Thinking Of Buying An Eee PC Well Save Your Money</title>
<description>&lt;p&gt;I have owned an Eee PC for about two years now. First thing, I got this netbook for under 70 pounds. The model I have is the Eee PC 4G.&lt;/p&gt;
&lt;p&gt;The biggest problem is the battery drain. The battery will never be fully charged, also the battery drains just by been left, not even on.&lt;/p&gt;
&lt;p&gt;So why did I buy this piece of shit? Well I wanted a small netbook for next to nothing, ideally  I just wanted something to play with Linux. Only problem is the 4G SSD memory, it is limiting but fun.&lt;/p&gt;
&lt;p&gt;Why would you want one of these? Well if you want a small netbook to play around on with little cost it might be for you.&lt;/p&gt;
&lt;p&gt;The problem is the screen is heavier than the base so typing is a nightmare. You always have to have weight on the base.&lt;/p&gt;
&lt;p&gt;I am currently writing this on my Eee PC 4G. It is a total nightmare. The battery is the worst part.&lt;/p&gt;
&lt;p&gt;If you really want a cheap small netbook I highly suggest you get an old laptop or netbook from a friend for say 50 or 60 pounds and sticking Linux on it.&lt;/p&gt;
&lt;p&gt;I say Linux because Windows is painful on a low performance machine.&lt;/p&gt;
&lt;p&gt;All in all if you ever see an Eee PC for sale give it a skip, the keys are not too bad but the screen weight is driving me crazy.&lt;/p&gt;</description>
<link>http://www.amateurprotagonist.com/a-6-thinking-of-buying-an-eee-pc-well-save-your-money.php</link>
<pubDate>Sun, 08 Jul 12 10:00:00 -0700</pubDate>
<guid>http://www.amateurprotagonist.com/a-6-thinking-of-buying-an-eee-pc-well-save-your-money.php</guid>
</item>

<item>
<title>Gingerbread Nexus One Update</title>
<description>&lt;p&gt;Looks like the Nexus One will at last get Gingerbread. When I brought my Nexus One I was told it was the Google Phone, the developer phone. Basically if you want to be anybody you get this phone phone.&lt;/p&gt;

&lt;p&gt;Then the Nexus S came out. I knew I had been had, still I have an amazing phone and I do not have Apples marketing dick up my ass. I do wish I would get the Nexus One update this side of the year honestly.&lt;/p&gt;

&lt;p&gt;From December I was told that Gingerbread would soon be laying its self upon me and to ready myself. After weeks of waxing and wearing thongs I knew this would not happen. The Nexus S came out, and then the Android little tablets came out. Slowly I was pushed down the list with a product I was told would always be cutting edge.&lt;/p&gt;

&lt;p&gt;By no means do I regret buying the Nexus One, I do love it and always find ways to use it more. From the market place to the social networks, it just works so well. However I do love updates. I love that in Google Chrome Beta I get an update every other day, I love when my software wants to update. Hell I am a proud die hard patch Tuesday fan.&lt;/p&gt;

&lt;p&gt;I could go and manually download the Gingerbread update to my Nexus One but frankly I should not have to. I want it to come over the air like it should.&lt;/p&gt;

&lt;p&gt;Every day I find myself performing force checks, which if you did not know is done by *#*#2432546#*#* or if you struggle just remember *#*#checkin#*#*.&lt;/p&gt;

&lt;p&gt;I would not be so annoyed if the update was announced three hours ago, but it was not. It was announced back in December back when I was keen and young. Everyone in the office has an Android so by having the Nexus One I should be leading? Yet they are all on the same version on me waiting to get upgraded too. What happened to getting first dips? The Nexus S got them.&lt;/p&gt;

&lt;p&gt;Like I said this would not be a problem if the update was in the air and it would get around in three days. However the OTA is said to take around a week to maybe two. I mean two weeks, why even fucking tell me about it?&lt;/p&gt;

&lt;p&gt;All I want is to be working and see my phone update. Then try to new features and carry on my life knowing all the bugs in the old version are fixed and look forward to the new fixes. Some people hate how offer Google Chrome updates. Frankly, I love it.&lt;/p&gt;

&lt;p&gt;If you do get the Nexus One update in the next week before me, you are a cunt.&lt;/p&gt;</description>
<link>http://www.amateurprotagonist.com/a-5-Gingerbread-Nexus-One-Update.php</link>
<pubDate>Thu, 05 Jul 12 10:00:00 -0700</pubDate>
<guid>http://www.amateurprotagonist.com/a-5-Gingerbread-Nexus-One-Update.php</guid>
</item>

<item>
<title>Book A Shutl Quote Using CSharp - Example Code</title>
<description>&lt;p&gt;For those of you who live under a rock, Shutl is an amazing service where you can request a pickup and delivery for the same day. True lots of companies do this, however none are as fast as Shutl's 30 minutes to an hour time.&lt;/p&gt;

&lt;p&gt;Shutl is an amazing service and with an API I love them long time but enough of them and more about the API. Shutl have shit examples and help, bless them they do try but they do have better things to do with their time.&lt;/p&gt;

&lt;p&gt;So here is the complete code for creating a quote and booking it. This code could even be used in a live example. All you would need is for the correct logic to be built in for it to function in a shopping cart.&lt;/p&gt;

&lt;p&gt;However not every cart can be that flexible. I would suggest doing this in a back office so you can book the quotes over the phone. Another idea is to use this for stock transfers within London.&lt;/p&gt;

&lt;p&gt;Right so let's get into this code. If you found this page it is because you want to use Shutl with C# and not listen to me.&lt;/p&gt;

&lt;p&gt;This example has comments in the code so here it is.&lt;/p&gt;

&lt;pre class="brush: csharp; toolbar: false;"&gt;
//------------------------------------------------
// Copyright Alister Sneddon
// AmateurProtagonist.com 
// DO NOT REMOVE COPYRIGHT
//
// In this example we retrieve and book a quote
//------------------------------------------------
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.IO;
using System.Net;
using System.Xml;
using System.Text;

namespace ShutlQuoteBooking
{
    public partial class Shutl : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            // Basic configuration settings - Fill in your own details
            // Going from test to live is as simple as taking test out the URL
            string APIKey = "";
            string ClientID = "";
            string QuoteURL = "https://test-api.shutl.co.uk/quote";
            string BookingURL = "https://test-api.shutl.co.uk/order/"; // We will append the QuoteID on the end

            // Store setup (we only have one store in the example)
            string StoreReference = ""; // This is to be obtained from Shutl
            string StoreContactName = "";
            string StoreCompany = "";
            string StoreStreet1 = "";
            string StoreStreet2 = "";
            string StoreCity = "";
            string StorePostcode = "";

            // Do not set a cache as this page is prone to updates
            Response.CacheControl = "private";
            Response.Expires = 0;
            Response.AddHeader("pragma", "no-cache");
            string PostData = ""; // We blank this to keep everything clean

            // Using response.write to create the page - HtmlTextWriter would be better
            // Set up the form/page, we will use the form to move from one section to the next
            // I have used a little styling as possible so you can add your own touch
            Response.Write("&amp;#60;!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\"&amp;#62;&amp;#60;html xmlns=\"http://www.w3.org/1999/xhtml\"&amp;#62;&amp;#60;head&amp;#62;");
            Response.Write("&amp;#60;title&amp;#62; Shutl Quote Booking &amp;#60;/title&amp;#62;");
            Response.Write("&amp;#60;/head&amp;#62;&amp;#60;body&amp;#62;");
            Response.Write("&amp;#60;form style=\"padding:8px;width:100%;\" method=\"POST\" id=\"ShutlForm\" name=\"ShutlForm\" action=\"shutl.aspx\"&amp;#62;");

            // We will create a switch statement to judge where they are
            // This switch goes backwards, so the last switch is where they start
            switch (Request.Form["stage"])
            {
                // Book Quote
                case "Booking":
                    // We handle booking the quote and alerting the user it is all done.
                    // We will use the QuoteID to book the quote (at the time of writting a wuote is only valid for 15 minutes.
                    // An email WILL be sent by Shutl to the customer's email address, make sure you use your own email as the customer email.
                    // Try Catch for graceful errors
                    try
                    {
                        // Same way we sent the xml before for a quote
                        HttpWebRequest request = (HttpWebRequest)
                        WebRequest.Create(BookingURL + Request.Form["ShutlQuoteID"]); 
                        request.KeepAlive = false;
                        request.ProtocolVersion = HttpVersion.Version10;
                        request.Headers.Add("APIKey", APIKey);
                        request.Headers.Add("ClientID", ClientID);
                        request.Method = "POST";
                        byte[] postBytes = Encoding.ASCII.GetBytes(PostData); // Send something (should be blank)
                        request.ContentType = "text/xml";
                        request.ContentLength = postBytes.Length;
                        Stream requestStream = request.GetRequestStream();
                        requestStream.Write(postBytes, 0, postBytes.Length);
                        requestStream.Close();
                        // Now we have it
                        HttpWebResponse response = (HttpWebResponse)request.GetResponse();
                        XmlTextReader xmlReader = new XmlTextReader(response.GetResponseStream());

                        // Nice an easy, same as before and all done
                        Response.Write("&amp;#60;p&amp;#62;&amp;#60;b style=\"color:darkgreen;\"&amp;#62;All Booked!&amp;#60;/b&amp;#62; email sent by Shutl to customer.&amp;#60;/p&amp;#62;");

                        // Load XML
                        XmlDocument doc = new XmlDocument();
                        doc.Load(xmlReader);

                        // Show extra information about booked quote
                        Response.Write("&amp;#60;p&amp;#62;");
                        Response.Write("&amp;#60;b&amp;#62;Quote confirmed&amp;#60;/b&amp;#62;&amp;#60;br /&amp;#62;");
                        Response.Write("&amp;#60;b&amp;#62;Order ID:&amp;#60;/b&amp;#62; " + doc.GetElementsByTagName("order")[0].Attributes["id"].InnerText + "&amp;#60;br /&amp;#62;");
                        Response.Write("Carrier Name: " + doc.GetElementsByTagName("carrier")[0].Attributes["name"].InnerText + "&amp;#60;br /&amp;#62;");
                        Response.Write("Tacking Code: " + doc.GetElementsByTagName("tracking")[0].Attributes["track_code"].InnerText + "&amp;#60;br /&amp;#62;");
                        Response.Write("Tacking URL: " + doc.GetElementsByTagName("tracking")[0].Attributes["shutl_tracking_url"].InnerText + "&amp;#60;br /&amp;#62;");

                        Response.Write("Extra Message: " + doc.GetElementsByTagName("order")[0].Attributes["message"].InnerText + "&amp;#60;br /&amp;#62;");
                        Response.Write("&amp;#60;/p&amp;#62;");

                        Response.Write("&amp;#60;p&amp;#62;");
                        Response.Write("&amp;#60;b&amp;#62;Internal information&amp;#60;/b&amp;#62;&amp;#60;br /&amp;#62;");
                        Response.Write("Confirmation ID: " + doc.GetElementsByTagName("order")[0].Attributes["confirmation_id"].InnerText + "&amp;#60;br /&amp;#62;");
                        Response.Write("Confirmed At: " + doc.GetElementsByTagName("order")[0].Attributes["confirmed_at"].InnerText + "&amp;#60;br /&amp;#62;");
                        Response.Write("Carrier Tacking Code: " + doc.GetElementsByTagName("tracking")[0].Attributes["carrier_tracking_url"].InnerText + "&amp;#60;br /&amp;#62;");
                        Response.Write("&amp;#60;/p&amp;#62;");
                    }
                    catch (System.Net.WebException wex)
                    {
                        // Very rare to get an error at this point unless the quote has expired
                        HttpWebResponse response = (HttpWebResponse)wex.Response;
                        XmlTextReader xmlReader = new XmlTextReader(response.GetResponseStream());

                        // Create a new XmlDocument and store the shutl returned xml
                        XmlDocument doc = new XmlDocument();
                        doc.Load(xmlReader);

                        Response.Write("&amp;#60;p&amp;#62;");
                        Response.Write("&amp;#60;b style=\"color:darkred\"&amp;#62;Booking Failed&amp;#60;/b&amp;#62;&amp;#60;br /&amp;#62;");
                        Response.Write("&amp;#60;b style=\"color:darkred\"&amp;#62;" + doc.GetElementsByTagName("error")[0].Attributes["message"].InnerText + "&amp;#60;/b&amp;#62;&amp;#60;br /&amp;#62;");
                        Response.Write("Error code " + doc.GetElementsByTagName("error")[0].Attributes["code"].InnerText);
                        Response.Write("&amp;#60;/p&amp;#62;");
                    }
                    break;

                // Quote recieved 
                case "Quote":
                    // We show the quote and display the book button
                    // Data validation should happen here
                    // Try Catch for graceful Shutl errors
                    try
                    {
                        // Now the exciting part, we will create the XML to send using PostData string
                        PostData = "&amp;#60;?xml version=\"1.0\" encoding=\"utf-8\"?&amp;#62;"
                        + "&amp;#60;ShutlGenerateQuoteRequest timestamp=\"" + DateTime.Now.ToString("yyyy-MM-dd'T'HH:mm:ss'+00:00'") + "\"&amp;#62;" // As I am in the UK +00:00 is used, other timezones should change this (Server hosted in USA for example)
                            // Shutl requires all dates like so 2010-12-01T13:10:50+00:00
                        + "&amp;#60;quote client_id=\"" + ClientID + "\" notes=\"" + Request.Form["Notes"] + "\" total_weight=\"" + Request.Form["TotalWeight"] + "\" total_retail_value=\"" + Request.Form["TotalRetailValue"] + "\" reservation_number=\"" + Request.Form["ReservationNumber"] + "\" delivery_pwd=\"" + Request.Form["DeliveryPassword"] + "\" category=\"6\"&amp;#62;" // Category is always 6
                            // CUSTOMER CONTACT
                        + "&amp;#60;customer name=\"" + Request.Form["CustomerName"] + "\" email=\"" + Request.Form["CustomerEmail"] + "\" phone=\"" + Request.Form["CustomerPhone"] + "\" /&amp;#62;"
                            // PICK UP
                        + "&amp;#60;pickup&amp;#62;"
                        + "&amp;#60;segment sequence=\"1\"&amp;#62;"
                        + "&amp;#60;address store_reference=\"" + StoreReference + "\" name=\"" + StoreContactName + "\" company=\"" + StoreCompany + "\" street1=\"" + StoreStreet1 + "\" street2=\"" + StoreStreet2 + "\" city=\"" + StoreCity + "\" postal_code=\"" + StorePostcode + "\" /&amp;#62;"
                            // ITEMS
                        + "&amp;#60;pickup_items&amp;#62;"
                        + "&amp;#60;pickup_item product_id=\"" + Request.Form["ProductID"] + "\" product_name=\"" + Request.Form["ProductName"] + "\" quantity=\"" + Request.Form["ProductQty"] + "\" retail_price=\"" + Request.Form["ProductRetailPrice"] + "\" weight=\"" + Request.Form["ProductWeight"] + "\" height=\"" + Request.Form["ProductHeight"] + "\" width=\"" + Request.Form["ProductWidth"] + "\" length=\"" + Request.Form["ProductLength"] + "\" /&amp;#62;"
                        + "&amp;#60;/pickup_items&amp;#62;"
                        + "&amp;#60;contact name=\"" + Request.Form["CustomerName"] + "\" email=\"" + Request.Form["CustomerEmail"] + "\" phone=\"" + Request.Form["CustomerPhone"] + "\" /&amp;#62;"
                        + "&amp;#60;/segment&amp;#62;"
                        + "&amp;#60;/pickup&amp;#62;"
                        // DELIVERY
                        + "&amp;#60;delivery&amp;#62;"
                        + "&amp;#60;segment sequence=\"1\"&amp;#62;"
                        + "&amp;#60;address name=\"" + Request.Form["CustomerName"] + "\" company=\"" + Request.Form["CustomerCompany"] + "\" street1=\"" + Request.Form["CustomerStreet1"] + "\" street2=\"" + Request.Form["CustomerStreet2"] + "\" city=\"" + Request.Form["CustomerCity"] + "\" postal_code=\"" + Request.Form["CustomerPostcode"] + "\" /&amp;#62;"
                        // ITEMS
                        + "&amp;#60;delivery_items&amp;#62;"
                        + "&amp;#60;delivery_item product_id=\"" + Request.Form["ProductID"] + "\" /&amp;#62;"
                        // In the future you will be able to deliver different items to different addresses
                        + "&amp;#60;/delivery_items&amp;#62;"
                        // CUSTOMER CONTACT
                        + "&amp;#60;contact name=\"" + Request.Form["CustomerName"] + "\" email=\"" + Request.Form["CustomerEmail"] + "\" phone=\"" + Request.Form["CustomerPhone"] + "\" /&amp;#62;"
                        + "&amp;#60;/segment&amp;#62;"
                        + "&amp;#60;/delivery&amp;#62;"
                        + "&amp;#60;/quote&amp;#62;"
                        + "&amp;#60;/ShutlGenerateQuoteRequest&amp;#62;";

                        // Note that there can be no white space in the code when posted.
                        // Sending the XML
                        HttpWebRequest request = (HttpWebRequest)
                        WebRequest.Create(QuoteURL); 
                        request.KeepAlive = false;
                        request.ProtocolVersion = HttpVersion.Version10;
                        request.Headers.Add("APIKey", APIKey);
                        request.Headers.Add("ClientID", ClientID);
                        request.Method = "POST";
                        byte[] postBytes = Encoding.ASCII.GetBytes(PostData);
                        request.ContentType = "text/xml";
                        request.ContentLength = postBytes.Length;
                        Stream requestStream = request.GetRequestStream();
                        requestStream.Write(postBytes, 0, postBytes.Length);
                        requestStream.Close();
                        // Now get the Shutl XML back
                        HttpWebResponse response = (HttpWebResponse)request.GetResponse();
                        XmlTextReader xmlReader = new XmlTextReader(response.GetResponseStream());

                        // Store Shutl XML for use
                        XmlDocument doc = new XmlDocument();
                        doc.Load(xmlReader);

                        // Start to print the xml
                        Response.Write("&amp;#60;p&amp;#62;");
                        Response.Write("&amp;#60;b&amp;#62;Information for the customer&amp;#60;/b&amp;#62;&amp;#60;br /&amp;#62;");
                        Response.Write("&amp;#60;b&amp;#62;Quote ID:&amp;#60;/b&amp;#62; " + doc.GetElementsByTagName("quote")[0].Attributes["id"].InnerText + "&amp;#60;br /&amp;#62;");
                        Response.Write("&amp;#60;b&amp;#62;Nett Cost:&amp;#60;/b&amp;#62; �" + doc.GetElementsByTagName("quote")[0].Attributes["customer_quote"].InnerText + "&amp;#60;br /&amp;#62;");
                        Response.Write("&amp;#60;b&amp;#62;VAT&amp;#60;/b&amp;#62;: �" + doc.GetElementsByTagName("quote")[0].Attributes["customer_vat"].InnerText + "&amp;#60;br /&amp;#62;");
                        Response.Write("&amp;#60;b&amp;#62;Cost inc vat: &amp;#60;span style=\"color:darkgreen;\"&amp;#62;�" + doc.GetElementsByTagName("quote")[0].Attributes["customer_quote_incl_vat"].InnerText + "&amp;#60;/span&amp;#62;&amp;#60;/b&amp;#62;&amp;#60;br /&amp;#62;");
                        Response.Write("&amp;#60;/p&amp;#62;");

                        Response.Write("&amp;#60;p&amp;#62;");
                        Response.Write("Shipped By: " + doc.GetElementsByTagName("quote")[0].Attributes["vehicle_type"].InnerText + "&amp;#60;br /&amp;#62;");
                        Response.Write("Total Wait Time: " + doc.GetElementsByTagName("additional_charges")[0].Attributes["total_wait_time_rate"].InnerText + " hours&amp;#60;br /&amp;#62;");
                        Response.Write("Total Grace Time: " + doc.GetElementsByTagName("additional_charges")[0].Attributes["total_wait_time_grace"].InnerText + " minutes&amp;#60;br /&amp;#62;");
                        Response.Write("&amp;#60;/p&amp;#62;");
                        // Book quote button
                        Response.Write("&amp;#60;p&amp;#62;&amp;#60;input type=\"submit\" value=\"Book This Quote\" name=\"submit\"&amp;#62;&amp;#60;/p&amp;#62;");
                        // submit check for the booking quote
                        Response.Write("&amp;#60;input type=\"hidden\" name=\"stage\" value=\"Booking\" &amp;#62;");
                        Response.Write("&amp;#60;input type=\"hidden\" name=\"ShutlQuoteID\" value=\"" + doc.GetElementsByTagName("quote")[0].Attributes["id"].InnerText + "\"&amp;#62;");

                        // Internal info
                        Response.Write("&amp;#60;p&amp;#62;");
                        Response.Write("&amp;#60;b&amp;#62;Internal information&amp;#60;/b&amp;#62;&amp;#60;br /&amp;#62;");
                        Response.Write("Our Nett Cost: �" + doc.GetElementsByTagName("quote")[0].Attributes["client_quote"].InnerText + "&amp;#60;br /&amp;#62;");
                        Response.Write("Our Cost: �" + doc.GetElementsByTagName("quote")[0].Attributes["client_quote_incl_vat"].InnerText + "&amp;#60;/p&amp;#62;");
                        //Response.Write("&amp;#60;p&amp;#62;XML Sent&amp;#60;br /&amp;#62;&amp;#60;textarea name=\"xml\" rows=\"4\" cols=\"80\"&amp;#62;" + PostData + "&amp;#60;/textarea&amp;#62;&amp;#60;/p&amp;#62;");
                        // Uncomment the above lines to see the XML that was sent. However keep in mind the form will break as it is potentally dangerous. (with correct validation and security it will be fine)
                    }
                    catch (System.Net.WebException wex)
                    {
                        // We do not use a throw as we don't want the page to crash.
                        HttpWebResponse response = (HttpWebResponse)wex.Response;
                        XmlTextReader xmlReader = new XmlTextReader(response.GetResponseStream());

                        // Create a new XmlDocument and store the Shutl returned error XML
                        XmlDocument doc = new XmlDocument();
                        doc.Load(xmlReader);

                        Response.Write("&amp;#60;p&amp;#62;");
                        Response.Write("&amp;#60;b style=\"color:darkred\"&amp;#62;Quote Failed&amp;#60;/b&amp;#62;&amp;#60;br /&amp;#62;");
                        Response.Write("&amp;#60;b style=\"color:darkred\"&amp;#62;" + doc.GetElementsByTagName("error")[0].Attributes["message"].InnerText + "&amp;#60;/b&amp;#62;&amp;#60;br /&amp;#62;");
                        Response.Write("Error code " + doc.GetElementsByTagName("error")[0].Attributes["code"].InnerText);
                        Response.Write("&amp;#60;/p&amp;#62;");
                        Response.Write("&amp;#60;p&amp;#62;XML Sent&amp;#60;br /&amp;#62;&amp;#60;textarea name=\"xml\" rows=\"4\" cols=\"80\"&amp;#62;" + PostData + "&amp;#60;/textarea&amp;#62;&amp;#60;/p&amp;#62;");
                        // You should be able to trouble shoot all issues with this information
                        // Number one is issue is your collection point is not open as defined on Shutl's end or they do not ship to the customer postcode
                    }
                    break;

                // Starting step (default view)
                default:
                    // We start here on a fresh page load
                    // Create a form to enter in delivery information (where is it going and what is going)
                    Response.Write("&amp;#60;table width=\"50%\" style=\"text-align:right;\"&amp;#62;&amp;#60;tr&amp;#62;");

                    // Customer Info
                    Response.Write("&amp;#60;td&amp;#62;&amp;#60;b&amp;#62;Customer Name &amp;#60;span style=\"color:darkred;\"&amp;#62;*&amp;#60;/span&amp;#62;&amp;#60;/b&amp;#62; &amp;#60;input type=\"text\" id=\"CustomerName\" name=\"CustomerName\" /&amp;#62;&amp;#60;/td&amp;#62;"); // Customer Name *
                    Response.Write("&amp;#60;td&amp;#62;&amp;#60;b&amp;#62;Customer Phone Number &amp;#60;span style=\"color:darkred;\"&amp;#62;*&amp;#60;/span&amp;#62;&amp;#60;/b&amp;#62; &amp;#60;input type=\"text\" id=\"CustomerPhone\" name=\"CustomerPhone\" /&amp;#62;&amp;#60;/td&amp;#62;"); // Customer Phone Number *
                    Response.Write("&amp;#60;/tr&amp;#62;&amp;#60;tr&amp;#62;");
                    Response.Write("&amp;#60;td&amp;#62;&amp;#60;b&amp;#62;Customer Email &amp;#60;span style=\"color:darkred;\"&amp;#62;*&amp;#60;/span&amp;#62;&amp;#60;/b&amp;#62; &amp;#60;input type=\"text\" id=\"CustomerEmail\" name=\"CustomerEmail\" /&amp;#62;&amp;#60;/td&amp;#62;"); // Customer Email *
                    Response.Write("&amp;#60;td&amp;#62;&amp;#60;b&amp;#62;Customer Company&amp;#60;/b&amp;#62; &amp;#60;input type=\"text\" id=\"CustomerCompany\" name=\"CustomerCompany\" /&amp;#62;&amp;#60;/td&amp;#62;"); // Customer Company
                    Response.Write("&amp;#60;/tr&amp;#62;&amp;#60;tr&amp;#62;");
                    Response.Write("&amp;#60;td&amp;#62;&amp;#60;b&amp;#62;Customer Street 1 &amp;#60;span style=\"color:darkred;\"&amp;#62;*&amp;#60;/span&amp;#62;&amp;#60;/b&amp;#62; &amp;#60;input type=\"text\" id=\"CustomerStreet1\" name=\"CustomerStreet1\" /&amp;#62;&amp;#60;/td&amp;#62;"); // Customer Street 1 *
                    Response.Write("&amp;#60;td&amp;#62;&amp;#60;b&amp;#62;Customer Street 2&amp;#60;/b&amp;#62; &amp;#60;input type=\"text\" id=\"CustomerStreet2\" name=\"CustomerStreet2\" /&amp;#62;&amp;#60;/td&amp;#62;"); // Customer Street 2
                    Response.Write("&amp;#60;/tr&amp;#62;&amp;#60;tr&amp;#62;");
                    Response.Write("&amp;#60;td&amp;#62;&amp;#60;b&amp;#62;Customer City &amp;#60;span style=\"color:darkred;\"&amp;#62;*&amp;#60;/span&amp;#62;&amp;#60;/b&amp;#62; &amp;#60;input type=\"text\" id=\"CustomerCity\" name=\"CustomerCity\" /&amp;#62;&amp;#60;/td&amp;#62;"); // Customer City *
                    Response.Write("&amp;#60;td&amp;#62;&amp;#60;b&amp;#62;Customer Postcode &amp;#60;span style=\"color:darkred;\"&amp;#62;*&amp;#60;/span&amp;#62;&amp;#60;/b&amp;#62; &amp;#60;input type=\"text\" id=\"CustomerPostcode\" name=\"CustomerPostcode\" /&amp;#62;&amp;#60;/td&amp;#62;"); // Customer Postcode *
                    Response.Write("&amp;#60;/tr&amp;#62;&amp;#60;tr&amp;#62;&amp;#60;td colspan=\"2\"&amp;#62;&amp;#60;/td&amp;#62;&amp;#60;/tr&amp;#62;&amp;#60;td colspan=\"2\"&amp;#62;&amp;#60;/td&amp;#62;&amp;#60;/tr&amp;#62;&amp;#60;tr&amp;#62;");

                    // Item Information
                    Response.Write("&amp;#60;td&amp;#62;&amp;#60;b&amp;#62;Product ID &amp;#60;span style=\"color:darkred;\"&amp;#62;*&amp;#60;/span&amp;#62;&amp;#60;/b&amp;#62; &amp;#60;input type=\"text\" id=\"ProductID\" name=\"ProductID\" /&amp;#62;&amp;#60;/td&amp;#62;"); // Product ID *
                    Response.Write("&amp;#60;td&amp;#62;&amp;#60;b&amp;#62;Product Name &amp;#60;span style=\"color:darkred;\"&amp;#62;*&amp;#60;/span&amp;#62;&amp;#60;/b&amp;#62; &amp;#60;input type=\"text\" id=\"ProductName\" name=\"ProductName\" /&amp;#62;&amp;#60;/td&amp;#62;"); // Product Name *
                    Response.Write("&amp;#60;/tr&amp;#62;&amp;#60;tr&amp;#62;");
                    Response.Write("&amp;#60;td&amp;#62;&amp;#60;b&amp;#62;Product Quantity&amp;#60;/b&amp;#62; &amp;#60;input type=\"text\" id=\"ProductQty\" name=\"ProductQty\" /&amp;#62;&amp;#60;/td&amp;#62;"); // Product Quantity
                    Response.Write("&amp;#60;td&amp;#62;&amp;#60;b&amp;#62;Product Retail Price&amp;#60;/b&amp;#62; &amp;#60;input type=\"text\" id=\"ProductRetailPrice\" name=\"ProductRetailPrice\" /&amp;#62;&amp;#60;/td&amp;#62;"); // Product Retail Price
                    Response.Write("&amp;#60;/tr&amp;#62;&amp;#60;tr&amp;#62;");
                    Response.Write("&amp;#60;td&amp;#62;&amp;#60;b&amp;#62;Product Weight&amp;#60;/b&amp;#62; &amp;#60;input type=\"text\" id=\"ProductWeight\" name=\"ProductWeight\" /&amp;#62;&amp;#60;/td&amp;#62;"); // Product Weight
                    Response.Write("&amp;#60;td&amp;#62;&amp;#60;b&amp;#62;Product Height&amp;#60;/b&amp;#62; &amp;#60;input type=\"text\" id=\"ProductHeight\" name=\"ProductHeight\" /&amp;#62;&amp;#60;/td&amp;#62;"); // Product Height
                    Response.Write("&amp;#60;/tr&amp;#62;&amp;#60;tr&amp;#62;");
                    Response.Write("&amp;#60;td&amp;#62;&amp;#60;b&amp;#62;Product Width&amp;#60;/b&amp;#62; &amp;#60;input type=\"text\" id=\"ProductWidth\" name=\"ProductWidth\" /&amp;#62;&amp;#60;/td&amp;#62;"); // Product Width
                    Response.Write("&amp;#60;td&amp;#62;&amp;#60;b&amp;#62;Product Length&amp;#60;/b&amp;#62; &amp;#60;input type=\"text\" id=\"ProductLength\" name=\"ProductLength\" /&amp;#62;&amp;#60;/td&amp;#62;"); // Product Length
                    Response.Write("&amp;#60;/tr&amp;#62;&amp;#60;tr&amp;#62;&amp;#60;td colspan=\"2\"&amp;#62;&amp;#60;/td&amp;#62;&amp;#60;/tr&amp;#62;&amp;#60;td colspan=\"2\"&amp;#62;&amp;#60;/td&amp;#62;&amp;#60;/tr&amp;#62;&amp;#60;tr&amp;#62;");

                    // Extra Information
                    Response.Write("&amp;#60;td&amp;#62;&amp;#60;b&amp;#62;Total Weight &amp;#60;span style=\"color:darkred;\"&amp;#62;*&amp;#60;/span&amp;#62;&amp;#60;/b&amp;#62; &amp;#60;input type=\"text\" id=\"TotalWeight\" name=\"TotalWeight\" /&amp;#62;&amp;#60;/td&amp;#62;"); // Total Weight *
                    Response.Write("&amp;#60;td&amp;#62;&amp;#60;b&amp;#62;Total Retail Value&amp;#60;/b&amp;#62; &amp;#60;input type=\"text\" id=\"TotalRetailValue\" name=\"TotalRetailValue\" /&amp;#62;&amp;#60;/td&amp;#62;"); // Total Retail Value
                    Response.Write("&amp;#60;/tr&amp;#62;&amp;#60;tr&amp;#62;");
                    Response.Write("&amp;#60;td&amp;#62;&amp;#60;b&amp;#62;Reservation Number&amp;#60;/b&amp;#62; &amp;#60;input type=\"text\" id=\"ReservationNumber\" name=\"ReservationNumber\" /&amp;#62;&amp;#60;/td&amp;#62;"); // Reservation Number
                    Response.Write("&amp;#60;td&amp;#62;&amp;#60;b&amp;#62;Delivery Password&amp;#60;/b&amp;#62; &amp;#60;input type=\"text\" id=\"DeliveryPassword\" name=\"DeliveryPassword\" /&amp;#62;&amp;#60;/td&amp;#62;"); // Delivery Password
                    Response.Write("&amp;#60;/tr&amp;#62;&amp;#60;tr&amp;#62;");
                    Response.Write("&amp;#60;td colspan=\"2\" style=\"text-align:left;\"&amp;#62;&amp;#60;b&amp;#62;Notes&amp;#60;/b&amp;#62;&amp;#60;br /&amp;#62;&amp;#60;textarea rows=\"4\" cols=\"80\" name=\"Notes\"&amp;#62;&amp;#60;/textarea&amp;#62;&amp;#60;/td&amp;#62;"); // Notes

                    // End of form
                    Response.Write("&amp;#60;/tr&amp;#62;&amp;#60;/table&amp;#62;");
                    // Sumbit button to move to quote section
                    Response.Write("&amp;#60;input type=\"submit\" value=\"Get A Quote\" name=\"submit\"&amp;#62;");
                    Response.Write("&amp;#60;input type=\"hidden\" name=\"stage\" value=\"Quote\"&amp;#62;");
                    break;
            }

            // End of the page
            Response.Write("&amp;#60;/form&amp;#62;");
            Response.Write("&amp;#60;/body&amp;#62;&amp;#60;/html&amp;#62;");

            //---------------------
            // EXTENDING THIS CODE
            //
            // To extend the functionality of this script I suggest adding in multiple items to be collected and dropped off. This can easily be done with some JavaScript to add more fields and clever use of arrays.
            // Also this script only handles one store, if you have a database you can very easily create a drop down for each of your stores and fill out the xml from the database.
            // This script only creates and books quotes. Other functionality can easily be build in, such as cancelling a quote, loading customer information from a database and GET request for SLA.
            // This code only demonstrats how to correctly handle errors thrown by Shutl and a simple user form.
            // There is no validation in this quote, if you are improving the code I would start by validating all code.
            // There is more to the quote XML that would improve it e.g. store email and store phone number. This code is just a starting point.
            //
            // Any mistakes or improvements you wish to report please get in contact
            //
            // Alister Sneddon
            //
            //---------------------
        }
    }
}

&lt;/pre&gt;

&lt;p&gt;Now this can easily be expanded, be sure to message me with any ideas or where you use it!&lt;/p&gt;</description>
<link>http://www.amateurprotagonist.com/a-4-Book-A-Shutl-Quote-Using-CSharp-Example-Code.php</link>
<pubDate>Tue, 05 Jun 12 10:00:00 -0700</pubDate>
<guid>http://www.amateurprotagonist.com/a-4-Book-A-Shutl-Quote-Using-CSharp-Example-Code.php</guid>
</item>

<item>
<title>Minecraft Update 1.3 Beds And Mobs</title>
<description>&lt;p&gt;The latest updates come into welcome hands, new additions left, right and centre. The only problem is with my laptop having a very poor graphics card I only play online on a server I own. This is all well and good but I also have all the settings on the lowest (bar view distance, which stays normal) and I have to say the lag is incredible.&lt;/p&gt;

&lt;p&gt;After upgrading the server and losing our mods I popped on to have a look. The lag caused a creeper to do some very nasty damage, without harming me...&lt;/p&gt;

&lt;p&gt;However back to the point, I then downloaded the latest .exe so I can enjoy the new launcher. Tell ya what, I love the new launcher. Easy to see the updates and nice interface, only problem is I cannot log in with it. So back to the old .exe it is.&lt;/p&gt;

&lt;p&gt;The big thing in this update is the beds. Shame really as night was very scary, now you can skip it. Anyway there we are in my wooden house with glass windows. We lay our beds next to each other and lay our heads down. Suddenly we are attacked! Monsters spawned inside the room and attacked us! We did have the beds next to two walls so maybe that was the bug.&lt;/p&gt;

&lt;p&gt;I attempted to move the beds but it was day time by that point. So I built an underground sleeping room. I say built, I mean struggled in the lag to remove each block. Oh its gone, wait no it isn't, yes it is. Oh wait.&lt;/p&gt;

&lt;p&gt;The biggest thank you with this update is the mob fighting online. You can now fight online as you would in single player. This has made it so much more fun, now you can clear a room and not worry about being online.&lt;/p&gt;

&lt;p&gt;There are other updates like half blocks and other bits and bobs, however I have not had a really chance to try them out.&lt;/p&gt;

&lt;p&gt;Oh and before I forget fire now has a greater range. So logs no longer burn forever and they can set fire to other bits of wood even with a stone gap, as we found out and almost lost a large tavern. So extra careful with fire now, this if anything is a good thing.&lt;/p&gt;

&lt;p&gt;One last thing that annoys me, you see very few how to start playing minecraft videos where it is in beta. I mean if someone had told me about doors and mobs can't get though blocks when I started I would need less underwear. Plus you can burn wood to make charcoal which can make torches thus no big deal if you cannot find coal.&lt;/p&gt;</description>
<link>http://www.amateurprotagonist.com/a-3-Minecraft-Update-One-Three-Beds-And-Mobs.php</link>
<pubDate>Fri, 01 Jun 12 10:00:00 -0700</pubDate>
<guid>http://www.amateurprotagonist.com/a-3-Minecraft-Update-One-Three-Beds-And-Mobs.php</guid>
</item>

<item>
<title>Improving ASPDOTNETStorefront Default Search</title>
<description>&lt;p&gt;By default the search in ASPDOTNETStorefront is pretty boring and unhelpful. Personally I am not a fan at all. One simple trick to improve the search is to search the description as well. This makes for a huge improvement. However one factor does cause a problem.&lt;/p&gt;
&lt;p&gt;If the words are in the wrong order it doesn't work.&lt;/p&gt;
&lt;p&gt;This is enough to make the strongest man cry at the knees, so here is a simple solution.&lt;/p&gt;
&lt;p&gt;Edit or copy (create a new stored procedure just for your search.) your stored procedure aspdnsf_GetProducts and find this line.&lt;/p&gt;
&lt;pre class="brush: sql; toolbar: false;"&gt;SET @searchstr = '%' + rtrim(ltrim(@searchstr)) + '%'&lt;/pre&gt;
&lt;p&gt;This line says wild card on each side of your search, which is all very good but it could be better with this sexy little trick. Change it to...&lt;/p&gt;
&lt;pre class="brush: sql; toolbar: false;"&gt;SET @searchstr = '%' + REPLACE(rtrim(ltrim(@searchstr)),' ','%') + '%'&lt;/pre&gt;
&lt;p&gt;Presto! Now your search will replace all the spaces with a wild card. So now "%My Sexy Shoes%" becomes "%My%Sexy%Shoes%" so all these words need to appear but it does not matter in what order.&lt;/p&gt;
&lt;p&gt;This is by no means the perfect solution or anywhere close to the intelligence of a search engine but it helps your customers find what they need and not leave your store!&lt;/p&gt;</description>
<link>http://www.amateurprotagonist.com/a-2-improving-aspdotnetstorefront-default-search.php</link>
<pubDate>Sun, 13 May 12 10:00:00 -0700</pubDate>
<guid>http://www.amateurprotagonist.com/a-2-improving-aspdotnetstorefront-default-search.php</guid>
</item>

<item>
<title>First Blog Post</title>
<description>&lt;p&gt;The new blog, however it does not yet have a back office so posting is a bit of a pain. That will be on the to do list.&lt;/p&gt;
&lt;p&gt;The best bit is the sexy new code formatter&lt;/p&gt;
&lt;pre class="brush: php; toolbar: false;"&gt;$hello = "world";&lt;/pre&gt;
&lt;p&gt;I am the happiest cat alive.&lt;/p&gt;</description>
<link>http://www.amateurprotagonist.com/a-1-first-blog-post.php</link>
<pubDate>Sun, 12 Feb 12 10:00:00 -0800</pubDate>
<guid>http://www.amateurprotagonist.com/a-1-first-blog-post.php</guid>
</item>

</channel>
</rss>