<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Zack Perdue</title>
	
	<link>http://zackperdue.com</link>
	<description>My Personal Blog and Portfolio</description>
	<lastBuildDate>Mon, 14 May 2012 00:29:28 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/zackperdue/jTgK" /><feedburner:info uri="zackperdue/jtgk" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
		<title>Speech To Text</title>
		<link>http://feedproxy.google.com/~r/zackperdue/jTgK/~3/c_HXg9wWfCQ/speech-to-text</link>
		<comments>http://zackperdue.com/tutorials/speech-to-text#comments</comments>
		<pubDate>Fri, 11 May 2012 14:50:34 +0000</pubDate>
		<dc:creator>Zack</dc:creator>
				<category><![CDATA[News]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[html5 speech]]></category>
		<category><![CDATA[online speech recognition]]></category>
		<category><![CDATA[speech input api]]></category>
		<category><![CDATA[speech recognition]]></category>
		<category><![CDATA[speech to text]]></category>
		<category><![CDATA[voice search]]></category>
		<category><![CDATA[voice to text]]></category>
		<category><![CDATA[webkit speech attribute]]></category>

		<guid isPermaLink="false">http://zackperdue.com/?p=729</guid>
		<description><![CDATA[A welcomed addition to Webkit Browsers is the Speech to Text ability for text boxes. I am really excited about this new feature in webkit, and I cannot wait until the other mainstream browsers such as gecko and *gasp* Trident (Internet Explorer) pick up the feature.
Related posts:<ol>
<li><a href='http://zackperdue.com/tutorials/html5-placeholder-without-javascript' rel='bookmark' title='Default Text Field Value without Javascript (placeholder)'>Default Text Field Value without Javascript (placeholder)</a> <small>Don't use JavaScript where you can do the same thing...</small></li>
<li><a href='http://zackperdue.com/plugins/hide-form-input-values-on-focus-with-jquery' rel='bookmark' title='Hide Form Input Values On Focus With jQuery'>Hide Form Input Values On Focus With jQuery</a> <small>This is a simple and light weight JavaScript snippet using...</small></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>A welcomed addition to Webkit Browsers is the Speech to Text ability for text boxes. I am really excited about this new feature in webkit, and I cannot wait until the other mainstream browsers such as gecko and *gasp* Trident (Internet Explorer) pick up the feature. I just know that speech input is definitely going in all of my new websites!</p>
<h4>How To Use Speech To Text</h4>
<p>First of all, you need to be in Google Chrome Browser (only browser that currently supports speech to text input) to test it out. To enable speech to text is really simple. All you need to do is add one attribute to your textbox. The webkit only attribute is <code>x-webkit-speech</code>. Here is what it looks like:</p>

<div class="wp_syntax"><div class="code"><pre class="html4strict" style="font-family:monospace;"><span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">input</span> x-webkit-speech <span style="color: #000066;">type</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;text&quot;</span>&gt;</span></pre></div></div>

<p>To future proof your website, just add the html5 attribute <code>speech</code> to ensure that your inputs work in any browser when the api is actually supported in Firefox, Safari and Internet Explorer</p>

<div class="wp_syntax"><div class="code"><pre class="html4strict" style="font-family:monospace;"><span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">input</span> speech x-webkit-speech <span style="color: #000066;">type</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;text&quot;</span>&gt;</span></pre></div></div>

<h4>Will All Browsers Support Speech To Text In The Future?</h4>
<p>Probably, eventually&#8230; I hope so! I think most browsers that stay up to date will be supporting this feature soon. Besides, the &#8220;real&#8221; attribute that will eventually be supported is called <code>speech</code>, just like the webkit attribute but without the prefix. You can actually check out the spec for <a rel="nofollow" href="http://lists.w3.org/Archives/Public/public-xg-htmlspeech/2011Feb/att-0020/api-draft.html" title="Speech Input" target="_blank">speech input in html5</a> yourself.</p>
<h4>Demo Speech Input</h4>
<p>If you are in Chrome, click the microphone icon in the textbox and speek something related to web development, Then hit enter.</p>
<form action="http://zackperdue.com" method="get">
<input type="text" x-webkit-speech speech name="s" placeholder="Search" /></form>
<h4>Final Thoughts</h4>
<p>I was doing some testing with the attribute and I found something pretty funny. Speech input functionality is actually available on password inputs, not very practical I&#8217;d say. I&#8217;m not the one to speek my password out in the open air&#8230; but thats just me. As far as I could tell, speech input only works on text inputs. Not textareas. And yes, I tried on radio and checkbox inputs. Hey, it was worth a try!</p>
<p>Related posts:</p><ol>
<li><a href='http://zackperdue.com/tutorials/html5-placeholder-without-javascript' rel='bookmark' title='Default Text Field Value without Javascript (placeholder)'>Default Text Field Value without Javascript (placeholder)</a> <small>Don't use JavaScript where you can do the same thing...</small></li>
<li><a href='http://zackperdue.com/plugins/hide-form-input-values-on-focus-with-jquery' rel='bookmark' title='Hide Form Input Values On Focus With jQuery'>Hide Form Input Values On Focus With jQuery</a> <small>This is a simple and light weight JavaScript snippet using...</small></li>
</ol>
<p><a href="http://feedads.g.doubleclick.net/~a/BPmuPuJT19NxkFse90xCcNsFC1k/0/da"><img src="http://feedads.g.doubleclick.net/~a/BPmuPuJT19NxkFse90xCcNsFC1k/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/BPmuPuJT19NxkFse90xCcNsFC1k/1/da"><img src="http://feedads.g.doubleclick.net/~a/BPmuPuJT19NxkFse90xCcNsFC1k/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/zackperdue/jTgK/~4/c_HXg9wWfCQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://zackperdue.com/tutorials/speech-to-text/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://zackperdue.com/tutorials/speech-to-text</feedburner:origLink></item>
		<item>
		<title>PHP urlencode Tips &amp; Tricks</title>
		<link>http://feedproxy.google.com/~r/zackperdue/jTgK/~3/5N4qpalrXuE/php-urlencode-urldecode</link>
		<comments>http://zackperdue.com/tutorials/php-urlencode-urldecode#comments</comments>
		<pubDate>Fri, 13 Apr 2012 03:40:26 +0000</pubDate>
		<dc:creator>Zack</dc:creator>
				<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[email verification problems]]></category>
		<category><![CDATA[php bugs]]></category>
		<category><![CDATA[urldecode]]></category>
		<category><![CDATA[urlencode]]></category>
		<category><![CDATA[urlencode problem]]></category>
		<category><![CDATA[user verification script]]></category>

		<guid isPermaLink="false">http://zackperdue.com/?p=718</guid>
		<description><![CDATA[I was recently writing a php script to verify a user account after the user signs up to the website. I needed to send a hash of the users information so I would have access to it at a later date. Little did I know, that this would cause me a big headache.
No related posts.]]></description>
			<content:encoded><![CDATA[<h4>If you hate reading&#8230;</h4>
<p><strong>When you use urlencode on a get parameter in the url, you do not need to use urldecode on the value when you retrieve it in your script. PHP automatically performs a url decode for you.</strong></p>
<p>I was recently writing a php script to verify an email address after a user signs up on a website. It actually took me quite a while to sort out a bug that I encountered. I&#8217;m writing this post today in hopes that my trial and error will help you in the future to avoid this situation.</p>
<h4>The Objective</h4>
<p>I needed to send a hash of the users email and a timestamp using a query variable from an auto generated email. The user would click the link and be redirected to the website where the site would process the hash and verify the user account. Simple enough, right? As it turned out, not really.</p>
<ul>
<li>Generate hash from email and timestamp</li>
<li>Send email with email verification link that includes a <strong>urlencode</strong>&#8216;ed hash</li>
<li>User clicks link from inside email</li>
<li>Hash is processed</li>
<li>User is found in the database using information from hash</li>
<li>User is verified and then logged in</li>
</ul>
<h4>The Problem</h4>
<p>Everything runs smoothly until the user clicks the link inside their email. The hash is urlencoded by using the php <a href="http://php.net/manual/en/function.urlencode.php" title="php urlencode" target="_blank">urlencode()</a> function. When I process the hash, I was url decoding it using the php <a href="http://www.php.net/manual/en/function.urldecode.php" title="php url decode" target="_blank">urldecode()</a> function. After that, I was splitting the hash using php explode with a colon as the delimiter. I should have gotten back an array with two values, an email and a timestamp. Instead, I got an error (undefined index).</p>
<p>I was supposed to have gotten the email and timestamp back so I could run a query against the database to find the user that had the pertinent data in their user row.</p>
<h4>The Solution</h4>
<p>I found out that when you get a parameter from the url using $_GET, php automatically uses <code>urldecode</code> on the value. With this not known to me at the time, I was running urldecode on a value that was already decoded. In essence, I was, obliviously, url decoding twice. This was spitting out some weird characters such as boxes, triangles and question marks.</p>
<p>Long story short, you do not need to use urldecode on $_GET variables. At least, that is what I got out of the ordeal. Please correct me if I am wrong.</p>
<p>Thanks and as always, Happy Coding!</p>
<p>No related posts.</p>
<p><a href="http://feedads.g.doubleclick.net/~a/hyThut-5RWmeB-o0oJjYbgu6bgQ/0/da"><img src="http://feedads.g.doubleclick.net/~a/hyThut-5RWmeB-o0oJjYbgu6bgQ/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/hyThut-5RWmeB-o0oJjYbgu6bgQ/1/da"><img src="http://feedads.g.doubleclick.net/~a/hyThut-5RWmeB-o0oJjYbgu6bgQ/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/zackperdue/jTgK/~4/5N4qpalrXuE" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://zackperdue.com/tutorials/php-urlencode-urldecode/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://zackperdue.com/tutorials/php-urlencode-urldecode</feedburner:origLink></item>
		<item>
		<title>Install WordPress in 7 Seconds</title>
		<link>http://feedproxy.google.com/~r/zackperdue/jTgK/~3/EgoxX1gnXBQ/install-wordpress-in-7-seconds</link>
		<comments>http://zackperdue.com/tutorials/install-wordpress-in-7-seconds#comments</comments>
		<pubDate>Thu, 08 Mar 2012 00:04:45 +0000</pubDate>
		<dc:creator>Zack</dc:creator>
				<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[easy wordpress install]]></category>
		<category><![CDATA[install wordpress]]></category>
		<category><![CDATA[wordpress]]></category>
		<category><![CDATA[wp easy install]]></category>

		<guid isPermaLink="false">http://zackperdue.com/?p=701</guid>
		<description><![CDATA[Doing the same repetitive thing over and over again can get boring. I install a lot of WordPress sites, so I thought there must be a quicker way. Well, lucky for us there is. I think its faster than a one click install, such as using some cPanel WordPress install tool. In fact, it literally takes just 7 seconds to install WordPress.
Related posts:<ol>
<li><a href='http://zackperdue.com/tutorials/install-wordpress-from-the-command-line' rel='bookmark' title='Install WordPress In 30 Seconds'>Install WordPress In 30 Seconds</a> <small>If you are anything like me, then you tend to...</small></li>
<li><a href='http://zackperdue.com/plugins/essential-wordpress-plugins' rel='bookmark' title='Must Have WordPress Plugins'>Must Have WordPress Plugins</a> <small>When you create a new website with WordPress for yourself,...</small></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>Doing the same repetitive thing over and over again can get boring. I install a lot of WordPress sites, so I thought there must be a quicker way. Well, lucky for us there is. I think its faster than a one click install, such as using some cPanel WordPress install tool. In fact, it literally takes just 7 seconds to install WordPress. What we will be using is a bash script to do our heavy lifting. Just to let you know, this is an improvement on <a href="http://zackperdue.com/tutorials/install-wordpress-from-the-command-line/" title="Install WordPress In 30 Seconds">my other post</a> outlining this same thing.</p>
<h4>What do I need?</h4>
<p>First of all, you really don&#8217;t need much. All you need to be able to log in using ssh and the script.</p>
<h4>The Bash Script</h4>
<p>Log into your server and create a bash script wherever you keep your scripts at. I recommend placing the script outside of the root.</p>
<p>The script: <code>wordpress.sh</code> </p>
<pre>
#!/ramdisk/bin/bash

wget http://wordpress.org/latest.zip
unzip latest.zip &#038;&#038; rm latest.zip
cp -r wordpress/* ./ &#038;&#038; rm -rf wordpress/
echo "Finished!"
</pre>
<ul>
<li><strong>Line 1: </strong>Location of your bash. Find yours by doing <code>which bash</code></li>
<li><strong>Line 3: </strong>Download the WordPress zip archive.</li>
<li><strong>Line 4: </strong>Unzip and then delete the archive.</li>
<li><strong>Line 5: </strong>Copy all the files from the <code>wordpress/</code> folder into your current directory</li>
<li><strong>Line 6: </strong>Lets you know when it completes.</li>
</ul>
<h4>Using it.</h4>
<p>Just create a directory where you would like to install WordPress, enter the directory. Then just type the location to your bash script and you are 7 seconds away from a painless WP install.</p>
<h4>Conclusion</h4>
<p>In a nutshell, your are not one of the fastest people to have ever installed WordPress. Let me know if you find this useful! And happy coding!</p>
<p>Related posts:</p><ol>
<li><a href='http://zackperdue.com/tutorials/install-wordpress-from-the-command-line' rel='bookmark' title='Install WordPress In 30 Seconds'>Install WordPress In 30 Seconds</a> <small>If you are anything like me, then you tend to...</small></li>
<li><a href='http://zackperdue.com/plugins/essential-wordpress-plugins' rel='bookmark' title='Must Have WordPress Plugins'>Must Have WordPress Plugins</a> <small>When you create a new website with WordPress for yourself,...</small></li>
</ol>
<p><a href="http://feedads.g.doubleclick.net/~a/sGipGmmYtMuYqqK6h_8ez4_gYHU/0/da"><img src="http://feedads.g.doubleclick.net/~a/sGipGmmYtMuYqqK6h_8ez4_gYHU/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/sGipGmmYtMuYqqK6h_8ez4_gYHU/1/da"><img src="http://feedads.g.doubleclick.net/~a/sGipGmmYtMuYqqK6h_8ez4_gYHU/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/zackperdue/jTgK/~4/EgoxX1gnXBQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://zackperdue.com/tutorials/install-wordpress-in-7-seconds/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://zackperdue.com/tutorials/install-wordpress-in-7-seconds</feedburner:origLink></item>
		<item>
		<title>Internet Meme Templates (Freebie)</title>
		<link>http://feedproxy.google.com/~r/zackperdue/jTgK/~3/myVdznbcvxg/internet-meme-templates</link>
		<comments>http://zackperdue.com/freebies/internet-meme-templates#comments</comments>
		<pubDate>Wed, 22 Feb 2012 03:09:10 +0000</pubDate>
		<dc:creator>Zack</dc:creator>
				<category><![CDATA[Freebies]]></category>
		<category><![CDATA[download meme template]]></category>
		<category><![CDATA[download memes]]></category>
		<category><![CDATA[funny memes]]></category>
		<category><![CDATA[internet]]></category>
		<category><![CDATA[internet memes]]></category>
		<category><![CDATA[meme generator]]></category>
		<category><![CDATA[what is a meme]]></category>

		<guid isPermaLink="false">http://zackperdue.com/?p=673</guid>
		<description><![CDATA[Download three professional meme maker templates to fully harness the power of Photoshop along with your witty meme making self.
No related posts.]]></description>
			<content:encoded><![CDATA[<p>Surely you have been witness to the internet meme phenomena of late. I know I have! It is kind of annoying, browsing on Facebook, seeing your wall bombarded with these memes. It kind of makes you think what people are thinking? Some of these are funny, some are stupid, and some are just darn right rude!</p>
<h4>What is a meme?</h4>
<p>According to <a href="http://answers.yahoo.com/question/index?qid=20100313155552AAygbap" title="What is a meme" target="_blank">Yahoo Answers</a> (Better than Wikipedia)</p>
<blockquote><p>
On the internet a meme usually means one of those thingies that are ridiculously popular for no reason at all (like lolcats for example). Although the term &#8220;meme&#8221; was apparently coined by Richard Dawkins and is used in a more serious context meaning a &#8220;self-replicating unit&#8221;.
</p></blockquote>
<p>Anyways, I thought it was time for me to get in on the &#8220;fun&#8221;. I have taken the liberty of creating 3 popular meme templates with formats that you have surely seen before. You may download the zip archive that has the meme psd&#8217;s.</p>
<p>The templates include neatly created and named layers and groups for the sake of easy meme creation.</p>
<h4>>>><a href='http://zackperdue.com/wp-content/uploads/2012/02/MemeTemplates.zip'>Download Meme Templates</a><<<</h4>
<p></p>
<h4>Neatly Organized Layers</h4>
<p><img src="http://zackperdue.com/wp-content/uploads/2012/02/Screen-Shot-2012-02-21-at-9.42.37-PM.png" alt="" title="Neatly Organized layers" width="336" height="745" class="aligncenter size-full wp-image-675" /></p>
<h4>Meme Template Style 1</h4>
<p><img src="http://zackperdue.com/wp-content/uploads/2012/02/Meme1.jpg" alt="Meme Template Style 1" title="Meme Template Style 1" width="520" height="330" class="aligncenter size-full wp-image-676" /></p>
<h4>Meme Template Style 2</h4>
<p><img src="http://zackperdue.com/wp-content/uploads/2012/02/Meme2.jpg" alt="Meme Template Style 2" title="Meme Template Style 2" width="520" height="700" class="aligncenter size-full wp-image-677" /></p>
<h4>Meme Template Style 3</h4>
<p><img src="http://zackperdue.com/wp-content/uploads/2012/02/Meme3.jpg" alt="Meme Template Style 3" title="Meme Template Style 3" width="500" height="500" class="aligncenter size-full wp-image-678" /></p>
<p>No related posts.</p>
<p><a href="http://feedads.g.doubleclick.net/~a/RHcpqRAPa0kpWOxyGFN6PjAwWnA/0/da"><img src="http://feedads.g.doubleclick.net/~a/RHcpqRAPa0kpWOxyGFN6PjAwWnA/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/RHcpqRAPa0kpWOxyGFN6PjAwWnA/1/da"><img src="http://feedads.g.doubleclick.net/~a/RHcpqRAPa0kpWOxyGFN6PjAwWnA/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/zackperdue/jTgK/~4/myVdznbcvxg" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://zackperdue.com/freebies/internet-meme-templates/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://zackperdue.com/freebies/internet-meme-templates</feedburner:origLink></item>
		<item>
		<title>Apex Desktop Wallpaper (Freebie)</title>
		<link>http://feedproxy.google.com/~r/zackperdue/jTgK/~3/JPc_928VK9Y/apex-desktop-wallpaper</link>
		<comments>http://zackperdue.com/freebies/apex-desktop-wallpaper#comments</comments>
		<pubDate>Tue, 21 Feb 2012 21:24:25 +0000</pubDate>
		<dc:creator>Zack</dc:creator>
				<category><![CDATA[Freebies]]></category>
		<category><![CDATA[apex desktop wallpaper]]></category>
		<category><![CDATA[background changer]]></category>
		<category><![CDATA[desktop wallpaper]]></category>
		<category><![CDATA[free download]]></category>
		<category><![CDATA[free wallpaper]]></category>

		<guid isPermaLink="false">http://zackperdue.com/?p=664</guid>
		<description><![CDATA[Download these 8 awesome desktop wallpapers in multiple colors. They are 1920px by 1080px.
No related posts.]]></description>
			<content:encoded><![CDATA[<p>A long time ago I was playing with Photoshop and made this cool desktop background. It might have been done using a tutorial somewhere but I fail to remember at the moment, it was just too long ago. Anyways, I&#8217;m offering it to you for free. There are 8 wallpapers in multiple colors and they are 1920px By 1080px. I used these back when I had windows and the desktops would fade through each background and it just changed colors. Was pretty neat.</p>
<p><a title="Download Apex Desktop Wallpapers" href='http://zackperdue.com/wp-content/uploads/2012/02/apex.zip'>Download Apex Desktop Wallpapers</a></p>
<p>Below is a summary of the wallpapers in the zip folder. I hope you like them!<br />
<a title="Download Apex Desktop Wallpapers" href='http://zackperdue.com/wp-content/uploads/2012/02/apex.zip'><img src="http://zackperdue.com/wp-content/uploads/2012/02/apex-display.jpg" alt="Apex Desktop Wallpapers" title="Apex Desktop Wallpapers" width="520" height="2340" class="aligncenter size-full wp-image-666" /></a></p>
<p>No related posts.</p>
<p><a href="http://feedads.g.doubleclick.net/~a/32JLQU5ndlsuPShTXcD05OOTO5Y/0/da"><img src="http://feedads.g.doubleclick.net/~a/32JLQU5ndlsuPShTXcD05OOTO5Y/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/32JLQU5ndlsuPShTXcD05OOTO5Y/1/da"><img src="http://feedads.g.doubleclick.net/~a/32JLQU5ndlsuPShTXcD05OOTO5Y/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/zackperdue/jTgK/~4/JPc_928VK9Y" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://zackperdue.com/freebies/apex-desktop-wallpaper/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://zackperdue.com/freebies/apex-desktop-wallpaper</feedburner:origLink></item>
		<item>
		<title>Install WordPress In 30 Seconds</title>
		<link>http://feedproxy.google.com/~r/zackperdue/jTgK/~3/tjtsz2wbitE/install-wordpress-from-the-command-line</link>
		<comments>http://zackperdue.com/tutorials/install-wordpress-from-the-command-line#comments</comments>
		<pubDate>Tue, 14 Feb 2012 08:13:54 +0000</pubDate>
		<dc:creator>Zack</dc:creator>
				<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[how to install wordpress]]></category>
		<category><![CDATA[install wordpress]]></category>
		<category><![CDATA[quick wordpress install]]></category>
		<category><![CDATA[setup wordpress]]></category>
		<category><![CDATA[what is wordpress]]></category>
		<category><![CDATA[wordpress command line]]></category>
		<category><![CDATA[wordpress setup]]></category>
		<category><![CDATA[wordpress themes]]></category>
		<category><![CDATA[wordpress website]]></category>

		<guid isPermaLink="false">http://zackperdue.com/?p=654</guid>
		<description><![CDATA[If you are anything like me, then you tend to install a lot of WordPress sites. If this is the case then this task will have become trivial and shouldn't take more than a few minutes of your time. In our business, its all about doing things quickly so I will show you something that will speed the WordPress install process up even more.
Related posts:<ol>
<li><a href='http://zackperdue.com/plugins/essential-wordpress-plugins' rel='bookmark' title='Must Have WordPress Plugins'>Must Have WordPress Plugins</a> <small>When you create a new website with WordPress for yourself,...</small></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>If you are anything like me, then you tend to install a lot of WordPress sites. If this is the case then this task will have become trivial and shouldn&#8217;t take more than a few minutes of your time. In our business, its all about doing things quickly so I will show you something that will speed the WordPress install process up even more. If you get good, the entire process I would estimate can be 3 minutes or under (remember we are not using those easy install scripts in your web hosting account) using terminal.</p>
<h4>Update: <a href="http://zackperdue.com/tutorials/install-wordpress-in-7-seconds/" title="Install WordPress in 7 Seconds Down from 30"></a></h4>
<h4>1. Get the download link for WordPress</h4>
<p>Head over to <a href="http://wordpress.org/download/" title="Download WordPress" target="_blank">http://wordpress.org/download/</a> you will see the blue button on the right side. Right click the button and select &#8220;Copy Link Location&#8221;.<br />
The the link should be: <code>http://wordpress.org/latest.zip</code></p>
<p><a href="http://wordpress.org/download/"><img src="http://zackperdue.com/wp-content/uploads/2012/02/download-wp.jpg" alt="" title="Download WordPress" width="356" height="326" class="aligncenter size-full wp-image-655" /></a></p>
<h4>2. Download WordPress to your install directory.</h4>
<p>This is the part that saves a lot of time. If you have ever uploaded an entire WP install with ftp, you&#8217;ll know what I&#8217;m talking about, it takes forever! </p>
<p>Go ahead and log into your server through ssh, navigate to where you will install WP then enter the command<br />
<code>wget http://wordpress.org/latest.zip</code></p>
<p>This will download the latest.zip within seconds.</p>
<h4>3. Unzip the WP archive</h4>
<p>To unzip the WordPress archive run the command<br />
<code>unzip latest.zip</code></p>
<p>You should see a large list of files scroll down the screen. This is good!</p>
<p>Now you can delete the archive, it isn&#8217;t needed anymore. Run:<br />
<code>rm latest.zip</code></p>
<h4>4. Move files out of wordpress/ directory</h4>
<p>After you unzip the archive, you will be left with a directory called <code>wordpress/</code>. To get your current location on the server, enter <code>pwd</code>, this will show a path &#8211; copy this to your clipboard for later use. Move into the wordpress/ folder by using <code>cd wordpress/</code>.</p>
<p>To copy all of the files from the folder and into the directory above wordpress/ run the command:<br />
<code>cp -r * ~/public_html/yourwebsitefolder/</code></p>
<p>Where <code>~/public_html/yourwebsitefolder/</code> is what you copied after you used the <code>pwd</code> command.</p>
<h4>5. Delete the wordpress/ directory</h4>
<p>Backup out of the wordpress/ folder by using <code>cd ..</code>. Then run the command:<br />
<code>rm -rf wordpress/</code></p>
<p>Now you have all of WordPress on your server within 30 seconds.</p>
<h4>6. Install the database</h4>
<p>If you haven&#8217;t already set up the database, you will need to do that. Then all that is left is to visit your site, follow the instructions and enter your database connection credentials. Simple as pie!</p>
<h4>Important!!!</h4>
<p>Be very careful when you use the <code>rm</code> command. This command can delete your entire server if you are not careful, be sure you do not make any typing errors before you decide to press enter.</p>
<p>Related posts:</p><ol>
<li><a href='http://zackperdue.com/plugins/essential-wordpress-plugins' rel='bookmark' title='Must Have WordPress Plugins'>Must Have WordPress Plugins</a> <small>When you create a new website with WordPress for yourself,...</small></li>
</ol>
<p><a href="http://feedads.g.doubleclick.net/~a/cWKqU67z0nn0nEUAlNRBBUR5jDE/0/da"><img src="http://feedads.g.doubleclick.net/~a/cWKqU67z0nn0nEUAlNRBBUR5jDE/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/cWKqU67z0nn0nEUAlNRBBUR5jDE/1/da"><img src="http://feedads.g.doubleclick.net/~a/cWKqU67z0nn0nEUAlNRBBUR5jDE/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/zackperdue/jTgK/~4/tjtsz2wbitE" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://zackperdue.com/tutorials/install-wordpress-from-the-command-line/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://zackperdue.com/tutorials/install-wordpress-from-the-command-line</feedburner:origLink></item>
		<item>
		<title>Kohana Reverse Routing</title>
		<link>http://feedproxy.google.com/~r/zackperdue/jTgK/~3/jSa51KZ3zF8/kohana-reverse-routing</link>
		<comments>http://zackperdue.com/tutorials/kohana-reverse-routing#comments</comments>
		<pubDate>Wed, 01 Feb 2012 05:08:16 +0000</pubDate>
		<dc:creator>Zack</dc:creator>
				<category><![CDATA[Kohana]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[how to reverse route]]></category>
		<category><![CDATA[kohana reverse routing]]></category>
		<category><![CDATA[kohana routes]]></category>
		<category><![CDATA[kohana routing]]></category>
		<category><![CDATA[what is reverse routing]]></category>

		<guid isPermaLink="false">http://zackperdue.com/?p=643</guid>
		<description><![CDATA[I show you how to use the built in Kohana reverse routing functionality that this great framework comes default with.
Related posts:<ol>
<li><a href='http://zackperdue.com/tutorials/understanding-kohana-routes' rel='bookmark' title='Understanding Kohana Routes'>Understanding Kohana Routes</a> <small>A lot of people struggle with creating a simple template...</small></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>Earlier I wrote a post explaining the basics of Kohana Routes and how to use them. Now comes the second part of the tutorial on how to use the built in Kohana reverse routing functionality. Its actually pretty simple and really where the routing system shines.</p>
<h4>First, understand how the Kohana routing system works</h4>
<p>If you haven&#8217;t already, head over to the previous post, explaining <a href="http://zackperdue.com/tutorials/understanding-kohana-routes/" title="Understanding Kohana Routes">the basics of Kohana routes</a>. If you already know that much, good! I will now show you how to use reverse routing.</p>
<h4>What is reverse routing?</h4>
<p>Reverse routing is basically a way to construct a URL, programmatically. Using reverse routing is an easy way to piece together a URL using the parts that you defined in the route definitions.</p>
<h4>Ok, Show me!</h4>
<p>It is super simple. In this example, I will create a route that could be used for a URL in the form of <code>http://example.com/category/slug-of-the-article</code>.<br />
This route will match the structure of the example URL I provided.</p>
<pre>
Route::set('article', '&lt;category&gt;/&lt;slug&gt;')
	-&gt;defaults(array(
		'controller' =&gt; 'article',
		'action' =&gt; 'view',
	));
</pre>
<p>Now to do the actual reverse routing, woot! First of all, I specified that my url <strong>NEEDS</strong> two things (a &#8220;category&#8221; and a &#8220;slug&#8221;). The keywords between the <code><></code> mean that these will be available as variables. These variables can be accessed in your controller like so:</p>
<pre>
public function action_index()
{
    $slug = $this-&gt;request-&gt;param('slug');
    $category = $this-&gt;request-&gt;param('category');
}
</pre>
<p>So now that we have a route to direct requests to, let me explain how to do it. If you see when you define your route, with <code>Route::set('routename');</code>. &#8216;routname&#8217; is how Kohana will know what structure to build our route as. Since ours is named &#8216;article&#8217;, we can get that route by going:</p>
<pre>
Route::get('article');
</pre>
<p>Now since we didn&#8217;t include any of the parameters in the route inside of parentheses, both keywords are required. So lets create a route with the structure <code>http://example.com/kohana/how-to-use-kohana-routes</code>.</p>
<pre>
$slug = 'how-to-use-kohana-routes';
$category = 'kohana';
$route = Route::get('article')-&gt;uri(array('category' =&gt; $category, 'slug' =&gt; $slug));
</pre>
<p><code>$route</code> would be equal to <code>kohana/how-to-use-kohana-routes</code>. Now you can use this method of reverse routing in your views inside of a helper function to create an absolute url. </p>
<p>I like to create links like so:</p>

<div class="wp_syntax"><div class="code"><pre class="html4strict" style="font-family:monospace;"><span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">a</span> <span style="color: #000066;">href</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;&lt;?php URL::site(Route::get('article')-&gt;</span></span>uri(array('category' =&gt; 'kohana', 'slug' =&gt; 'how-to-use-kohana-routes'))); ?&gt;&quot;&gt;Kohana Routing Article<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">a</span>&gt;</span></pre></div></div>

<h4>Conclusion</h4>
<p>Once you master the routing system in Kohana, you will quickly realize how much power the framework has. I have grown to absolutely love Kohana greatly in part because of the Routing system. There is still one more thing I need to tell you guys about the routing system though. There is a way to tell Kohana what your URL parameters must match, like a regex in order to create a valid route. But that will have to wait for another time. Thanks and Happy Coding <img src='http://zackperdue.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Related posts:</p><ol>
<li><a href='http://zackperdue.com/tutorials/understanding-kohana-routes' rel='bookmark' title='Understanding Kohana Routes'>Understanding Kohana Routes</a> <small>A lot of people struggle with creating a simple template...</small></li>
</ol>
<p><a href="http://feedads.g.doubleclick.net/~a/AtOBXyCVbacZqRTwqioZX79y7i8/0/da"><img src="http://feedads.g.doubleclick.net/~a/AtOBXyCVbacZqRTwqioZX79y7i8/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/AtOBXyCVbacZqRTwqioZX79y7i8/1/da"><img src="http://feedads.g.doubleclick.net/~a/AtOBXyCVbacZqRTwqioZX79y7i8/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/zackperdue/jTgK/~4/jSa51KZ3zF8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://zackperdue.com/tutorials/kohana-reverse-routing/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://zackperdue.com/tutorials/kohana-reverse-routing</feedburner:origLink></item>
		<item>
		<title>Default Text Field Value without Javascript (placeholder)</title>
		<link>http://feedproxy.google.com/~r/zackperdue/jTgK/~3/dzBzSLqhp4Y/html5-placeholder-without-javascript</link>
		<comments>http://zackperdue.com/tutorials/html5-placeholder-without-javascript#comments</comments>
		<pubDate>Thu, 26 Jan 2012 20:58:19 +0000</pubDate>
		<dc:creator>Zack</dc:creator>
				<category><![CDATA[Plugins]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[html5 form]]></category>
		<category><![CDATA[html5 placeholder]]></category>
		<category><![CDATA[input on focus]]></category>
		<category><![CDATA[javascript placeholder]]></category>
		<category><![CDATA[jquery placeholder]]></category>
		<category><![CDATA[js placeholder]]></category>
		<category><![CDATA[placeholder support]]></category>

		<guid isPermaLink="false">http://zackperdue.com/?p=637</guid>
		<description><![CDATA[Don't use JavaScript where you can do the same thing with HTML or CSS! This is how you make your forms have default values that clear when you give focus to them without using JavaScript.
Related posts:<ol>
<li><a href='http://zackperdue.com/plugins/hide-form-input-values-on-focus-with-jquery' rel='bookmark' title='Hide Form Input Values On Focus With jQuery'>Hide Form Input Values On Focus With jQuery</a> <small>This is a simple and light weight JavaScript snippet using...</small></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>A reader commented on <a href="http://zackperdue.com/plugins/hide-form-input-values-on-focus-with-jquery/" title="Hide Form Input Values On Focus With jQuery" target="_blank">one of my other posts</a> about a JavaScript method that may be less taxing on the users browser. He pointed out how my js script for hiding form input values on focus could be improved. </p>
<p>Turns out there is a handy little method: <code>textObject.defaultValue</code>. Instead of using the <code>.val()</code> method, it would be slightly better to use the one he mentioned. </p>
<p>However, I have another way, which I hope most of you know about already, but I will put it out there just to make sure. Its an HTML5 attribute called <strong>placeholder</strong>.</p>
<p>It looks like this:</p>
<pre>&lt;input type=&quot;text&quot; placeholder=&quot;Your Placeholder Text&quot; /&gt;</pre>
<p>Which renders like:</p>
<input type="text" placeholder="Your Placeholder Text" />
Go ahead and click in the text field and click out of it. The placeholder does what JavaScript use to do!</p>
<p>There is even a way to style the placeholder text with css&#8230; like so:</p>
<pre>
::-webkit-input-placeholder {
   color: #ccc;
}

:-moz-placeholder {
   color: #ccc;
}
</pre>
<h4>Long Story Short</h4>
<p>Don&#8217;t use JavaScript where you can do the same thing with HTML or CSS! However, my script with the updated methods would be a good fallback for browsers that do not support placeholder text. Also, big thanks to Karl Ringrose for pointing out the js method!</p>
<p>Thanks and Happy Coding!</p>
<p>Related posts:</p><ol>
<li><a href='http://zackperdue.com/plugins/hide-form-input-values-on-focus-with-jquery' rel='bookmark' title='Hide Form Input Values On Focus With jQuery'>Hide Form Input Values On Focus With jQuery</a> <small>This is a simple and light weight JavaScript snippet using...</small></li>
</ol>
<p><a href="http://feedads.g.doubleclick.net/~a/SGQdhouUjbl13dF4xWkYppOswSU/0/da"><img src="http://feedads.g.doubleclick.net/~a/SGQdhouUjbl13dF4xWkYppOswSU/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/SGQdhouUjbl13dF4xWkYppOswSU/1/da"><img src="http://feedads.g.doubleclick.net/~a/SGQdhouUjbl13dF4xWkYppOswSU/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/zackperdue/jTgK/~4/dzBzSLqhp4Y" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://zackperdue.com/tutorials/html5-placeholder-without-javascript/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://zackperdue.com/tutorials/html5-placeholder-without-javascript</feedburner:origLink></item>
		<item>
		<title>5 Cheap and Popular WordPress Themes</title>
		<link>http://feedproxy.google.com/~r/zackperdue/jTgK/~3/7XIRzOq19k4/5-cheap-and-popular-wordpress-themes</link>
		<comments>http://zackperdue.com/mashup/5-cheap-and-popular-wordpress-themes#comments</comments>
		<pubDate>Wed, 25 Jan 2012 22:32:09 +0000</pubDate>
		<dc:creator>Zack</dc:creator>
				<category><![CDATA[Mashup]]></category>
		<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[1140 grid system]]></category>
		<category><![CDATA[960 grid system]]></category>
		<category><![CDATA[Boulevard Wordpress Theme]]></category>
		<category><![CDATA[cheap wordpress themes]]></category>
		<category><![CDATA[Di'verso - A Flexible WordPress Theme]]></category>
		<category><![CDATA[free wordpress themes]]></category>
		<category><![CDATA[Modernize - Flexibility of Wordpress]]></category>
		<category><![CDATA[responsive wordpress theme]]></category>
		<category><![CDATA[RT-Theme 15 Premium Wordpress Theme]]></category>
		<category><![CDATA[tumblr themes]]></category>
		<category><![CDATA[U-Design WordPress Theme]]></category>

		<guid isPermaLink="false">http://zackperdue.com/?p=627</guid>
		<description><![CDATA[5 beautiful Wordpress Themes under $50. If you are looking to start a blog or a new portfolio website, then I would take a look at these themes first. They are popular on the market and just what you need! 
Related posts:<ol>
<li><a href='http://zackperdue.com/plugins/wordpress-theme-logo-plugin' rel='bookmark' title='WordPress Theme Logo Plugin'>WordPress Theme Logo Plugin</a> <small>Tada I would like to introduce you to my first...</small></li>
<li><a href='http://zackperdue.com/mashup/5-awesome-website-boilerplates-to-get-your-project-started' rel='bookmark' title='5 Awesome Website Boilerplates To Get Your Project Started'>5 Awesome Website Boilerplates To Get Your Project Started</a> <small>If you are a freelance Web Developer, then chances are...</small></li>
</ol>]]></description>
			<content:encoded><![CDATA[<h4>1. <a href="http://themeforest.net/item/boulevard-a-wordpress-magazine-theme/full_screen_preview/607355" title="Boulevard WordPress Theme" target="_blank">Boulevard WordPress Theme</a></h4>
<p><img src="http://zackperdue.com/wp-content/uploads/2012/01/Page-Capture-1-copy.png" alt="" title="Boulevard WordPress Theme" width="520" height="1061" class="aligncenter size-full wp-image-629" /></p>
<h4>2. <a href="http://themeforest.net/item/udesign-wordpress-theme/full_screen_preview/253220" title="U-Design WordPress Theme " target="_blank">U-Design WordPress Theme</a></h4>
<p><img src="http://zackperdue.com/wp-content/uploads/2012/01/Page-Capture-1.png" alt="" title="U-Design WordPress Theme" width="520" height="902" class="aligncenter size-full wp-image-630" /></p>
<h4>3. <a href="http://themes.goodlayers.com/?theme=modernize" title="Modernize - Flexibility of WordPress " target="_blank">Modernize &#8211; Flexibility of WordPress</a></h4>
<p><img src="http://zackperdue.com/wp-content/uploads/2012/01/Page-Capture-2.png" alt="" title="Modernize - Flexibility of WordPress" width="520" height="1036" class="aligncenter size-full wp-image-631" /></p>
<h4>4. <a href="http://themeforest.net/item/diverso-a-flexible-wordpress-theme/full_screen_preview/1239626" title="Di'verso - A Flexible WordPress Theme " target="_blank">Di&#8217;verso &#8211; A Flexible WordPress Theme</a></h4>
<p><img src="http://zackperdue.com/wp-content/uploads/2012/01/Page-Capture-4.png" alt="" title="Di&#039;verso - A Flexible WordPress Theme " width="520" height="1102" class="aligncenter size-full wp-image-632" /></p>
<h4>5. <a href="http://themeforest.net/item/rttheme-15-premium-wordpress-theme/full_screen_preview/781397" title="RT-Theme 15 Premium WordPress Theme" target="_blank">RT-Theme 15 Premium WordPress Theme</a></h4>
<p><img src="http://zackperdue.com/wp-content/uploads/2012/01/Page-Capture-5.png" alt="" title="Page Capture 5RT-Theme 15 Premium WordPress Theme " width="520" height="539" class="aligncenter size-full wp-image-633" /></p>
<p>Related posts:</p><ol>
<li><a href='http://zackperdue.com/plugins/wordpress-theme-logo-plugin' rel='bookmark' title='WordPress Theme Logo Plugin'>WordPress Theme Logo Plugin</a> <small>Tada I would like to introduce you to my first...</small></li>
<li><a href='http://zackperdue.com/mashup/5-awesome-website-boilerplates-to-get-your-project-started' rel='bookmark' title='5 Awesome Website Boilerplates To Get Your Project Started'>5 Awesome Website Boilerplates To Get Your Project Started</a> <small>If you are a freelance Web Developer, then chances are...</small></li>
</ol>
<p><a href="http://feedads.g.doubleclick.net/~a/-zaY4ocVqD9JEZdJy7cvJn9r8A8/0/da"><img src="http://feedads.g.doubleclick.net/~a/-zaY4ocVqD9JEZdJy7cvJn9r8A8/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/-zaY4ocVqD9JEZdJy7cvJn9r8A8/1/da"><img src="http://feedads.g.doubleclick.net/~a/-zaY4ocVqD9JEZdJy7cvJn9r8A8/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/zackperdue/jTgK/~4/7XIRzOq19k4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://zackperdue.com/mashup/5-cheap-and-popular-wordpress-themes/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://zackperdue.com/mashup/5-cheap-and-popular-wordpress-themes</feedburner:origLink></item>
		<item>
		<title>3 Clever Ways To Protect Your Email From Spammers</title>
		<link>http://feedproxy.google.com/~r/zackperdue/jTgK/~3/yyQOy0gxPQU/protect-your-email-from-spammers</link>
		<comments>http://zackperdue.com/tutorials/protect-your-email-from-spammers#comments</comments>
		<pubDate>Wed, 18 Jan 2012 19:26:32 +0000</pubDate>
		<dc:creator>Zack</dc:creator>
				<category><![CDATA[Kohana]]></category>
		<category><![CDATA[Plugins]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[anti spam]]></category>
		<category><![CDATA[check email]]></category>
		<category><![CDATA[email obfuscation]]></category>
		<category><![CDATA[how to stop spam]]></category>
		<category><![CDATA[i mail]]></category>
		<category><![CDATA[obfuscate email]]></category>
		<category><![CDATA[secure email]]></category>
		<category><![CDATA[spam blocker]]></category>
		<category><![CDATA[spam bots]]></category>
		<category><![CDATA[what is email]]></category>
		<category><![CDATA[what is encryption]]></category>

		<guid isPermaLink="false">http://zackperdue.com/?p=597</guid>
		<description><![CDATA[Ever get spam mail in your inbox? I know before I implemented these three tips I used to get a lot of spam. Now all my spam is gone!
No related posts.]]></description>
			<content:encoded><![CDATA[<p>Ever get spam mail in your inbox? I know before I implemented these methods below, I did.</p>
<h4>1. CSS Text Direction</h4>
<p>Its simple, reverse the text so bots can&#8217;t read it.<br />
The CSS</p>
<pre>
.reverse{
	direction: rtl;
	unicode-bidi: bidi-override;
}
</pre>
<p>The HTML</p>
<pre>
&lt;span class=&quot;reverse&quot;&gt;moc.evitaercydiggiz@ofni&lt;/span&gt;
</pre>
<style type="text/css">
.reverse{
	direction: rtl; 
	unicode-bidi: bidi-override;
}
</style>
<p>Which looks like this: <span class="reverse">moc.evitaercydiggiz@ofni</span></p>
<h4>2. PHP Obfuscation</h4>
<p>This one is a little more involved, but this one is click-able.</p>
<pre>
&lt;?php

function obfuscate($string)
{
	$safe = '';
	foreach (str_split($string) as $letter)
	{
		switch (rand(1, 3))
		{
			// HTML entity code
			case 1:
				$safe .= '&amp;#'.ord($letter).';';
			break;

			// Hex character code
			case 2:
				$safe .= '&amp;#x'.dechex(ord($letter)).';';
			break;

			// Raw (no) encoding
			case 3:
				$safe .= $letter;
		}
	}

	return $safe;
}

function email($email)
{
	// Make sure the at sign is always obfuscated
	return str_replace('@', '&amp;#64;', obfuscate($email));
}

function mailto($email, $title = NULL)
{
	// Obfuscate email address
	$email = email($email);

	if ($title === NULL)
	{
		// Use the email address as the title
		$title = $email;
	}

	return '&lt;a href=&quot;&amp;#109;&amp;#097;&amp;#105;&amp;#108;&amp;#116;&amp;#111;&amp;#058;'.$email.'&quot;&gt;'.$title.'&lt;/a&gt;';
}

?&gt;
</pre>
<p style="font-size: 10px;">Functions taken from <a href="https://github.com/kohana/core/blob/3.2/master/classes/kohana/html.php" title="Kohana Framework" target="_blank">Kohana Framework</a></p>
<p>The implementation using php:</p>
<pre>
&lt;?php
$email = 'info(at)ziggidycreative.com';
echo mailto($email); ?&gt;
</pre>
<p>Which looks like this:</p>
<pre>&lt;a href=&quot;&amp;#109;&amp;#097;&amp;#105;&amp;#108;&amp;#116;&amp;#111;&amp;#058;&amp;#x7a;&amp;#97;&amp;#99;&amp;#107;&amp;#64;zi&amp;#103;g&amp;#105;&amp;#100;&amp;#121;&amp;#99;&amp;#114;e&amp;#97;&amp;#x74;iv&amp;#x65;&amp;#46;&amp;#x63;&amp;#x6f;m&quot;&gt;&amp;#x7a;&amp;#97;&amp;#99;&amp;#107;&amp;#64;zi&amp;#103;g&amp;#105;&amp;#100;&amp;#121;&amp;#99;&amp;#114;e&amp;#97;&amp;#x74;iv&amp;#x65;&amp;#46;&amp;#x63;&amp;#x6f;m&lt;/a&gt;</pre>
<h4>3. CSS Hiding</h4>
<p>Trick the spammers by hiding some silly text in the middle of your email.<br />
The CSS</p>
<pre>
.hidden{
	display: none;
}
</pre>
<p>The HTML</p>
<pre>
&lt;span class=&quot;email&quot;&gt;info@&lt;span class=&quot;hidden&quot;&gt;istoppedyourspam&lt;/span&gt;ziggidycreative.com&lt;/span&gt;
</pre>
<p>This is what the bot will see: <code>info@istoppedyourspamziggidycreative.com</code> but non spammers will see your actual email.</p>
<h4>Conclusion</h4>
<p>You just learned 3 simple ways to obfuscate your email from spammers. Use these wisely and you will be spam free!</p>
<p>No related posts.</p>
<p><a href="http://feedads.g.doubleclick.net/~a/aLf7zYfJ4DFjdKt132FeK2e7E7k/0/da"><img src="http://feedads.g.doubleclick.net/~a/aLf7zYfJ4DFjdKt132FeK2e7E7k/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/aLf7zYfJ4DFjdKt132FeK2e7E7k/1/da"><img src="http://feedads.g.doubleclick.net/~a/aLf7zYfJ4DFjdKt132FeK2e7E7k/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/zackperdue/jTgK/~4/yyQOy0gxPQU" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://zackperdue.com/tutorials/protect-your-email-from-spammers/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://zackperdue.com/tutorials/protect-your-email-from-spammers</feedburner:origLink></item>
	</channel>
</rss><!-- This Quick Cache file was built for (  zackperdue.com/feed ) in 0.87429 seconds, on May 26th, 2012 at 2:16 pm UTC. --><!-- This Quick Cache file will automatically expire ( and be re-built automatically ) on May 26th, 2012 at 3:16 pm UTC --><!-- +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ --><!-- Quick Cache Is Fully Functional :-) ... A Quick Cache file was just served for (  zackperdue.com/feed ) in 0.02989 seconds, on May 26th, 2012 at 3:12 pm UTC. -->

