<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>The Anonymous Programmer&#187; The Anonymous Programmer</title>
	<atom:link href="http://anonymousprogrammer.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://anonymousprogrammer.com</link>
	<description>Coding tips, geeky reviews, mindless ramblings, and a general sense of anonymity.</description>
	<lastBuildDate>Fri, 19 Feb 2010 12:59:18 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>I Got Promoted</title>
		<link>http://anonymousprogrammer.com/life/promoted.html</link>
		<comments>http://anonymousprogrammer.com/life/promoted.html#comments</comments>
		<pubDate>Fri, 19 Feb 2010 12:57:53 +0000</pubDate>
		<dc:creator>Anonymous Programmer</dc:creator>
				<category><![CDATA[Life]]></category>
		<category><![CDATA[promotion]]></category>
		<category><![CDATA[raise]]></category>

		<guid isPermaLink="false">http://anonymousprogrammer.com/?p=120</guid>
		<description><![CDATA[I guess hard work does pay off.  My boss got fired for incompetence, and the company was on the verge of outsourcing many of our department's duties.  A coworker and I got together over a few beers and developed a new business plan for the department, and they like it!  Now we both manage the department.


There are no related posts.]]></description>
			<content:encoded><![CDATA[<p>I guess hard work does pay off.  My boss got fired for incompetence, and the company was on the verge of outsourcing many of our department&#8217;s duties.  A coworker and I got together over a few beers and developed a new business plan for the department, and they like it!  Now we both manage the department.</p>
<p>In classic eat-your-cake-and-have-it-too fashion, the company didn&#8217;t give me a raise.  They told me that both of us were part of the old, failing agenda, and that we would have to prove our new plan works before reaping the benefits.  I guess hard work doesn&#8217;t pay off.  It&#8217;s total bullshit, and I&#8217;m probably getting played, but what the hell: At least I answer to fewer people now.</p>


<p>There are no related posts.</p>]]></content:encoded>
			<wfw:commentRss>http://anonymousprogrammer.com/life/promoted.html/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CakePHP 1.2 Did Not Mean to Blow My Mind</title>
		<link>http://anonymousprogrammer.com/programming/cakephp-12-blow-mind.html</link>
		<comments>http://anonymousprogrammer.com/programming/cakephp-12-blow-mind.html#comments</comments>
		<pubDate>Tue, 26 Jan 2010 01:51:39 +0000</pubDate>
		<dc:creator>Anonymous Programmer</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[cakePHP]]></category>
		<category><![CDATA[forms]]></category>
		<category><![CDATA[frameworks]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://anonymousprogrammer.com/?p=114</guid>
		<description><![CDATA[Over the past few months I've been kicking around a cakePHP project in my spare time.  I put together an ajax email validation form.  After organizing my code, I ran a quick test with "asdf@asdfasdf.com" and was pleasantly rewarded with a successful validation message. And then my mind was blown.


There are no related posts.]]></description>
			<content:encoded><![CDATA[<p>Over the past few months I&#8217;ve been kicking around a cakePHP project in my spare time.  I understand most of cakePHP&#8217;s core concepts, and tonight I was developing a user registration form that validates the user&#8217;s email via ajax before submitting the form.</p>
<p>After organizing my code, I ran a quick test with &#8220;asdf@asdfasdf.com&#8221; and was pleasantly rewarded with a successful validation message.  Then I decided to get tricky and see what cakePHP was made of.  I erased the email and tried again with &#8220;blahblah@poiuytrewq.co.uk&#8221; which promptly failed to validate.  Eghad!</p>
<p>Turning to google I started searching for &#8220;cakePHP bad email validation.&#8221;  Surely someone more clever than I had noticed that cakePHP&#8217;s email validation was not up to snuff, and hopefully I could find a better solution.  Google assaulted me with silence.  All I could find were links back to cakePHP&#8217;s <a title="CakePHP Cookbook" href="http://book.cakephp.org/view/141/email">Core Validation Rules Documentation</a>.</p>
<p>After about twenty minutes of searching elsewhere, I began to think the error must be in my own code, so I returned to the cakePHP Cookbook, only to discover this little tidbit of information:</p>
<blockquote><p>Passing a boolean true as the second parameter for [the email validation] rule will also attempt to verify that the host for the address is valid.</p></blockquote>
<p>&lt;mindblown&gt;</p>
<p>CakePHP&#8217;s core validation not only checks whether or not an email address is well formed, it also determines whether the host for the address exists!  Changing the email in my application to &#8220;blahblah@amazon.co.uk&#8221; prompted me with a fresh success message.</p>
<p>&lt;/mindblown&gt;</p>
<p>Time to clean my brains off of the wall.</p>


<p>There are no related posts.</p>]]></content:encoded>
			<wfw:commentRss>http://anonymousprogrammer.com/programming/cakephp-12-blow-mind.html/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>DreamInCode.net &#8211; The &#8220;52 Weeks Of Code&#8221; Challenge!</title>
		<link>http://anonymousprogrammer.com/programming/dreamincodenet-52-weeks-code-challenge.html</link>
		<comments>http://anonymousprogrammer.com/programming/dreamincodenet-52-weeks-code-challenge.html#comments</comments>
		<pubDate>Sat, 23 Jan 2010 15:52:53 +0000</pubDate>
		<dc:creator>Anonymous Programmer</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[52weeksofcode]]></category>
		<category><![CDATA[frameworks]]></category>
		<category><![CDATA[jquery]]></category>

		<guid isPermaLink="false">http://anonymousprogrammer.com/?p=110</guid>
		<description><![CDATA[52 Weeks Of Code is a year-long personal programming challenge.  There is no winner, no tangible reward, and nothing to show for your efforts save personal growth and and exposure to languages and techniques outside of your norm.


There are no related posts.]]></description>
			<content:encoded><![CDATA[<p>I stumbled upon a a great project on the <a title="Dream In Code - Programming and Web Development Community" href="http://www.dreamincode.net/">DreamInCode</a> forums.  It&#8217;s called <a title="The 52 Weeks Of Code Challenge" href="http://www.dreamincode.net/forums/showtopic148083.htm">52 Weeks Of Code</a>.  It&#8217;s basically a year-long personal challenge with no winner, no tangible reward, and nothing to show for your efforts save personal growth and and exposure to languages and techniques outside of your norm.</p>
<p>I love it.  I&#8217;ve been experiencing renaissance-like growth in my own programming expertise, and I believe that this project will only further advance and broaden my circle-of-knowledge.  So, I say to dreamincode:  &#8221;Challenge Accepted!&#8221;</p>
<p>Every week the good people at DremInCode post a new challenge to complete, and I&#8217;m starting the challenge three weeks late, so I&#8217;ve got some catching up to do.  The first challenge was easy for me:  write something in <a title="Anonymous Programmer - Why jQuery is better than Mootools" href="http://anonymousprogrammer.com/programming/top-10-reasons-jquery-mootools.html">jQuery</a>.</p>
<p>The second challenge is way outside of my core skill set.  I have to program something in <a title="Download Microsoft XNA Game Studio 3.1" href="http://www.microsoft.com/downloads/details.aspx?FamilyID=80782277-D584-42D2-8024-893FCD9D3E82&amp;displaylang=en">Microsoft XNA Game Studio 3.1</a>, which is based on the .NET Framework in the C# programming language.  I&#8217;ve never written a line of code in C#, so this should be interesting.</p>
<p>As the challenges roll by I&#8217;ll be posting my results here as well as the DreamInCode forum.</p>


<p>There are no related posts.</p>]]></content:encoded>
			<wfw:commentRss>http://anonymousprogrammer.com/programming/dreamincodenet-52-weeks-code-challenge.html/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Top 10 Reasons to Use jQuery Instead of MooTools</title>
		<link>http://anonymousprogrammer.com/programming/top-10-reasons-jquery-mootools.html</link>
		<comments>http://anonymousprogrammer.com/programming/top-10-reasons-jquery-mootools.html#comments</comments>
		<pubDate>Tue, 19 Jan 2010 18:57:46 +0000</pubDate>
		<dc:creator>Anonymous Programmer</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[frameworks]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[mootools]]></category>

		<guid isPermaLink="false">http://anonymousprogrammer.com/?p=102</guid>
		<description><![CDATA[I was recently discussing the merits of jQuery with a colleague when he asked the inevitable question: What do you think is the best JavaScript framework?  This post explains why you need to use jQuery.


Related posts:<ol><li><a href='http://anonymousprogrammer.com/programming/dreamincodenet-52-weeks-code-challenge.html' rel='bookmark' title='Permanent Link: DreamInCode.net &#8211; The &#8220;52 Weeks Of Code&#8221; Challenge!'>DreamInCode.net &#8211; The &#8220;52 Weeks Of Code&#8221; Challenge!</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>I was recently discussing the merits of jQuery with a colleague when he asked the inevitable question:  What do you think is the best JavaScript framework?  The answer to that question is too broad for me to detail here.  However, he followed by asking me specifically about MooTools.</p>
<h4>A Little History</h4>
<p>I recalled that years ago I asked myself the same question.  After some extensive (read: cursory) research, I settled on MooTools.  I remember fighting for days to get an accordion widget up and running.  To be fair, I was rather green.</p>
<p>Eventually I became quite versed in manipulating the DOM with MooTools.  I loved MooTools so much that I scoffed at other frameworks.</p>
<p>Then I found a new day job, and guess what?  Their design infrastructure demanded that I learn jQuery.  For many reasons—some of which I’ve concentrated into the list below—this was the best thing to happen to me since learning “alert();”</p>
<h4>The Inspiration</h4>
<p>After regaling my friend with a lengthier version of the above, I decided to search for the most recent thoughts on the debate.  This is how I found <a title="Choosing Between Two Great JavaScript Frameworks" href="http://jqueryvsmootools.com/">jQuery vs MooTools</a> by <a title="Aaron Newton" href="http://www.clientcide.com/">Aaron Newton of Clientcide</a>.  After reading the article, it was plain to me that Aaron Newton is a smart entrepreneur, an elitist, and a master of manipulation.</p>
<p>His article is loaded with extreme bias toward MooTools, as well as some subtle wording tricks that emphasize how much better MooTools is.  He unfairly states in his disclaimer, “Obviously, I have a perspective that is somewhat biased,” only to follow up with, &#8220;My objective here is to be helpful and accurate to people &#8211; not to sell one framework over another.&#8221;  Yet, he often cleverly accentuates that MooTools is more explicit, makes more sense (to him), is more robust, and is easier (for him) to use.  He silently calls to the inner “elitist/pedant” that resides within all good programmers (even me).  MooTools is the right way, the strong way, the one true JavaScript ninja stance.  To completely paraphrase and prune his entire article down to two sentences, I offer the following:</p>
<p>Ain’t jQuery a cute, easy to use little toy?  MooTools is for “know-betters” who do things besides manipulating the DOM.</p>
<p>Much to my further chagrin, Aaron thoroughly reiterates throughout the document that he does not know what he is doing when coding with jQuery:</p>
<blockquote><p>&#8220;[jQuery’s] methods don&#8217;t always make sense to me &#8230; When I do work with jQuery, I often find myself unsure what a method is going to return to me. Obviously this doesn&#8217;t bother everyone else as jQuery has a lot of people happily using it, so I&#8217;ll chalk it up to personal preference again [and again, and again, and again].&#8221;</p></blockquote>
<p>I encourage Aaron to RTFM.</p>
<p>Most of the code examples that he provides for comparison emphasize how “MooTools code is … more verbose [than jQuery], but also more explicit.”  I believe that Aaron is afraid of abstraction.</p>
<h4>The List</h4>
<p>I must thank Aaron, because he inspired me to write this jQuery-biased, yet non-partisan list of the top ten reasons (according to someone who is familiar with both frameworks) why you should use jQuery, and why I will never go back to MooTools.</p>
<p>I promise to keep my opinions to myself from this point onward.  False.</p>
<h5>10.  Write Less, Do More</h5>
<p>Aaron explains it best.  &#8220;MooTools &#8230; takes longer to learn and requires you to write more code.&#8221;  In the real world, we all want to write less and do more, do we not?  Therefore, if my framework forces me to write more code to accomplish the same result, I must ask myself why I am using my framework.  That leads me to the next reason.</p>
<h5>9.  99% of all JavaScript is written with the intention of manipulating the DOM</h5>
<p>If you were to make a list of the things you need JavaScript to do for you, it would look like the following:</p>
<ol>
<li>AJAX</li>
<li>Form validation</li>
<li>Animation</li>
<li>Event handling, and</li>
<li>Traversing the DOM</li>
</ol>
<p>Both frameworks will allow you to do these things, albeit jQuery allows you to do them faster and easier.  Occasionally (1% of the time) you discover that you need to perform some complex logic.  With jQuery you’ll have to write some plain &#8216;ole JavaScript, whereas MooTools offers quite a few tools to handle these (1%) situations.</p>
<p>I wave my magic wand and now you’re a carpenter.  Your task is to build 100 houses.  You have two magical super tools at your disposal, and must choose only one.  One of them will allow you to hammer nails, measure and saw wood, drill holes, and cut a variety of special and complex wood joints.  Only one of the 100 houses will require the complex wood joints.  The other tool just hammers nails, cuts wood, and drills holes, but it does so with half of the required effort.</p>
<h5>8.  Abstraction</h5>
<p>This is pretty much the same reason as number 10, but I felt like it required further emphasis.  The reason you are writing less code in jQuery is that the library whisks-away all of the more explicit JavaScript that you would otherwise have to write.  This is the only reason anyone uses a framework in the first place.   More Code = Less Abstraction = Less Productivity = jQuery Wins.</p>
<h5>7.  Selectors</h5>
<p>jQuery uses CSS selectors.  You can grab an element by id, but you can also quickly grab all elements with a certain class, or all form inputs, or all form inputs that are password fields.  It’s amazingly simple.  This eliminates many hoops that you would otherwise need to jump through.  It also makes working with designers a breeze.</p>
<h5>6.  Plugins</h5>
<p>Back when I was forced to switch to jQuery, this was the first thing that I started to love about it.  Do you need to do something that the jQuery core does not do?  There is a plugin for that.  Hell, there are 10 plugins for that, each with their own level of complexity, and most use a single line of code to incorporate into your project.</p>
<p>MooTools has plugins too.  Again, you need to write more code to implement them, and there are FAR fewer options available.  This is because MooTools encourages you to write your own.  I am sorry, but I am too busy standing on the shoulders of giants to bother.  I will be drinking cocktails and toasting to my successful deadline completion while a MooTools developer is figuring out how to write a plugin to accomplish his goals.</p>
<p>I love original code.  Writing new code is fun!  However, that is not why I use a framework.  I use a framework to make my life easier.</p>
<h5>5.  Speaking of plugins: jQuery UI</h5>
<p>jQuery UI is the single greatest web developer’s friend. You get tabs, dialogs, accordions, a progress bar, and sliders; it has pretty much everything you need to make a smart little web application.  If you program with jQuery, you are doing yourself a disservice if you are not using jQuery UI for some of your projects.  MooTools has a couple of options too, like <a title="JxLib" href="http://jxlib.org/">JxLib</a> and <a title="A web applications user interface library" href="http://mochaui.com/">Mocha UI</a>.  I really dig the Mocha UI canvas approach, but I’m convinced that neither of these are as easy as jQuery UI.</p>
<h5>4.  Who needs MooTools?</h5>
<p>Here’s Aaron again to further my agenda:  “Most of the code you write when you write MooTools still feels like JavaScript.”  That&#8217;s because it still is JavaScript.  MooTools is a collection of extensions and prototypes.  MooTools makes low-level tasks a bit easier while ignoring that what you really want to do is just make things work.</p>
<h5>3.  The community is amazing.</h5>
<p>Popularity is an annoying yet powerful thing.  jQuery is freakin’ popular, as shown <a title="jQuery vs. Mootools" href="http://www.google.com/trends?q=jQuery,+MooTools">here  by Google trends</a>.  There is a veritable plethora of jQuery developers out there to answer your questions, build amazing plugins, ferret out bugs, and basically make everyone’s life easier.  MooTools supporters say that jQuery fan boys talk loud and promote jQuery more than they ever can.  This is true, but it is a symptom of the underlying issue.  jQuery makes itself so easy to promote.</p>
<h5>2.  Google uses jQuery.</h5>
<p>So does many other respected names like Digg, Technoratti, WordPress and Drupal.  What is that famous saying about the company you keep?</p>
<h5>1.  Speed</h5>
<p>Mootools is fast.  jQuery is faster, period.  This became especially true after jQuery 1.3.</p>
<h4>The Last Word</h4>
<p>Go download jQuery, take the brief amount of time that is required to read the documentation, and thank me when you&#8217;re done.</p>
<p>If you think you can convince me that MooTools is worthy of another look, or if I&#8217;ve misrepresented your framework, by all means let me know in the comments.</p>


<p>Related posts:<ol><li><a href='http://anonymousprogrammer.com/programming/dreamincodenet-52-weeks-code-challenge.html' rel='bookmark' title='Permanent Link: DreamInCode.net &#8211; The &#8220;52 Weeks Of Code&#8221; Challenge!'>DreamInCode.net &#8211; The &#8220;52 Weeks Of Code&#8221; Challenge!</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://anonymousprogrammer.com/programming/top-10-reasons-jquery-mootools.html/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to Properly Indent Your Code</title>
		<link>http://anonymousprogrammer.com/programming/properly-indent-code.html</link>
		<comments>http://anonymousprogrammer.com/programming/properly-indent-code.html#comments</comments>
		<pubDate>Thu, 14 Jan 2010 00:11:49 +0000</pubDate>
		<dc:creator>Anonymous Programmer</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[code indentation]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[styles]]></category>

		<guid isPermaLink="false">http://anonymousprogrammer.com/?p=83</guid>
		<description><![CDATA[Proper code indentation is crucial to successfully reading, debugging, or modifying your code.  There are a few different conventions, and everyone has their favorite style.  I won’t cover them all here, but I will provide a couple of popular examples, beginning with my preferred style.


There are no related posts.]]></description>
			<content:encoded><![CDATA[<p>Poorly indented code makes me nuts.  To illustrate my point, I whipped up a meaningless php script in the style of John Q. Copypaste:</p>
<h4><span style="font-family: monospace; font-size: small;"><span style="line-height: 18px; white-space: pre;"><span style="font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif;"><span style="line-height: 19px; white-space: normal;">WRONG</span></span></span></span></h4>
<pre><code class="php">include_once('myscript.php');
function somefunc(code){$d1=1;$d2='foo'; $d3 = "bar";
   $d4 = new myscriptClass;
  $d9    =false;
foreach ($d4-&gt;aligator as $crocodile) {
     if ($crocodile['scales'] !=true){
      if ($crocodile['legs'] !=true) {
    if ($crocodile['teeth']!=true){
		echo 'not a crocodile';
	  }
		else {
			echo 'still an alligator';}
}
else{
echo "still an alligator";  }
  }else {
echo "this is in fact, still an alligator";
}}
return strtolower(code);}

  echo somfunc('ThIsCoDeSuCkS');
</code></pre>
<p>How could you possibly debug that mess?  Proper code indentation is crucial to successfully reading, debugging, or modifying your code.  There are a few different conventions, and everyone has their favorite style (for better or worse), but the most important things to remember:</p>
<ol>
<li>choose a convention and</li>
<li>stick with it</li>
</ol>
<p>Indentation is not required in most program languages; it is something you have to force yourself to do.</p>
<p>Wikipedia’s entry on <a title="Code Indentation" href="http://en.wikipedia.org/wiki/Indent_style">code indentation</a> lists eight styles and one variant.  I won’t cover them all here, but I will provide a couple of popular examples, beginning with my preferred style.</p>
<h4>The One True Brace Style</h4>
<pre><code class="php">include_once('myscript.php');
function somefunc(code) {
	$d1 = 1;
	$d2 = 'foo';
	$d3 = "bar";
	$d4 = new myscriptClass;
	$d9 = false;
	foreach ($d4-&gt;aligator as $crocodile) {
		if ($crocodile['scales'] != true) {
			if ($crocodile['legs'] != true) {
				if ($crocodile['teeth'] != true) {
					echo 'not a crocodile';
				} else {
					echo 'still an alligator';
				}
			} else {
				echo "still an alligator";
			}
		} else {
			echo "this is in fact, still an alligator";
		}
	}
	return strtolower(code);
}
echo somfunc('This is better');</code></pre>
<p>You cannot go wrong with the 1TBS.  Why is this style so great?</p>
<ul>
<li>Bracing occurs for every while, if, else, etc.—even when only one line of code is needed.  No matter what happens to this code in the future, inserting or deleting a line of code is considered “safe” anywhere in the script.</li>
<li>Beginning braces do not take up a line by themselves.</li>
<li>The Unix kernel and Linux kernel are written in this style.</li>
</ul>
<h4>K&amp;R Style</h4>
<p>This is similar to my preferred style, the difference being that opening function braces are placed on their own line.  Why you would want or need to differentiate functions any more than they already are is beyond me.</p>
<h4>Allman Style</h4>
<p>I see this one a lot on the web. All braces are placed on their own lines.  I understand the proponents’ argument for white space and readability, but those opening braces annoy me.  Especially on if, else statements like this:</p>
<pre><code class="php">	if ($crocodile['teeth'] != true)
	{
		echo 'not a crocodile';
	}
	else
	{
		echo 'still an alligator';
	}</code></pre>
<p>Most of the other styles covered by the Wikipedia article are what I consider bad choices.  The BSD KNF style incorporates too much white space.  Whitesmith’s Style is a quirky, strangely perverse version of Allman.  The GNU style’s odd choice of two-space indentation of braces makes for ugly code.  Horstmann, Pico, and Banner styles all come highly un-recommended by yours truly, and are basically garbage.</p>


<p>There are no related posts.</p>]]></content:encoded>
			<wfw:commentRss>http://anonymousprogrammer.com/programming/properly-indent-code.html/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Last Night on Earth: The Zombie Game</title>
		<link>http://anonymousprogrammer.com/reviews/night-earth-zombie-game.html</link>
		<comments>http://anonymousprogrammer.com/reviews/night-earth-zombie-game.html#comments</comments>
		<pubDate>Fri, 01 Jan 2010 22:19:01 +0000</pubDate>
		<dc:creator>Anonymous Programmer</dc:creator>
				<category><![CDATA[Reviews]]></category>
		<category><![CDATA[board game]]></category>
		<category><![CDATA[zombies]]></category>

		<guid isPermaLink="false">http://anonymousprogrammer.com/?p=71</guid>
		<description><![CDATA[The game is well made, with excellent plastic miniatures, tough pieces, and a great board that can be distributed in multiple configurations.  It's great fun!  I've played the game a number of times, and every time I get that "omg-zombies-are-going-to-get-me-run!" feeling.


There are no related posts.]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m a fan of board games, especially games featuring fantasy, rpg elements, miniatures, or&#8230;  Zombies!  The problem with board games like these is that they must somehow balance complexity and time management.  Usually they err towards being overly complex by designing the rules to cover every possible scenario, thus making the rules difficult to remember.  This leaves the players searching through the rulebook on every turn rather than playing the game.  A side effect of overly complex board games is that they tend to run long.</p>
<p><a title="Last Night on Earth: The Zombie Game" href="http://www.flyingfrog.net/lastnightonearth/">Last Night on Earth: The Zombie Game</a> fulfills on many levels.  Here is the description from the developer Flying Frog:</p>
<blockquote><p>Last Night on Earth, The Zombie Game is a fast-paced game of brain-eating Zombies, small town Heroes, and horror movie action. Players take on the role of either the Heroes, working together to make it through the night; or the Zombies, unending waves of undead spreading over the town like a plague. Featuring a modular board, eight Heroes to choose from, and several different Scenarios to play that drastically change the game, Last Night on Earth is designed to create a cinematic feel as the story and game unfolds.</p></blockquote>
<p>The game is well made, with excellent plastic miniatures, tough pieces, and a great board that can be distributed in multiple configurations.  It&#8217;s great fun!  I&#8217;ve played the game a number of times, and every time I get that &#8220;omg-zombies-are-going-to-get-me-run!&#8221; feeling.  I like the game so much that my family bought me the Growing Hunger expansion for Christmas, and it doesn&#8217;t disappoint.</p>
<p>One of the cool aspects of the game is that it includes many random pieces (like bio-canisters, ritual altars, a meteorite, and an evil old book) that are not associated with the original rules.  These pieces are intended for you to make up scenarios of your own!</p>
<p>The game is not overly complex, and it can be played in under an hour after memorizing the rules.</p>
<p>I have only two issues with the game:</p>
<ol>
<li>Although the rulebook includes great art and was easy to read, it contains a few ambiguities that made our first couple of play-throughs difficult.</li>
<li>The game favors the zombies in an almost unbalanced way.  I&#8217;ve read on the website that the author intended the game to feel exciting and dangerous, and the game tries to simulate surviving (<em>or not</em>) a true zombie apocalypse.</li>
</ol>
<p>If anyone reading is on the fence about purchasing it, I say this to you:  The fact that you are interested in buying a board game about zombies indicates to me that you will enjoy the hell out of this game.  There are enough good points to support it&#8217;s drawbacks, and because the game encourages improvisation and house rules, you can easily modify the game to your tastes and start experiencing that zombie-killing-thrill.</p>


<p>There are no related posts.</p>]]></content:encoded>
			<wfw:commentRss>http://anonymousprogrammer.com/reviews/night-earth-zombie-game.html/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Designing the Anonymous Programmer Website</title>
		<link>http://anonymousprogrammer.com/seo/designing-anonymous-programmer-website.html</link>
		<comments>http://anonymousprogrammer.com/seo/designing-anonymous-programmer-website.html#comments</comments>
		<pubDate>Thu, 31 Dec 2009 04:40:15 +0000</pubDate>
		<dc:creator>Anonymous Programmer</dc:creator>
				<category><![CDATA[Design]]></category>
		<category><![CDATA[SEO]]></category>
		<category><![CDATA[meta tags]]></category>
		<category><![CDATA[wordpress customization]]></category>
		<category><![CDATA[wordpress plugins]]></category>

		<guid isPermaLink="false">http://anonymousprogrammer.com/?p=62</guid>
		<description><![CDATA[After the initial test launch (and subsequent google indexation) I finally settled on a theme by Theme Lab called Purple Swirl and started poking around under the hood.  It looks nice and the php scripts are clean and well formed (aside from the oddly double-spaced lines of code).
While implementing some essential WordPress optimization, I installed the following plugins:

Google XML Sitemaps — Sitemaps are a key element of SEO, and this plugin makes updating and maintaining a sitemap easier than eating ...


There are no related posts.]]></description>
			<content:encoded><![CDATA[<p>After the initial test launch (and subsequent <a title="Anonymous Programmer Google Site Search" href="http://www.google.com/search?q=site:anonymousprogrammer.com">google indexation</a>) I finally settled on a theme by Theme Lab called <a title="Free Purple Swirl Wordpress theme" href="http://www.themelab.com/2008/08/18/purple-swirl-free-wordpress-theme/">Purple Swirl</a> and started poking around under the hood.  It looks nice and the php scripts are clean and well formed (aside from the oddly double-spaced lines of code).</p>
<p>While implementing some essential WordPress optimization, I installed the following plugins:</p>
<ul>
<li><a title="Google XML Sitemaps" href="http://www.arnebrachhold.de/redir/sitemap-home/">Google XML Sitemaps</a> — Sitemaps are a key element of SEO, and this plugin makes updating and maintaining a sitemap easier than eating cake.</li>
<li><a title="Meta Data Manager" href="http://urbangiraffe.com/plugins/headspace2/">HeadSpace2</a> — This plugin <em>does</em> utilize the feckless <a title="Keywords Meta Tags are Dumb" href="http://anonymousprogrammer.com/seo/stupid-meta-tags-people.html">Keywords Meta Tag</a>; however, the unparalleled title and meta description tag management offered by this plugin makes John Godley deserving of a pass.</li>
<li><a title="Manage 301 Redirects" href="http://urbangiraffe.com/plugins/redirection/">Redirection</a> — Redirection allows me to easily manage and monitor 301 redirects and 404 page hits after making changes to my slugs (which I did twice after launch).</li>
<li><a title="Yoast.com - Meta Robots Plugin" href="http://yoast.com/wordpress/robots-meta/">Robots Meta</a> — Fresh out of the zip, WordPress is a duplicated-content-fun-house.  This plugin offers the easiest method of narrowing the search engines&#8217; scope of the site.</li>
<li><a title="Image SEO" href="http://www.prelovac.com/vladimir/wordpress-plugins/seo-friendly-images">SEO Friendly Images</a> — I try to be particular about my images&#8217; attributes, but if I miss something this plugin adds them for me.  Can&#8217;t beat it.</li>
<li><a title="Stop Word Removal" href="http://www.vretoolbar.com/news/seo-slugs-wordpress-plugin">SEO Slugs</a> — When I first designed my URL structure, I wanted something like &#8220;full-title-in-the-url.html&#8221; However, this plugin strips the stop-words from the slug which looks nicer and apparently offers a small SEO boost (I repeat <em>small</em>, but what the hell?).</li>
<li><a title="Email SQL Backups Automatically" href="http://www.ilfilosofo.com/blog/wp-db-backup">WordPress Database Backup</a> — I perform regular backups of my databases <span style="text-decoration: underline;">without</span> this plugin.  Only Morons and Lazies don&#8217;t back up their data. The plugin provides a second layer of protection by emailing me weekly sql backups of the blog.  It does this automatically with minimal configuration, so that&#8217;s nice.</li>
<li><a title="Stop Spam" href="http://www.hybrid6.com/webgeek/plugins/wp-spamfree">WP-SpamFree</a> — Akismet filters spam into a spam-box.  This plugin stops spam before it can be submitted. When the two are combined the world becomes a better place.</li>
<li><a title="Internal Links the Easy Way" href="http://mitcho.com/code/yarpp/">Yet Another Related Posts Plugin</a> — I&#8217;ve never used this type of plugin or it&#8217;s ilk, but it seems like a better-than-average way to boost internal site linkage and reader retention.</li>
<li><a title="Yoast.com - Breadcrumb SEO" href="http://yoast.com/wordpress/breadcrumbs/">Yoast Breadcrumbs</a> — There are two fantastic reasons to offer breadcrumb navigation on blog posts:
<ol>
<li>Google&#8217;s <abbr title="Search Engine Results Page">SERP</abbr> Site Links and</li>
<li>Google&#8217;s <a title="Hierarchy Links" href="http://googleblog.blogspot.com/2009/11/new-site-hierarchies-display-in-search.html">SERP Site Hierarchy Links</a></li>
</ol>
</li>
</ul>
<p>I have a thing for <a href="http://anonymousprogrammer.com/programming/properly-indent-code.html">code indentation</a>, but WordPress&#8217; design makes it difficult to ensure that all of the final xhtml markup follows a perfect indentation structure.  While it would be too much of a pain to modify the indentation of  certain sections of the post body, I did take the time to hack the plugins and a few core WordPress scripts to force meta, link, script and title tags to follow a clean indentation. I&#8217;ll probably modify them further to achieve better grouping of these header tags.</p>
<p>I have a lot of plans for the design of the site, and I&#8217;ve begun the process of modifying the Purple Swirl Theme.  After installing jQuery I downloaded some free images from <a href="http://www.sxc.hu/">http://www.sxc.hu/</a> to use as categories in the sidebar and wrote some animation chains to add a nice overlay effect.  I also added my favorite design toy, <a title="Fonts for the People" href="http://cufon.shoqolate.com/generate/">Cufón</a>.  I usually pick a beautiful, easy to read font for my headers.  For Anonymous Programmer I settled on Microsoft&#8217;s Consolas programming font as a quaint touch.</p>
<p>Over the coming months I&#8217;ll doubtlessly hack, slash, and modify the site further, so &#8220;stay tuned.&#8221;</p>


<p>There are no related posts.</p>]]></content:encoded>
			<wfw:commentRss>http://anonymousprogrammer.com/seo/designing-anonymous-programmer-website.html/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Stupid Meta Tags People Still Use</title>
		<link>http://anonymousprogrammer.com/seo/stupid-meta-tags-people.html</link>
		<comments>http://anonymousprogrammer.com/seo/stupid-meta-tags-people.html#comments</comments>
		<pubDate>Thu, 03 Dec 2009 05:03:52 +0000</pubDate>
		<dc:creator>Anonymous Programmer</dc:creator>
				<category><![CDATA[SEO]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[meta tags]]></category>
		<category><![CDATA[sheep]]></category>

		<guid isPermaLink="false">http://anonymousprogrammer.com/?p=5</guid>
		<description><![CDATA[One of my coworkers has fallen into a trap that has claimed the common sense of many SEO professionals.  It baffles me that some people believe they can secretly manipulate how and when search engines index or rank their content by using special meta tags.


There are no related posts.]]></description>
			<content:encoded><![CDATA[<p>One of my coworkers has fallen into a trap that has claimed the common sense of many SEO professionals.  It baffles me that some people believe they can secretly manipulate how and when search engines index or rank their content by using special meta tags.  In case you&#8217;re wondering, meta tags are a legitimate tool that web developers use to markup and optimize their content for search engines.  Here&#8217;s the <a title="Meta Element - Wikipedia" href="http://en.wikipedia.org/wiki/Meta_tags">Wikipedia</a> definition:</p>
<blockquote><p><strong>Meta elements</strong> are HTML or XHTML elements used to provide structured metadata about a Web page. Such elements must be placed as tags in the head section of an HTML or XHTMLdocument. Meta elements can be used to specify page description, keywords and any other metadata not provided through the other head elements and attributes.</p></blockquote>
<p>The key phrase here is &#8220;any other metadata.&#8221;  So, when writing HTML or XHTML webpages it is technically allowable to describe or identify whatever-the-hell-you-want about &#8220;Page X&#8221; using meta tags.  Many years ago this was an excellent way to explain things to search engines so that they could categorize your websites and deliver more relevant results in their indexes.</p>
<p>Eventually, the internet started to revolutionize the way the world did business, and where there&#8217;s money to be made people find ways to exploit.  For example, the once useful &#8220;keywords&#8221; meta tag was used to help search engines know what search terms were most relevant to your content.  Eventually webmasters started stuffing the most commonly-searched-for terms into their keywords tag&#8211;even if those terms had nothing to do with their own content.  This worked like a charm for a while, until the big search engines eventually decided that they could not display reliable search results to their users.</p>
<p>For many years now the keywords meta tag has been <a title="Google does not use the keywords meta tag" href="http://googlewebmastercentral.blogspot.com/2009/09/google-does-not-use-keywords-meta-tag.html">ignored</a> for ranking by the most commonly used search engines.  It is actually still used for retrieval (not ranking) by Yahoo.com and Ask.com, and I found <a title="Meta Keywords Tag 101" href="http://searchengineland.com/meta-keywords-tag-101-how-to-legally-hide-words-on-your-pages-for-search-engines-12099">this article</a> that explains the difference in more detail, but you can suffice to say that it&#8217;s relatively useless.  People still use it, however, and I can&#8217;t really blame them:  there&#8217;s a lot of circulated misinformation and confusion about the tag.</p>
<p>Now for the best part, and this is where my coworker fits into the scene.</p>
<p>Since meta tags can be used to describe anything you want about the page, somewhere along the line some really (really) crazy meta tags started cropping up on the web.  A few of them look okay at first glance, but a little rational thought should help dissuade a real web designer from using them.  On the other hand, some of these are so stupid that I really think they were invented by a prankster web designer and they somehow got stuck in the internets for good (as does most bullshit).</p>
<p>I need to mention that my coworker is very good at his job (he&#8217;s an SEO guy) (no I am not one, per se).  He has developed premium and effective internet marketing campaigns for some big customers.  You can imagine my surprise when I opened up the source for one of his current projects, and I see this:</p>
<p>&lt;meta http-equiv=&#8221;Content-Type&#8221; content=&#8221;text/html; charset=utf-8&#8243; /&gt;</p>
<p>&lt;title&gt;&#8211;edited for anonymity&#8211;&lt;/title&gt;</p>
<p>&lt;meta name=&#8221;description&#8221; content=&#8221;&#8211;edited for anonymity&#8211;&#8221; /&gt;</p>
<p>&lt;meta name=&#8221;keywords&#8221; content=&#8221;&#8211;edited for anonymity&#8211;&#8221; /&gt;</p>
<p>&lt;meta name=&#8221;title&#8221; content=&#8221;&#8211;edited for anonymity&#8211;&#8221; /&gt;</p>
<p>&lt;meta name=&#8221;subject&#8221; content=&#8221;&#8211;edited for anonymity&#8211;&#8221; /&gt;</p>
<p>&lt;meta name=&#8221;abstract&#8221; content=&#8221;&#8211;edited for anonymity&#8211;&#8221; /&gt;</p>
<p>&lt;meta name=&#8221;classification&#8221; content=&#8221;&#8211;edited for anonymity&#8211;&#8221; /&gt;</p>
<p>&lt;meta name=&#8221;alexa&#8221; content=&#8221;100&#8243; /&gt;</p>
<p>&lt;meta name=&#8221;googlebot&#8221; content=&#8221;all, index, follow&#8221; /&gt;</p>
<p>&lt;meta name=&#8221;pagerank&#8221; content=&#8221;10&#8243; /&gt;</p>
<p>&lt;meta name=&#8221;revisit&#8221; content=&#8221;1 days&#8221; /&gt;</p>
<p>&lt;meta name=&#8221;revisit-after&#8221; content=&#8221;1 days&#8221; /&gt;</p>
<p>&lt;meta name=&#8221;robots&#8221; content=&#8221;all, index, follow&#8221; /&gt;</p>
<p>&lt;meta name=&#8221;serps&#8221; content=&#8221;1, 2, 3, 10, 11, 12, 13, 20, ATF&#8221; /&gt;</p>
<p>&lt;meta name=&#8221;page-name&#8221; content=&#8221;&#8211;edited for anonymity&#8211;&#8221; /&gt;</p>
<p>Everything starts off okay.  Content-Type, Title, and Description are all valid and useful tags.  Of course Keywords shows it&#8217;s face, but I&#8217;ll give him a pass.  It&#8217;s all downhill from there.</p>
<p>I don&#8217;t know why you&#8217;d want to identify a redundant/useless Title meta tag when there is already a perfectly good Title tag.  Subject and Abstract seem to be variations of the Description tag, ergo redundant ergo useless.  Classification seems to be a variation of the useless Keywords tag.</p>
<p>And now things go from misguided to wtf?</p>
<p>The mysterious Alexa tag apparently will make your alexa ranking magically improve for no reason other than the fact that you included the Alexa tag in your markup.  The same thing applies to the Pagerank tag.</p>
<p>To be fair, there is a such thing as a googlebot meta tag, but it is only used to tell googlebot NOT to index or follow your content.  If googlebot has already arrived at your website, it&#8217;s going to crawl your page without you having to tell it to do so.  Along the same vein are the Revisit and Revisit-after tags, which supposedly tell search engines how often to come back and crawl the site.  The content on the internet is growing in size exponentially.  Search engines have developed very sophisticated algorithms that determine how relevant and unique your content is, and how often they need to crawl your website.  Do you think Google is going to throw out that analysis because you told it to come back to your page every day?  If this worked, everyone would use it.  How could any search engine possibly crawl every page on the internet, once per day?</p>
<p>The robots tag is similar to the googlebot tag.  I don&#8217;t even want to try to fully explain the Serps (search engine results page) tag:  it has something to do with telling search engines exactly where on the page you want to be indexed, and it&#8217;s bullshit.  Page-name is another exorcise in redundancy.</p>
<p>I pointed these out to him and tried to spare his ego by explaining tactfully yet logically why most of them were worthless.  All I got were some blank stares, a few &#8220;but but but&#8230;&#8221; and &#8220;Yahoo still uses some of these.&#8221;  Seriously?</p>
<p>If any web developers or SEO people happen to find this article, take five minutes and revist the meta tags you&#8217;ve used and are currently using in your projects.  Ask yourself if the meta tags look like voodoo, or if they are designed to manipulate search engine results.  If so delete them.  Or, since the search engines ignore them all anyway, have fun with it!  Make up some really cool/funny meta tags like the Bacon meta tag, or the All-Your-Base-Are-Belong-To-Us meta tag.  At least then people who know better won&#8217;t think of  you as an idiot.  Or as a sheep, I haven&#8217;t decided yet.</p>


<p>There are no related posts.</p>]]></content:encoded>
			<wfw:commentRss>http://anonymousprogrammer.com/seo/stupid-meta-tags-people.html/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

