<?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>Will Anderson</title>
	
	<link>http://www.itsananderson.com</link>
	<description>WordPress, Programming, Life</description>
	<lastBuildDate>Fri, 16 Dec 2011 02:25:23 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
<xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" />
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/itsananderson" /><feedburner:info uri="itsananderson" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
		<title>Configuring Windows with GitHub</title>
		<link>http://feedproxy.google.com/~r/itsananderson/~3/Eaupv9rd5hM/</link>
		<comments>http://www.itsananderson.com/2011/12/configuring-windows-with-github/#comments</comments>
		<pubDate>Fri, 16 Dec 2011 02:21:25 +0000</pubDate>
		<dc:creator>Will</dc:creator>
				<category><![CDATA[Git]]></category>
		<category><![CDATA[GitHub]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://www.itsananderson.com/?p=1129</guid>
		<description><![CDATA[If you&#8217;re a Windows developer like me, you&#8217;ve probably had trouble working with GitHub. Here&#8217;s what I did. Hopefully this will be helpful to you. First you need to grab a copy of Git for Windows. Once you&#8217;ve downloaded the latest version, launch it and go through the license and location screens. Once you get [...]]]></description>
			<content:encoded><![CDATA[<p>If you&#8217;re a Windows developer like me, you&#8217;ve probably had trouble working with GitHub. Here&#8217;s what I did. Hopefully this will be helpful to you.</p>
<p><span id="more-1129"></span>First you need to grab a copy of <a href="http://code.google.com/p/msysgit/">Git for Windows</a>. Once you&#8217;ve downloaded the latest version, launch it and go through the license and location screens. Once you get to the &#8220;Select Components&#8221; screen, make sure both Context menu entries are selected. If you want, select the TrueType font option. That one shouldn&#8217;t really matter.</p>
<p style="text-align: center;"><img class="size-full wp-image-1130 aligncenter" title="select-components" src="http://www.itsananderson.com/wp-content/uploads/select-components.png" alt="" width="539" height="428" /></p>
<p style="text-align: left;">Jump ahead a few more frames and you&#8217;ll get to the SSH executable option. Choose &#8220;OpenSSH&#8221;, unless you have a compelling reason to use Plink.</p>
<p style="text-align: left;"><img class="aligncenter size-full wp-image-1131" title="openssh" src="http://www.itsananderson.com/wp-content/uploads/openssh.png" alt="" width="546" height="432" /></p>
<p style="text-align: left;">Run through the rest of the frames, accepting the defaults. You now have Git installed on your machine, but we&#8217;re not quite done yet. GitHub uses public/private key encryption. This means you don&#8217;t commit with a username and password, like most SVN setups. Instead, you tell GitHub your public key, then use your private key to authenticate.</p>
<p style="text-align: left;">If you don&#8217;t already have a public/private key pair, you need to generate one. You can do so with <a href="http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html">PuTTYgen</a>. If you launch PuTTYgen, you should see something like this:</p>
<p style="text-align: left;"><img class="aligncenter size-full wp-image-1132" title="puttygen" src="http://www.itsananderson.com/wp-content/uploads/puttygen.png" alt="" width="528" height="520" /></p>
<p style="text-align: left;">Click &#8220;Generate&#8221; and move your mouse around for a bit. In a few seconds you&#8217;ll have a key. Go ahead and copy the public key (the big text box). We&#8217;ll be entering that into GitHub, but don&#8217;t close PuTTYgen just yet. Back at GitHub, if you go to your account settings, there&#8217;s a page for &#8220;SSH Public Keys&#8221;. There you can click &#8220;Add a public key&#8221;, or &#8220;Add another public key&#8221; (if you already have one). Paste in the public key, give it a descriptive title, and save.</p>
<p style="text-align: left;"><img class="aligncenter size-full wp-image-1133" title="github-pubkey" src="http://www.itsananderson.com/wp-content/uploads/github-pubkey.png" alt="" width="439" height="310" /></p>
<p style="text-align: left;">Great. Now GitHub knows your public key. This means you can use your private key to authenticate. Back to PuTTYgen. If you want to make your private key more secure, enter a passphrase. This makes it so, even if somebody gets your private key, they can&#8217;t use it to access GitHub unless they also know your passphrase. Once you&#8217;ve entered your passphrase, go to Conversions -&gt; Export OpenSSH key.</p>
<p style="text-align: left;"><img class="aligncenter size-full wp-image-1134" title="export-ssh-1" src="http://www.itsananderson.com/wp-content/uploads/export-ssh-1.png" alt="" width="530" height="511" /></p>
<p style="text-align: left;">You need to save your key in a very specific location. Go to your home directory (C:\Users\&lt;username&gt;\). Create a folder called &#8220;.ssh&#8221;. Now save the OpenSSH key to &#8220;id_rsa&#8221; inside that folder. So for example, if your username is &#8220;banana&#8221;, you should now have a file C:\Users\banana\.ssh\id_rsa that contains your private key. It&#8217;s also a good idea to save your public key, in case you need to use it for any other servers at some point. Click the &#8220;Save public key&#8221; button and save your public key in the same folder. Call it &#8220;id_rsa.pub&#8221;.</p>
<p style="text-align: left;">You&#8217;re just about there. Go to your GitHub repository and select and copy the text in the textbox near the top of the page. Make sure SSH is selected.</p>
<p style="text-align: left;"><img class="aligncenter size-full wp-image-1135" title="github-url" src="http://www.itsananderson.com/wp-content/uploads/github-url.png" alt="" width="664" height="33" /></p>
<p style="text-align: left;">Open up Git Bash. You should be able to find it in your start menu. &#8220;cd&#8221; to the directory where you plan on checking out your code. For example, if you want your code to be located in C:\programming\project then you want to &#8220;cd&#8221; to C:\programming.</p>
<p style="text-align: left;">Type out &#8220;git clone &#8220;, but don&#8217;t hit enter yet. Go to the top left corner of the Git Bash window and click. In the menu that pops up, select Edit -&gt; Paste to paste the URL of your repository, but still don&#8217;t hit enter. Finally, type the name you want to call the project folder. In our example, you&#8217;d want something like this:</p>
<pre>git clone&nbsp;git@github.com:itsananderson/wp-sendgrid.git project</pre>
<p>Now you can hit enter <img src='http://www.itsananderson.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>If you entered a passphrase for your private key, it will ask you for it, then if all goes well, your repository should be downloaded. This isn&#8217;t really a tutorial on Git commands, but here are a few to get you started:</p>
<p>See what files have changed:</p>
<pre>git status</pre>
<p>&nbsp;</p>
<p>Add a file (new or modified, it doesn&#8217;t matter. You need to add it to commit it)</p>
<pre>git add file.php</pre>
<p>&nbsp;</p>
<p>Add several files</p>
<pre>git add *.php</pre>
<p>&nbsp;</p>
<p>Commit your changes locally (doesn&#8217;t put them on GitHub, just stores an update locally)</p>
<pre>git commit -m "Your commit message here"</pre>
<p>&nbsp;</p>
<p>Push your changes up to GitHub</p>
<pre>git push -u origin master</pre>
<p>&nbsp;</p>
<p>Pull down updates from GitHub</p>
<pre>git pull</pre>
<p>That&#8217;s about it. There&#8217;s more to Git (which I&#8217;m still learning about), but this should hopefully be enough to help you get started.</p>

<p><a href="http://feedads.g.doubleclick.net/~a/BB0_lmlwLpQW_7fvHyPSct2Wqz8/0/da"><img src="http://feedads.g.doubleclick.net/~a/BB0_lmlwLpQW_7fvHyPSct2Wqz8/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/BB0_lmlwLpQW_7fvHyPSct2Wqz8/1/da"><img src="http://feedads.g.doubleclick.net/~a/BB0_lmlwLpQW_7fvHyPSct2Wqz8/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/itsananderson/~4/Eaupv9rd5hM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.itsananderson.com/2011/12/configuring-windows-with-github/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.itsananderson.com/2011/12/configuring-windows-with-github/</feedburner:origLink></item>
		<item>
		<title>New Plugin: WP SendGrid</title>
		<link>http://feedproxy.google.com/~r/itsananderson/~3/O68cs0lYCIw/</link>
		<comments>http://www.itsananderson.com/2011/12/new-plugin-wp-sendgrid/#comments</comments>
		<pubDate>Thu, 15 Dec 2011 14:34:36 +0000</pubDate>
		<dc:creator>Will</dc:creator>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[Email]]></category>
		<category><![CDATA[Plugin]]></category>
		<category><![CDATA[SendGrid]]></category>

		<guid isPermaLink="false">http://www.itsananderson.com/?p=1119</guid>
		<description><![CDATA[A couple of months ago, I had the oportunity to attend an API Hackday event in Bloomington. At the event, I created some cool WordPress tools using Twilio (more on that at a later date), but I ended up having some free time (because Twilio&#8217;s API is so easy to use!), so I wrote another [...]]]></description>
			<content:encoded><![CDATA[<p>A couple of months ago, I had the oportunity to attend an <a href="http://www.apihackday.com/" title="API Hackday Website">API Hackday</a> event in Bloomington. At the event, I created some cool WordPress tools using <a href="http://www.twilio.com/" title="Twilio Website">Twilio</a> (more on that at a later date), but I ended up having some free time (because Twilio&#8217;s API is so easy to use!), so I wrote another plugin called <a href="http://www.itsananderson.com/plugins/wp-sendgrid/" title="WP SendGrid">WP SendGrid</a> using the SendGrid API.</p>
<p><span id="more-1119"></span>This plugin extends WordPress&#8217; wp_mail() function to use SendGrid&#8217;s API for all emails. This was useful to me because I&#8217;ve never been able to figure out how to get PHP to send emails in Windows. In the past, when I&#8217;ve worked on projects that send emails, I always had to upload it to a Linux server to test the email functionality. If anything didn&#8217;t work, I had to edit locally, then upload again to test it. After a few iterations, that gets really old. With WP SendGrid, I can send emails from my local machine, so debugging issues is <strong>much</strong> easier.</p>
<p>Fast-forward a few months. This week I decided to spend a little more time polishing the plugin. I&#8217;d only spent about 45 minutes on it at the HackDay, which shows how simple it is to use SendGrid&#8217;s API. What I put together was enough to meet my needs, but I was using hardcoded values, and wasn&#8217;t considering every edge-case. After a few more hours of work, I had a complete plugin with a nice configuration UI.</p>
<p>If you develop for WordPress on Windows, or you have trouble sending email from PHP on another platform, you&#8217;ll want to check this plugin out. <a href="http://www.itsananderson.com/plugins/wp-sendgrid/" title="WP SendGrid">Visit the plugin page</a>.</p>
<p>This is a new plugin, so YMMV. If you run into any issues, let me know by leaving a comment here, or submitting a ticket on the <a href="https://github.com/itsananderson/wp-sendgrid" title="WP SendGrid on GitHub">GitHub</a> project.</p>

<p><a href="http://feedads.g.doubleclick.net/~a/J7ZBivVViZneH8jmG-iYj8BLoEA/0/da"><img src="http://feedads.g.doubleclick.net/~a/J7ZBivVViZneH8jmG-iYj8BLoEA/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/J7ZBivVViZneH8jmG-iYj8BLoEA/1/da"><img src="http://feedads.g.doubleclick.net/~a/J7ZBivVViZneH8jmG-iYj8BLoEA/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/itsananderson/~4/O68cs0lYCIw" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.itsananderson.com/2011/12/new-plugin-wp-sendgrid/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		<feedburner:origLink>http://www.itsananderson.com/2011/12/new-plugin-wp-sendgrid/</feedburner:origLink></item>
		<item>
		<title>New Plugin: Minimum Password Strength</title>
		<link>http://feedproxy.google.com/~r/itsananderson/~3/QsMoOrfJXDE/</link>
		<comments>http://www.itsananderson.com/2011/12/new-plugin-minimum-password-strength/#comments</comments>
		<pubDate>Thu, 15 Dec 2011 03:35:22 +0000</pubDate>
		<dc:creator>Will</dc:creator>
				<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://www.itsananderson.com/?p=1110</guid>
		<description><![CDATA[A couple of years ago I released a plugin called &#8220;Minimum Password Length&#8220;. It&#8217;s been pretty popular, mostly thanks to some link love by David Peralty. Ever since I released the plugin, I&#8217;ve been thinking &#8220;wouldn&#8217;t it be nice to do something similar, but harness the WordPress password strength meter?&#8221;. Well, I finally took the [...]]]></description>
			<content:encoded><![CDATA[<p>A couple of years ago I released a plugin called &#8220;<a href="http://www.itsananderson.com/plugins/minimum-password-length/" title="Minimum Password Length">Minimum Password Length</a>&#8220;. It&#8217;s been pretty popular, mostly thanks to some <a href="http://www.bloggingpro.com/archives/2009/08/23/wordpress-plugin-minimum-password-length/">link love</a> by <a href="http://brandingdavid.com/">David Peralty</a>. Ever since I released the plugin, I&#8217;ve been thinking &#8220;wouldn&#8217;t it be nice to do something similar, but harness the WordPress password strength meter?&#8221;. Well, I finally took the time to do that, and so we have the <a href="http://www.itsananderson.com/plugins/minimum-password-strength/" title="Minimum Password Strength">Minimum Password Strength</a> plugin.</p>
<p>This is also a special plugin, because it&#8217;s the first one I&#8217;ve simultaneously published on GitHub and my site. I plan on uploading my other plugins to GitHub at some point (in fact, I uploaded <a href="http://www.itsananderson.com/plugins/short-comment-filter/" title="Short Comment Filter">Short Comment Filter</a>, another popular plugin, a few days ago), but Minimum Password Strength is the first one that&#8217;s there from the start.</p>

<p><a href="http://feedads.g.doubleclick.net/~a/KPhjeWKtebDmJwK8-OFCbI3afZA/0/da"><img src="http://feedads.g.doubleclick.net/~a/KPhjeWKtebDmJwK8-OFCbI3afZA/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/KPhjeWKtebDmJwK8-OFCbI3afZA/1/da"><img src="http://feedads.g.doubleclick.net/~a/KPhjeWKtebDmJwK8-OFCbI3afZA/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/itsananderson/~4/QsMoOrfJXDE" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.itsananderson.com/2011/12/new-plugin-minimum-password-strength/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.itsananderson.com/2011/12/new-plugin-minimum-password-strength/</feedburner:origLink></item>
		<item>
		<title>Working With GitHub in Windows</title>
		<link>http://feedproxy.google.com/~r/itsananderson/~3/EYkaleK8w0w/</link>
		<comments>http://www.itsananderson.com/2011/12/working-with-github-in-windows/#comments</comments>
		<pubDate>Thu, 15 Dec 2011 03:19:11 +0000</pubDate>
		<dc:creator>Will</dc:creator>
				<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://www.itsananderson.com/?p=1105</guid>
		<description><![CDATA[I&#8217;m working with GitHub for a school project this quarter. It&#8217;s the first time I&#8217;ve done anything but dabble with Git, so it took some time for me to figure it out. The commands weren&#8217;t that bad, because they&#8217;re pretty similar to SVN (which I work with from the command line all the time), but [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m working with GitHub for a school project this quarter. It&#8217;s the first time I&#8217;ve done anything but dabble with Git, so it took some time for me to figure it out. The commands weren&#8217;t that bad, because they&#8217;re pretty similar to SVN (which I work with from the command line all the time), but getting set up in Windows was a bit of a pain. Turns out if you install Git for Windows with the &#8220;Use PuTTY&#8221; option, it uses PuTTY ssh keys to authenticate with Git. This wouldn&#8217;t be a big deal, except PuTTY uses a special private key format, and I already have a keypair that I use on my Mac. I finally figured out how to convert that to PuTTY format using PuTTYgen, and then I figured out that I needed to start Pageant and manually add the key in order to use it for authentication.</p>
<p>Anyway, despite all this pain, I decided to start using GitHub to host my open source WordPress plugins. This gives me some more experience with Git, plus it provides public source control, which is better for open source projects than the private SVN repository I was already using.</p>
<p>Long story short, if you want to see what I&#8217;ve uploaded so far, check out <a href="https://github.com/itsananderson" title="My GitHub Page">my GitHub page</a>.</p>

<p><a href="http://feedads.g.doubleclick.net/~a/84N0ez__uMjMu6_6UVsC79q3a9k/0/da"><img src="http://feedads.g.doubleclick.net/~a/84N0ez__uMjMu6_6UVsC79q3a9k/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/84N0ez__uMjMu6_6UVsC79q3a9k/1/da"><img src="http://feedads.g.doubleclick.net/~a/84N0ez__uMjMu6_6UVsC79q3a9k/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/itsananderson/~4/EYkaleK8w0w" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.itsananderson.com/2011/12/working-with-github-in-windows/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.itsananderson.com/2011/12/working-with-github-in-windows/</feedburner:origLink></item>
		<item>
		<title>Building WPGlow for the WordPress Download Counter</title>
		<link>http://feedproxy.google.com/~r/itsananderson/~3/WQIR1t1Rlgo/</link>
		<comments>http://www.itsananderson.com/2011/12/building-wpglow-for-the-wordpress-download-counter/#comments</comments>
		<pubDate>Wed, 14 Dec 2011 16:45:28 +0000</pubDate>
		<dc:creator>Will</dc:creator>
				<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://www.itsananderson.com/?p=1085</guid>
		<description><![CDATA[A few WordPress releases ago, I decided to build a &#8220;realtime&#8221; download counter (which I&#8217;m calling WPGLow). It relies on the official WordPress download counter, but instead of updating the count every few seconds, it periodically increments the count by one. The rate at which it increments is determined based on how many downloads there [...]]]></description>
			<content:encoded><![CDATA[<p>A few WordPress releases ago, I decided to build a &#8220;realtime&#8221; download counter (which I&#8217;m calling <a href="http://wpglow.itsananderson.com/" title="WPGlow">WPGLow</a>). It relies on the official WordPress download counter, but instead of updating the count every few seconds, it periodically increments the count by one. <span id="more-1085"></span>The rate at which it increments is determined based on how many downloads there have been since the last time the official counter was checked, so it keeps up pretty well with the official counter. That said, if you look at them side-by-side, you&#8217;ll notice that WPGlow is a little behind. This is because it is counting up to the current download count, so it&#8217;s always a few seconds behind. If you look at other &#8220;realtime&#8221; download counters, like the one Mozilla used to have (before they released a new version of Firefox every other day), you&#8217;ll actually notice that they do the same thing, except they&#8217;re usually at least a minute behind. They just get cached data from the last-minute or two, and then display it in realtime like it&#8217;s fresh.</p>
<p>Anyway, I wrote this counter a while ago, but I had some weird bugs that I never fixed, so I never released it. When WordPress 3.3 came out, I decided to revive it. <a href="http://wpglow.itsananderson.com/" title="WPGlow">Here it is!</a></p>

<p><a href="http://feedads.g.doubleclick.net/~a/HrQGx8CPkIThsAbZLu0VPVJC9tE/0/da"><img src="http://feedads.g.doubleclick.net/~a/HrQGx8CPkIThsAbZLu0VPVJC9tE/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/HrQGx8CPkIThsAbZLu0VPVJC9tE/1/da"><img src="http://feedads.g.doubleclick.net/~a/HrQGx8CPkIThsAbZLu0VPVJC9tE/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/itsananderson/~4/WQIR1t1Rlgo" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.itsananderson.com/2011/12/building-wpglow-for-the-wordpress-download-counter/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.itsananderson.com/2011/12/building-wpglow-for-the-wordpress-download-counter/</feedburner:origLink></item>
		<item>
		<title>Microsoft Countdown</title>
		<link>http://feedproxy.google.com/~r/itsananderson/~3/pYXfmDIANv8/</link>
		<comments>http://www.itsananderson.com/2011/12/microsoft-countdown/#comments</comments>
		<pubDate>Tue, 13 Dec 2011 04:18:52 +0000</pubDate>
		<dc:creator>Will</dc:creator>
				<category><![CDATA[Microsoft]]></category>

		<guid isPermaLink="false">http://www.itsananderson.com/?p=1068</guid>
		<description><![CDATA[I just realized that 6 months from today will be my first day at Microsoft! To celebrate, I revived my old &#8220;Seattle Countdown&#8221; widget.]]></description>
			<content:encoded><![CDATA[<p>I just realized that 6 months from today will be my first day at Microsoft! To celebrate, I revived my old &#8220;Seattle Countdown&#8221; widget. </p>

<p><a href="http://feedads.g.doubleclick.net/~a/FIMOqDDBzVoqk5vYh-Br1TAQyAU/0/da"><img src="http://feedads.g.doubleclick.net/~a/FIMOqDDBzVoqk5vYh-Br1TAQyAU/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/FIMOqDDBzVoqk5vYh-Br1TAQyAU/1/da"><img src="http://feedads.g.doubleclick.net/~a/FIMOqDDBzVoqk5vYh-Br1TAQyAU/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/itsananderson/~4/pYXfmDIANv8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.itsananderson.com/2011/12/microsoft-countdown/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.itsananderson.com/2011/12/microsoft-countdown/</feedburner:origLink></item>
		<item>
		<title>Creating a Custom Chrome Search Engine</title>
		<link>http://feedproxy.google.com/~r/itsananderson/~3/526e3tNaH0E/</link>
		<comments>http://www.itsananderson.com/2011/11/creating-a-custom-chrome-search-engine/#comments</comments>
		<pubDate>Wed, 30 Nov 2011 03:59:36 +0000</pubDate>
		<dc:creator>Will</dc:creator>
				<category><![CDATA[Rose-Hulman]]></category>

		<guid isPermaLink="false">http://www.itsananderson.com/?p=1059</guid>
		<description><![CDATA[Custom search engines in Chrome are a pretty cool feature. For example, Jimmy Theis has a great blog post about using them to look up someone&#8217;s Rose-Hulman class schedule. The one shortcoming I&#8217;ve found is that you can&#8217;t do any processing of the actual search term. In other words, you have to blindly jump to [...]]]></description>
			<content:encoded><![CDATA[<p>Custom search engines in Chrome are a pretty cool feature. For example, <a href="http://jetheis.com/blog/2011/11/28/accelerating-rose-hulman-schedule-lookup-with-google-chrome/">Jimmy Theis has a great blog post</a> about using them to look up someone&#8217;s Rose-Hulman class schedule. The one shortcoming I&#8217;ve found is that you can&#8217;t do any processing of the actual search term. In other words, you have to blindly jump to the search engine URL without evaluating the actual query.</p>
<p><span id="more-1059"></span><br />
In the case of the Rose-Hulman lookup page, there are actually two parameters that it would be nice to query on. The first is the username of the person you&#8217;re looking up, and the second is which quarter (Fall, Winter, Spring, Summer) to show. With Chrome&#8217;s custom search engines, you can&#8217;t specify multiple parameters, so you have to hardcode the quarter parameter (which is hardly convenient). To resolve this problem, I wrote a simple PHP script that takes in the search a search query (like &#8220;anderswc 1&#8243; or &#8220;jetheis 201130&#8243;) and translates it to the correct schedule lookup page query (my fall schedule, or Jimmy&#8217;s spring schedule last year). Here&#8217;s the script:</p>
<pre>

&lt;?php

function get_academic_year() {
	if ( intval( date('n') ) >= 8 ) {
		return date( 'Y' ) + 1;
	} else {
		return intval( date( 'Y' ) );
	}
}

function get_quarter() {
	$month = intval( date( 'n' ) );
	$day = intval( date( 'j' ) );

	if ( 6 == $month || 7 == $month ) {
		return 40;
	} elseif ( ( 8 &lt;= $month &#038;&#038; 10 >= $month ) || ( 11 == $month &#038;&#038; 20 >= $day ) ) {
		return 10;
	} elseif ( 11 &lt;= $month || 2 >= $month ) {
		return 20;
	} else {
		return 30;
	}
}

$search = $_GET['search'];

$parts = explode( ' ', $search );

if ( 1 == count( $parts ) ) {
	$term = get_academic_year() . get_quarter();
} else {
	$term = $parts[1];
	if ( strlen( $term ) == 1 ) {
		$term = get_academic_year() . $term . '0';
	} elseif ( strlen( $term ) == 2 ) {
		$term = get_academic_year() . $term;
	}
	$term = intval( $term );
}
$url = 'https://prodweb.rose-hulman.edu/regweb-cgi/reg-sched.pl?termcode=' . $term . '&#038;view=tgrid&#038;id1=' . $parts[0] . '&#038;bt1=ID%2Username';

header( 'Location: ' . $url );
</pre>
<p>Now you can create a custom search engine to point to this script (I&#8217;ve got a copy running at http://itsananderson.com/schedule.php), and specify &#8220;?search=%s&#8221;. For example, this is the custom search engine definition I have:</p>
<pre>

http://itsananderson.com/schedule.php?search=%s
</pre>
<p>Search syntax is pretty simple.</p>
<ul>
<li>&#8220;&lt;username>&#8221; to look up a user&#8217;s current schedule.</li>
<li>&#8220;&lt;username> &lt;quarter>&#8221; to look up a user&#8217;s schedule for a specific quarter this year. Specify quarters as either 1, 2, 3, 4 or 10, 20, 30, 40</li>
<li>&#8220;&lt;username> &lt;year>&lt;quarter>&#8221; to look up a user&#8217;s schedule for a specific quarter and academic year. Quarters must be formatted with a trailing zero. Example: 201220 is Winter quarter, 2011-2012</li>
</ul>

<p><a href="http://feedads.g.doubleclick.net/~a/JGW-yhHN9L9RjrnCq6zhkNx8Lss/0/da"><img src="http://feedads.g.doubleclick.net/~a/JGW-yhHN9L9RjrnCq6zhkNx8Lss/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/JGW-yhHN9L9RjrnCq6zhkNx8Lss/1/da"><img src="http://feedads.g.doubleclick.net/~a/JGW-yhHN9L9RjrnCq6zhkNx8Lss/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/itsananderson/~4/526e3tNaH0E" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.itsananderson.com/2011/11/creating-a-custom-chrome-search-engine/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.itsananderson.com/2011/11/creating-a-custom-chrome-search-engine/</feedburner:origLink></item>
		<item>
		<title>Getting Called Class Name in Static Functions</title>
		<link>http://feedproxy.google.com/~r/itsananderson/~3/6Blf5P31ppc/</link>
		<comments>http://www.itsananderson.com/2011/09/getting-called-class-name-in-static-functions/#comments</comments>
		<pubDate>Mon, 05 Sep 2011 17:31:58 +0000</pubDate>
		<dc:creator>Will</dc:creator>
				<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.itsananderson.com/?p=1048</guid>
		<description><![CDATA[I posted a few months ago about using static methods in WordPress plugins. I&#8217;ve used that method myself for the last few months, and I&#8217;ve really grown to love the style of code that this technique produces. One part, however, was a source of some pain: Inheritance To make a long story short, getting the [...]]]></description>
			<content:encoded><![CDATA[<p>I posted a few months ago about <a href="http://www.itsananderson.com/2011/04/using-static-methods-in-wordpress-plugins/" title="Using Static Methods in WordPress Plugins">using static methods in WordPress plugins</a>. I&#8217;ve used that method myself for the last few months, and I&#8217;ve really grown to love the style of code that this technique produces. One part, however, was a source of some pain: Inheritance</p>
<p><span id="more-1048"></span>To make a long story short, getting the actual class name of the current object in an instance method is easy, just call <code>get_class( $this )</code>. The problem is, $this doesn&#8217;t exist in a static method, and just calling get_class() returns the current class (basically the same as __CLASS__), which isn&#8217;t helpful if you actually want the name of a child class. As an example, consider a base class which has a get_instance() function, for creating an instance of the class, or returning an existing instance if it has already been instantiated.</p>
<pre>
class Singleton {
    private static $instance;
    public static function get_instance() {
        if ( is_null( self::$instance ) ) {
            self::$instance = new Singleton();
        }
        return self::$instance;
    }
    private function __construct() {
        // Singleton constructor stuff
    }
}
</pre>
<p>This is great, but the problem arises when we try to extend that singleton class. Ideally, the inherited get_instance() method would return an instance of the actual class, but with the above implementation, it would always return an instance of the Singleton class. Here&#8217;s an alternative, which uses the get_called_class() function.</p>
<pre>
class Singleton {
    private static $instances = array();
    public static function get_instance() {
        $class = get_called_class();
        if ( empty( self::$instances[$class] ) ) {
            self::$instances[$class] = new $class();
        }
        return self::$instance;
    }
    private function __construct() {
        // Singleton constructor stuff
    }
}

class Child extends Singleton {
    // Child class stuff
}
</pre>
<p>You&#8217;ll notice that there are a few changes here. First, the Singleton class now stores instances in an associative array, keyed by class name. Second, it uses get_called_class() to get the class on which this method was invoked. This means calling Child::get_instance() will return an instance of Child, not Singleton. Pretty sweet, huh?</p>

<p><a href="http://feedads.g.doubleclick.net/~a/Rez2ezvRebJbuD54j7CNL8kW5sg/0/da"><img src="http://feedads.g.doubleclick.net/~a/Rez2ezvRebJbuD54j7CNL8kW5sg/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/Rez2ezvRebJbuD54j7CNL8kW5sg/1/da"><img src="http://feedads.g.doubleclick.net/~a/Rez2ezvRebJbuD54j7CNL8kW5sg/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/itsananderson/~4/6Blf5P31ppc" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.itsananderson.com/2011/09/getting-called-class-name-in-static-functions/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://www.itsananderson.com/2011/09/getting-called-class-name-in-static-functions/</feedburner:origLink></item>
		<item>
		<title>Using Static Methods in WordPress Plugins</title>
		<link>http://feedproxy.google.com/~r/itsananderson/~3/hckfZWS-7NI/</link>
		<comments>http://www.itsananderson.com/2011/04/using-static-methods-in-wordpress-plugins/#comments</comments>
		<pubDate>Wed, 27 Apr 2011 03:17:26 +0000</pubDate>
		<dc:creator>Will</dc:creator>
				<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://www.itsananderson.com/?p=1024</guid>
		<description><![CDATA[This evening I was chatting with Nick Ohrn and I threw out an idea that I&#8217;d been thinking about for a while. What if WordPress plugin developers used static methods when they namespaced their plugins? To understand what I&#8217;m babbling on about, consider a very basic plugin that adds square brackets around post titles. It [...]]]></description>
			<content:encoded><![CDATA[<p>This evening I was chatting with <a title="Plugin-Developer.com" href="http://plugin-developer.com">Nick Ohrn</a> and I threw out an idea that I&#8217;d been thinking about for a while. What if WordPress plugin developers used static methods when they namespaced their plugins?</p>
<p><span id="more-1024"></span>To understand what I&#8217;m babbling on about, consider a very basic plugin that adds square brackets around post titles.</p>

	<style type="text/css">

	.code {
		border: 1px solid #ccc;
		font-family: 'Courier New', monospace;
		font-size: 10pt;
	}

	.code .lines {
		float: left;
		background: #eee;
		width: 50px;
		border-right: 1px solid gray;
	}

	.code table {
		border-spacing: 0;
		padding: 0;
		margin: 0;
		width: 100%;
	}

	.code table tr {
		padding: 0;
		margin: 0;
	}

	.code table tr td {
		border-spacing: 0;
		margin: 0;
		padding: 0;
	}

	.code .lines tr {
		width: 100%;
	}

	.code .lines .line {
		text-align: right;
		padding: 0px 3px;
	}

	.code .highlighted-code {
		overflow: auto;
	}

	.code-table {
		overflow: auto;
	}

	.code-row-even {
		background-color: #f9f9f9;
	}

	.code-row-odd {
		background-color: #fff;
	}

	.code .code-row-cell {
		padding-left: 10px;
		white-space: pre;
	}

	.code-comment {
		color: green;
	}

	.code-variable {
		color: blue;
	}

	.code-keyword {
		color: purple;
		font-weight: bold;
	}

	.code-string {
		color: orange;
	}

	.code-number {
		color: red;
	}
	</style>
	<div class="code code-php"><div style="" class="lines"><table><tr><td style="" class="line">1</td></tr><tr><td style="" class="line">2</td></tr><tr><td style="" class="line">3</td></tr><tr><td style="" class="line">4</td></tr><tr><td style="" class="line">5</td></tr><tr><td style="" class="line">6</td></tr><tr><td style="" class="line">7</td></tr></table></div><div class="highlighted-code highlighted-code-php"><table class="code-table"><tr class="code-row code-row-odd"><td class="code-row-cell"><span class="code-comment">/*</span></td></tr><tr class="code-row code-row-even"><td class="code-row-cell"><span class="code-comment"> * Plugin Name: Add Brackets</span></td></tr><tr class="code-row code-row-odd"><td class="code-row-cell"><span class="code-comment"> */</span>
</td></tr><tr class="code-row code-row-even"><td class="code-row-cell"><span class="code-keyword">function</span> ab_add_brackets( <span class="code-variable">$title</span> ) {
</td></tr><tr class="code-row code-row-odd"><td class="code-row-cell">    <span class="code-keyword">return</span> <span class="code-string code-double-string">"[$title]"</span>;
</td></tr><tr class="code-row code-row-even"><td class="code-row-cell">}
</td></tr><tr class="code-row code-row-odd"><td class="code-row-cell">add_filter( <span class="code-string code-single-string">'the_title'</span>, <span class="code-string code-single-string">'ab_add_brackets'</span> );</td></tr></table></div></div>
<p>It really doesn&#8217;t get much simpler than that, but the problem is that there might be another plugin that uses the same prefix. Also, if you decide to change the prefix, you&#8217;ll have to go through and change all of your hook and action registrations too. What a pain.</p>
<p>The next option is to use a class as a namespacing tool. This is fairly common among more experienced WordPress developers.</p>

	<style type="text/css">

	.code {
		border: 1px solid #ccc;
		font-family: 'Courier New', monospace;
		font-size: 10pt;
	}

	.code .lines {
		float: left;
		background: #eee;
		width: 50px;
		border-right: 1px solid gray;
	}

	.code table {
		border-spacing: 0;
		padding: 0;
		margin: 0;
		width: 100%;
	}

	.code table tr {
		padding: 0;
		margin: 0;
	}

	.code table tr td {
		border-spacing: 0;
		margin: 0;
		padding: 0;
	}

	.code .lines tr {
		width: 100%;
	}

	.code .lines .line {
		text-align: right;
		padding: 0px 3px;
	}

	.code .highlighted-code {
		overflow: auto;
	}

	.code-table {
		overflow: auto;
	}

	.code-row-even {
		background-color: #f9f9f9;
	}

	.code-row-odd {
		background-color: #fff;
	}

	.code .code-row-cell {
		padding-left: 10px;
		white-space: pre;
	}

	.code-comment {
		color: green;
	}

	.code-variable {
		color: blue;
	}

	.code-keyword {
		color: purple;
		font-weight: bold;
	}

	.code-string {
		color: orange;
	}

	.code-number {
		color: red;
	}
	</style>
	<div class="code code-php"><div style="" class="lines"><table><tr><td style="" class="line">1</td></tr><tr><td style="" class="line">2</td></tr><tr><td style="" class="line">3</td></tr><tr><td style="" class="line">4</td></tr><tr><td style="" class="line">5</td></tr><tr><td style="" class="line">6</td></tr><tr><td style="" class="line">7</td></tr><tr><td style="" class="line">8</td></tr><tr><td style="" class="line">9</td></tr><tr><td style="" class="line">10</td></tr><tr><td style="" class="line">11</td></tr><tr><td style="" class="line">12</td></tr><tr><td style="" class="line">13</td></tr><tr><td style="" class="line">14</td></tr><tr><td style="" class="line">15</td></tr><tr><td style="" class="line">16</td></tr><tr><td style="" class="line">17</td></tr><tr><td style="" class="line">18</td></tr><tr><td style="" class="line">19</td></tr><tr><td style="" class="line">20</td></tr><tr><td style="" class="line">21</td></tr></table></div><div class="highlighted-code highlighted-code-php"><table class="code-table"><tr class="code-row code-row-odd"><td class="code-row-cell"><span class="code-comment">/*</span></td></tr><tr class="code-row code-row-even"><td class="code-row-cell"><span class="code-comment"> * Plugin Name: Add Brackets</span></td></tr><tr class="code-row code-row-odd"><td class="code-row-cell"><span class="code-comment"> */</span>
</td></tr><tr class="code-row code-row-even"><td class="code-row-cell"><span class="code-keyword">if</span> ( !<span class="code-keyword">class</span>_exists(<span class="code-string code-single-string">'Add_Brackets'</span>) ) {
</td></tr><tr class="code-row code-row-odd"><td class="code-row-cell">    <span class="code-keyword">class</span> Add_Brackets {
</td></tr><tr class="code-row code-row-even"><td class="code-row-cell">        <span class="code-keyword">private</span> <span class="code-keyword">static</span> <span class="code-variable">$instance</span>;
</td></tr><tr class="code-row code-row-odd"><td class="code-row-cell">        <span class="code-keyword">private</span> <span class="code-keyword">function</span> __construct() {
</td></tr><tr class="code-row code-row-even"><td class="code-row-cell">            add_filter( <span class="code-string code-single-string">'the_title'</span>, <span class="code-keyword">array</span>( <span class="code-variable">$this</span>, <span class="code-string code-single-string">'add_brackets'</span> ) );
</td></tr><tr class="code-row code-row-odd"><td class="code-row-cell">        }
</td></tr><tr class="code-row code-row-even"><td class="code-row-cell">        <span class="code-keyword">public</span> <span class="code-keyword">static</span> <span class="code-keyword">function</span> get_instance() {
</td></tr><tr class="code-row code-row-odd"><td class="code-row-cell">            <span class="code-keyword">if</span> ( null == self::<span class="code-variable">$instance</span> ) {
</td></tr><tr class="code-row code-row-even"><td class="code-row-cell">                self::<span class="code-variable">$instance</span> = new Add_Brackets();
</td></tr><tr class="code-row code-row-odd"><td class="code-row-cell">            }
</td></tr><tr class="code-row code-row-even"><td class="code-row-cell">            <span class="code-keyword">return</span> self::<span class="code-variable">$instance</span>;
</td></tr><tr class="code-row code-row-odd"><td class="code-row-cell">        }
</td></tr><tr class="code-row code-row-even"><td class="code-row-cell">        <span class="code-keyword">public</span> <span class="code-keyword">function</span> add_brackets( <span class="code-variable">$title</span> ) {
</td></tr><tr class="code-row code-row-odd"><td class="code-row-cell">            <span class="code-keyword">return</span> <span class="code-string code-double-string">"[$title]"</span>;
</td></tr><tr class="code-row code-row-even"><td class="code-row-cell">        }
</td></tr><tr class="code-row code-row-odd"><td class="code-row-cell">    }
</td></tr><tr class="code-row code-row-even"><td class="code-row-cell">    Add_Brackets::get_instance();
</td></tr><tr class="code-row code-row-odd"><td class="code-row-cell">}</td></tr></table></div></div>
<p>What I propose is developers use static methods instead. There&#8217;s very little difference between a singleton class with instance methods and a class with static methods, and simply using static methods can simplify your code. Check out this example.</p>

	<style type="text/css">

	.code {
		border: 1px solid #ccc;
		font-family: 'Courier New', monospace;
		font-size: 10pt;
	}

	.code .lines {
		float: left;
		background: #eee;
		width: 50px;
		border-right: 1px solid gray;
	}

	.code table {
		border-spacing: 0;
		padding: 0;
		margin: 0;
		width: 100%;
	}

	.code table tr {
		padding: 0;
		margin: 0;
	}

	.code table tr td {
		border-spacing: 0;
		margin: 0;
		padding: 0;
	}

	.code .lines tr {
		width: 100%;
	}

	.code .lines .line {
		text-align: right;
		padding: 0px 3px;
	}

	.code .highlighted-code {
		overflow: auto;
	}

	.code-table {
		overflow: auto;
	}

	.code-row-even {
		background-color: #f9f9f9;
	}

	.code-row-odd {
		background-color: #fff;
	}

	.code .code-row-cell {
		padding-left: 10px;
		white-space: pre;
	}

	.code-comment {
		color: green;
	}

	.code-variable {
		color: blue;
	}

	.code-keyword {
		color: purple;
		font-weight: bold;
	}

	.code-string {
		color: orange;
	}

	.code-number {
		color: red;
	}
	</style>
	<div class="code code-php"><div style="" class="lines"><table><tr><td style="" class="line">1</td></tr><tr><td style="" class="line">2</td></tr><tr><td style="" class="line">3</td></tr><tr><td style="" class="line">4</td></tr><tr><td style="" class="line">5</td></tr><tr><td style="" class="line">6</td></tr><tr><td style="" class="line">7</td></tr><tr><td style="" class="line">8</td></tr><tr><td style="" class="line">9</td></tr><tr><td style="" class="line">10</td></tr><tr><td style="" class="line">11</td></tr><tr><td style="" class="line">12</td></tr><tr><td style="" class="line">13</td></tr><tr><td style="" class="line">14</td></tr></table></div><div class="highlighted-code highlighted-code-php"><table class="code-table"><tr class="code-row code-row-odd"><td class="code-row-cell"><span class="code-comment">/*</span></td></tr><tr class="code-row code-row-even"><td class="code-row-cell"><span class="code-comment"> * Plugin Name: Add Brackets</span></td></tr><tr class="code-row code-row-odd"><td class="code-row-cell"><span class="code-comment"> */</span>
</td></tr><tr class="code-row code-row-even"><td class="code-row-cell"><span class="code-keyword">if</span> ( !<span class="code-keyword">class</span>_exists(<span class="code-string code-single-string">'Add_Brackets'</span>) ) {
</td></tr><tr class="code-row code-row-odd"><td class="code-row-cell">    <span class="code-keyword">class</span> Add_Brackets {
</td></tr><tr class="code-row code-row-even"><td class="code-row-cell">        <span class="code-keyword">public</span> <span class="code-keyword">static</span> <span class="code-keyword">function</span> start() {
</td></tr><tr class="code-row code-row-odd"><td class="code-row-cell">            add_filter( <span class="code-string code-single-string">'the_title'</span>, <span class="code-keyword">array</span>( __CLASS__, <span class="code-string code-single-string">'add_brackets'</span> ) );
</td></tr><tr class="code-row code-row-even"><td class="code-row-cell">        }
</td></tr><tr class="code-row code-row-odd"><td class="code-row-cell">        <span class="code-keyword">public</span> <span class="code-keyword">static</span> <span class="code-keyword">function</span> add_brackets( <span class="code-variable">$title</span> ) {
</td></tr><tr class="code-row code-row-even"><td class="code-row-cell">            <span class="code-keyword">return</span> <span class="code-string code-double-string">"[$title]"</span>;
</td></tr><tr class="code-row code-row-odd"><td class="code-row-cell">        }
</td></tr><tr class="code-row code-row-even"><td class="code-row-cell">    }
</td></tr><tr class="code-row code-row-odd"><td class="code-row-cell">    Add_Brackets::start();
</td></tr><tr class="code-row code-row-even"><td class="code-row-cell">}</td></tr></table></div></div>
<p>So that&#8217;s that. All the advantages of namespacing with classes, with a small reduction in memory overhead (because you&#8217;re passing around strings, rather than objects). Static methods are a PHP5 feature, but with PHP4 support being phased out in WordPress 3.2, this seems like a reasonable next step for WordPress developers to take.</p>
<p>What do you think? Are there any issues with this technique that I&#8217;ve missed? Are there any improvements that could be made? Let me know in the comments!</p>

<p><a href="http://feedads.g.doubleclick.net/~a/T6f_m5L9g7-PvRgNASJ8d-5M8jU/0/da"><img src="http://feedads.g.doubleclick.net/~a/T6f_m5L9g7-PvRgNASJ8d-5M8jU/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/T6f_m5L9g7-PvRgNASJ8d-5M8jU/1/da"><img src="http://feedads.g.doubleclick.net/~a/T6f_m5L9g7-PvRgNASJ8d-5M8jU/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/itsananderson/~4/hckfZWS-7NI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.itsananderson.com/2011/04/using-static-methods-in-wordpress-plugins/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		<feedburner:origLink>http://www.itsananderson.com/2011/04/using-static-methods-in-wordpress-plugins/</feedburner:origLink></item>
		<item>
		<title>WordCamp Seattle Meta</title>
		<link>http://feedproxy.google.com/~r/itsananderson/~3/kU-2FzaX7-c/</link>
		<comments>http://www.itsananderson.com/2011/04/wordcamp-seattle-meta/#comments</comments>
		<pubDate>Sat, 16 Apr 2011 18:36:26 +0000</pubDate>
		<dc:creator>Will</dc:creator>
				<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://www.itsananderson.com/?p=1014</guid>
		<description><![CDATA[Here&#8217;s the extra info for my talk. The slides are available here. The WP_Ajax class is available here. The Simple Post Ratings plugin is available here. I&#8217;ll also post a link to the video on WordPress.tv when it becomes available. EDIT: Here it is]]></description>
			<content:encoded><![CDATA[<p>Here&#8217;s the extra info for my talk.</p>
<p>The slides are available <a href="http://www.itsananderson.com/wcsea.pdf">here</a>.</p>
<p>The WP_Ajax class is available <a href="http://www.itsananderson.com/wp-content/uploads/wp-ajax.zip">here</a>.</p>
<p>The Simple Post Ratings plugin is available <a href="http://www.itsananderson.com/wp-content/uploads/simple-post-ratings.zip">here</a>.</p>
<p>I&#8217;ll also post a link to the video on WordPress.tv when it becomes available. EDIT: <a href="http://wordpress.tv/2011/05/06/will-anderson-using-ajax-in-plugins-and-themes/">Here it is</a></p>

<p><a href="http://feedads.g.doubleclick.net/~a/-D0O1hZBNcfjXJhvNZ-jszK7gik/0/da"><img src="http://feedads.g.doubleclick.net/~a/-D0O1hZBNcfjXJhvNZ-jszK7gik/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/-D0O1hZBNcfjXJhvNZ-jszK7gik/1/da"><img src="http://feedads.g.doubleclick.net/~a/-D0O1hZBNcfjXJhvNZ-jszK7gik/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/itsananderson/~4/kU-2FzaX7-c" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.itsananderson.com/2011/04/wordcamp-seattle-meta/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		<feedburner:origLink>http://www.itsananderson.com/2011/04/wordcamp-seattle-meta/</feedburner:origLink></item>
		<item>
		<title>Adding Apache Aliases in XAMPP</title>
		<link>http://feedproxy.google.com/~r/itsananderson/~3/Cn95Al_N9lc/</link>
		<comments>http://www.itsananderson.com/2011/02/adding-apache-aliases-in-xampp/#comments</comments>
		<pubDate>Thu, 24 Feb 2011 17:20:46 +0000</pubDate>
		<dc:creator>Will</dc:creator>
				<category><![CDATA[Apache]]></category>
		<category><![CDATA[Alias]]></category>
		<category><![CDATA[directories]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://www.itsananderson.com/?p=999</guid>
		<description><![CDATA[If you&#8217;ve read my post on adding aliases to WampServer, you may be curious about how to add aliases to XAMPP. While WampServer has a nice (if somewhat buggy) tool for adding Apache aliases, XAMPP does not. Fortunately, it&#8217;s pretty straightforward to do by hand. The first thing you&#8217;ll want to do is add an [...]]]></description>
			<content:encoded><![CDATA[<p>If you&#8217;ve read my post on <a title="Wamp Alias Directories" href="http://www.itsananderson.com/2009/01/wamp-alias-directories/">adding aliases to WampServer</a>, you may be curious about how to add aliases to XAMPP. While WampServer has a nice (if somewhat buggy) tool for adding Apache aliases, XAMPP does not. Fortunately, it&#8217;s pretty straightforward to do by hand.</p>
<p><span id="more-999"></span>The first thing you&#8217;ll want to do is add an alias directory to your XAMPP install. If you&#8217;re running Windows, create the following folder.</p>
<p><code>C:\xampp\apache\conf\alias</code></p>
<p>Next, you&#8217;ll need to modify your Apache configuration file. You can find it under <code>C:\xampp\apache\conf\httpd.conf</code>. To make changes, you&#8217;ll need to edit it as an administrator. If you&#8217;re running Windows Vista or Windows 7, your best bet is to open Notepad as an administrator and then open httpd.conf. To open Notepad (or any other application) as an administrator, right click on it and select &#8220;Run as administrator&#8221;.</p>
<p>Once you&#8217;ve opened httpd.conf, add the following to the end and save it.</p>
<p><code>Include "conf/alias/*"</code></p>
<p>Now Apache will look in the alias folder for additional configuration files. This way all you have to do to add an alias is add a new alias configuration file to the alias folder.</p>
<p>Let&#8217;s do that now. Suppose you want to add an alias called &#8220;dev&#8221;. First, download <a href="http://www.itsananderson.com/wp-content/uploads/template.txt">this alias template file</a> and place it in the alias folder. Rename it to &#8220;dev.conf&#8221; (or whatever you&#8217;re alias is called). You&#8217;ll need to edit the template (again, as an administrator) and replace &#8220;DIRECTORY&#8221; (it&#8217;s there twice) with the path to the alias and &#8220;ALIAS&#8221; with the name of your alias. In our example, it looks something like this:</p>
<pre>&lt;Directory "C:\users\foo\programming\dev"&gt;
    #
    # Possible values for the Options directive are "None", "All",
    # or any combination of:
    #   Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
    #
    # Note that "MultiViews" must be named *explicitly* --- "Options All"
    # doesn't give it to you.
    #
    # The Options directive is both complicated and important.  Please see
    # http://httpd.apache.org/docs/2.2/mod/core.html#options
    # for more information.
    #
    Options Indexes FollowSymLinks Includes ExecCGI

    #
    # AllowOverride controls what directives may be placed in .htaccess files.
    # It can be "All", "None", or any combination of the keywords:
    #   Options FileInfo AuthConfig Limit
    #
    AllowOverride All

    #
    # Controls who can get stuff from this server.
    #     Order allow,deny
    Allow from all 

&lt;/Directory&gt;

Alias /dev "C:\users\foo\programming\dev"</pre>
<p>Restart Apache (you can do so from the XAMPP control panel) and check out http://localhost/dev</p>

<p><a href="http://feedads.g.doubleclick.net/~a/CZbx7UYUoBhkwgcr3rmy6tUJNlA/0/da"><img src="http://feedads.g.doubleclick.net/~a/CZbx7UYUoBhkwgcr3rmy6tUJNlA/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/CZbx7UYUoBhkwgcr3rmy6tUJNlA/1/da"><img src="http://feedads.g.doubleclick.net/~a/CZbx7UYUoBhkwgcr3rmy6tUJNlA/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/itsananderson/~4/Cn95Al_N9lc" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.itsananderson.com/2011/02/adding-apache-aliases-in-xampp/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://www.itsananderson.com/2011/02/adding-apache-aliases-in-xampp/</feedburner:origLink></item>
		<item>
		<title>Showing a Custom Post Status in WordPress Post List Tables</title>
		<link>http://feedproxy.google.com/~r/itsananderson/~3/zMcfwQ7b8Nk/</link>
		<comments>http://www.itsananderson.com/2011/02/showing-a-custom-post-status-in-wordpress-post-list-tables/#comments</comments>
		<pubDate>Sat, 19 Feb 2011 20:22:16 +0000</pubDate>
		<dc:creator>Will</dc:creator>
				<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://www.itsananderson.com/?p=980</guid>
		<description><![CDATA[WordPress displays post states on post list tables to indicate that a post has a special condition. It&#8217;s possible to hook into that list of states and add your own. The following screenshot illustrates some of the default post states. Adding your own states is actually pretty easy. The following code snippet should get you [...]]]></description>
			<content:encoded><![CDATA[<p>WordPress displays post states on post list tables to indicate that a post has a special condition. It&#8217;s possible to hook into that list of states and add your own.</p>
<p><span id="more-980"></span>The following screenshot illustrates some of the default post states.</p>
<p><img src="http://www.itsananderson.com/wp-content/uploads/wordpress-post-status-samples1.png" alt="" title="wordpress-post-status-samples" width="509" height="265" class="aligncenter size-full wp-image-986" /></p>
<p>Adding your own states is actually pretty easy. The following code snippet should get you going in the right direction.</p>

	<style type="text/css">

	.code {
		border: 1px solid #ccc;
		font-family: 'Courier New', monospace;
		font-size: 10pt;
	}

	.code .lines {
		float: left;
		background: #eee;
		width: 50px;
		border-right: 1px solid gray;
	}

	.code table {
		border-spacing: 0;
		padding: 0;
		margin: 0;
		width: 100%;
	}

	.code table tr {
		padding: 0;
		margin: 0;
	}

	.code table tr td {
		border-spacing: 0;
		margin: 0;
		padding: 0;
	}

	.code .lines tr {
		width: 100%;
	}

	.code .lines .line {
		text-align: right;
		padding: 0px 3px;
	}

	.code .highlighted-code {
		overflow: auto;
	}

	.code-table {
		overflow: auto;
	}

	.code-row-even {
		background-color: #f9f9f9;
	}

	.code-row-odd {
		background-color: #fff;
	}

	.code .code-row-cell {
		padding-left: 10px;
		white-space: pre;
	}

	.code-comment {
		color: green;
	}

	.code-variable {
		color: blue;
	}

	.code-keyword {
		color: purple;
		font-weight: bold;
	}

	.code-string {
		color: orange;
	}

	.code-number {
		color: red;
	}
	</style>
	<div class="code code-php"><div style="" class="lines"><table><tr><td style="" class="line">1</td></tr><tr><td style="" class="line">2</td></tr><tr><td style="" class="line">3</td></tr><tr><td style="" class="line">4</td></tr><tr><td style="" class="line">5</td></tr><tr><td style="" class="line">6</td></tr><tr><td style="" class="line">7</td></tr><tr><td style="" class="line">8</td></tr><tr><td style="" class="line">9</td></tr><tr><td style="" class="line">10</td></tr><tr><td style="" class="line">11</td></tr><tr><td style="" class="line">12</td></tr><tr><td style="" class="line">13</td></tr><tr><td style="" class="line">14</td></tr><tr><td style="" class="line">15</td></tr><tr><td style="" class="line">16</td></tr><tr><td style="" class="line">17</td></tr></table></div><div class="highlighted-code highlighted-code-php"><table class="code-table"><tr class="code-row code-row-odd"><td class="code-row-cell"><span class="code-keyword">class</span> My_Custom_Post_State {
</td></tr><tr class="code-row code-row-even"><td class="code-row-cell">  <span class="code-keyword">function</span> My_Custom_Post_State() {
</td></tr><tr class="code-row code-row-odd"><td class="code-row-cell">    <span class="code-variable">$this</span>->__construct();
</td></tr><tr class="code-row code-row-even"><td class="code-row-cell">  }
</td></tr><tr class="code-row code-row-odd"><td class="code-row-cell">  <span class="code-keyword">function</span> __construct() {
</td></tr><tr class="code-row code-row-even"><td class="code-row-cell">    add_filter( <span class="code-string code-single-string">'display_post_states'</span>, <span class="code-keyword">array</span>( <span class="code-variable">$this</span>, <span class="code-string code-single-string">'custom_post_state'</span> ) );
</td></tr><tr class="code-row code-row-odd"><td class="code-row-cell">  }
</td></tr><tr class="code-row code-row-even"><td class="code-row-cell">  <span class="code-keyword">function</span> custom_post_state( <span class="code-variable">$states</span> ) {
</td></tr><tr class="code-row code-row-odd"><td class="code-row-cell">    <span class="code-keyword">global</span> <span class="code-variable">$post</span>;
</td></tr><tr class="code-row code-row-even"><td class="code-row-cell">    <span class="code-variable">$show_custom_state</span> = null !== get_post_meta( <span class="code-variable">$post</span>->ID, <span class="code-string code-single-string">'_some_costom_field'</span> );
</td></tr><tr class="code-row code-row-odd"><td class="code-row-cell">    <span class="code-keyword">if</span> ( <span class="code-variable">$show_custom_state</span> ) {
</td></tr><tr class="code-row code-row-even"><td class="code-row-cell">      <span class="code-variable">$states</span>[] = __( <span class="code-string code-single-string">'Custom State'</span> );
</td></tr><tr class="code-row code-row-odd"><td class="code-row-cell">    }
</td></tr><tr class="code-row code-row-even"><td class="code-row-cell">    <span class="code-keyword">return</span> <span class="code-variable">$states</span>;
</td></tr><tr class="code-row code-row-odd"><td class="code-row-cell">  }
</td></tr><tr class="code-row code-row-even"><td class="code-row-cell">}
</td></tr><tr class="code-row code-row-odd"><td class="code-row-cell">new My_Custom_Post_State();</td></tr></table></div></div>
<p>Assuming you have code elsewhere that is adding the custom field to posts, you&#8217;ll see something like this.</p>
<p><img src="http://www.itsananderson.com/wp-content/uploads/custom-state-sample.png" alt="" title="custom-state-sample" width="449" height="216" class="aligncenter size-full wp-image-990" /></p>
<p>That&#8217;s pretty much it. Obviously there are more useful examples, but this should be enough to get you started.</p>

<p><a href="http://feedads.g.doubleclick.net/~a/P-RoghXSaAIAXjnDDoWoO2tCJkk/0/da"><img src="http://feedads.g.doubleclick.net/~a/P-RoghXSaAIAXjnDDoWoO2tCJkk/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/P-RoghXSaAIAXjnDDoWoO2tCJkk/1/da"><img src="http://feedads.g.doubleclick.net/~a/P-RoghXSaAIAXjnDDoWoO2tCJkk/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/itsananderson/~4/zMcfwQ7b8Nk" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.itsananderson.com/2011/02/showing-a-custom-post-status-in-wordpress-post-list-tables/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.itsananderson.com/2011/02/showing-a-custom-post-status-in-wordpress-post-list-tables/</feedburner:origLink></item>
		<item>
		<title>Time Honored Destiny</title>
		<link>http://feedproxy.google.com/~r/itsananderson/~3/bZ0eJxhN1to/</link>
		<comments>http://www.itsananderson.com/2011/02/time-honored-destiny/#comments</comments>
		<pubDate>Tue, 08 Feb 2011 04:06:21 +0000</pubDate>
		<dc:creator>Will</dc:creator>
				<category><![CDATA[Rose-Hulman]]></category>

		<guid isPermaLink="false">http://www.itsananderson.com/?p=963</guid>
		<description><![CDATA[Part of my Science Fiction course requires me to write a flash fiction. It turned out well enough that I&#8217;m not embarrassed to let people read it, so here it is. Time Honored Destiny It had been four months since the event. Four months of hell. If Thomas hadn’t started his project years before the [...]]]></description>
			<content:encoded><![CDATA[<p>Part of my Science Fiction course requires me to write a flash fiction. It turned out well enough that I&#8217;m not embarrassed to let people read it, so here it is.</p>
<p><span id="more-963"></span><br />
<blockquote>
<p style="text-align: center; font-weight: bold;">Time Honored Destiny</p>
<p>It had been four months since the event. Four months of hell. If Thomas hadn’t started his project years before the outbreak, he would have given up weeks ago. The world had been shocked by how quickly the sickness spread. Thomas didn’t have time to be shocked. He just kept working. Before the sickness everyone had told him time travel wasn’t possible. They tried to convince him that he was wasting his time. He wondered how their opinion might change if they knew that his work might be the salvation of the human race.</p>
<p>“It’s finally ready.” Thomas glanced at John, the only other person immune to the sickness. He was glad to have a companion to listen to his ramblings but wished it was someone who could respond. John was completely paralyzed. His body was so horribly disfigured it was almost unrecognizable as human. Thomas had found him a week after the first outbreak while looking for supplies at a nearby hospital. At first he’d thought the disfigurement was some strange manifestation of the sickness, but the hospital records said he’d been in a bus accident. He had never been identified by the hospital, so Thomas christened him John Doe. At the time he’d laughed at the generic name and promised to come up with something better, but with all of his creativity being poured into his work he never had the time.</p>
<p>The machine only had room for Thomas, but if he was successful he would change history for both of them. John had been crippled before the outbreak, but by changing the past, Thomas could at least ensure he’d receive the medical attention he needed.</p>
<p>Trembling with excitement, Thomas calibrated the machine to place him across the street from the CDC headquarters in Atlanta. He gave himself a month before the initial outbreak. Surely that would be enough time to prevent the world’s doom. All they had to do was find patient zero. By seizing one improperly sanitized needle from a washed up heroin junkie they could prevent the end of humanity.</p>
<p>“Wish me luck.” He murmured. The countdown commenced. 3&#8230;2&#8230;1&#8230;</p>
<p>After a few instants he immerged, dizzy and disoriented. He spotted the entrance to the CDC and stepped into the street. In his excitement he didn’t even see the bus as it raced toward him.
</p></blockquote>
<p>That&#8217;s it. Whatcha think?</p>

<p><a href="http://feedads.g.doubleclick.net/~a/AyJchLruFG2X77sMwwR9ZEK-YLs/0/da"><img src="http://feedads.g.doubleclick.net/~a/AyJchLruFG2X77sMwwR9ZEK-YLs/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/AyJchLruFG2X77sMwwR9ZEK-YLs/1/da"><img src="http://feedads.g.doubleclick.net/~a/AyJchLruFG2X77sMwwR9ZEK-YLs/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/itsananderson/~4/bZ0eJxhN1to" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.itsananderson.com/2011/02/time-honored-destiny/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://www.itsananderson.com/2011/02/time-honored-destiny/</feedburner:origLink></item>
		<item>
		<title>PHP Global Object Code Completion</title>
		<link>http://feedproxy.google.com/~r/itsananderson/~3/XuGSK6rPV88/</link>
		<comments>http://www.itsananderson.com/2011/01/php-global-object-code-completion/#comments</comments>
		<pubDate>Fri, 28 Jan 2011 16:40:58 +0000</pubDate>
		<dc:creator>Will</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Netbeans]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://www.itsananderson.com/?p=947</guid>
		<description><![CDATA[Any IDE worth using provides code completion suggestions as you type. For example, this is what Netbeans suggests when you type &#8220;wp_&#8221; inside a WordPress project. The problem with dynamically typed languages like PHP is that it can be difficult for the IDE to provide intelligent suggestions for variables that have been defined in the [...]]]></description>
			<content:encoded><![CDATA[<p>Any IDE worth using provides code completion suggestions as you type. For example, <a href="http://www.itsananderson.com/wp-content/uploads/code-completion.png">this is what Netbeans suggests</a> when you type &#8220;wp_&#8221; inside a WordPress project. The problem with dynamically typed languages like PHP is that it can be difficult for the IDE to provide intelligent suggestions for variables that have been defined in the global scope. It&#8217;s possible to help your IDE be a little smarter by providing it with hints about the types of objects.</p>
<p><span id="more-947"></span>The example I&#8217;ll use is the $wpdb global variable defined in WordPress. It contains an instance of the wpdb class, which wraps the database connection and provides several helper methods. The problem is that it is defined in the global scope, so when you use it in another file, your IDE has no clue what type it is.</p>
<p>If you add the following code snippet to the beginning of your function (or file, if applicable), it will tell your IDE the type of the $wpdb variable without actually affecting the execution of your code.</p>
<pre>
if ( false ) {
    $wpdb = new wpdb();
}
</pre>
<p>As you can see, the code inside the if statement will never execute, but every IDE I&#8217;ve ever used isn&#8217;t smart enough to figure that out, so they assume the type of the $wpdb variable is now wpdb.</p>
<p>When you add the snippet, you get code completion suggestions that look something like this:</p>
<p><a href="http://www.itsananderson.com/wp-content/uploads/code-completion21.png"><img src="http://www.itsananderson.com/wp-content/uploads/code-completion21-520x600.png" alt="" title="code-completion2" width="520" height="600" class="size-medium wp-image-960" /></a></p>
<p>The nice thing about doing this is that if you forget to remove the code snippet, it won&#8217;t break anything. You&#8217;ll lose a CPU cycle or two evaluating the if statement, but your code will run without any problems. It&#8217;s probably a good idea to remove it before you release your code, though, since it might be confusing to anyone who looks at it later.</p>

<p><a href="http://feedads.g.doubleclick.net/~a/G95O8pwsYuCJQSqdHR_rmDDOOPM/0/da"><img src="http://feedads.g.doubleclick.net/~a/G95O8pwsYuCJQSqdHR_rmDDOOPM/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/G95O8pwsYuCJQSqdHR_rmDDOOPM/1/da"><img src="http://feedads.g.doubleclick.net/~a/G95O8pwsYuCJQSqdHR_rmDDOOPM/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/itsananderson/~4/XuGSK6rPV88" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.itsananderson.com/2011/01/php-global-object-code-completion/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://www.itsananderson.com/2011/01/php-global-object-code-completion/</feedburner:origLink></item>
		<item>
		<title>Thinking Like Leslie Knope</title>
		<link>http://feedproxy.google.com/~r/itsananderson/~3/VYOmEF7pNHM/</link>
		<comments>http://www.itsananderson.com/2011/01/thinking-like-leslie-knope/#comments</comments>
		<pubDate>Wed, 26 Jan 2011 08:18:19 +0000</pubDate>
		<dc:creator>Will</dc:creator>
				<category><![CDATA[Personal]]></category>

		<guid isPermaLink="false">http://www.itsananderson.com/?p=931</guid>
		<description><![CDATA[The TV show Parks and Recreation centers around Leslie Knope, the Deputy Parks Director in Pawnee, a fictional town in central Indiana. Beneath the show&#8217;s jokes about the Midwest and outrageously exaggerated characters, Leslie serves as an example for every innovator. Leslie&#8217;s never-say-die attitude allows her remain positive, no matter how insurmountable the obstacle she&#8217;s [...]]]></description>
			<content:encoded><![CDATA[<p>The TV show <em><a href="http://en.wikipedia.org/wiki/Parks_and_Recreation">Parks and Recreation</a></em> centers around Leslie Knope, the Deputy Parks Director in Pawnee, a fictional town in central Indiana. Beneath the show&#8217;s jokes about the Midwest and outrageously exaggerated characters, Leslie serves as an example for every innovator.</p>
<p><span id="more-931"></span><img class="alignleft" title="Leslie_Knope" src="http://www.itsananderson.com/wp-content/uploads/Leslie_Knope-e1296022136958.jpg" alt="" width="150" height="150" style="margin-right: 10px;" />Leslie&#8217;s never-say-die attitude allows her remain positive, no matter how insurmountable the obstacle she&#8217;s facing. Her persistence is a source of comic relief, but in the end she always seems to succeed in her endeavors.</p>
<p>This attitude toward problems should serve as both an inspiration and a warning to anyone feeling discouraged. When you&#8217;re stuck on a problem, don&#8217;t let the <a href="http://en.wikipedia.org/wiki/Ron_Swanson">Ron Swansons</a> of your life keep you from going after your dreams. On the other hand, don&#8217;t become so wrapped up in what you hope to accomplish that you&#8217;re unable to listen when your friends and loved ones tell about potential problems. You shouldn&#8217;t be discouraged by your challenges, but you also shouldn&#8217;t ignore them. They won&#8217;t go away just because you pretend they aren&#8217;t there. Face your problems with optimism, but be realistic. As with almost every aspect of life, the key to success is maintaining a balance.</p>
<p>OK. Enough pep talk. We now return you to your regularly scheduled program.</p>

<p><a href="http://feedads.g.doubleclick.net/~a/UWeDM6CC98lfmL-M6I-MHGSH7uY/0/da"><img src="http://feedads.g.doubleclick.net/~a/UWeDM6CC98lfmL-M6I-MHGSH7uY/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/UWeDM6CC98lfmL-M6I-MHGSH7uY/1/da"><img src="http://feedads.g.doubleclick.net/~a/UWeDM6CC98lfmL-M6I-MHGSH7uY/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/itsananderson/~4/VYOmEF7pNHM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.itsananderson.com/2011/01/thinking-like-leslie-knope/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://www.itsananderson.com/2011/01/thinking-like-leslie-knope/</feedburner:origLink></item>
		<item>
		<title>Excellent Spring Schedule</title>
		<link>http://feedproxy.google.com/~r/itsananderson/~3/SuUwOsJS844/</link>
		<comments>http://www.itsananderson.com/2011/01/excellent-spring-schedule/#comments</comments>
		<pubDate>Tue, 18 Jan 2011 15:34:16 +0000</pubDate>
		<dc:creator>Will</dc:creator>
				<category><![CDATA[Personal]]></category>

		<guid isPermaLink="false">http://www.itsananderson.com/?p=923</guid>
		<description><![CDATA[I signed up for my spring courses this morning. I&#8217;ll have class from 9:55 to 12:35 Monday, Tuesday, Thursday, and Friday. I&#8217;m taking Don Quixote as a humanity elective. It wasn&#8217;t my first choice, but it had the same schedule as the course I wanted to get into (Introduction to Film Studies). Even though I&#8217;m [...]]]></description>
			<content:encoded><![CDATA[<p>I signed up for my spring courses this morning. I&#8217;ll have class from 9:55 to 12:35 Monday, Tuesday, Thursday, and Friday.</p>
<p><span id="more-923"></span>I&#8217;m taking Don Quixote as a humanity elective. It wasn&#8217;t my first choice, but it had the same schedule as the course I wanted to get into (Introduction to Film Studies).</p>
<p>Even though I&#8217;m a CS, I decided to take Formal Methods. Since it&#8217;s an SE course, it doesn&#8217;t count as a CS elective, but I have a bunch of general electives to complete, so it&#8217;s not a big deal. Curt Clifton is teaching it, so it should be pretty awesome.</p>
<p>Lastly, I&#8217;m taking Cryptography as a Math elective. This year it&#8217;s being taught by the CS department, which should mean it will be both accessible and interesting. Taking CSSE120 from Matt Boutell was what convinced me to go into CS, so I look forward to taking another class from him.</p>
<p>Overall, I&#8217;m pretty pleased with my schedule. My day doesn&#8217;t start too early, but it also doesn&#8217;t end really late in the afternoon. Should be peachy.</p>

<p><a href="http://feedads.g.doubleclick.net/~a/2LHZlOe-BR83kQQldVZTXqlDXms/0/da"><img src="http://feedads.g.doubleclick.net/~a/2LHZlOe-BR83kQQldVZTXqlDXms/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/2LHZlOe-BR83kQQldVZTXqlDXms/1/da"><img src="http://feedads.g.doubleclick.net/~a/2LHZlOe-BR83kQQldVZTXqlDXms/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/itsananderson/~4/SuUwOsJS844" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.itsananderson.com/2011/01/excellent-spring-schedule/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.itsananderson.com/2011/01/excellent-spring-schedule/</feedburner:origLink></item>
		<item>
		<title>Even Smarter Post Formats</title>
		<link>http://feedproxy.google.com/~r/itsananderson/~3/oRNb5nvvmFQ/</link>
		<comments>http://www.itsananderson.com/2010/12/even-smarter-post-formats/#comments</comments>
		<pubDate>Mon, 13 Dec 2010 16:15:02 +0000</pubDate>
		<dc:creator>Will</dc:creator>
				<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://www.itsananderson.com/?p=907</guid>
		<description><![CDATA[Dougal Campbell published an article the other day suggesting that the way many themes are handling the new Post Formats feature is wrong. While I completely agree that Post Formats shouldn&#8217;t be handled with giant if/else blocks, I&#8217;m not sure the proposed solution is the best option either. Here&#8217;s why. What Dougal suggests is that [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://dougal.gunters.org/">Dougal Campbell</a> <a href="http://dougal.gunters.org/blog/2010/12/10/smarter-post-formats">published an article</a> the other day suggesting that the way many themes are handling the new Post Formats feature is wrong. While I completely agree that Post Formats shouldn&#8217;t be handled with giant if/else blocks, I&#8217;m not sure the proposed solution is the best option either. Here&#8217;s why.</p>
<p><span id="more-907"></span>What Dougal suggests is that theme developers instead dynamically include another template file to handle the post format. I&#8217;ve seen a similar idea suggested in a <a href="http://core.trac.wordpress.org/ticket/15385">Trac ticket</a>, and the issue I saw (but neglected to comment on) there is the same one I see here. Including PHP files is a relatively expensive operation.</p>
<p>Now, admittedly, including files isn&#8217;t the worst thing you can do, and WordPress already includes dozens of files for every page request. Still, that doesn&#8217;t mean you shouldn&#8217;t try to get as much performance out of your theme as possible. On an average page load on an average website, using the get_template_part() method for Post Formats will cause 10 additional includes, but what happens if the blog admin decides they want to display 50 posts per page? The solution doesn&#8217;t scale very well.</p>
<p>The alternate solution I propose is to dynamically call functions via <a href="http://www.php.net/manual/en/function.call-user-func.php">call_user_func</a>. When the name of a function is passed to call_user_func, that function is invoked. Incidentally, that&#8217;s actually how WordPress does function callbacks for its actions and filters.</p>
<p>Here&#8217;s how the code might look.</p>
<p>First, in your functions.php file, define functions for the Post Formats you wish to support. You could also place them in a separate file (like formats.php for example) and include that from your functions.php. That way you can keep your logic separated from your display, while only adding one additional include instead of ten.</p>

	<style type="text/css">

	.code {
		border: 1px solid #ccc;
		font-family: 'Courier New', monospace;
		font-size: 10pt;
	}

	.code .lines {
		float: left;
		background: #eee;
		width: 50px;
		border-right: 1px solid gray;
	}

	.code table {
		border-spacing: 0;
		padding: 0;
		margin: 0;
		width: 100%;
	}

	.code table tr {
		padding: 0;
		margin: 0;
	}

	.code table tr td {
		border-spacing: 0;
		margin: 0;
		padding: 0;
	}

	.code .lines tr {
		width: 100%;
	}

	.code .lines .line {
		text-align: right;
		padding: 0px 3px;
	}

	.code .highlighted-code {
		overflow: auto;
	}

	.code-table {
		overflow: auto;
	}

	.code-row-even {
		background-color: #f9f9f9;
	}

	.code-row-odd {
		background-color: #fff;
	}

	.code .code-row-cell {
		padding-left: 10px;
		white-space: pre;
	}

	.code-comment {
		color: green;
	}

	.code-variable {
		color: blue;
	}

	.code-keyword {
		color: purple;
		font-weight: bold;
	}

	.code-string {
		color: orange;
	}

	.code-number {
		color: red;
	}
	</style>
	<div class="code code-php"><div style="" class="lines"><table><tr><td style="" class="line">1</td></tr><tr><td style="" class="line">2</td></tr><tr><td style="" class="line">3</td></tr><tr><td style="" class="line">4</td></tr><tr><td style="" class="line">5</td></tr><tr><td style="" class="line">6</td></tr><tr><td style="" class="line">7</td></tr><tr><td style="" class="line">8</td></tr><tr><td style="" class="line">9</td></tr></table></div><div class="highlighted-code highlighted-code-php"><table class="code-table"><tr class="code-row code-row-odd"><td class="code-row-cell"><span class="code-keyword">function</span> format_aside() {
</td></tr><tr class="code-row code-row-even"><td class="code-row-cell">    <span class="code-comment">// Code to display an aside post</span></td></tr><tr class="code-row code-row-odd"><td class="code-row-cell">}
</td></tr><tr class="code-row code-row-even"><td class="code-row-cell"><span class="code-keyword">function</span> format_gallery() {
</td></tr><tr class="code-row code-row-odd"><td class="code-row-cell">    <span class="code-comment">// Code to display a gallery post</span></td></tr><tr class="code-row code-row-even"><td class="code-row-cell">}
</td></tr><tr class="code-row code-row-odd"><td class="code-row-cell"><span class="code-keyword">function</span> format_standard() {
</td></tr><tr class="code-row code-row-even"><td class="code-row-cell">    <span class="code-comment">// Code to display a standard post</span></td></tr><tr class="code-row code-row-odd"><td class="code-row-cell">}</td></tr></table></div></div>
<p>Next, in your template, use the post format to determine which function to call. To make your theme more robust, make sure the post format is supported before you try to call the function. If it isn&#8217;t, call your backup &#8220;default&#8221; format function.</p>

	<style type="text/css">

	.code {
		border: 1px solid #ccc;
		font-family: 'Courier New', monospace;
		font-size: 10pt;
	}

	.code .lines {
		float: left;
		background: #eee;
		width: 50px;
		border-right: 1px solid gray;
	}

	.code table {
		border-spacing: 0;
		padding: 0;
		margin: 0;
		width: 100%;
	}

	.code table tr {
		padding: 0;
		margin: 0;
	}

	.code table tr td {
		border-spacing: 0;
		margin: 0;
		padding: 0;
	}

	.code .lines tr {
		width: 100%;
	}

	.code .lines .line {
		text-align: right;
		padding: 0px 3px;
	}

	.code .highlighted-code {
		overflow: auto;
	}

	.code-table {
		overflow: auto;
	}

	.code-row-even {
		background-color: #f9f9f9;
	}

	.code-row-odd {
		background-color: #fff;
	}

	.code .code-row-cell {
		padding-left: 10px;
		white-space: pre;
	}

	.code-comment {
		color: green;
	}

	.code-variable {
		color: blue;
	}

	.code-keyword {
		color: purple;
		font-weight: bold;
	}

	.code-string {
		color: orange;
	}

	.code-number {
		color: red;
	}
	</style>
	<div class="code code-php"><div style="" class="lines"><table><tr><td style="" class="line">1</td></tr><tr><td style="" class="line">2</td></tr><tr><td style="" class="line">3</td></tr><tr><td style="" class="line">4</td></tr><tr><td style="" class="line">5</td></tr><tr><td style="" class="line">6</td></tr><tr><td style="" class="line">7</td></tr><tr><td style="" class="line">8</td></tr></table></div><div class="highlighted-code highlighted-code-php"><table class="code-table"><tr class="code-row code-row-odd"><td class="code-row-cell"><span class="code-keyword">while</span> ( the_loop() ):
</td></tr><tr class="code-row code-row-even"><td class="code-row-cell">    <span class="code-variable">$format</span> = get_post_format();
</td></tr><tr class="code-row code-row-odd"><td class="code-row-cell">    <span class="code-keyword">if</span> ( <span class="code-keyword">function</span>_exists( <span class="code-string code-single-string">'format_'</span> . <span class="code-variable">$format</span> ) ) {
</td></tr><tr class="code-row code-row-even"><td class="code-row-cell">        call_user_func( <span class="code-string code-single-string">'format_'</span> . <span class="code-variable">$format</span> );
</td></tr><tr class="code-row code-row-odd"><td class="code-row-cell">    } <span class="code-keyword">else</span> {
</td></tr><tr class="code-row code-row-even"><td class="code-row-cell">        call_user_func( <span class="code-string code-single-string">'format_standard'</span> );
</td></tr><tr class="code-row code-row-odd"><td class="code-row-cell">    }
</td></tr><tr class="code-row code-row-even"><td class="code-row-cell"><span class="code-keyword">endwhile</span>;</td></tr></table></div></div>

<p><a href="http://feedads.g.doubleclick.net/~a/zJWv_V2-rH4jf5_lyUzhwwVCtn4/0/da"><img src="http://feedads.g.doubleclick.net/~a/zJWv_V2-rH4jf5_lyUzhwwVCtn4/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/zJWv_V2-rH4jf5_lyUzhwwVCtn4/1/da"><img src="http://feedads.g.doubleclick.net/~a/zJWv_V2-rH4jf5_lyUzhwwVCtn4/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/itsananderson/~4/oRNb5nvvmFQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.itsananderson.com/2010/12/even-smarter-post-formats/feed/</wfw:commentRss>
		<slash:comments>16</slash:comments>
		<feedburner:origLink>http://www.itsananderson.com/2010/12/even-smarter-post-formats/</feedburner:origLink></item>
		<item>
		<title>Handling Key Events in JavaScript with jQuery</title>
		<link>http://feedproxy.google.com/~r/itsananderson/~3/unzzpKtOmR0/</link>
		<comments>http://www.itsananderson.com/2010/10/handling-keypress-events-in-javascript-with-jquery/#comments</comments>
		<pubDate>Fri, 29 Oct 2010 05:35:19 +0000</pubDate>
		<dc:creator>Will</dc:creator>
				<category><![CDATA[Personal]]></category>

		<guid isPermaLink="false">http://www.itsananderson.com/?p=886</guid>
		<description><![CDATA[Today I finished up an interesting &#8220;tool&#8221; I&#8217;ve been working on after getting the idea from a tweet (the originator of which I&#8217;ve forgotten). Check out my $6.66 calculator. OK, not terribly exciting, but I ran across an interesting challenge, and even more interesting solution while I was working on it. One of the things [...]]]></description>
			<content:encoded><![CDATA[<p>Today I finished up an interesting &#8220;tool&#8221; I&#8217;ve been working on after getting the idea from a tweet (the originator of which I&#8217;ve forgotten). Check out my <a href="http://www.itsananderson.com/666.html">$6.66 calculator</a>.</p>
<p>OK, not terribly exciting, but I ran across an interesting challenge, and even more interesting solution while I was working on it.</p>
<p><span id="more-886"></span>One of the things you probably noticed is that the &#8220;price&#8221; value is updated automatically when you change the tax rate. While that isn&#8217;t a terribly complex feature to implement, it wasn&#8217;t quite as simple to do as I expected it to be, so I thought I&#8217;d share my solution in case it&#8217;s helpful to somebody else.</p>
<p>The JavaScript event I used to capture key events was the keydown event. The challenge of this event is that it fires before the field is actually updated, so directly accessing its value won&#8217;t work. The solution I found was to setup a timeout event to be executed a few milliseconds later. This event would be able to access the updated value of the field.</p>
<p>Here&#8217;s a snippet of code that illustrates the concept.</p>
<pre>
$('#field').keydown(function() {
    setTimeout(function() {
        var fieldValue = $('#field').val();
        // Code that actually uses field value
    });
}, 50);
</pre>

<p><a href="http://feedads.g.doubleclick.net/~a/_jU7iWgcp_6iMc7QLKOgjd4b_RQ/0/da"><img src="http://feedads.g.doubleclick.net/~a/_jU7iWgcp_6iMc7QLKOgjd4b_RQ/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/_jU7iWgcp_6iMc7QLKOgjd4b_RQ/1/da"><img src="http://feedads.g.doubleclick.net/~a/_jU7iWgcp_6iMc7QLKOgjd4b_RQ/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/itsananderson/~4/unzzpKtOmR0" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.itsananderson.com/2010/10/handling-keypress-events-in-javascript-with-jquery/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		<feedburner:origLink>http://www.itsananderson.com/2010/10/handling-keypress-events-in-javascript-with-jquery/</feedburner:origLink></item>
		<item>
		<title>Shifting My Focus</title>
		<link>http://feedproxy.google.com/~r/itsananderson/~3/aLYcz3Svuo0/</link>
		<comments>http://www.itsananderson.com/2010/10/shifting-my-focus/#comments</comments>
		<pubDate>Fri, 15 Oct 2010 04:14:46 +0000</pubDate>
		<dc:creator>Will</dc:creator>
				<category><![CDATA[Personal]]></category>

		<guid isPermaLink="false">http://www.itsananderson.com/?p=877</guid>
		<description><![CDATA[What have I been up to you ask? Click on, dear reader, and read for yourself.]]></description>
			<content:encoded><![CDATA[<p>For the past month and a half, I&#8217;ve been back at school continuing to work on my computer science degree. I registered for 4 computer science courses this quarter, which have kept me quite busy. Unfortunately, spending so much time on school meant that I haven&#8217;t been able to spend as much time doing freelance work as I had hoped. Over the past few weeks, as I&#8217;ve had more and more interesting projects proposed, I&#8217;ve shifted from not spending enough time freelancing to not spending enough time studying. As a result, my grades for the first half of this quarter have been less than stellar.</p>
<p>Well, I&#8217;m not really one to obsess over my grades, but I was still faced with a choice of saying no to more freelance work, or screwing up my GPA. So, I chose option number three.</p>
<p>While looking over my course requirements in preparation for Winter registration, I realized that I could take 12 credits per quarter and still graduate next year. Reducing my work load by one course per quarter will hopefully mean that I can take on more freelance projects, while maintaining better grades.</p>

<p><a href="http://feedads.g.doubleclick.net/~a/c8NSQxaurtFNnypP0FnOqaOI-Ng/0/da"><img src="http://feedads.g.doubleclick.net/~a/c8NSQxaurtFNnypP0FnOqaOI-Ng/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/c8NSQxaurtFNnypP0FnOqaOI-Ng/1/da"><img src="http://feedads.g.doubleclick.net/~a/c8NSQxaurtFNnypP0FnOqaOI-Ng/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/itsananderson/~4/aLYcz3Svuo0" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.itsananderson.com/2010/10/shifting-my-focus/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.itsananderson.com/2010/10/shifting-my-focus/</feedburner:origLink></item>
		<item>
		<title>My Summer In Review</title>
		<link>http://feedproxy.google.com/~r/itsananderson/~3/uZgt6M9bCQA/</link>
		<comments>http://www.itsananderson.com/2010/08/my-summer-in-review/#comments</comments>
		<pubDate>Wed, 25 Aug 2010 22:34:59 +0000</pubDate>
		<dc:creator>Will</dc:creator>
				<category><![CDATA[Personal]]></category>

		<guid isPermaLink="false">http://www.itsananderson.com/?p=866</guid>
		<description><![CDATA[I&#8217;m ready to go. All of my things are packed and in a matter of hours I&#8217;ll be heading to Sea-Tac airport to fly back to Terre Haute. It&#8217;s been a great summer. It really feels like this summer has flown by for me. I find it hard to believe that it was really 3 [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m ready to go. All of my things are packed and in a matter of hours I&#8217;ll be heading to Sea-Tac airport to fly back to Terre Haute. It&#8217;s been a great summer.</p>
<p><span id="more-866"></span>It really feels like this summer has flown by for me. I find it hard to believe that it was really 3 months ago that I last posted here. It&#8217;s been good though. I ended up working on the <a href="http://advertising.microsoft.com/learning-center/downloads/adcenter-desktop">adCenter Desktop</a> team at Microsoft. It&#8217;s just about the only team in the Online Services Department (OSD) whose main product is <em>not</em> a web client. My internship with Microsoft was as a Software Development Engineer in Test (SDET) so much of my responsibility on the adCenter Desktop team was writing up and automating test cases. It may not sound like the most thrilling work, but I enjoyed it, and learned a lot while doing it. I plan to return to Microsoft next summer for a second internship, though I&#8217;ll likely be on another team (hopefully still in OSD). I look forward to being back in the Northwest.</p>
<p>The thing that has wowed me the most about this area of the country is how green everything is. Bushes, flowers, and trees seem to adorn every lawn and office park. It&#8217;s hard to precisely describe the difference between this area and the Midwest, but I think the best way to put it is to say that here, cultivating greenery is the norm, rather than the exception. Not everything is like this, of course. Seattle itself seems a little dirtier and grayer than the surrounding area, but even with it&#8217;s trash littered sidewalks and swarms of hobos, it has a certain classic charm.</p>
<p>I actually only visited Seattle a handful of times when I was here. I lived in Kirkland and worked in Bellevue, which are both on the other side of Lake Washington. Living in Kirkland was really nice. The area is nice, and downtown Kirkland is only a few minutes away, affording access to a wide variety of shops and restaurants, as well as docks and a beach overlooking Lake Washington.</p>
<p>Bellevue is a pretty cool city to work in. Unlike Microsoft&#8217;s main campus in Redmond, most of the office buildings are fairly new, and are built to provide lots of natural light. With lots of restaurants and coffee shops within walking distance, it&#8217;s always easy to find a bite to eat. There is also a fairly direct transit route from Kirkland to Bellevue, which made it easy to ride the bus to work (and I did almost every day).</p>
<p>Toward the end of the summer, I got to go to a WordPress meetup that was being held in Seattle. I got to meet a bunch of people including Joshua &#8220;Red&#8221; Russak of <a href="http://www.firsttimeonline.com/">First Time Online</a> and Nick Ohrn of <a href="http://plugin-developer.com/">Plugin-Developer.com</a>. Nick is a Rose alumni who has been freelancing in Seattle for the two years since he graduated. We had been planning to meet sometime this summer to talk WordPress, and he is the one who told me about the WordPress meetup. We actually ended up meeting the next day at a coffee shop and I had a great time telling him about what I&#8217;d been working on and hearing about the stuff he&#8217;s been doing. I look forward to doing some WordPress projects for him during the upcoming school year (which is what we actually met to discuss). I also got a chance to talk with Joshua this week and discuss doing some work for him as well. Suffice it to say, it&#8217;s going to be a busy school year, but I look forward to it.</p>
<p>How about you? What has your summer been like?</p>

<p><a href="http://feedads.g.doubleclick.net/~a/FtjC3RbbDc8g6gsstugo9ByIlYc/0/da"><img src="http://feedads.g.doubleclick.net/~a/FtjC3RbbDc8g6gsstugo9ByIlYc/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/FtjC3RbbDc8g6gsstugo9ByIlYc/1/da"><img src="http://feedads.g.doubleclick.net/~a/FtjC3RbbDc8g6gsstugo9ByIlYc/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/itsananderson/~4/uZgt6M9bCQA" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.itsananderson.com/2010/08/my-summer-in-review/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.itsananderson.com/2010/08/my-summer-in-review/</feedburner:origLink></item>
		<item>
		<title>Silver Linings</title>
		<link>http://feedproxy.google.com/~r/itsananderson/~3/R81Qa8YxnFQ/</link>
		<comments>http://www.itsananderson.com/2010/05/silver-linings/#comments</comments>
		<pubDate>Wed, 26 May 2010 03:10:54 +0000</pubDate>
		<dc:creator>Will</dc:creator>
				<category><![CDATA[Personal]]></category>

		<guid isPermaLink="false">http://www.itsananderson.com/?p=841</guid>
		<description><![CDATA[A couple days ago I wrecked my car. This is a frustrating event under any circumstances, but it is exceptionally inconvenient for me because I'm supposed to be making the two thousand mile drive to Seattle a couple days from now.]]></description>
			<content:encoded><![CDATA[<p>A couple days ago I wrecked my car. This is a frustrating event under any circumstances, but it is exceptionally inconvenient for me because I&#8217;m supposed to be making the two thousand mile drive to Seattle a couple days from now. <span id="more-841"></span> Well, initial inspection placed my car in a &#8220;drivable&#8221; state. I was even able to drive it from my apartment to my parent&#8217;s house where I could park it until I figured out what work needed to be done. While the hood and one of the side panels were crumpled, it looked as though all that absolutely <strong>had</strong> to be done for it to be ready for the drive was to replace a broken headlamp assembly. Yesterday, though, when I tried to drive to a local junk yard to look for replacement parts, my car refused to start altogether. In the end, I decided that trying to figure out what was wrong with my car and fixing any major issues would cost more money than I was willing to put into such an old vehicle. This was made especially true by the fact that I was already hoping to replace it within the next few months. I finally decided to fly to Seattle instead. My hope is that I can quickly find a replacement vehicle once I&#8217;m there.</p>
<p>About a day and a half has passed since my accident and, while I&#8217;m still frustrated that it occurred, I can now see the silver linings surrounding the event. First, the way the accident occurred is something to be thankful for in itself. I was only traveling at twenty or so miles an hour, and I ran into an unattended parked car. I was going to pick up my mom so we could run some errands and I wanted to clean off my passenger seat because it was covered in papers from school and old packaging from fast food restaurants. I wasn&#8217;t paying close enough attention to where I was going and I rear-ended an SUV parked at the curb. While this is an embarrassing story to tell, I&#8217;m thankful that I wasn&#8217;t hurt, and that there was nobody in the other vehicle to be injured. I was able to locate the owner of the other vehicle without too much trouble, and he was very gracious about the whole thing, as was the police officer who responded to the accident report. All-in-all, things went about as well as an at-fault teenage driver can expect at the scene of an accident.</p>
<p>Now of course, my car is now out of commission (It&#8217;s an old vehicle, so I only have liability insurance), and my plans to purchase a replacement need to be pushed up by a couple months, but it isn&#8217;t like I was planning on driving it for terribly long anyway. Fortunately for me, the friend I&#8217;ll be living with works in the same building as the one I will be in, and we had already discussed carpooling, so getting to work shouldn&#8217;t be a big problem. The public transit system is also apparently pretty good, so I think I&#8217;ll be able to get around without too much trouble.</p>
<p>So where&#8217;s the silver lining? If I hadn&#8217;t wrecked my vehicle, none of these things would have been an issue anyway.</p>
<p>While that is true, there are other things that are less apparent at first glance. First, I had already been having issues with my car that made me nervous about taking it on a two thousand mile road trip. Oil leaks and a flaky battery were my main concerns, but there were also about a half dozen smaller issues that my mechanic had told me I should fix, but that I hadn&#8217;t had the money or time to deal with. I&#8217;m not really the worrying type, but several friends and family were concerned about me making the trip with such a clunker. This accident makes me wonder if perhaps they were right, and this was God&#8217;s way of telling me I should fly instead. Now, I wouldn&#8217;t have complained if he&#8217;d let something less destructive and less embarrassing convince me, but I guess that&#8217;s not the point. Now I can rest more easily, knowing that my on-time arrival is much more likely to occur.</p>
<p>Finally, flying to Seattle has other advantages as well. Avoiding a 32 hour road trip means I&#8217;ll be arriving two days earlier than originally planned, so I&#8217;ll have more time to get settled before I start work full time next week. I&#8217;ll also have that much more time to spend with Tony and Jackie Ferrell, who I&#8217;ll be staying with during the summer. They&#8217;re great friends who I&#8217;ve missed, so I welcome the opportunity to see them sooner.</p>
<p>The biggest draw back in all of this is that I won&#8217;t be able to see my aunt and grandma on the way out. I was looking forward to stopping to visit with them for a little while, since I was going to be driving right past their home, but perhaps I can do so on my return trip instead.</p>
<p>At any rate, that&#8217;s what&#8217;s been going on with me recently. What&#8217;s up with you? <img src='http://www.itsananderson.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>

<p><a href="http://feedads.g.doubleclick.net/~a/3_qMs_ByTXdkMUkyswW_eP-ZS9w/0/da"><img src="http://feedads.g.doubleclick.net/~a/3_qMs_ByTXdkMUkyswW_eP-ZS9w/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/3_qMs_ByTXdkMUkyswW_eP-ZS9w/1/da"><img src="http://feedads.g.doubleclick.net/~a/3_qMs_ByTXdkMUkyswW_eP-ZS9w/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/itsananderson/~4/R81Qa8YxnFQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.itsananderson.com/2010/05/silver-linings/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.itsananderson.com/2010/05/silver-linings/</feedburner:origLink></item>
		<item>
		<title>Why I’m Not Leaving Facebook</title>
		<link>http://feedproxy.google.com/~r/itsananderson/~3/5g0-RUYpkLc/</link>
		<comments>http://www.itsananderson.com/2010/05/why-im-not-leaving-facebook/#comments</comments>
		<pubDate>Tue, 18 May 2010 16:39:54 +0000</pubDate>
		<dc:creator>Will</dc:creator>
				<category><![CDATA[Personal]]></category>

		<guid isPermaLink="false">http://www.itsananderson.com/?p=830</guid>
		<description><![CDATA[Many people have been complaining recently about all the privacy issues with Facebook. There&#8217;s even a group of people promising to quit using Facebook after May 31st. At the time I&#8217;m writing this, they have just under 5 thousand people who have promised to quit. While that&#8217;s a fairly impressive number, it&#8217;s still only about [...]]]></description>
			<content:encoded><![CDATA[<p>Many people have been complaining recently about all the privacy issues with Facebook. There&#8217;s even a <a href="http://www.quitfacebookday.com/" title="Quit Facebook Day">group of people</a> promising to quit using Facebook after May 31<sup>st</sup>. At the time I&#8217;m writing this, they have just under 5 thousand people who have promised to quit. While that&#8217;s a fairly impressive number, it&#8217;s still only about 0.00125% of the <a href="http://www.facebook.com/press/info.php?statistics" title="Facebook Usage Statistics">Facebook population</a>. There was a short time when I considered joining their ranks, but I eventually decided against it. Here is some of the rationale behind my decision.</p>
<p><span id="more-830"></span><strong>Privacy? What Privacy?</strong></p>
<p>Something most people apparently don&#8217;t realize is that whenever they browse the web, they&#8217;re already giving up some of their privacy. Just by visiting a website you give them information about yourself. Your IP can be used to get an idea of where you are in the world. The server can even determine what operating system and browser you are using, and unless you disable cookies, it can even remember you if you visit again. None of these things are a real problem, but they illustrate the point that online privacy doesn&#8217;t really exist.</p>
<p>When you interact with any website, you give them even more information. Register an account? They now know your email address. Most websites encrypt passwords before storing them on their database, but you never know when a web site might store it as plain text, potentially giving the administrator access to any other accounts you&#8217;ve created with the same password. Any other information you provide (age, gender, interests, address) is also no longer private. For the most part that isn&#8217;t a problem, but there&#8217;s really nothing keeping the owners of the website from using that information in any way they please.</p>
<p>Consider Gmail. I use it (or at least Google Apps, which is essentially the same thing) for my email. Something I noticed early on was that the ads that are displayed next to my emails aren&#8217;t random. They often have something to do with the subject of my emails. Not only that, but they&#8217;ve become more and more related over the years as I&#8217;ve used Gmail. What this suggests is that Google not only &#8220;reads&#8221; my emails to figure out what ads to show, but they&#8217;re keeping track of my interests in order to provide more relevant ads. There&#8217;s not necessarily anything wrong with this. Google needs to make money just like anyone else, and offering relevant ads seems like a pretty good way to do that, but this serves as another example of online activities not really being private.</p>
<p>Finally let&#8217;s consider Facebook, Twitter, and social networking in general. We&#8217;ve now added an extra layer of information distribution. Not only is your information being shared with a web server, but it&#8217;s now being distributed to people around the globe. Most social networks have methods by which you can hide certain information. Facebook has detailed privacy settings and Twitter allows you to &#8220;protect&#8221; your tweets, requiring users to send you a request before they are allowed to view them. What you have to remember, though, is that any information you&#8217;ve shared with the social network is really no longer private, regardless of your &#8220;privacy&#8221; settings. So when you complain about your boss, or post embarrassing pictures of yourself online, you&#8217;ve already made the first mistake. Privacy settings are convenient, but you have to remember that no information is really private once it&#8217;s been posted to the internet.</p>
<p>So what&#8217;s this all mean? Should you be scared to use the internet, much less visit social networks? No. Just remember that anything you don&#8217;t want the world to know probably shouldn&#8217;t go online, especially not to a social network.</p>
<p><strong>Other Issues</strong></p>
<p>Ok, so I&#8217;ve explained why I think Facebook privacy is a non-issue, so why did I consider leaving Facebook? Put simply, applications and security.</p>
<p>If you&#8217;ve used Facebook for more than a couple months, then you probably remember the FarmVille and MafiaWars craze that so many people bought into. I remember a period of time when it seemed like every other entry on my feed was either &#8220;So-and-so needs help with a job&#8221; or &#8220;So-and-so just won a blue ribbon in X&#8221;. I refused, on principle, to participate in either of these games, and was constantly annoyed by all the noise. Today there are dozens of these kinds applications, with new ones showing up almost daily. I use social networks to connect with people socially, not to play games, so I find it annoying to be bombarded with random &#8220;news&#8221; items from applications my friends happen to be using. I understand that not everyone shares my views on this, but it seems like it should be possible to opt out completely, hiding all applications from showing up in my feed.</p>
<p>Facebook&#8217;s security is fairly robust. They even added a new feature recently that lets you receive notifications whenever somebody logs into your account from a different machine. My problems with Facebook security lie, again, with applications. Over the past year, I&#8217;ve seen dozens of &#8220;applications&#8221; that provide no useful functionality. If you add the application, it sends notifications to your friends, asking them to add the application. If they do, the pattern continues. These applications are little more than glorified viruses, and I think the Facebook management should be doing more to eliminate them and prevent new ones from being created.</p>
<p><strong>Alternatives</strong></p>
<p>Right now there aren&#8217;t very many alternatives to Facebook. Twitter is a great service that I enjoy using, but it caters to a different crowd of users. I don&#8217;t really expect my Grandma to ever use Twitter, so if I want to connect with her online I have to use a network that she can understand and use.</p>
<p>One alternative that has a lot of promise is <a href="http://buddypress.org/">BuddyPress</a>, an open source project backed by the same people behind WordPress. It essentially allows you to build your own social network. It&#8217;s a pretty slick tool, with a lot of room for customization, but the main problem with this kind of distributed network is that almost all friend connections are lost. The great thing about Facebook is that I can visit one website and see updates from personal friends, fellow college students, and relatives. This is more difficult with a self hosted solution like BuddyPress.</p>
<p>There is group of students who want to create a &#8220;distributed Facebook&#8221;, called <a href="http://www.joindiaspora.com/">Diaspora</a>. At the time I&#8217;m writing this, they&#8217;ve acquired over $180k in funding, which is quite impressive. The main idea for their project is to create a completely distributed social network, so rather than posting your data to a central hub, you host it on your own node, allowing you to have more control over what information you make available and who can see it. This sounds like a fantastic idea, but once again, my Grandma is a problem. I don&#8217;t expect her to ever be able to set up her own server to host her own node. My guess is that less than 1% of the Facebook population has the knowledge and resources that kind of setup requires. For an idea like this to work, they&#8217;re going to need to provide an alternative &#8220;hosted node&#8221; option. Even then, it would take a long time before enough people switched networks for a Facebook exodus to be feasible.</p>
<p><strong>Conclusions</strong></p>
<p>In closing, I believe that people&#8217;s privacy issues with Facebook arise from a misunderstanding of online privacy, not necessarily just from poor Facebook policies. By no means do I look at Facebook through rose-colored glasses, but I think too many people are expecting the Facebook administrators to protect their information, rather than taking responsibility for their own privacy.</p>
<p>Remember. Nothing you do online is truly private.</p>

<p><a href="http://feedads.g.doubleclick.net/~a/3u1a8mGgtCkehQQiLI_JWdVx44U/0/da"><img src="http://feedads.g.doubleclick.net/~a/3u1a8mGgtCkehQQiLI_JWdVx44U/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/3u1a8mGgtCkehQQiLI_JWdVx44U/1/da"><img src="http://feedads.g.doubleclick.net/~a/3u1a8mGgtCkehQQiLI_JWdVx44U/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/itsananderson/~4/5g0-RUYpkLc" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.itsananderson.com/2010/05/why-im-not-leaving-facebook/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.itsananderson.com/2010/05/why-im-not-leaving-facebook/</feedburner:origLink></item>
		<item>
		<title>Summer Forecast: Mostly Cloudy</title>
		<link>http://feedproxy.google.com/~r/itsananderson/~3/4WlaV_Yu6Dw/</link>
		<comments>http://www.itsananderson.com/2010/05/summer-forecast-mostly-cloudy/#comments</comments>
		<pubDate>Tue, 11 May 2010 05:26:39 +0000</pubDate>
		<dc:creator>Will</dc:creator>
				<category><![CDATA[Personal]]></category>

		<guid isPermaLink="false">http://www.itsananderson.com/?p=819</guid>
		<description><![CDATA[The end of my sophomore year is quickly approaching (the main reason I haven&#8217;t posted in a while) and I&#8217;m pretty excited about what life holds for me this summer and beyond. As you may have noticed, I have a new counter on the right-hand side of my blog. In a little more than 2 [...]]]></description>
			<content:encoded><![CDATA[<p>The end of my sophomore year is quickly approaching (the main reason I haven&#8217;t posted in a while) and I&#8217;m pretty excited about what life holds for me this summer and beyond. As you may have noticed, I have a new counter on the right-hand side of my blog. In a little more than 2 weeks I&#8217;ll be on my way to Seattle!</p>
<p><span id="more-819"></span>Now, just a quick note, lest you get confused. It is Seattle itself, not my experience there, that I expect to be mostly cloudy.</p>
<p>The reason I&#8217;m moving to Seattle this summer is because I&#8217;ll be working for Microsoft as an SDET (Software Development Engineer in Test) intern. A lot of meaning and potential responsibilities come with that title, but the most simplistic job description of an SDET might be &#8220;I break Microsoft products so you don&#8217;t have to&#8221;. I&#8217;m not sure exactly what I&#8217;ll get to work on during the three months I&#8217;m there, but whatever it is I&#8217;m sure it will be both interesting and experience building.</p>
<p>Beyond my work at Microsoft (which will take up most of my time) I also hope to get to see a lot of the area surrounding Seattle. I enjoy Disc Golf, so I plan on trying out nearby courses while I&#8217;m there. Microsoft organizes tons of events for summer interns, so I&#8217;ll probably take advantage of a few of those. I&#8217;m not sure what events will be available, so I don&#8217;t know yet what I&#8217;ll be interested in, but it sounds like there are enough of them that I&#8217;m sure something will pique my interest.</p>
<p>I&#8217;ll be living with Tony and Jackie Ferrell while I&#8217;m in Seattle. Tony is a Rose grad, which is how I got to know him and Jackie. I&#8217;m sure we&#8217;ll have some fun adventures around Seattle. I&#8217;m also excited about exploring some of the project ideas Tony and I discussed while he was still at Rose. I&#8217;ll hopefully have more news on that later this summer.</p>
<p>Once the summer ends, I&#8217;ll be taking 4 computer science courses next fall. Normally students only take one or two CS courses each quarter (filling the rest of their time with &#8220;easier&#8221; electives), but for the courses I&#8217;m taking it was now or never, so I decided to do it. It probably means it&#8217;ll be the busiest quarter of my college career, but being able to take all of those courses should make it worth it. I also plan on auditing at least part of one of the courses online this summer. That should hopefully reduce my workload in the fall (though it will mean I&#8217;ll be even busier this summer).</p>
<p>And that about sums it up. As usual, I&#8217;ve probably overbooked myself this summer, but I always figure its best to get everything you want to do out on the table so you can figure out which things are least important and can be eliminated. As the summer progresses, I&#8217;ll be able to figure out exactly which things those are.</p>

<p><a href="http://feedads.g.doubleclick.net/~a/iHb72EkEe9rLKBQWHfLoHOXaN98/0/da"><img src="http://feedads.g.doubleclick.net/~a/iHb72EkEe9rLKBQWHfLoHOXaN98/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/iHb72EkEe9rLKBQWHfLoHOXaN98/1/da"><img src="http://feedads.g.doubleclick.net/~a/iHb72EkEe9rLKBQWHfLoHOXaN98/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/itsananderson/~4/4WlaV_Yu6Dw" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.itsananderson.com/2010/05/summer-forecast-mostly-cloudy/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<feedburner:origLink>http://www.itsananderson.com/2010/05/summer-forecast-mostly-cloudy/</feedburner:origLink></item>
		<item>
		<title>Customizing the P2 WordPress Theme</title>
		<link>http://feedproxy.google.com/~r/itsananderson/~3/agOv0qpX2Gc/</link>
		<comments>http://www.itsananderson.com/2010/03/customizing-the-p2-wordpress-theme/#comments</comments>
		<pubDate>Tue, 30 Mar 2010 01:40:40 +0000</pubDate>
		<dc:creator>Will</dc:creator>
				<category><![CDATA[Personal]]></category>
		<category><![CDATA[P2]]></category>
		<category><![CDATA[Sleep]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://www.itsananderson.com/?p=808</guid>
		<description><![CDATA[As you may have seen, I launched a new blog about a week and a half ago to track how much sleep I&#8217;m getting. I think tracking my sleeping patterns has helped me get more rest, but that&#8217;s not really what this post is about. I thought it might be interesting to talk about some [...]]]></description>
			<content:encoded><![CDATA[<p>As you may have seen, I <a href="http://itsananderson.com/sleep">launched a new blog </a>about a week and a half ago to track how much sleep I&#8217;m getting. I think tracking my sleeping patterns has helped me get more rest, but that&#8217;s not really what this post is about.</p>
<p>I thought it might be interesting to talk about some of the customizations I made to the <a href="http://wordpress.org/extend/themes/p2">P2 WordPress theme</a> that I&#8217;m using.</p>
<p><span id="more-808"></span>True to the WordPress paradigm, I didn&#8217;t actually change anything in the P2 theme, but rather wrote a plugin to modify its behavior with filters and actions.</p>
<p>The most visible change I made was the addition of a &#8220;Sleep Counter&#8221; widget that displays the number of hours and minutes I&#8217;ve slept since March 18th. This actually relies on the the other parts of the plugin, though, so I&#8217;ll leave the discussion of this widget until later.</p>
<p>The main purpose of this customization is to keep track of the hours I&#8217;ve slept programmatically. I could have done this with post meta values, but that would defeat the purpose of P2 because I&#8217;d have to go into the back end to create posts. Instead, I decided to simply put the information in the post and parse it using the `wp_insert_post` action.</p>
<p>This hook is called whenever a post is saved, right after it has been written to the database. The function is passed the ID of the post that has been created/edited. What I do is get the post content, parse it to find the number of hours/minutes recorded, and save those values to two post metas (or update the post metas if I&#8217;m editing the post). The function is as follows.</p>
<pre>
function get_sleep_times($id) {
	$post = get_post($id);
	$content = $post->post_content;
	$matches = array();
	// pretty lazy regex matching here, but it works
	$matched = preg_match('/hours[^0123456789]*([0-9]*).*minutes[^0123456789]*([0-9]*)/i', $content, $matches);
	if ($matched < 1) // don't do anything if no sleep counts were posted.
		return;
	$hours = $matches[1];
	$minutes = $matches[2];
	update_post_meta($id, '_sleep_hours', $hours);
	update_post_meta($id, '_sleep_minutes', $minutes);
}
</pre>
<p>This code isn't perfect, but since I wrote it after about 24 hours without sleep and it is only intended to be used  by myself, I'll give myself a break.</p>
<p>The next step was to create the widget to display my total sleep count. I hadn't created any widgets since the new widget API was released in WordPress 2.8, but a great <a href="http://justintadlock.com/archives/2009/05/26/the-complete-guide-to-creating-widgets-in-wordpress-28">article by Justin Tadlock</a> set me on the right track. I added some customization options for how the sleep count is displayed, but the more interesting part is the function that actually displays the widget. It gets the options for the widget, then calls a `print_sleep_count` function that I defined. </p>
</pre>
<pre>
function print_sleep_count($format = '') {
	global $wpdb;
	$ajax = empty($format);
	$format = $format ? $format : SleepCounterWidget::$default_format;

	$query = "SELECT COALESCE(SUM(meta_value), 0) as totalsum FROM {$wpdb->postmeta} " .
			"INNER JOIN {$wpdb->posts} ON {$wpdb->postmeta}.post_id = {$wpdb->posts}.ID " .
			"WHERE {$wpdb->posts}.post_status <> 'trash' AND {$wpdb->postmeta}.meta_key = '%s'";

	$hours = intval($wpdb->get_var(sprintf($query, '_sleep_hours')));
	$minutes = intval($wpdb->get_var(sprintf($query, '_sleep_minutes')));

	printf($format, $hours + intval($minutes / 60), $minutes % 60);

	// exit if this is requested via AJAX
	// if we don't, WordPress will add '0' to the output
	!$ajax or die();
}
</pre>
<p>You&#8217;ll notice some funky stuff with the `$ajax` variable. I&#8217;ll explain that later. Just ignore it for now.</p>
<p>The main magic here is the the SQL query. I decided to use a SQL query instead of the post meta API because I wanted get an aggregate of the post metas, and doing the aggregation from within SQL is much more efficient. I built a customizable query so I could use it to get both the number of hours slept and the number of minutes slept. I use sprintf to insert the meta key I&#8217;m looking for when I send the query to `$wpdb`. The reason I decided against the $wpdb->prepare() function is efficiency. The result would have been the same, but that function does some argument escaping that isn&#8217;t necessary because I know exactly what variables I&#8217;m passing in.</p>
<p>Once I get the total number of hours and minutes I&#8217;ve slept, I convert it to actual hours and minutes. This takes care of the situation where the sum of minutes is greater than 60 (one hour).</p>
<p>The final enhancement I made was some front end AJAX that updates the widget value whenever I create a new post. It&#8217;s pretty basic, and just utilizes the <a href="http://codex.wordpress.org/AJAX_in_Plugins">Admin AJAX API</a> available within WordPress. The way I decided to do it was to utilize my existing `print_sleep_count` function. I simply hooked to an AJAX request event. That&#8217;s where the `$ajax` variable I mentioned earlier comes in. If the format argument isn&#8217;t passed to `print_sleep_count`, I assume it is being called via AJAX and exit at the end of the function.</p>
<p>You&#8217;ll also notice that I&#8217;ve got a widget on my main website that displays the same sleep count. It is mostly identical to the one on my Sleep blog, but the database tables are hard coded (because here `$wpdb->tablename` uses the wrong prefix). I also decided to have the sleep count link to my Sleep blog.</p>
<p>And that&#8217;s pretty much it. There are some enhancements I could probably make. For one thing, I could store the sleep count as one option in the options table to save myself from having to calculate an aggregate value every time, but with the number of visits I get each day, it&#8217;s not enough of an issue to worry about.</p>
<p>If you&#8217;d like to see what the rest of the plugin looks like, you can <a href="http://itsananderson.com/download/sleep-counter.1.0.zip">download it</a> and check it out.</p>

<p><a href="http://feedads.g.doubleclick.net/~a/n_EIAoFbgqnXCuM05uK1IgKPAYU/0/da"><img src="http://feedads.g.doubleclick.net/~a/n_EIAoFbgqnXCuM05uK1IgKPAYU/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/n_EIAoFbgqnXCuM05uK1IgKPAYU/1/da"><img src="http://feedads.g.doubleclick.net/~a/n_EIAoFbgqnXCuM05uK1IgKPAYU/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/itsananderson/~4/agOv0qpX2Gc" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.itsananderson.com/2010/03/customizing-the-p2-wordpress-theme/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://www.itsananderson.com/2010/03/customizing-the-p2-wordpress-theme/</feedburner:origLink></item>
		<item>
		<title>A WordPress Plugin for Developers</title>
		<link>http://feedproxy.google.com/~r/itsananderson/~3/U3QOFt68Vi4/</link>
		<comments>http://www.itsananderson.com/2010/03/a-wordpress-plugin-for-developers/#comments</comments>
		<pubDate>Sun, 28 Mar 2010 21:36:07 +0000</pubDate>
		<dc:creator>Will</dc:creator>
				<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://www.itsananderson.com/?p=798</guid>
		<description><![CDATA[I&#8217;ve had this concept in my mind for over a year now, and I finally decided to implement it. When working on different projects, I sometimes have problems with plugins interfering with each other (or at least making certain features difficult to test). I can always go though and enable and disable the correct plugins [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve had this concept in my mind for over a year now, and I finally decided to implement it.</p>
<p>When working on different projects, I sometimes have problems with plugins interfering with each other (or at least making certain features difficult to test). I can always go though and enable and disable the correct plugins and themes to get the environment I want, but this can be tedious when there are lots of plugins.</p>
<p><span id="more-798"></span>Dev Profiles takes away some of this tedium. Create profiles to store snapshots of enabled plugins and selected theme. These profiles can then be enabled later on to bring back that same snapshot.</p>
<p>I find this useful when I&#8217;m working on several different plugins and/or themes and need to switch back and forth between them frequently.</p>
<p>If you think you might find this useful, you can check out my <a href="http://www.itsananderson.com/plugins/dev-profiles/">plugin page</a>.</p>
<p><strong>NOTE: I&#8217;m not currently doing anything about plugin activation / deactivation hooks. This may be a future feature, but right now neither of these hooks are called.</strong></p>

<p><a href="http://feedads.g.doubleclick.net/~a/wv_ySWtdu8br1uTuOjkNGaIso54/0/da"><img src="http://feedads.g.doubleclick.net/~a/wv_ySWtdu8br1uTuOjkNGaIso54/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/wv_ySWtdu8br1uTuOjkNGaIso54/1/da"><img src="http://feedads.g.doubleclick.net/~a/wv_ySWtdu8br1uTuOjkNGaIso54/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/itsananderson/~4/U3QOFt68Vi4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.itsananderson.com/2010/03/a-wordpress-plugin-for-developers/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.itsananderson.com/2010/03/a-wordpress-plugin-for-developers/</feedburner:origLink></item>
		<item>
		<title>Counting On Sleep</title>
		<link>http://feedproxy.google.com/~r/itsananderson/~3/LmbAD5T-Mko/</link>
		<comments>http://www.itsananderson.com/2010/03/counting-on-sleep/#comments</comments>
		<pubDate>Thu, 18 Mar 2010 17:15:26 +0000</pubDate>
		<dc:creator>Will</dc:creator>
				<category><![CDATA[Personal]]></category>

		<guid isPermaLink="false">http://www.itsananderson.com/?p=794</guid>
		<description><![CDATA[My sleep patterns have been ridiculous this quarter, so I&#8217;ve decided to track how much I actually sleep from today on. I&#8217;m using P2, a theme developed by Automattic, along with a plugin I developed to automatically parse and track sleep hours from my posts. The running total will be displayed on the sidebar of [...]]]></description>
			<content:encoded><![CDATA[<p>My sleep patterns have been ridiculous this quarter, so I&#8217;ve decided to track how much I actually sleep from today on.</p>
<p>I&#8217;m using <a href="http://wordpress.org/extend/themes/p2">P2</a>, a theme developed by <a href="http://automattic.com/">Automattic</a>, along with a plugin I developed to automatically parse and track sleep hours from my posts. The running total will be displayed on the sidebar of the new site, as well as here.</p>
<p>Right then, I&#8217;ll let you <a href="http://itsananderson.com/sleep/">get to it</a>.</p>

<p><a href="http://feedads.g.doubleclick.net/~a/mtetzqIb9zUVZx-JbMVtcs2tbcE/0/da"><img src="http://feedads.g.doubleclick.net/~a/mtetzqIb9zUVZx-JbMVtcs2tbcE/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/mtetzqIb9zUVZx-JbMVtcs2tbcE/1/da"><img src="http://feedads.g.doubleclick.net/~a/mtetzqIb9zUVZx-JbMVtcs2tbcE/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/itsananderson/~4/LmbAD5T-Mko" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.itsananderson.com/2010/03/counting-on-sleep/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.itsananderson.com/2010/03/counting-on-sleep/</feedburner:origLink></item>
		<item>
		<title>Developing a Windows Phone 7 App</title>
		<link>http://feedproxy.google.com/~r/itsananderson/~3/wOp_z0QgCaM/</link>
		<comments>http://www.itsananderson.com/2010/03/developing-a-windows-phone-7-app/#comments</comments>
		<pubDate>Wed, 17 Mar 2010 21:37:11 +0000</pubDate>
		<dc:creator>Will</dc:creator>
				<category><![CDATA[Microsoft]]></category>

		<guid isPermaLink="false">http://www.itsananderson.com/?p=783</guid>
		<description><![CDATA[Microsoft announced some really cool technology at the MIX10 conference this week. I may write a more in depth post about what I found most interesting, but for now I want to talk about something more specific. Windows Phone 7 is Microsoft&#8217;s new offering in the mobile market. It hasn&#8217;t been released yet, but the [...]]]></description>
			<content:encoded><![CDATA[<p>Microsoft announced some really cool technology at the <a href="http://live.visitmix.com/">MIX10</a> conference this week. I may write a more in depth post about what I found most interesting, but for now I want to talk about something more specific.</p>
<p><span id="more-783"></span>Windows Phone 7 is Microsoft&#8217;s new offering in the mobile market. It hasn&#8217;t been released yet, but the demos look fantastic, and the development tools are available. After watching a few videos and seeing how easy it is to create an application for the WP7, I decided to download the tools and try it for myself.</p>
<p>Here is a screenshot of the result.</p>
<p><img src="http://www.itsananderson.com/wp-content/uploads/PongMobile.png" alt="" title="PongMobile" width="461" height="781" class="alignnone size-full wp-image-784" /></p>
<p>I only spent a few hours developing this application, so it isn&#8217;t fantastic, but I accomplished what I set out to do. I&#8217;ve created a functional Windows Phone 7 application!</p>
<p>If you want to see the source code, you can download my Visual Studio 2010 project <a href="http://itsananderson.com/download/Pong.zip">here</a>. Keep in mind that there isn&#8217;t excessive documentation for WP7 application development, so my design practices may not be perfect.</p>
<p><strong>[Note] I fixed an issue that keeps the application from launching. If you can&#8217;t get it to run, try downloading it again.</strong></p>
<p>You can learn more about Windows Phone 7 and <a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=2338b5d1-79d8-46af-b828-380b0f854203">download the developer tools</a> at the <a href="http://developer.windowsphone.com/windows-phone-7-series/">Windows Phone 7 developer website</a>.</p>

<p><a href="http://feedads.g.doubleclick.net/~a/AA7JE3V6Gx_0JZCxa3cZS3y__jA/0/da"><img src="http://feedads.g.doubleclick.net/~a/AA7JE3V6Gx_0JZCxa3cZS3y__jA/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/AA7JE3V6Gx_0JZCxa3cZS3y__jA/1/da"><img src="http://feedads.g.doubleclick.net/~a/AA7JE3V6Gx_0JZCxa3cZS3y__jA/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/itsananderson/~4/wOp_z0QgCaM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.itsananderson.com/2010/03/developing-a-windows-phone-7-app/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.itsananderson.com/2010/03/developing-a-windows-phone-7-app/</feedburner:origLink></item>
		<item>
		<title>New Plugin: Naughty Monkey</title>
		<link>http://feedproxy.google.com/~r/itsananderson/~3/3RbMMDP5c60/</link>
		<comments>http://www.itsananderson.com/2010/03/new-plugin-naughty-monkey/#comments</comments>
		<pubDate>Mon, 15 Mar 2010 11:48:45 +0000</pubDate>
		<dc:creator>Will</dc:creator>
				<category><![CDATA[Personal]]></category>

		<guid isPermaLink="false">http://www.itsananderson.com/?p=777</guid>
		<description><![CDATA[Right then, I&#8217;ve created a new plugin and I&#8217;m tired, so I&#8217;m going to go away now and let you read the description. Here&#8217;s a direct download link if you&#8217;re really curious.]]></description>
			<content:encoded><![CDATA[<p>Right then, I&#8217;ve created a new plugin and I&#8217;m tired, so I&#8217;m going to go away now and let you <a href="http://www.itsananderson.com/plugins/naughty-monkey/">read the description</a>.</p>
<p>Here&#8217;s a <a href="http://www.itsananderson.com/download/naughty-monkey.1.0.zip">direct download link</a> if you&#8217;re really curious.</p>

<p><a href="http://feedads.g.doubleclick.net/~a/bR-3tZbyoFL_W8xeUTdYCk36IsQ/0/da"><img src="http://feedads.g.doubleclick.net/~a/bR-3tZbyoFL_W8xeUTdYCk36IsQ/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/bR-3tZbyoFL_W8xeUTdYCk36IsQ/1/da"><img src="http://feedads.g.doubleclick.net/~a/bR-3tZbyoFL_W8xeUTdYCk36IsQ/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/itsananderson/~4/3RbMMDP5c60" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.itsananderson.com/2010/03/new-plugin-naughty-monkey/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.itsananderson.com/2010/03/new-plugin-naughty-monkey/</feedburner:origLink></item>
		<item>
		<title>NetBeans FTP File Permissions Fix</title>
		<link>http://feedproxy.google.com/~r/itsananderson/~3/qUepfuXSYpY/</link>
		<comments>http://www.itsananderson.com/2010/03/netbeans-ftp-file-permissions-fix/#comments</comments>
		<pubDate>Sun, 14 Mar 2010 20:43:50 +0000</pubDate>
		<dc:creator>Will</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Netbeans]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.itsananderson.com/?p=747</guid>
		<description><![CDATA[I&#8217;ve been trying out NetBean&#8217;s &#8220;PHP Application from Remote Server&#8221; feature this weekend. The idea is that when you save a file, it uploads that file to a remote server where it can be run. The problem I ran into is that when NetBeans uploads that file and overwrites the old version, the permissions on [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been trying out NetBean&#8217;s &#8220;PHP Application from Remote Server&#8221; feature this weekend. The idea is that when you save a file, it uploads that file to a remote server where it can be run.</p>
<p>The problem I ran into is that when NetBeans uploads that file and overwrites the old version, the permissions on the file change. I did some searching and it sounds like NetBeans doesn&#8217;t set permissions on the file, which means it just takes the server default. This doesn&#8217;t make much sense (should keep permissions of previous file) and for me it meant that the permissions were set so low that I couldn&#8217;t run the PHP scripts I was uploading.</p>
<p><span id="more-747"></span><br />
It&#8217;s simple enough to change the permissions on those files.</p>
<pre>
chmod -R 777 /path/to/files
</pre>
<p>But you have to run this command <em>every</em> time you make a change. This is a royal pain when you&#8217;re making a lot of small changes (like when you&#8217;re trying to track down a bug for example).</p>
<p>One solution might be to try hooking into the ftp server daemon to run that command every time something is committed, but that sounded like too much work. I came up with a better solution.</p>
<p>Instead, I decided to just run that command in a loop. The following scripts runs infinitely (until execution is stopped) and waits 1 second, then runs the permission command.</p>
<pre>
while (true); do
    sleep 1
    chmod -R 777 /path/to/files
done;
</pre>
<p>If you want to be able to do anything else in the command line while this is running, it&#8217;s probably a good idea to run it in a screen.</p>
<p>Also, you can end the execution of this script with CTRL+C. Otherwise it will continue executing forever.</p>

<p><a href="http://feedads.g.doubleclick.net/~a/uWkhGYJbVZHN7HEQmX7gBKQhfY0/0/da"><img src="http://feedads.g.doubleclick.net/~a/uWkhGYJbVZHN7HEQmX7gBKQhfY0/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/uWkhGYJbVZHN7HEQmX7gBKQhfY0/1/da"><img src="http://feedads.g.doubleclick.net/~a/uWkhGYJbVZHN7HEQmX7gBKQhfY0/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/itsananderson/~4/qUepfuXSYpY" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.itsananderson.com/2010/03/netbeans-ftp-file-permissions-fix/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<feedburner:origLink>http://www.itsananderson.com/2010/03/netbeans-ftp-file-permissions-fix/</feedburner:origLink></item>
		<item>
		<title>WordPress Installation Script</title>
		<link>http://feedproxy.google.com/~r/itsananderson/~3/bq-8gc5vZG8/</link>
		<comments>http://www.itsananderson.com/2010/03/wordpress-installation-script/#comments</comments>
		<pubDate>Fri, 12 Mar 2010 08:59:15 +0000</pubDate>
		<dc:creator>Will</dc:creator>
				<category><![CDATA[Personal]]></category>

		<guid isPermaLink="false">http://www.itsananderson.com/?p=740</guid>
		<description><![CDATA[The WordPress installation process is already incredibly simple, but because I often find myself setting up fresh installations of WordPress for various reasons, I decided to make it even easier. The following script takes a folder name as an argument, creates that folder in the website root (specified in a config variable of the script), [...]]]></description>
			<content:encoded><![CDATA[<p>The WordPress installation process is already incredibly simple, but because I often find myself setting up fresh installations of WordPress for various reasons, I decided to make it even easier.</p>
<p>The following script takes a folder name as an argument, creates that folder in the website root (specified in a config variable of the script), downloads and extracts the latest version of WordPress into that folder, and runs the WordPress install. Finally, it sets the admin password to the password specified in another config variable and removes the password change nag.</p>
<p><span id="more-740"></span></p>
<pre>
#!/bin/bash
#
# configuration
#
rootURL="http://localhost" # your root URL. No trailing slash
rootDIR="/home/anderswc/public_html" # your document root. No trailing slash

dbname="wordpress"
dbuser="username"
dbpass="password"
dbhost="localhost"

wppass="password" #password to use for the admin account
adminemail="email@example.com" #email to use for the admin account
blogtitle=$1 # defaults to the specified directory name. can be anything

if [ -z "$1" ]
then
	# directory name must be specified
	echo "Please specify an installation folder name"
else
	# ideally you shouldn't have to change anything past this point
	echo "Creating a WordPress instance in $rootDIR/$1"
	# create the directory to install WordPress in
	mkdir $rootDIR/$1
	# download the latest version of WordPress into the directory we just created
	wget -o /dev/null -O $rootDIR/$1/wordpress.zip http://wordpress.org/latest.zip
	# unzip the archive containing WordPress. files will be inside a 'wordpress' directory
	unzip -q $rootDIR/$1/wordpress.zip -d $rootDIR/$1
	# move the files out of the 'wordpress' directory into their intended location
	mv $rootDIR/$1/wordpress/* $rootDIR/$1
	# remove the wordpress archive and the wordpress folder
	rm $rootDIR/$1/wordpress.zip
	rmdir $rootDIR/$1/wordpress
	# make WordPress directory writeable by PHP so installation can take place
	chmod -R 777 $rootDIR/$1
	# request the configuration file generation and blog installation webpages.
	postdata="dbname=$dbname&#038;uname=$dbuser&#038;pwd=$dbpass&#038;dbhost=$dbhost&#038;prefix=$1_"
	wget -o /dev/null --post-data "$postdata" "$rootURL/$1/wp-admin/setup-config.php?step=2"
	postdata="weblog_title=$blogtitle&#038;admin_email=$adminemail"
	wget -o /dev/null --post-data "$postdata" "$rootURL/$1/wp-admin/install.php?step=2"
	# WordPress password was randomly generated
	# change it to password in configuration and remove password change nag
	sqlcommand="UPDATE $1_users SET user_pass=MD5('$wppass')"
	sqlcommand="$sqlcommand;DELETE FROM $1_usermeta WHERE meta_key='default_password_nag';"
	mysql -u $dbuser -p$dbpass -e "$sqlcommand" $dbname
	# uncomment the following line if you're running this script on a public server
	#chmod -R 755 $rootDIR/$1
	echo "Done"
fi
</pre>
<p>If you think this might be useful, give it a shot and let me know what you think.</p>
<p>If you&#8217;re thinking &#8220;OK, how do I actually use this?&#8221;, then this trick probably isn&#8217;t for you.</p>

<p><a href="http://feedads.g.doubleclick.net/~a/fjMOvQo0VxcwpGxR1OvoBjTymPQ/0/da"><img src="http://feedads.g.doubleclick.net/~a/fjMOvQo0VxcwpGxR1OvoBjTymPQ/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/fjMOvQo0VxcwpGxR1OvoBjTymPQ/1/da"><img src="http://feedads.g.doubleclick.net/~a/fjMOvQo0VxcwpGxR1OvoBjTymPQ/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/itsananderson/~4/bq-8gc5vZG8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.itsananderson.com/2010/03/wordpress-installation-script/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.itsananderson.com/2010/03/wordpress-installation-script/</feedburner:origLink></item>
		<item>
		<title>New Theme: “Itsananderson”</title>
		<link>http://feedproxy.google.com/~r/itsananderson/~3/x2M9YlDMKjo/</link>
		<comments>http://www.itsananderson.com/2010/03/new-theme-itsananderson/#comments</comments>
		<pubDate>Wed, 10 Mar 2010 20:52:15 +0000</pubDate>
		<dc:creator>Will</dc:creator>
				<category><![CDATA[It's An Anderson]]></category>

		<guid isPermaLink="false">http://www.itsananderson.com/?p=738</guid>
		<description><![CDATA[Hey, so in case you didn&#8217;t notice for some reason, my old nasty &#8220;parchment&#8221; theme is dead and gone. Out with the old, in with the new. Whatcha think?]]></description>
			<content:encoded><![CDATA[<p>Hey, so in case you didn&#8217;t notice for some reason, my old nasty &#8220;parchment&#8221; theme is dead and gone. Out with the old, in with the new.</p>
<p>Whatcha think?</p>

<p><a href="http://feedads.g.doubleclick.net/~a/c4YRsvmbq0iLLQ4aiI4I-I4JrNE/0/da"><img src="http://feedads.g.doubleclick.net/~a/c4YRsvmbq0iLLQ4aiI4I-I4JrNE/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/c4YRsvmbq0iLLQ4aiI4I-I4JrNE/1/da"><img src="http://feedads.g.doubleclick.net/~a/c4YRsvmbq0iLLQ4aiI4I-I4JrNE/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/itsananderson/~4/x2M9YlDMKjo" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.itsananderson.com/2010/03/new-theme-itsananderson/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://www.itsananderson.com/2010/03/new-theme-itsananderson/</feedburner:origLink></item>
		<item>
		<title>Checking Out Twenty Ten</title>
		<link>http://feedproxy.google.com/~r/itsananderson/~3/r7llqQVy11U/</link>
		<comments>http://www.itsananderson.com/2010/03/checking-out-twenty-ten/#comments</comments>
		<pubDate>Mon, 01 Mar 2010 12:58:53 +0000</pubDate>
		<dc:creator>Will</dc:creator>
				<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://www.itsananderson.com/?p=730</guid>
		<description><![CDATA[[Obligatory comment about my lack of posts and my intentions to be better in the future] I&#8217;ve been following the development of WordPress 3.0 more closely than previous versions, and one of the features that has intrigued me the most is the new theme being developed. Twenty Ten is shaping up to be an elegant [...]]]></description>
			<content:encoded><![CDATA[<p>[Obligatory comment about my lack of posts and my intentions to be better in the future]</p>
<p>I&#8217;ve been following the development of WordPress 3.0 more closely than previous versions, and one of the features that has intrigued me the most is the new theme being developed. Twenty Ten is shaping up to be an elegant and innovative theme and I&#8217;m excited to see what it becomes before the final release of WordPress 3.0.</p>
<p><span id="more-730"></span></p>
<p>One of the nifty WordPress 3.0 features Twenty Ten takes advantage of is the new API for choosing a header and background image. In previous WordPress versions, theme authors would have to include complicated forms and form handlers if they wanted to allow their theme&#8217;s header and background to be customized. Now the theme simply has to indicate to WordPress that it supports custom headers and/or backgrounds and mention any images that are included in the theme. WordPress takes care of the rest, allowing administrators to choose between the available images or even upload an image of their own. Not only does Twenty Ten utilize this API, but it includes eight (so far) beautiful images to choose from.</p>
<p>The really nifty thing about having this standard API for custom headers/backgrounds is that it&#8217;s easy to customize. For example, I was able to write a plugin that randomly chooses between the available headers using a standard (to WP 3.0) filter. What&#8217;s neat is that this plugin should work with any theme that uses the new API and includes custom headers (though it&#8217;s hard to test since no other themes support currently do).</p>
<p>If you haven&#8217;t seen what Twenty Ten looks like, you can <a href="http://itsananderson.com/trunk">find my own instance here</a>. I have the custom header plugin installed, so if you refresh the page the header image should change.</p>
<p>And that&#8217;s about it. If you want to check out my random header plugin, it has its own <a href="http://www.itsananderson.com/plugins/random-headers/">plugin page</a>.</p>

<p><a href="http://feedads.g.doubleclick.net/~a/7y_40H7f-b2iu-2DiN_mmQfVSS0/0/da"><img src="http://feedads.g.doubleclick.net/~a/7y_40H7f-b2iu-2DiN_mmQfVSS0/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/7y_40H7f-b2iu-2DiN_mmQfVSS0/1/da"><img src="http://feedads.g.doubleclick.net/~a/7y_40H7f-b2iu-2DiN_mmQfVSS0/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/itsananderson/~4/r7llqQVy11U" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.itsananderson.com/2010/03/checking-out-twenty-ten/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		<feedburner:origLink>http://www.itsananderson.com/2010/03/checking-out-twenty-ten/</feedburner:origLink></item>
		<item>
		<title>New Plugin: Minimum Password Length</title>
		<link>http://feedproxy.google.com/~r/itsananderson/~3/syKTfRJUQv0/</link>
		<comments>http://www.itsananderson.com/2009/08/new-plugin-minimum-password-length/#comments</comments>
		<pubDate>Sat, 22 Aug 2009 04:25:23 +0000</pubDate>
		<dc:creator>Will</dc:creator>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[Password]]></category>
		<category><![CDATA[Plugin]]></category>

		<guid isPermaLink="false">http://www.itsananderson.com/?p=694</guid>
		<description><![CDATA[David Peralty sent out a tweet recently, asking if there was a plugin that enforced a minimum password length. I looked around and didn&#8217;t find anything, so I decided to write one. As with most of my plugins, it&#8217;s pretty simple. Just install it and go. If you want to change the minimum password length [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://twitter.com/brandingdavid">David Peralty</a> sent out a <a href="http://twitter.com/brandingdavid/statuses/3450347287">tweet</a> recently, asking if there was a plugin that enforced a minimum password length. I looked around and didn&#8217;t find anything, so I decided to write one. As with most of my plugins, it&#8217;s pretty simple. Just install it and go. If you want to change the minimum password length (default is 7 characters) simply edit the plugin file and change the value of $min_length.</p>
<p><a href="http://www.itsananderson.com/plugins/minimum-password-length/">Plugin page</a> (basically the same instructions as this post).</p>
<p><a href="http://www.itsananderson.com/download/minimum-password-length.1.0.zip">Direct Download</a></p>

<p><a href="http://feedads.g.doubleclick.net/~a/esRds8UBsSxSReR9UWDLeLdvNGg/0/da"><img src="http://feedads.g.doubleclick.net/~a/esRds8UBsSxSReR9UWDLeLdvNGg/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/esRds8UBsSxSReR9UWDLeLdvNGg/1/da"><img src="http://feedads.g.doubleclick.net/~a/esRds8UBsSxSReR9UWDLeLdvNGg/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/itsananderson/~4/syKTfRJUQv0" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.itsananderson.com/2009/08/new-plugin-minimum-password-length/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://www.itsananderson.com/2009/08/new-plugin-minimum-password-length/</feedburner:origLink></item>
		<item>
		<title>Add Some Emotion To Your Gravatar</title>
		<link>http://feedproxy.google.com/~r/itsananderson/~3/l7bYfa6mzxc/</link>
		<comments>http://www.itsananderson.com/2009/08/add-some-emotion-to-your-gravatar/#comments</comments>
		<pubDate>Fri, 21 Aug 2009 00:04:21 +0000</pubDate>
		<dc:creator>Will</dc:creator>
				<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://www.itsananderson.com/?p=678</guid>
		<description><![CDATA[Gravatar is amazing, isn&#8217;t it? I don&#8217;t usually think about it, but it&#8217;s really cool to be able to read a blog post, look at the comments, recognize someone that you know by their unique picture, then post your own comment and be recognized in return. All without uploading any files to the site you&#8217;re [...]]]></description>
			<content:encoded><![CDATA[<p>Gravatar is amazing, isn&#8217;t it? I don&#8217;t usually think about it, but it&#8217;s really cool to be able to read a blog post, look at the comments, recognize someone that you know by their unique picture, then post your own comment and be recognized in return. All without uploading any files to the site you&#8217;re visiting. Pretty cool huh? Let&#8217;s take it to the next level!</p>
<p><span id="more-678"></span>A problem I sometimes notice, though, is that people&#8217;s gravatars don&#8217;t always match the the mood of the conversation. There are two extremes. One could be discussing a serious subject, but have a gravatar that is jovial and humorous. This might not always be appropriate. On the other hand, they could be involved in a humor thread, and then have a serious gravatar that just doesn&#8217;t fit the situation.</p>
<p>You can, of course, have multiple emails associated with your Gravatar account, but who wants to set up an email account for every mood they might be in? Once again, <a href="http://www.tech-recipes.com/rx/980/use-gmail-plus-addressing-to-generate-throw-away-e-mail-addresses/">Google Plus Addressing</a> comes to the rescue.</p>
<p>So what you can do is to map different gravatars to the same email, with different plus addresses.</p>
<p>Here are some examples I just create (note: I took two of the pictures with my phone, and yes, my hair is getting long).</p>
<p><img src="http://www.gravatar.com/avatar/aef107b3b770449171324dfcff7d339f.png" alt="Happy" /> will+happy@itsananderson.com</p>
<p><img src="http://www.gravatar.com/avatar/56699cbc8bba4036cc72b2135e60c39e.png" alt="Sad" /> will+sad@itsananderson.com</p>
<p><img src="http://www.gravatar.com/avatar/192de77740369651e772e21cc17e5b2e.png" alt="Surprised" /> will+surprised@itsananderson.com</p>
<p>This is a boring example, but hopefully you get the idea.</p>
<p>Unfortunately, you still have to verify each email on Gravatar, even though it goes to the same inbox. Wouldn&#8217;t it be great if Gravatar let you do this automatically? Just upload a picture and associate it with an email, then choose a tag that can be used to access that picture. I don&#8217;t think it would be that hard, and it would be totally awesome to use!</p>

<p><a href="http://feedads.g.doubleclick.net/~a/XU3WMVwMd1KRV7Ni1zt7dDykqLk/0/da"><img src="http://feedads.g.doubleclick.net/~a/XU3WMVwMd1KRV7Ni1zt7dDykqLk/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/XU3WMVwMd1KRV7Ni1zt7dDykqLk/1/da"><img src="http://feedads.g.doubleclick.net/~a/XU3WMVwMd1KRV7Ni1zt7dDykqLk/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/itsananderson/~4/l7bYfa6mzxc" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.itsananderson.com/2009/08/add-some-emotion-to-your-gravatar/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://www.itsananderson.com/2009/08/add-some-emotion-to-your-gravatar/</feedburner:origLink></item>
		<item>
		<title>WeblogToolsCollection Plugin Competition</title>
		<link>http://feedproxy.google.com/~r/itsananderson/~3/Yx7GM-s6Tiw/</link>
		<comments>http://www.itsananderson.com/2009/08/weblogtoolscollection-plugin-competition/#comments</comments>
		<pubDate>Mon, 10 Aug 2009 12:49:10 +0000</pubDate>
		<dc:creator>Will</dc:creator>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[Plugin]]></category>

		<guid isPermaLink="false">http://www.itsananderson.com/?p=664</guid>
		<description><![CDATA[Have you voted on the Weblog Tools Collection Plugin competition? There are is a host of new plugins available for download. They range from the very simple to the very complex. My personal favorite is the Pixopoint Menu Plugin, but there are some other great ones there as well. Check it out!]]></description>
			<content:encoded><![CDATA[<p>Have you voted on the Weblog Tools Collection Plugin competition? There are is a host of new plugins available for download. They range from the very simple to the very complex. My personal favorite is the <a href="http://weblogtoolscollection.com/pluginblog/2009/07/23/pixopoint-menu/">Pixopoint Menu Plugin</a>, but there are some other great ones there as well. <a href="http://weblogtoolscollection.com/pluginblog/">Check it out!</a></p>

<p><a href="http://feedads.g.doubleclick.net/~a/f4dvqCt1y516gc0VENxGhFs7bDs/0/da"><img src="http://feedads.g.doubleclick.net/~a/f4dvqCt1y516gc0VENxGhFs7bDs/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/f4dvqCt1y516gc0VENxGhFs7bDs/1/da"><img src="http://feedads.g.doubleclick.net/~a/f4dvqCt1y516gc0VENxGhFs7bDs/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/itsananderson/~4/Yx7GM-s6Tiw" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.itsananderson.com/2009/08/weblogtoolscollection-plugin-competition/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.itsananderson.com/2009/08/weblogtoolscollection-plugin-competition/</feedburner:origLink></item>
		<item>
		<title>Plugin Updates for WordPress 2.8.1</title>
		<link>http://feedproxy.google.com/~r/itsananderson/~3/El6PMr59d0U/</link>
		<comments>http://www.itsananderson.com/2009/07/plugin-updates-for-wordpress-2-8-1/#comments</comments>
		<pubDate>Wed, 15 Jul 2009 13:15:27 +0000</pubDate>
		<dc:creator>Will</dc:creator>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[Plugin]]></category>
		<category><![CDATA[Updates]]></category>
		<category><![CDATA[WordPress 2.8.1]]></category>

		<guid isPermaLink="false">http://www.itsananderson.com/?p=638</guid>
		<description><![CDATA[A few hours ago, a post was released detailing issues plugins might be having with the latest WordPress release, and how to address them. I checked my plugins, and their options pages were indeed broken. Fortunately the fix was easy enough, and the two plugins I&#8217;ve released here on my blog are up to date. [...]]]></description>
			<content:encoded><![CDATA[<p>A few hours ago, a <a href="http://westi.wordpress.com/2009/07/15/making-your-broken-plugin-work-again-with-wordpress-2-8-1/">post</a> was released detailing issues plugins might be having with the latest WordPress release, and how to address them. I checked my plugins, and their options pages were indeed broken. Fortunately the fix was easy enough, and the two plugins I&#8217;ve released here on my blog are up to date.</p>
<p>Go ahead and grab the new versions of <a href="http://www.itsananderson.com/download/code-snippets.1.1.zip">Code Snippets</a> and <a href="http://www.itsananderson.com/download/short-comment-filter.2.1.zip">Short Comment Filter</a>.</p>

<p><a href="http://feedads.g.doubleclick.net/~a/E8e6t4paJzJRltQSk_iEqlYAq3o/0/da"><img src="http://feedads.g.doubleclick.net/~a/E8e6t4paJzJRltQSk_iEqlYAq3o/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/E8e6t4paJzJRltQSk_iEqlYAq3o/1/da"><img src="http://feedads.g.doubleclick.net/~a/E8e6t4paJzJRltQSk_iEqlYAq3o/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/itsananderson/~4/El6PMr59d0U" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.itsananderson.com/2009/07/plugin-updates-for-wordpress-2-8-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.itsananderson.com/2009/07/plugin-updates-for-wordpress-2-8-1/</feedburner:origLink></item>
		<item>
		<title>JSON and ASP.NET</title>
		<link>http://feedproxy.google.com/~r/itsananderson/~3/mwx1jbuRN_w/</link>
		<comments>http://www.itsananderson.com/2009/06/json-and-asp-net/#comments</comments>
		<pubDate>Sat, 27 Jun 2009 00:39:05 +0000</pubDate>
		<dc:creator>Will</dc:creator>
				<category><![CDATA[ASP.NET]]></category>
		<category><![CDATA[AJAX]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[JSON]]></category>

		<guid isPermaLink="false">http://www.itsananderson.com/?p=626</guid>
		<description><![CDATA[This is a bit different from my normal PHP and MySQL related posts, but I found this interesting so I though I&#8217;d pass it along. If you&#8217;re familiar with ASP.NET you probably know that every page has a presentation layer (a lax form of XML) and a business layer (C# or Visual Basic). This is [...]]]></description>
			<content:encoded><![CDATA[<p>This is a bit different from my normal PHP and MySQL related posts, but I found this interesting so I though I&#8217;d pass it along.</p>
<p>If you&#8217;re familiar with ASP.NET you probably know that every page has a presentation layer (a lax form of XML) and a business layer (C# or Visual Basic). This is a brilliant way of organizing a website because it separates your data (the presentation layer) from your complex logic (the business layer). This gives you several advantages (not by any means an exhaustive list):</p>
<ol>
<li>Complicated logic is easier to understand when it isn&#8217;t cluttered with HTML tags</li>
<li>Because the presentation and the business layers are loosely linked, changes in one often don&#8217;t require a change in the other</li>
<li>Object oriented principles can be used in both the presentation, and the business layer, promoting code reuse</li>
</ol>
<p><span id="more-626"></span>Now that I&#8217;ve sung the praises of the ASP.NET paradigm, it&#8217;s time to talk about one of the challenges it presents: AJAX calls, specifically JSON responses. If you&#8217;re not familiar with JSON, the idea is that rather than passing information as plain text or XML, it can be passed along in &#8220;JavaScript Object Notation&#8221;. In plain terms, this means that you pass a string which can be parsed to create a JavaScript object. Because JavaScript treats associative arrays and objects essentially the same, meaning that an array can be used to represent a JavaScript object. Confused yet? Here&#8217;s an example. For the sake of simplicity, I&#8217;m just setting the object string directly. Normally it would be the result of an AJAX request.</p>
<pre name="code" class="javascript">
var json = '{ name : "Joe Smith", age : 23, job : "Consultant" }';
var func = Function('return ' + json);
var jsonObject = func();
alert(jsonObject.name); // Joe Smith
alert(jsonObject.age);   // 23
alert(jsonObject.job);    // Consultant
</pre>
<p>Ok, so now we&#8217;ve got the ASP.NET and JSON explanations out of the way (if you were already familiar with these technologies, thanks for sticking with me). Here&#8217;s the challenge I ran into, and how I got around it.</p>
<p>Let&#8217;s suppose you&#8217;re using ASP.NET and C# to run your website, and you have a directory of users. For this example let&#8217;s suppose that you have a page which lists the usernames for every member of your site. Clicking a user&#8217;s username should bring up their other information (in this case, their name, age, and job). Being an eager developer, you decide to display this information via JavaScript and AJAX because that seems like the Web 2.0 thing to do. So you&#8217;ll make a request to another ASP.NET page and parse the response as JSON. This is great, except that ASP.NET pages are generally served as HTML (which in a stretch could be treated as XML). Not exactly your optimal solution, especially if you aren&#8217;t comfortable with traversing a DOM tree. Fortunately there&#8217;s a really simple solution. Leave everything out of your ASP.NET page except for the tag to include the C# file. Then in your C# file you can print the JSON information directly. Let&#8217;s look at an example.</p>
<p>The first file is GetUserInfo.aspx, which is very basic.</p>
<pre name="code" class="html">
< %@ Page Language="C#" AutoEventWireup="true" CodeBehind="GetUserInfo.aspx.cs" %>
</pre>
<p>The second file is the GetUserInfo.aspx.cs, which is also fairly simple. I&#8217;ll just show the Page_Load function for brevity.</p>
<pre name="code" class="c-sharp">
protected void Page_Load(object sender, EventArgs e)
{
    String json = "{ ";
    //
    // Get values from database and add them to the json string
    //
    json += " }";
    Response.Write(json);
}
</pre>
<p>And that&#8217;s all we have to do for this page (except for getting the values from the database, which is straight forward). I&#8217;ll note that there are actually libraries for generating JSON strings, but I left them out for the sake of simplicity. To learn about available libraries (and JSON in general) check out <a href="http://www.json.org/">www.json.org</a>.</p>
<p>Now I only talked about my experience with JSON and ASP.NET. I&#8217;m by no means claiming that this is the best solution, or that JSON is even how you&#8217;ll always want to receive AJAX responses. This is simply what worked for me. If you know of some reason this isn&#8217;t a good idea, or of a better way of doing it, feel free to point it out in the comments.</p>

<p><a href="http://feedads.g.doubleclick.net/~a/Y89y-5INcV99AUgmGGiQhF_qahU/0/da"><img src="http://feedads.g.doubleclick.net/~a/Y89y-5INcV99AUgmGGiQhF_qahU/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/Y89y-5INcV99AUgmGGiQhF_qahU/1/da"><img src="http://feedads.g.doubleclick.net/~a/Y89y-5INcV99AUgmGGiQhF_qahU/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/itsananderson/~4/mwx1jbuRN_w" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.itsananderson.com/2009/06/json-and-asp-net/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://www.itsananderson.com/2009/06/json-and-asp-net/</feedburner:origLink></item>
		<item>
		<title>Back On Track</title>
		<link>http://feedproxy.google.com/~r/itsananderson/~3/SYDFF-SMTw0/</link>
		<comments>http://www.itsananderson.com/2009/06/back-on-track/#comments</comments>
		<pubDate>Thu, 18 Jun 2009 16:18:30 +0000</pubDate>
		<dc:creator>Will</dc:creator>
				<category><![CDATA[Personal]]></category>

		<guid isPermaLink="false">http://www.itsananderson.com/?p=619</guid>
		<description><![CDATA[Nearly a month has transpired since my last post, but I finally have a chance to write something. This post will be more personal than technical., so don&#8217;t say I didn&#8217;t warn you. Since my last post, the spring quarter at Rose has (finally) ended. I love school, but toward the end of the quarter [...]]]></description>
			<content:encoded><![CDATA[<p>Nearly a month has transpired since my last post, but I finally have a chance to write something. This post will be more personal than technical., so don&#8217;t say I didn&#8217;t warn you.</p>
<p><span id="more-619"></span>Since my last post, the spring quarter at <a href="http://www.rose-hulman.edu/">Rose </a>has (finally) ended. I love school, but toward the end of the quarter my lack of sleep was really starting to wear me down. Now that I&#8217;ve had time to recuperate, I&#8217;m already excited for next year.</p>
<p><strong>Work</strong></p>
<p>I started work at <a href="http://angellearning.com">ANGEL Learning</a> June 1<sup>st</sup> and have been loving it so far. In the 2 and a half weeks I&#8217;ve been at ANGEL, I feel like I&#8217;ve learned as much about the various aspects of software development as I would in an entire class. ANGEL was acquired about 5 weeks ago by <a href="http://www.blackboard.com">Blackboard</a>, a company that offers a competing product. Being able to see the way this transition occurs from a &#8220;safe&#8221;, low stakes position has been, and I&#8217;m sure will continue to be an invaluable experience.</p>
<p><strong>Conferences</strong></p>
<p>A little over a month ago, I had the opportunity to attend an ANGEL Users Conference on the coat tails of the RosEvaluation tool. This was about a week after ANGEL&#8217;s acquisition by Blackboard. It was interesting getting to see the different customer&#8217;s reactions to the acquisition.</p>
<p>During the conference, I got to give a talk about some of the things our team had learned while extending ANGEL with the RosEvaluation tool. At the end of the conference, Will Mathies, Timothy Chow, Kevin Davidson, and I received an ANGEL Impact Award for our work with RosEval. If you&#8217;d like, you can read the <a href="http://www.rose-hulman.edu/news/articles/2009angelaward.htm">news article</a> Rose put together about it.</p>
<p>I also got to attend WordCamp Columbus, where I met <a href="http://jeffc.me/">Jeff Chandler</a> of <a href="http://wptavern.com/">WP Tavern</a> as well as a handful of other well known people (the event had quite a few attenders, I&#8217;m just not very outgoing, so I didn&#8217;t meet most of them). I had a great time, and came away with a few neat tips and tricks (see <a href="http://www.itsananderson.com/2009/05/multiple-wp-blogs-on-one-wp-core/">previous post</a>). Even though it&#8217;s a bit of a drive getting to Columbus, I feel it was well worth the effort and I hope to attend the next one if my schedule permits.</p>
<p><strong>Family</strong></p>
<p>Both frightening and exciting events have taken place in my family in the last month or so. While I was at the ANGEL Users Conference, my younger sister was rushed to Riley Children&#8217;s Hospital after slipping into a diabetic coma. She recovered fairly quickly and was able to go home, but the last month has been a trying time for everyone (especially her). Taking care of her diabetes has required some big schedule adjustments (and lots of needles).</p>
<p>On a more up beat note, I&#8217;m now the uncle of a second nephew. My older sister and her husband are the proud parents of their first born, Stephen Mathew Agapie.</p>
<p><strong>The End</strong></p>
<p>And that just about wraps it up. I&#8217;m working full time this summer, as well as working on a few side projects, but I&#8217;d really like to start posting more (both personal posts, and more technical fare). So if I go very long without posting anything (I&#8217;d say a week is probably a reasonable limit) by all means bug me about it.</p>

<p><a href="http://feedads.g.doubleclick.net/~a/oscGZpA8jHq7DdIFgVULoRSjFgY/0/da"><img src="http://feedads.g.doubleclick.net/~a/oscGZpA8jHq7DdIFgVULoRSjFgY/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/oscGZpA8jHq7DdIFgVULoRSjFgY/1/da"><img src="http://feedads.g.doubleclick.net/~a/oscGZpA8jHq7DdIFgVULoRSjFgY/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/itsananderson/~4/SYDFF-SMTw0" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.itsananderson.com/2009/06/back-on-track/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<feedburner:origLink>http://www.itsananderson.com/2009/06/back-on-track/</feedburner:origLink></item>
		<item>
		<title>Multiple WordPress Blogs On One WordPress Core</title>
		<link>http://feedproxy.google.com/~r/itsananderson/~3/epu62GWa7Mc/</link>
		<comments>http://www.itsananderson.com/2009/05/multiple-wordpress-blogs-on-one-wordpress-core/#comments</comments>
		<pubDate>Thu, 21 May 2009 15:03:08 +0000</pubDate>
		<dc:creator>Will</dc:creator>
				<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://www.itsananderson.com/?p=611</guid>
		<description><![CDATA[Last Saturday I had the opportunity to listen to Mike Krotscheck talk about techniques for advanced WordPress installations. One of the most interesting things I took away from his talk was a way to install multiple WordPress blogs on one WordPress core. Note we&#8217;re not talking about WordPress MU. When you only need 2 or [...]]]></description>
			<content:encoded><![CDATA[<p>Last Saturday I had the opportunity to listen to <a href="http://www.krotscheck.net/">Mike Krotscheck</a> talk about techniques for advanced WordPress installations. One of the most interesting things I took away from his talk was a way to install multiple WordPress blogs on one WordPress core. Note we&#8217;re not talking about WordPress MU. When you only need 2 or 3 blogs, WordPress MU can be a bit overkill, but installing these blogs on the same WordPress core can save space and make updates easier. Here&#8217;s how you do it.</p>
<p><span id="more-611"></span>First of course you need to download WordPress and then upload it to your server. This is the easy part, and there are lots of instructions for how to do this, so I won&#8217;t go through them. You&#8217;ll also need a MySQL database, but again I won&#8217;t go into that since there are lots of resources already available that explain how to do this.</p>
<p>Let&#8217;s suppose we&#8217;re installing two blogs on domain1.com and domain2.com (lame I know, but give me a break). These should be pointing at the same server (your domain registrar can help you with this). If you navigate to your WordPress install, you&#8217;ll be asked to go through the installation process. Let&#8217;s start with domain1.com. Enter all your database information, but specify a custom table prefix (like &#8220;domain1_&#8221;) which will be unique to that domain. Once the installation is complete (make sure you save your password!) you need to delete the wp-config.php file.</p>
<p>Now if you navigate with your other domain, you&#8217;ll be asked to install WordPress again. This time, use a different table prefix (like &#8220;domain2_&#8221;). This will give you two different sets of WordPress tables in your database. The only problem is that you can&#8217;t access both of them. We&#8217;ll remedy this next.</p>
<p>Go into your wp-config.php file and find the line that looks something like this.</p>
<p><code>$table_prefix  = 'domain2_';</code></p>
<p>We need this variable to be different, depending on what domain is being used to access your blog. Using the PHP $_SERVER super global, we can do this quite easily.</p>
<p>Here&#8217;s the new code you&#8217;d want to use.</p>
<pre class="php" name="code">
if ( 'domain1.com' == $_SERVER['HTTP_HOST'] )  {
$table_prefix = 'domain1_';
} else {
$table_prefix = 'domain2_';
}
</pre>
<p>So now your server will display two different blogs, depending on what domain is used to access your site. Again, the advantage here is that you only use the space of one set of WordPress files, and you only have to do one update when a new version is released.</p>
<p>Mike talked about some other cool things you can do with this, and talked about how you can address issues with plugins like Google SiteMaps. He promised to post his slides, so if you&#8217;d like to learn more you should check out <a href="http://www.krotscheck.net/">his blog</a>.</p>

<p><a href="http://feedads.g.doubleclick.net/~a/1fIRD5DsaRUXVUvoCVwfi5zKsbQ/0/da"><img src="http://feedads.g.doubleclick.net/~a/1fIRD5DsaRUXVUvoCVwfi5zKsbQ/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/1fIRD5DsaRUXVUvoCVwfi5zKsbQ/1/da"><img src="http://feedads.g.doubleclick.net/~a/1fIRD5DsaRUXVUvoCVwfi5zKsbQ/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/itsananderson/~4/epu62GWa7Mc" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.itsananderson.com/2009/05/multiple-wordpress-blogs-on-one-wordpress-core/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		<feedburner:origLink>http://www.itsananderson.com/2009/05/multiple-wordpress-blogs-on-one-wordpress-core/</feedburner:origLink></item>
		<item>
		<title>Short Comment Filter Update</title>
		<link>http://feedproxy.google.com/~r/itsananderson/~3/saSb_205JAY/</link>
		<comments>http://www.itsananderson.com/2009/05/short-comment-filter-update/#comments</comments>
		<pubDate>Tue, 19 May 2009 17:12:42 +0000</pubDate>
		<dc:creator>Will</dc:creator>
				<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://www.itsananderson.com/?p=606</guid>
		<description><![CDATA[After releasing the Short Comment Filter Plugin, I&#8217;ve gotten feedback from people at WP Tavern and I&#8217;ve finally gotten a chance to implement their suggestions. I&#8217;ve added enough features that I&#8217;m bumping the version number to 2.0. Get the new version here New Features Filtered Comment Count &#8211; Look at the settings page to see [...]]]></description>
			<content:encoded><![CDATA[<p>After releasing the Short Comment Filter Plugin, I&#8217;ve gotten feedback from people at <a href="http://wptavern.com/forum">WP Tavern</a> and I&#8217;ve finally gotten a chance to implement their suggestions. I&#8217;ve added enough features that I&#8217;m bumping the version number to 2.0. Get the new version <a href="http://www.itsananderson.com/download/short-comment-filter-2.0.zip">here</a></p>
<h4>New Features</h4>
<ul>
<li>Filtered Comment Count &#8211; Look at the settings page to see how many comments have been filtered</li>
<li>Customizable Filter Message &#8211; Specify a custom message to be displayed if a comment is too short. Use %type% and %length% for a dynamic message</li>
</ul>
<h4>Fixes</h4>
<ul>
<li>Email Notification &#8211; Notification emails are no longer sent out for filtered comments</li>
<li>Filtering Trackbacks &#8211; Trackbacks are no longer filtered. Only comments are required to meet the minimum length requirement</li>
</ul>
<p>Again, here&#8217;s the <a href="http://www.itsananderson.com/download/short-comment-filter-2.0.zip">download link</a></p>

<p><a href="http://feedads.g.doubleclick.net/~a/nPxbnUpWg4sAnfNCJWjlzBtNdBs/0/da"><img src="http://feedads.g.doubleclick.net/~a/nPxbnUpWg4sAnfNCJWjlzBtNdBs/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/nPxbnUpWg4sAnfNCJWjlzBtNdBs/1/da"><img src="http://feedads.g.doubleclick.net/~a/nPxbnUpWg4sAnfNCJWjlzBtNdBs/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/itsananderson/~4/saSb_205JAY" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.itsananderson.com/2009/05/short-comment-filter-update/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.itsananderson.com/2009/05/short-comment-filter-update/</feedburner:origLink></item>
		<item>
		<title>The Obscure WordPress get_option Parameter</title>
		<link>http://feedproxy.google.com/~r/itsananderson/~3/VnwfePDV6dE/</link>
		<comments>http://www.itsananderson.com/2009/05/wordpress-tip-obscure-get_option-parameter/#comments</comments>
		<pubDate>Tue, 05 May 2009 01:47:32 +0000</pubDate>
		<dc:creator>Will</dc:creator>
				<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://www.itsananderson.com/?p=596</guid>
		<description><![CDATA[Any WordPress Plugin developer worth their salt knows about the get_option function, which allows options to be retrieved from the database. What I recently discovered is that this function accepts a second parameter, indicating a default value to be returned if the option doesn&#8217;t exist in the database. Here&#8217;s a simple example of the &#8220;old&#8221; [...]]]></description>
			<content:encoded><![CDATA[<p>Any WordPress Plugin developer worth their salt knows about the <code>get_option</code> function, which allows options to be retrieved from the database. What I recently discovered is that this function accepts a second parameter, indicating a default value to be returned if the option doesn&#8217;t exist in the database.</p>
<p><span id="more-596"></span>Here&#8217;s a simple example of the &#8220;old&#8221; and &#8220;new&#8221; ways of retrieving options from the database:</p>
<p>old:</p>
<pre name="code" class="php">
$option = get_option( 'Option Name' );
if( false === $option ) {
$option = 'My real option value.';
}
</pre>
<p>new:</p>
<pre name="code" class="php">
$option = get_option('option_name', 'default');
</pre>
<p>As you can see, this simplifies option retrieval and makes your code just a little easier to read.</p>
<p><strong>EDIT:</strong> Thanks <a href="http://nickohrn.com/">Nick Ohrn</a> for pointing out a bug in the first code snippet. I&#8217;ve updated it so nobody is confused.</p>

<p><a href="http://feedads.g.doubleclick.net/~a/MH59M_AQNORyn6rMSwu8Ov6bVLc/0/da"><img src="http://feedads.g.doubleclick.net/~a/MH59M_AQNORyn6rMSwu8Ov6bVLc/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/MH59M_AQNORyn6rMSwu8Ov6bVLc/1/da"><img src="http://feedads.g.doubleclick.net/~a/MH59M_AQNORyn6rMSwu8Ov6bVLc/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/itsananderson/~4/VnwfePDV6dE" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.itsananderson.com/2009/05/wordpress-tip-obscure-get_option-parameter/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<feedburner:origLink>http://www.itsananderson.com/2009/05/wordpress-tip-obscure-get_option-parameter/</feedburner:origLink></item>
		<item>
		<title>Plugin Release: Short Comment Filter</title>
		<link>http://feedproxy.google.com/~r/itsananderson/~3/GPXxBwPnu2o/</link>
		<comments>http://www.itsananderson.com/2009/04/plugin-release-short-comment-filter/#comments</comments>
		<pubDate>Mon, 13 Apr 2009 04:22:00 +0000</pubDate>
		<dc:creator>Will</dc:creator>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Plugin]]></category>
		<category><![CDATA[Short Comment Filter]]></category>

		<guid isPermaLink="false">http://www.itsananderson.com/?p=594</guid>
		<description><![CDATA[Today I&#8217;m releasing a new plugin: Short Comment Filter It automatically spams or deletes comments that are too short. You can view more information about the plugin and download it here.]]></description>
			<content:encoded><![CDATA[<p>Today I&#8217;m releasing a new plugin: Short Comment Filter</p>
<p>It automatically spams or deletes comments that are too short.</p>
<p>You can view more information about the plugin and download it <a href="http://www.itsananderson.com/plugins/short-comment-filter/" title="Short Comment Filter Plugin Page">here</a>.</p>

<p><a href="http://feedads.g.doubleclick.net/~a/PpgXD_8TdnucPqYJCHUwtztlcYo/0/da"><img src="http://feedads.g.doubleclick.net/~a/PpgXD_8TdnucPqYJCHUwtztlcYo/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/PpgXD_8TdnucPqYJCHUwtztlcYo/1/da"><img src="http://feedads.g.doubleclick.net/~a/PpgXD_8TdnucPqYJCHUwtztlcYo/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/itsananderson/~4/GPXxBwPnu2o" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.itsananderson.com/2009/04/plugin-release-short-comment-filter/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://www.itsananderson.com/2009/04/plugin-release-short-comment-filter/</feedburner:origLink></item>
		<item>
		<title>CSS Naked Day</title>
		<link>http://feedproxy.google.com/~r/itsananderson/~3/1kg-9Og2wNk/</link>
		<comments>http://www.itsananderson.com/2009/04/css-naked-day/#comments</comments>
		<pubDate>Thu, 09 Apr 2009 05:26:08 +0000</pubDate>
		<dc:creator>Will</dc:creator>
				<category><![CDATA[Personal]]></category>
		<category><![CDATA[CSS]]></category>

		<guid isPermaLink="false">http://www.itsananderson.com/2009/04/css-naked-day/</guid>
		<description><![CDATA[Today is CSS Naked Day, a day when web enthusiasts remove all CSS styling to show the world what CSS does for us. Everything will be back to &#8220;normal&#8221; tomorrow. You can learn more about CSS Naked day here.]]></description>
			<content:encoded><![CDATA[<p>Today is CSS Naked Day, a day when web enthusiasts remove all CSS styling to show the world what CSS does for us. Everything will be back to &#8220;normal&#8221; tomorrow.</p>
<p>You can learn more about CSS Naked day <a href="http://naked.dustindiaz.com/">here</a>.</p>

<p><a href="http://feedads.g.doubleclick.net/~a/inP2sR296U5X9XUzkLzI9i1pOo0/0/da"><img src="http://feedads.g.doubleclick.net/~a/inP2sR296U5X9XUzkLzI9i1pOo0/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/inP2sR296U5X9XUzkLzI9i1pOo0/1/da"><img src="http://feedads.g.doubleclick.net/~a/inP2sR296U5X9XUzkLzI9i1pOo0/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/itsananderson/~4/1kg-9Og2wNk" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.itsananderson.com/2009/04/css-naked-day/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://www.itsananderson.com/2009/04/css-naked-day/</feedburner:origLink></item>
		<item>
		<title>Best WordPress Design Award Update</title>
		<link>http://feedproxy.google.com/~r/itsananderson/~3/EQ3JBhtNNBs/</link>
		<comments>http://www.itsananderson.com/2009/04/best-wordpress-design-award-update/#comments</comments>
		<pubDate>Mon, 06 Apr 2009 20:43:15 +0000</pubDate>
		<dc:creator>Will</dc:creator>
				<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://www.itsananderson.com/?p=575</guid>
		<description><![CDATA[My design was selected among the top 10 Retro and Vintage designs submitted to the Best WordPress Design Award sponsored by WP Webhost. Now the polls are open, and the voting can begin. If you like my blog design, I&#8217;d love your vote! You can see the a list of the designs that were submitted, [...]]]></description>
			<content:encoded><![CDATA[<p>My design was selected among the top 10 Retro and Vintage designs submitted to the <a href="http://wpwebhost.com/best-wordpress-design-award/">Best WordPress Design Award</a> sponsored by <a href="http://wpwebhost.com/">WP Webhost</a>. Now the polls are open, and the voting can begin.</p>
<p>If you like my blog design, I&#8217;d love your vote! You can see the a list of the designs that were submitted, and vote on your favorite <a href="http://wpwebhost.com/best-wordpress-design-awards-time-to-vote/">here</a>.</p>

<p><a href="http://feedads.g.doubleclick.net/~a/tyfMNlqedPSboGD0vmtHkh7_u04/0/da"><img src="http://feedads.g.doubleclick.net/~a/tyfMNlqedPSboGD0vmtHkh7_u04/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/tyfMNlqedPSboGD0vmtHkh7_u04/1/da"><img src="http://feedads.g.doubleclick.net/~a/tyfMNlqedPSboGD0vmtHkh7_u04/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/itsananderson/~4/EQ3JBhtNNBs" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.itsananderson.com/2009/04/best-wordpress-design-award-update/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.itsananderson.com/2009/04/best-wordpress-design-award-update/</feedburner:origLink></item>
		<item>
		<title>Limit Your WordPress RSS Feed To One Category</title>
		<link>http://feedproxy.google.com/~r/itsananderson/~3/DcyYPSVLNaI/</link>
		<comments>http://www.itsananderson.com/2009/03/limit-your-wordpress-rss-feed-to-one-category/#comments</comments>
		<pubDate>Tue, 17 Mar 2009 23:09:06 +0000</pubDate>
		<dc:creator>Will</dc:creator>
				<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://www.itsananderson.com/?p=567</guid>
		<description><![CDATA[When designing Anderson Web Solutions, I decided to use Posts for both news items and Portfolio entries. There were several advantages to doing this, but one issue I found was that everything was being thrown together in the RSS feed. I decided to look into filtering the RSS feed to only show posts from the [...]]]></description>
			<content:encoded><![CDATA[<p>When designing <a href="http://andersonwebsolutions.com/">Anderson Web Solutions</a>, I decided to use Posts for both news items and Portfolio entries. There were several advantages to doing this, but one issue I found was that everything was being thrown together in the RSS feed. I decided to look into filtering the RSS feed to only show posts from the News category. Here&#8217;s how it works.</p>
<p><span id="more-567"></span>As with just about anything in WordPress, you can use Actions and Filters to customize the way WordPress RSS Feeds. I chose to filter the query because it already has built in category filtering functionality. First I hooked into the query filter.</p>
<pre name="code" class="php">
add_filter('pre_get_posts', 'filterRSSQuery');
</pre>
<p>Then I created a function called &#8216;filterRSSQuery&#8217; which does just what the name suggests.</p>
<pre name="code" class="php">
function filterRSSQuery($query) {
	if ( $query->is_feed ) {
		$query->set('category_name', 'News');
	}
	return $query;
}
</pre>
<p>The code is pretty straight foreward, but here&#8217;s a breakdown. First we test to see if the query is for a feed (we don&#8217;t want to do this filtering anywhere else). Then we set the &#8216;category_name&#8217; argument to &#8216;News&#8217; (you would change this to whatever category you want to show up). Finally, you return the modified query object.</p>
<p>Overall, this is pretty simple, but extremely powerful.</p>

<p><a href="http://feedads.g.doubleclick.net/~a/AZxWeNQ5mxsOpBs_ilQKMH7xMdQ/0/da"><img src="http://feedads.g.doubleclick.net/~a/AZxWeNQ5mxsOpBs_ilQKMH7xMdQ/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/AZxWeNQ5mxsOpBs_ilQKMH7xMdQ/1/da"><img src="http://feedads.g.doubleclick.net/~a/AZxWeNQ5mxsOpBs_ilQKMH7xMdQ/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/itsananderson/~4/DcyYPSVLNaI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.itsananderson.com/2009/03/limit-your-wordpress-rss-feed-to-one-category/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		<feedburner:origLink>http://www.itsananderson.com/2009/03/limit-your-wordpress-rss-feed-to-one-category/</feedburner:origLink></item>
		<item>
		<title>Best WordPress Design Award</title>
		<link>http://feedproxy.google.com/~r/itsananderson/~3/yuAiIMK7jjY/</link>
		<comments>http://www.itsananderson.com/2009/03/best-wordpress-design-award/#comments</comments>
		<pubDate>Tue, 10 Mar 2009 21:35:57 +0000</pubDate>
		<dc:creator>Will</dc:creator>
				<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://www.itsananderson.com/?p=561</guid>
		<description><![CDATA[WPWebHost is a web hosting company that specializes in WordPress web sites. They are hosting a WordPress design contest with five categories: Clean&#38;Minimalist, Retro&#38;Vintage, Grunge, Hand-Drawing, and Modern&#38;Elegent. I&#8217;ve decided to enter the contest in the Retro&#38;Vintage category. Why did I decide to enter? My design certainly isn&#8217;t the most beautiful out there, so I&#8217;m [...]]]></description>
			<content:encoded><![CDATA[<p><a title="WordPress Web Host" href="http://wpwebhost.com/">WPWebHost</a> is a web hosting company that specializes in WordPress web sites. They are hosting a WordPress design contest with five categories: Clean&amp;Minimalist, Retro&amp;Vintage, Grunge, Hand-Drawing, and Modern&amp;Elegent.</p>
<p>I&#8217;ve decided to enter the contest in the Retro&amp;Vintage category. Why did I decide to enter? My design certainly isn&#8217;t the most beautiful out there, so I&#8217;m not &#8220;expecting&#8221; to win, but this might give me a chance to get some constructive critisism about design choices I&#8217;ve made. Besides, it can&#8217;t hurt, and there&#8217;s a prize <img src='http://www.itsananderson.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Do you have a WordPress blog that you&#8217;ve designed? <a title="WP Web Host WordPress Design Award" href="http://wpwebhost.com/best-wordpress-design-award/">Enter it in the contest</a>.</p>
<p>Good Luck!</p>

<p><a href="http://feedads.g.doubleclick.net/~a/Z_kwo4ZB3sMH5RdRabY60ewuYRk/0/da"><img src="http://feedads.g.doubleclick.net/~a/Z_kwo4ZB3sMH5RdRabY60ewuYRk/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/Z_kwo4ZB3sMH5RdRabY60ewuYRk/1/da"><img src="http://feedads.g.doubleclick.net/~a/Z_kwo4ZB3sMH5RdRabY60ewuYRk/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/itsananderson/~4/yuAiIMK7jjY" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.itsananderson.com/2009/03/best-wordpress-design-award/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<feedburner:origLink>http://www.itsananderson.com/2009/03/best-wordpress-design-award/</feedburner:origLink></item>
		<item>
		<title>What’s In Your Footer?</title>
		<link>http://feedproxy.google.com/~r/itsananderson/~3/qWAYiaHh28A/</link>
		<comments>http://www.itsananderson.com/2009/03/whats-in-your-footer/#comments</comments>
		<pubDate>Thu, 05 Mar 2009 18:25:47 +0000</pubDate>
		<dc:creator>Will</dc:creator>
				<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://www.itsananderson.com/?p=559</guid>
		<description><![CDATA[Anyone who&#8217;s installed WordPress knows that the default theme has the &#8220;powered by WordPress&#8221; link in the footer. I&#8217;ve added a couple of other items to my footer besides just WordPress, and I&#8217;ve been noticing that other people have done the same thing. Ma.tt is powered by ramen noodles, WP Tavern is powered by Mt. [...]]]></description>
			<content:encoded><![CDATA[<p>Anyone who&#8217;s installed WordPress knows that the default theme has the &#8220;powered by WordPress&#8221; link in the footer. I&#8217;ve added a couple of other items to my footer besides just WordPress, and I&#8217;ve been noticing that other people have done the same thing. <a href="http://ma.tt">Ma.tt</a> is powered by ramen noodles, <a href="http://wptavern.com">WP Tavern</a> is powered by Mt. Dew. I&#8217;m personally powered by Dr. Pepper. Have you added an interesting &#8220;powered by&#8221; item to your footer, or seen sites that do? What&#8217;s the most interesting or entertaining one you&#8217;ve seen?</p>

<p><a href="http://feedads.g.doubleclick.net/~a/9cDt2w7HSrXJlLjEfepW0o9nrcw/0/da"><img src="http://feedads.g.doubleclick.net/~a/9cDt2w7HSrXJlLjEfepW0o9nrcw/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/9cDt2w7HSrXJlLjEfepW0o9nrcw/1/da"><img src="http://feedads.g.doubleclick.net/~a/9cDt2w7HSrXJlLjEfepW0o9nrcw/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/itsananderson/~4/qWAYiaHh28A" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.itsananderson.com/2009/03/whats-in-your-footer/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.itsananderson.com/2009/03/whats-in-your-footer/</feedburner:origLink></item>
		<item>
		<title>Anderson Web Solutions</title>
		<link>http://feedproxy.google.com/~r/itsananderson/~3/3-eGWp4H6H4/</link>
		<comments>http://www.itsananderson.com/2009/03/anderson-web-solutions/#comments</comments>
		<pubDate>Sun, 01 Mar 2009 13:00:12 +0000</pubDate>
		<dc:creator>Will</dc:creator>
				<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://www.itsananderson.com/?p=552</guid>
		<description><![CDATA[I&#8217;ve been working for quite a while on a top secret project, namely Anderson Web Solutions. I&#8217;ve been doing various WordPress development jobs for the past year, but haven&#8217;t had a site specifically designed to profile my work or gather new clients&#8230; until now. The website actually went through several designs before I settled on [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been working for quite a while on a top secret project, namely <a href="http://andersonwebsolutions.com/" title="Anderson Web Solutions">Anderson Web Solutions</a>. I&#8217;ve been doing various WordPress development jobs for the past year, but haven&#8217;t had a site specifically designed to profile my work or gather new clients&#8230; until now.</p>
<p><span id="more-552"></span>The website actually went through several designs before I settled on the one it currently has (I might release the other themes at some point. We&#8217;ll see). I eventually created a design that I really liked, and that&#8217;s basically what&#8217;s there today.</p>
<p>The work I&#8217;ve been doing on the site is one of the reasons I&#8217;ve been so quiet this past month (My course load also increased, but that&#8217;s another story). When the quarter ended, I had enough time to get all the kinks worked out of the web site, so now it&#8217;s open for business. Hopefully I&#8217;ll be getting enough business to continue to be short on time, but I still plan to post more in the months to come.</p>

<p><a href="http://feedads.g.doubleclick.net/~a/L6Oc2oFfXmwb56zyRA4z2ob_3WI/0/da"><img src="http://feedads.g.doubleclick.net/~a/L6Oc2oFfXmwb56zyRA4z2ob_3WI/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/L6Oc2oFfXmwb56zyRA4z2ob_3WI/1/da"><img src="http://feedads.g.doubleclick.net/~a/L6Oc2oFfXmwb56zyRA4z2ob_3WI/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/itsananderson/~4/3-eGWp4H6H4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.itsananderson.com/2009/03/anderson-web-solutions/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://www.itsananderson.com/2009/03/anderson-web-solutions/</feedburner:origLink></item>
		<item>
		<title>Using jQuery and GMail’s Plus-Addressing to Fight Email Spam</title>
		<link>http://feedproxy.google.com/~r/itsananderson/~3/8aitnLnm0B8/</link>
		<comments>http://www.itsananderson.com/2009/02/using-jquery-and-gmails-plus-addressing-to-fight-email-spam/#comments</comments>
		<pubDate>Thu, 26 Feb 2009 11:37:54 +0000</pubDate>
		<dc:creator>Will</dc:creator>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[GMail]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[jQuery]]></category>

		<guid isPermaLink="false">http://www.itsananderson.com/?p=543</guid>
		<description><![CDATA[Who doesn&#8217;t hate email spam? Those messages telling you to how to refinance your house, please your mate, or lose unwanted weight are nothing but a waste of time. Placing your email address online can increase the number of spam emails in your inbox even higher. Email spiders, programs designed to crawl the web looking [...]]]></description>
			<content:encoded><![CDATA[<p>Who doesn&#8217;t hate email spam? Those messages telling you to how to refinance your house, please your mate, or lose unwanted weight are nothing but a waste of time. Placing your email address online can increase the number of spam emails in your inbox even higher. Email spiders, programs designed to crawl the web looking for email addresses, can find your contact information online and use it to spam you. While you could not post your email online, sometimes you might need a way for people to contact you.</p>
<p>Many people fight the spam bots by obfuscating their emails (for example &#8220;joe [at] example [dot] com&#8221; or &#8220;joe@REMOVETHISexample.com&#8221;). This does an OK job, but it&#8217;s also a royal pain for the visitor, who has to type in, or fix your email address if they want to send you an email. The ultimate spam fighting question arises: &#8220;How do you keep bots out while letting real users in&#8221;. GMail&#8217;s plus-addressing feature and jQuery might be able to bring us one step closer to an answer.</p>
<p><span id="more-543"></span>If you use Google&#8217;s email services (GMail or Google Apps), you have a powerful email feature available. Plus-addressing means that bill@gmail.com, bill+something@gmail.com and bill+anything@gmail.com all point to the same email address. When deciding what address to deliver the message to, Google drops everything after the plus sign. you can then actually use filters to move items to folders inside your mailbox (for example, you could use example+bank@gmail.com for your banking). Doing this also makes it just a little harder (though not impossible) for bots to get your real email address.</p>
<p>By default, you probably don&#8217;t want to display a &#8220;plus address&#8221; on a contact page, jQuery comes to our rescue here, allowing us to remove the &#8220;plus&#8221; part for users with JavaScript support. The following script looks for all email links and removes the &#8220;plus&#8221; portion from the href and the inner text.</p>
<pre name="code" class="javascript">
jQuery(document).ready(function(){
	jQuery('a[href^=mailto:]').each(removeSpamProtection);
});

function removeSpamProtection(index, element){
	var link = jQuery(element);
	link.attr('href', link.attr('href').replace(/\+[a-zA-Z]*/, ''))
		.text(link.text().replace(/\+[a-zA-Z]*/, ''));
}
</pre>
<p>Now all visitors with JavaScript support will see something like &lt;a href=&#8221;mailto:example@example.com&#8221;>example@example.com&lt;/a> while visitors without JavaScript support will see &lt;a href=&#8221;mailto:example+spamblock@example.com&#8221;>example+spamblock@rose-hulman.edu&lt;/a>. Normal visitors will see your real email address while bots and visitors without JavaScript will see something else. The bots will (hopefully) be confused by the plus sign. If not, they will be sending an email to an address that you can easily filter into a &#8220;maybe spam&#8221; folder.</p>
<p>So there you have it. A very short piece of JavaScript (thanks to the wonders of jQuery) that you can include in your WordPress theme or install as a separate plugin. </p>
<p>What do you do to protect your email online? Do you have another method that works better? If so, please share it in the comments!</p>

<p><a href="http://feedads.g.doubleclick.net/~a/Y-SpzxfN684IplRrTMbldSl01PM/0/da"><img src="http://feedads.g.doubleclick.net/~a/Y-SpzxfN684IplRrTMbldSl01PM/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/Y-SpzxfN684IplRrTMbldSl01PM/1/da"><img src="http://feedads.g.doubleclick.net/~a/Y-SpzxfN684IplRrTMbldSl01PM/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/itsananderson/~4/8aitnLnm0B8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.itsananderson.com/2009/02/using-jquery-and-gmails-plus-addressing-to-fight-email-spam/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.itsananderson.com/2009/02/using-jquery-and-gmails-plus-addressing-to-fight-email-spam/</feedburner:origLink></item>
		<item>
		<title>Making Backward Compatible Themes</title>
		<link>http://feedproxy.google.com/~r/itsananderson/~3/dWxka_Z8eQc/</link>
		<comments>http://www.itsananderson.com/2009/02/making-backward-compatible-themes/#comments</comments>
		<pubDate>Wed, 11 Feb 2009 06:38:13 +0000</pubDate>
		<dc:creator>Will</dc:creator>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Themes]]></category>

		<guid isPermaLink="false">http://www.itsananderson.com/?p=530</guid>
		<description><![CDATA[When creating WordPress themes, one problem I&#8217;ve faced is using template tags and other functions which aren&#8217;t implemented in older versions of WordPress. Of course the best solution is for people to upgrade their version of WordPress, but you can&#8217;t exactly force people to do this. If you want to use new functions, but want [...]]]></description>
			<content:encoded><![CDATA[<p>When creating WordPress themes, one problem I&#8217;ve faced is using template tags and other functions which aren&#8217;t implemented in older versions of WordPress. Of course the best solution is for people to upgrade their version of WordPress, but you can&#8217;t exactly force people to do this. If you want to use new functions, but want to support people with older versions of WordPress, there&#8217;s something you can do. As an example, let&#8217;s look at <a href="http://codex.wordpress.org/Template_Tags/wp_page_menu">wp_page_menu()</a>.</p>
<p><span id="more-530"></span>Normally you&#8217;d call wp_page_menu to get a list of Pages, as well as a link to the home page (providing the home page is not set to a static Page). This function was added in WordPress 2.7, so if you use it in a theme and someone with an older version of WordPress installs that theme, they will get an error. One solution is to check that the function exists before using it, but this gets a bit messy, especially if you use several functions that are new. What do you do when WordPress 23.6 is released? Everyone will most likely have a version of WordPress that supports wp_page_menu, so the check will no longer be necessary. If you are using several functions, you&#8217;ll have to go back and fix them in several places throughout the template. This isn&#8217;t optimal.</p>
<p>What I&#8217;m proposing instead is defining some default action if a given function doesn&#8217;t exist. These special definitions can be placed either directly in functions.php, or can be separated into a file specifically intended for them (new_functions.php for example). That way when they&#8217;re no longer needed they can easily be removed.</p>

<p><a href="http://feedads.g.doubleclick.net/~a/07LiTYs_Ym5c6NZupI7HPu-o4hk/0/da"><img src="http://feedads.g.doubleclick.net/~a/07LiTYs_Ym5c6NZupI7HPu-o4hk/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/07LiTYs_Ym5c6NZupI7HPu-o4hk/1/da"><img src="http://feedads.g.doubleclick.net/~a/07LiTYs_Ym5c6NZupI7HPu-o4hk/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/itsananderson/~4/dWxka_Z8eQc" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.itsananderson.com/2009/02/making-backward-compatible-themes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.itsananderson.com/2009/02/making-backward-compatible-themes/</feedburner:origLink></item>
		<item>
		<title>Using Multiple IE Installer for Version Testing</title>
		<link>http://feedproxy.google.com/~r/itsananderson/~3/9GUzUCi3gQk/</link>
		<comments>http://www.itsananderson.com/2009/01/using-multiple-ie-installer-for-version-testing/#comments</comments>
		<pubDate>Sat, 31 Jan 2009 05:30:27 +0000</pubDate>
		<dc:creator>Will</dc:creator>
				<category><![CDATA[Computers]]></category>

		<guid isPermaLink="false">http://www.itsananderson.com/?p=527</guid>
		<description><![CDATA[I read today about Multiple IE Installer. It allows you to install all old versions of IE from 3.0 to 6.0 on your computer. I&#8217;ve been keeping an installation of IE 6 on my secondary computer, but this allows me to check web pages I create with all these different browsers without changing computers. I [...]]]></description>
			<content:encoded><![CDATA[<p>I read today about <a href="http://tredosoft.com/Multiple_IE">Multiple IE Installer</a>. It allows you to install all old versions of IE from 3.0 to 6.0 on your computer. I&#8217;ve been keeping an installation of IE 6 on my secondary computer, but this allows me to check web pages I create with all these different browsers without changing computers. I was actually pleased with the way my blog looked. All browsers seemed OK except for IE 4.0.1 which had some style issues. IE 3.0 doesn&#8217;t support CSS, so it just displays plain text with no formatting, but I&#8217;ve never had visitors who use IE 3.0 (or IE 4 or 5 for that matter) so I&#8217;m not too worried about it.</p>
<p>Anyway, I think it&#8217;s pretty cool.</p>

<p><a href="http://feedads.g.doubleclick.net/~a/X-Z9QEDWVxT0D0YZqW6IAF4FiQI/0/da"><img src="http://feedads.g.doubleclick.net/~a/X-Z9QEDWVxT0D0YZqW6IAF4FiQI/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/X-Z9QEDWVxT0D0YZqW6IAF4FiQI/1/da"><img src="http://feedads.g.doubleclick.net/~a/X-Z9QEDWVxT0D0YZqW6IAF4FiQI/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/itsananderson/~4/9GUzUCi3gQk" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.itsananderson.com/2009/01/using-multiple-ie-installer-for-version-testing/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		<feedburner:origLink>http://www.itsananderson.com/2009/01/using-multiple-ie-installer-for-version-testing/</feedburner:origLink></item>
		<item>
		<title>404 Page Management Your Grandma Can Use</title>
		<link>http://feedproxy.google.com/~r/itsananderson/~3/3ZUEA1e4O7o/</link>
		<comments>http://www.itsananderson.com/2009/01/404-page-management-your-grandma-can-use/#comments</comments>
		<pubDate>Thu, 22 Jan 2009 07:26:42 +0000</pubDate>
		<dc:creator>Will</dc:creator>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[404]]></category>
		<category><![CDATA[Themes]]></category>
		<category><![CDATA[Tip]]></category>

		<guid isPermaLink="false">http://www.itsananderson.com/?p=512</guid>
		<description><![CDATA[Almost every WordPress theme has a 404 template. Some are better than others, and a few are quite impressive, but on problem that pervades all of them is the fact that editing them requires opening finding and opening the correct template file. This is OK for people who know about HTML and PHP and are [...]]]></description>
			<content:encoded><![CDATA[<p>Almost every WordPress theme has a 404 template. Some are better than others, and a few are quite impressive, but on problem that pervades all of them is the fact that editing them requires opening finding and opening the correct template file. This is OK for people who know about HTML and PHP and are familiar with WordPress, but what about technically challenged people (like your Grandma)? They&#8217;re not likely to be able to edit a WordPress template, so they will be stuck with whatever you give them. If you create a good template, this may be sufficient, but there will still be people who want to change something.</p>
<p>Thankfully you can provide a much simpler solution for people who don&#8217;t want to edit your templates. With this solution, users can edit the 404 page contents just like it were any other page. Here&#8217;s how it works.</p>
<p><span id="more-512"></span>To use the WYSIWYG editor, the user actually needs to add a page. Of course they don&#8217;t want &#8220;404&#8243; showing up everywhere they list their pages, so they need to set the Visibility to &#8220;Private&#8221;.  This will remove it from all page listings. The permalink also needs to be specified explicitly. Using &#8220;404&#8243; makes sense to me, and is what I use.</p>
<p>Now in the 404 template we want to check whether a 404 page is defined and if it is, display it. Otherwise we should have some default content to display. Here&#8217;s a template 404 file which lays out the general idea. Some tweaking might be required to fit the rest of your theme.</p>
<pre name="code" class="html">
< ?php get_header(); ?>
	&lt;div id="content" class="narrowcolumn"&gt;
	&lt;?php query_posts('pagename=404' ); ?&gt;
	&lt;?php if (have_posts()) : the_post(); ?&gt;
		&lt;div class="post" id="post-&lt;?php echo $id; ?&gt;"&gt;
			&lt;h2 class="post-title"&gt;< ?php echo $post->post_title; ?>&lt;/h2&gt;
			&lt;div class="entry"&gt;
				< ?php the_content(); ?>
			&lt;/div&gt;
		&lt;/div&gt;
	< ?php else : ?>
		&lt;!-- your default 404 content --&gt;
	< ?php endif; ?>
		&lt;!-- search form, or anything else you always want to show at the bottom --&gt;
	&lt;/div&gt;
< ?php get_sidebar(); ?>
< ?php get_footer(); ?>
</pre>
<p>Notice line 3 where we query for the post with page name &#8220;404&#8243;.</p>
<p>In line 4 we check to see if the &#8220;404&#8243; page actually exists and if it does, we load its information with <code>the_post()</code>.</p>
<p>In line 6 we use <code>$post-the_title</code> instead of simply <code>the_title()</code>. This is because WordPress adds &#8220;Private: &#8221; to the beginning of the title of private pages when you call <code>the_title()</code>.</p>
<p>The rest is pretty straight forward. Place any default content (what you want to show if there is no 404 page defined) inside the <code>else</code> and then anything you want to always display (whether the user has created a &#8217;404&#8242; page or not) after the <code>endif</code>.</p>
<p>That&#8217;s it! If you distribute a theme with this feature, just let people know what you&#8217;ve done so they can utilize it.</p>
<p>Private Pages can solve to a wide variety of problems. I hope to post more ways to use them soon. For now if you have any other ideas about how they might be used, or a suggestion for improving this example please add it to the comments</p>

<p><a href="http://feedads.g.doubleclick.net/~a/unyQhZsrNh-wU_XkmVZFP3-NND4/0/da"><img src="http://feedads.g.doubleclick.net/~a/unyQhZsrNh-wU_XkmVZFP3-NND4/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/unyQhZsrNh-wU_XkmVZFP3-NND4/1/da"><img src="http://feedads.g.doubleclick.net/~a/unyQhZsrNh-wU_XkmVZFP3-NND4/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/itsananderson/~4/3ZUEA1e4O7o" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.itsananderson.com/2009/01/404-page-management-your-grandma-can-use/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		<feedburner:origLink>http://www.itsananderson.com/2009/01/404-page-management-your-grandma-can-use/</feedburner:origLink></item>
		<item>
		<title>Converting PHP Associative Arrays to Variables</title>
		<link>http://feedproxy.google.com/~r/itsananderson/~3/VuDpD3j9OWw/</link>
		<comments>http://www.itsananderson.com/2009/01/converting-php-associative-arrays-to-variables/#comments</comments>
		<pubDate>Thu, 15 Jan 2009 06:05:19 +0000</pubDate>
		<dc:creator>Will</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Array]]></category>
		<category><![CDATA[Arrays]]></category>
		<category><![CDATA[Associative]]></category>
		<category><![CDATA[Tip]]></category>

		<guid isPermaLink="false">http://www.itsananderson.com/?p=471</guid>
		<description><![CDATA[EDIT: Nick Ohrn pointed out that a function exists for doing this automatically. The following post is still a valid look at how this could be implemented if the functionality didn&#8217;t already exist, but it is better to use extract because it is likely more efficient. Associative arrays are one of my favorite PHP features. [...]]]></description>
			<content:encoded><![CDATA[<p><strong>EDIT: <a href="http://nickohrn.com/">Nick Ohrn</a> <a href="http://www.itsananderson.com/2009/01/php-tip-converting-an-associative-array-to-variables/#comment-117">pointed out</a> that a <a href="http://us.php.net/extract" title="PHP Manual Entry for extract">function exists</a> for doing this automatically. The following post is still a valid look at how this could be implemented if the functionality didn&#8217;t already exist, but it is better to use <code><a href="http://us.php.net/extract" title="PHP Manual Entry for extract">extract</a></code> because it is likely more efficient.</strong></p>
<p>Associative arrays are one of my favorite PHP features. They&#8217;re simple to use and easy to understand. Sometimes though, being able to reference the values of associative arrays with variables can be more convenient. Today I&#8217;m going to share a simple way to convert an associative array to variables.</p>
<p><span id="more-471"></span>OK, if you&#8217;re not sure what we&#8217;re trying to accomplish here, take a look at the following example.</p>
<pre name="code" class="php">
$list = array( 'var1' =&gt; 'value1', 'var2' =&gt; 'value2' );
</pre>
<p>To reference the elements in the array, you&#8217;ll have to use the array key like this.</p>
<pre name="code" class="php">
echo $list['var1']; //prints 'value1'
echo $list['var2']; //prints 'value2'
</pre>
<p>What we&#8217;d like to do instead is reference the values using variable names like this.</p>
<pre name="code" class="php">
echo $var1; //print 'value1'
echo $var2; //print 'value2'
</pre>
<p>This is possible through what the PHP Manual calls &#8216;variable variables&#8217;. The idea is that the value of one variable is used as the name of another variable. Here&#8217;s an example.</p>
<pre name="code" class="php">
$hello = 'world';
$$hello = 'howdy';
echo $world; //prints 'howdy'
</pre>
<p>Here, the value of <code>$hello</code> is analyzed and used as the name of the variable to which <code>'howdy'</code> is assigned.</p>
<p>Now it&#8217;s not a big step to expand this to an associative array. Consider the following code.</p>
<pre name="code" class="php">
$list = array( 'var1' =&gt; 'value1', 'var2' =&gt; 'value2' );
foreach ( $list as $key =&gt; $value ) { $$key = $value; }
echo $var1; //prints 'value1'
echo $var2; //prints 'value2'
</pre>
<p>So we&#8217;ve accomplished what we set out to do. I must caution you, though, about a couple of things which might trip you up.</p>
<p>First, make sure the keys are valid variable names. If you don&#8217;t you&#8217;ll run into problems when you execute the script.</p>
<p>Second, be <em>very</em> careful when using this with user input. For example, the following code is insecure.</p>
<pre name="code" class="php">
// login.php
// checks the username and password in the GET request
$realuser = 'me';
$realpass = 'secret';
foreach ( $_GET as $key =&gt; $value ) { $$key = $value; }
if ( $user == $realuser &amp;&amp; $pass == $realpass ) {
 echo 'login correct';
} else {
 echo 'login incorrect';
}
</pre>
<p>There are several problems here. First, we don&#8217;t <em>know</em> that $user and $pass have been initialized. We should check this before using them. Second (and more importantly) a cleverly generated request could let a user log in without a correct username/password. For example:</p>
<p><code>login.php?user=me&amp;pass=wrong&amp;realpass=wrong</code></p>
<p>When the script runs through the list of variables, it will assign a new value of <code>wrong</code> to $realpass. Because <code>$realpass </code>and <code>$pass</code> have the same value (as do <code>$user</code> and <code>$realuser</code>), the page will allow them to log in.</p>
<p>Here is a way to keep things a little safer by prefixing all the <code>$_GET[]</code> values.</p>
<pre name="code" class="php">
// login.php
// checks the username and password in GET request
$realuser = 'me';
$realpass = 'secret';
foreach ( $_GET as $key =&gt; $value ) { ${'get_'; . $key} = $value; }
if ( isset( $get_user ) &amp;&amp; isset( $get_pass )
    &amp;&amp; $get_user == $realuser &amp;&amp; $get_pass == $realpass ) {
 echo 'login correct';
} else {
 echo 'login incorrect';
}
</pre>
<p>Now the <code>$_GET[]</code> values are prefixed with <code>get_</code> so they can&#8217;t interfere with other variables in the script. Additionally <code>isset</code> is used to ensure that the values of the variables has actually been set.</p>
<p>To use something like this, you&#8217;d still need to check for invalid variable names, but I won&#8217;t go into that for this example. </p>

<p><a href="http://feedads.g.doubleclick.net/~a/fsnRr3uS3fodSUqpAGdYKh284Sc/0/da"><img src="http://feedads.g.doubleclick.net/~a/fsnRr3uS3fodSUqpAGdYKh284Sc/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/fsnRr3uS3fodSUqpAGdYKh284Sc/1/da"><img src="http://feedads.g.doubleclick.net/~a/fsnRr3uS3fodSUqpAGdYKh284Sc/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/itsananderson/~4/VuDpD3j9OWw" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.itsananderson.com/2009/01/converting-php-associative-arrays-to-variables/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		<feedburner:origLink>http://www.itsananderson.com/2009/01/converting-php-associative-arrays-to-variables/</feedburner:origLink></item>
		<item>
		<title>Wamp Alias Directories</title>
		<link>http://feedproxy.google.com/~r/itsananderson/~3/HTOfpfu_5t4/</link>
		<comments>http://www.itsananderson.com/2009/01/wamp-alias-directories/#comments</comments>
		<pubDate>Wed, 14 Jan 2009 05:45:17 +0000</pubDate>
		<dc:creator>Will</dc:creator>
				<category><![CDATA[Apache]]></category>
		<category><![CDATA[Alias]]></category>
		<category><![CDATA[Tip]]></category>
		<category><![CDATA[WAMP Server]]></category>

		<guid isPermaLink="false">http://www.itsananderson.com/?p=466</guid>
		<description><![CDATA[I use Wamp Server together with NetBeans to develop PHP applications on my local machine. This works well because I can do debugging (thanks to xdebug) and can readily view and edit files. I usually don&#8217;t like to place projects in the c:\wamp\www folder, preferring instead to place them in more logical places in my [...]]]></description>
			<content:encoded><![CDATA[<p>I use <a href="http://www.wampserver.com/">Wamp Server</a> together with <a href="http://www.netbeans.org/">NetBeans</a> to develop PHP applications on my local machine. This works well because I can do debugging (thanks to <a href="http://www.xdebug.org/">xdebug</a>) and can readily view and edit files. I usually don&#8217;t like to place projects in the <code>c:\wamp\www</code> folder, preferring instead to place them in more logical places in my personal directory.</p>
<p><span id="more-466"></span>The easiest way to facilitate this is to create Apache aliases to these different locations. Wamp Server provides an interface for creating new aliases by clicking on the tray icon and selecting Apache -&gt; Alias directories -&gt;  Add an alias. A new command prompt window opens where you can enter the alias information.</p>
<p>Creating an alias like this, you&#8217;ll probably notice that in order for the URL to work, you have to have a trailing slash at the end (e.g. <code>http://localhost/example/</code> will work while <code>http://localhost/example</code> won&#8217;t). This can be a bit of a pain, but there is fortunately a quick fix. Click on the Wamp Server tray icon again and select Apache -&gt; Alias directories -&gt; [alias url] -&gt; Edit alias. This will open the alias file in Notepad. Remove the trailing slash from the relative URL.</p>
<p>For Example</p>
<p><code>Alias /example/ "c:/path/to/example/"</code></p>
<p>Would become</p>
<p><code>Alias /example "c:/path/to/example/"</code></p>
<p>Save the file and close Notepad. Wamp Server should restart automatically (if not, you can restart it manually from the tray icon). Once it has restarted, you&#8217;re alias should now work with or without the trailing slash. Why Wamp Server doesn&#8217;t do this automatically, I&#8217;m not sure, but at least there&#8217;s a simple fix.</p>

<p><a href="http://feedads.g.doubleclick.net/~a/WDQO_wdjVcqHvxpZpF1EAKeqnFw/0/da"><img src="http://feedads.g.doubleclick.net/~a/WDQO_wdjVcqHvxpZpF1EAKeqnFw/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/WDQO_wdjVcqHvxpZpF1EAKeqnFw/1/da"><img src="http://feedads.g.doubleclick.net/~a/WDQO_wdjVcqHvxpZpF1EAKeqnFw/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/itsananderson/~4/HTOfpfu_5t4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.itsananderson.com/2009/01/wamp-alias-directories/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<feedburner:origLink>http://www.itsananderson.com/2009/01/wamp-alias-directories/</feedburner:origLink></item>
		<item>
		<title>Google Trends</title>
		<link>http://feedproxy.google.com/~r/itsananderson/~3/tkm56CAGgmc/</link>
		<comments>http://www.itsananderson.com/2009/01/google-trends/#comments</comments>
		<pubDate>Sun, 04 Jan 2009 02:26:25 +0000</pubDate>
		<dc:creator>Will</dc:creator>
				<category><![CDATA[Web]]></category>
		<category><![CDATA[Christmas]]></category>
		<category><![CDATA[Easter]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[New Years]]></category>
		<category><![CDATA[Trends]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://www.itsananderson.com/?p=443</guid>
		<description><![CDATA[XKCD recently ran a cartoon pointing out some humerus/frightening Google trends as well as where they are most popular. While I tend to doubt the veracity of some of them, it sparked my interest, so I did some trend sleuthing myself. My focus was holidays. Not surprisingly almost every large holiday sees a spike around [...]]]></description>
			<content:encoded><![CDATA[<p>XKCD recently ran a cartoon pointing out some humerus/frightening Google trends as well as where they are most popular. While I tend to doubt the veracity of some of them, it sparked my interest, so I did some trend sleuthing myself. My focus was holidays.</p>
<p><span id="more-443"></span>Not surprisingly almost every large holiday sees a spike around the date it occurs. Here are some of the ones I looked at (letters indicate related news articles. You can look on <a title="Google Trend Search" href="http://www.google.com/trends">Google Trends</a> to see what they are).</p>
<div id="attachment_444" class="wp-caption aligncenter" style="width: 500px"><img class="size-full wp-image-444 " title="christmas-graph" src="http://www.itsananderson.com/blog/wp-content/uploads/christmas-graph.png" alt="Christmas Search Trends" width="490" height="189" /><p class="wp-caption-text">Christmas Search Trends</p></div>
<div id="attachment_448" class="wp-caption aligncenter" style="width: 500px"><img class="size-full wp-image-448 " title="easter-graph" src="http://www.itsananderson.com/blog/wp-content/uploads/easter-graph.png" alt="Easter Search Trends" width="490" height="189" /><p class="wp-caption-text">Easter Search Trends</p></div>
<div id="attachment_447" class="wp-caption aligncenter" style="width: 500px"><img class="size-full wp-image-447 " title="new-years-graph" src="http://www.itsananderson.com/blog/wp-content/uploads/new-years-graph.png" alt="New Years Trends" width="490" height="171" /><p class="wp-caption-text">New Years Trends</p></div>
<p> As I said, this really isn&#8217;t all that surprising. There are a couple of interesting things to see here, like the fact that searches for Christmas have gone down over the years (decreased interest or fewer people who don&#8217;t know what Christmas is?). The really interesting stuff to me is where these searches originated.</p>
<div id="attachment_445" class="wp-caption aligncenter" style="width: 433px"><img class="size-full wp-image-445 " title="christmas-dist" src="http://www.itsananderson.com/blog/wp-content/uploads/christmas-dist.png" alt="Christmas Search Distribution" width="423" height="233" /><p class="wp-caption-text">Christmas Search Distribution</p></div>
<div id="attachment_446" class="wp-caption aligncenter" style="width: 434px"><img class="size-full wp-image-446 " title="easter-dist" src="http://www.itsananderson.com/blog/wp-content/uploads/easter-dist.png" alt="Easter Search Distribution" width="424" height="212" /><p class="wp-caption-text">Easter Search Distribution</p></div>
<div id="attachment_449" class="wp-caption aligncenter" style="width: 432px"><img class="size-full wp-image-449 " title="new-years-dist" src="http://www.itsananderson.com/blog/wp-content/uploads/new-years-dist.png" alt="New Years Search Distribution" width="422" height="187" /><p class="wp-caption-text">New Years Search Distribution</p></div>
<p>Lets take a look at this. Christmas has an approximately equal share between the UK, US, and Ireland (?!). Australia is fifth in the list. If you look at Easter and New Years though, Australia is ahead by quite a bit (and both times followed by New Zealand). This makes me wonder, is Christmas not as popular down under, or do not as many people do research about it as other holidays?</p>
<p>Now in keeping with the general topic of this site of late, I&#8217;ll show another trend&#8230; WordPress</p>
<div id="attachment_452" class="wp-caption aligncenter" style="width: 500px"><img class="size-full wp-image-452 " title="wordpress-graph1" src="http://www.itsananderson.com/blog/wp-content/uploads/wordpress-graph1.png" alt="WordPress Search Trends" width="490" height="189" /><p class="wp-caption-text">WordPress Search Trends</p></div>
<div id="attachment_451" class="wp-caption aligncenter" style="width: 419px"><img class="size-full wp-image-451 " title="wordpress-dist" src="http://www.itsananderson.com/blog/wp-content/uploads/wordpress-dist.png" alt="WordPress Search Distribution" width="409" height="281" /><p class="wp-caption-text">WordPress Search Distribution</p></div>
<p> First it&#8217;s cool to see that WordPress continues to grow in popularity. Second, I&#8217;m surprised to see that the first 6 countries here aren&#8217;t really in &#8220;The West&#8221;. Again I wonder whether these search statistics also reflect usage. If so, that says something interesting about WordPress&#8217; demographic (kinda cool that it&#8217;s really spreading internationally). Of course I also wonder if splog activity has anything to do with these statistics.</p>
<p>So what do you think? Any of this surprise you?</p>
<p>See anything interesting here that I missed or find an interesting Google Trend you&#8217;d like to share? Let me know in the comments and I might add it here.</p>

<p><a href="http://feedads.g.doubleclick.net/~a/X5nMADf8dQ46nt1_I94z_3VkN9A/0/da"><img src="http://feedads.g.doubleclick.net/~a/X5nMADf8dQ46nt1_I94z_3VkN9A/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/X5nMADf8dQ46nt1_I94z_3VkN9A/1/da"><img src="http://feedads.g.doubleclick.net/~a/X5nMADf8dQ46nt1_I94z_3VkN9A/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/itsananderson/~4/tkm56CAGgmc" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.itsananderson.com/2009/01/google-trends/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.itsananderson.com/2009/01/google-trends/</feedburner:origLink></item>
		<item>
		<title>2008 Reflection – 2009 Thoughts</title>
		<link>http://feedproxy.google.com/~r/itsananderson/~3/fv6lIs0Ap7c/</link>
		<comments>http://www.itsananderson.com/2009/01/2008-reflection-2009-thoughts/#comments</comments>
		<pubDate>Fri, 02 Jan 2009 02:10:10 +0000</pubDate>
		<dc:creator>Will</dc:creator>
				<category><![CDATA[Personal]]></category>
		<category><![CDATA[2008]]></category>
		<category><![CDATA[2009]]></category>
		<category><![CDATA[ANGEL]]></category>
		<category><![CDATA[Blessings]]></category>
		<category><![CDATA[God]]></category>
		<category><![CDATA[IRPA]]></category>
		<category><![CDATA[It's An Anderson]]></category>
		<category><![CDATA[New Year]]></category>
		<category><![CDATA[Reflection]]></category>
		<category><![CDATA[Rose-Hulman]]></category>
		<category><![CDATA[RosEval]]></category>
		<category><![CDATA[Thoughts]]></category>
		<category><![CDATA[Ventures]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://www.itsananderson.com/?p=425</guid>
		<description><![CDATA[Today was the first day of 2009. I feel that 2008 was a really good year and I&#8217;m thankful to God for what he&#8217;s done in my life during that time. As I look back at what transpired in 2008, I can see His hand working in my life, so I wanted to share some [...]]]></description>
			<content:encoded><![CDATA[<p>Today was the first day of 2009. I feel that 2008 was a really good year and I&#8217;m thankful to God for what he&#8217;s done in my life during that time. As I look back at what transpired in 2008, I can see His hand working in my life, so I wanted to share some of the ways God has blessed me in 2008.</p>
<p><span id="more-425"></span><strong>College Acceptance</strong></p>
<p>Because  I was home schooled and was graduating a year early from high school, I was unsure whether I would be accepted at <a href="http://www.rose-hulman.edu/">Rose-Hulman</a>. Thankfully I was. This was a great blessing for the following reasons (not an exhaustive list):</p>
<ol>
<li>As a child of a Rose professor, I get free tuition (this of course is the biggest blessing).</li>
<li>Going to Rose meant I could live at home. I&#8217;m an independent person, but being able to live at home has really been great because I&#8217;ve been able to save quite a bit of money not having to pay rent.</li>
<li>Rose is one of the best undergraduate engineering schools in the US. An education from Rose gives students a jump start upon graduation.</li>
</ol>
<p>I feel that God has really brought all of this about through (just) enough intelligence to learn, parents who gave me a stellar education, and many other blessings to numerous to count.</p>
<p><strong>Job Opportunities</strong></p>
<p>Toward the beginning of this year I had the opportunity to help <a title="Rose-Hulman Office of Institutional Research, Planning, and Assessment" href="http://www.rose-hulman.edu/irpa">IRPA</a> as they transferred their static website to a WordPress based CMS. Beyond introducing me to WordPress, my work with IRPA gave me a connection which has proved pivotal to to several other work opportunities that have presented themselves to me during the past year.</p>
<p>About the time I began working for IRPA, I also applied at <a href="http://rhventures.org/">Rose-Hulman Ventures</a> for a summer internship. My connection with Dr. Williams (executive director of IRPA) helped me gain a position in the RosEval project (a project sponsored by IRPA/Rose-Hulman). Exceeding my hopes for a summer position, I was able to begin working for Ventures well before the end of the spring term. Working for Ventures, I was introduced to a multitude of things. I learned a <em>lot</em> about C#/.NET and Microsoft SQL. I learned a bit about general database design practices, project management practices, how to interact with clients, organizing meetings&#8230; Like I said, a multitude of things. I also was able to participate in the <a href="http://www.rose-hulman.edu/leadershipacademy">Leadership Academy</a> hosted by Rose-Hulman while working at Ventures. This was an amazing experience for me. I learned a lot, got to know some people, and strengthened my confidence.</p>
<p>Now, RosEval is a plugin for ANGEL, a learning management system developed by <a href="http://angellearning.com/">ANGEL Learning</a> (it is also the learning management system of choice at Rose-Hulman). While developing RosEval, I was able to get a look at some of the inner workings of ANGEL. Well, the summer ended and my Freshman year began. A few weeks in, I attended the <a title="Career Fair Description" href="http://www.rose-hulman.edu/careerservices/CAREER_FAIRS_STUDENT.htm">Career Fair</a> that Rose hosts each term. I only had about 30 minutes to talk to companies, but as I was walking past the booths, I noticed that ANGEL Learning had a booth up. The thought crossed my mind &#8220;Hey, I have development experience with ANGEL, I wonder if I could get an internship with them.&#8221; As I thought about it though, I decided that they probably wouldn&#8217;t be interested in a Freshman, so I moved on. After walking around for a little while and not finding anything terribly interesting, I decided to go ahead and talk to the ANGEL people. &#8220;What&#8217;s the worst they can do, turn me away?&#8221; I thought. I had a nice chat with Tim Tomlinson, gave him my resume and told him about my work with RosEval. He told me my work experience seemed promising and said they might bring me out to Indy for an interview within the next view weeks. Dumbfounded, I walked away, thinking &#8220;Wow, OK. Um, Yeah. Didn&#8217;t expect that&#8221;. Logic kicked in and I though, &#8220;Maybe he was just being nice.&#8221; As it turns out though, he was serious. I got a call from ANGEL a couple weeks later offering to bring me to Indy for an interview. I went to the interview, still wondering whether they would even be interested in a Freshman. The interview went well, and I was offered an internship for next summer (<em>EDIT:</em> Which I accepted! Thanks, <a href="http://nickohrn.com/">Nick</a>, for pointing out that I&#8217;d missed this detail). I&#8217;m not sure I would have been offered a position if I hadn&#8217;t worked on RosEval last summer. Again, everything seemed to &#8220;fall into place&#8221;.</p>
<p>OK, that section was a little longer than I was planning, but I think it&#8217;s really cool what God has done to provide me with work opportunities.</p>
<p><strong>Beginning School</strong></p>
<p>As I mentioned before, I was accepted at Rose and begin my freshmen year this fall. I&#8217;ve gotten to know many new people, learned a ton of new things, and had several opportunities to share my faith. The community at Rose is really an amazing thing and I&#8217;m blessed to be part of it.</p>
<p><strong>Starting This Blog</strong></p>
<p>While there are no miraculous stories associated with this site, I think it has been a great experience for me. I&#8217;ve created about 50 posts since the beginning of the school year and had 350 unique visitors (and counting). While these numbers certainly aren&#8217;t impressive, it&#8217;s encouraging that people are reading what I have to say (and that some of them are even coming back). I&#8217;ve gradually been increasing the rate at which I post and I hope to be able to write even more frequently in 2009. The theme I created for this blog has gone through several iterations and I&#8217;m pretty pleased with the way that it turned out, but I think I might do a total redesign for 2009 (If you like this theme though, let me know and I might keep it). I&#8217;ve gone from a WordPress novice to someone who, while not exactly a &#8220;professional&#8221;, is at least competent enough to get things done and to help friends who are involved in the blogging world.</p>
<p><strong>In Conclusion</strong></p>
<p>I can say without a doubt that this has been one of the best years of my life. It&#8217;s been amazing to see what God has done and I&#8217;m excited to see what he has in store for 2009.</p>
<p>Happy New Year!</p>

<p><a href="http://feedads.g.doubleclick.net/~a/mAE6RwlMuRvyWuEu9v1o8VaIja0/0/da"><img src="http://feedads.g.doubleclick.net/~a/mAE6RwlMuRvyWuEu9v1o8VaIja0/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/mAE6RwlMuRvyWuEu9v1o8VaIja0/1/da"><img src="http://feedads.g.doubleclick.net/~a/mAE6RwlMuRvyWuEu9v1o8VaIja0/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/itsananderson/~4/fv6lIs0Ap7c" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.itsananderson.com/2009/01/2008-reflection-2009-thoughts/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://www.itsananderson.com/2009/01/2008-reflection-2009-thoughts/</feedburner:origLink></item>
		<item>
		<title>WordPress Security Tip</title>
		<link>http://feedproxy.google.com/~r/itsananderson/~3/AaJXNZcbwgQ/</link>
		<comments>http://www.itsananderson.com/2008/12/wordpress-security-tip/#comments</comments>
		<pubDate>Tue, 30 Dec 2008 18:46:49 +0000</pubDate>
		<dc:creator>Will</dc:creator>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[Htaccess]]></category>
		<category><![CDATA[Security]]></category>

		<guid isPermaLink="false">http://www.itsananderson.com/2008/12/wordpress-security-tip/</guid>
		<description><![CDATA[I&#8217;ve been catching up on the WordPress Weekly Podcasts lately and while I was listening to one of the first shows I came across a nice security tip. Place empty index.php files in all directories that don&#8217;t already have an index file. Directories like the /wp-content/plugins folder could be dangerous in the hands of hackers [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been catching up on the WordPress Weekly Podcasts lately and while I was listening to one of the first shows I came across a nice security tip. Place empty index.php files in all directories that don&#8217;t already have an index file. Directories like the /wp-content/plugins folder could be dangerous in the hands of hackers if one of the plugins you use has a security flaw. By obscuring the folder&#8217;s contents you make it just a little harder for hackers to cause you problems.</p>
<p>I went about creating these empty index files on my site, but soon discovered that there are hosts of folders that could use them (think about the date structure in /wp-content/uploads ). Then I remembered another tool. <code>.htaccess</code>. Add this line of code to your <code>.htaccess</code> file to keep file in <em>any</em> directory from being listed (this works on any site who&#8217;s server supports <code>.htaccess</code> by the way, not just WordPress blogs).</p>
<p><code>IndexIgnore *</code></p>
<p>Really simple, I know, but I thought I&#8217;d share it all the same.</p>

<p><a href="http://feedads.g.doubleclick.net/~a/J1nTvagPuR-Ib3OruLX__1KWq9E/0/da"><img src="http://feedads.g.doubleclick.net/~a/J1nTvagPuR-Ib3OruLX__1KWq9E/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/J1nTvagPuR-Ib3OruLX__1KWq9E/1/da"><img src="http://feedads.g.doubleclick.net/~a/J1nTvagPuR-Ib3OruLX__1KWq9E/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/itsananderson/~4/AaJXNZcbwgQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.itsananderson.com/2008/12/wordpress-security-tip/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		<feedburner:origLink>http://www.itsananderson.com/2008/12/wordpress-security-tip/</feedburner:origLink></item>
		<item>
		<title>Plugin Release: Code Snippets</title>
		<link>http://feedproxy.google.com/~r/itsananderson/~3/pP6VTYi2GwY/</link>
		<comments>http://www.itsananderson.com/2008/12/plugin-release-code-snippets/#comments</comments>
		<pubDate>Tue, 30 Dec 2008 05:50:49 +0000</pubDate>
		<dc:creator>Will</dc:creator>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[Code Snippets]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[Plugin]]></category>
		<category><![CDATA[Release]]></category>

		<guid isPermaLink="false">http://www.itsananderson.com/?p=399</guid>
		<description><![CDATA[I just released my first WordPress plugin. It&#8217;s not the fist plugin I&#8217;ve written, but it&#8217;s the first one that&#8217;s good enough to release to the community. Check out the info and download it here. If you have comments or suggestions, by all means let me know (either by email or by commenting here)!]]></description>
			<content:encoded><![CDATA[<p>I just released my first WordPress plugin. It&#8217;s not the fist plugin I&#8217;ve written, but it&#8217;s the first one that&#8217;s good enough to release to the community.</p>
<p>Check out the info and download it <a href="http://www.itsananderson.com/plugins/code-snippets/">here</a>.</p>
<p>If you have comments or suggestions, by all means let me know (either by email or by commenting here)!</p>

<p><a href="http://feedads.g.doubleclick.net/~a/kzh0xVsht1co9dNNxGAHFKqjk-8/0/da"><img src="http://feedads.g.doubleclick.net/~a/kzh0xVsht1co9dNNxGAHFKqjk-8/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/kzh0xVsht1co9dNNxGAHFKqjk-8/1/da"><img src="http://feedads.g.doubleclick.net/~a/kzh0xVsht1co9dNNxGAHFKqjk-8/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/itsananderson/~4/pP6VTYi2GwY" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.itsananderson.com/2008/12/plugin-release-code-snippets/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.itsananderson.com/2008/12/plugin-release-code-snippets/</feedburner:origLink></item>
		<item>
		<title>WordPress 2.8 Feature Survey</title>
		<link>http://feedproxy.google.com/~r/itsananderson/~3/Di2FDu7VOrU/</link>
		<comments>http://www.itsananderson.com/2008/12/wordpress-28-feature-survey/#comments</comments>
		<pubDate>Wed, 24 Dec 2008 01:03:41 +0000</pubDate>
		<dc:creator>Will</dc:creator>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[Survey]]></category>
		<category><![CDATA[WordPress 2.8]]></category>

		<guid isPermaLink="false">http://www.itsananderson.com/2008/12/wordpress-28-feature-survey/</guid>
		<description><![CDATA[The WordPress development blog just posted a link to a survey about what features should be in WordPress 2.8. If you use WordPress, you should take the survey and let your opinion be known.]]></description>
			<content:encoded><![CDATA[<p>The <a href="http://wordpress.org/development/2008/12/prioritizing-features-for-wordpress-28/">WordPress development blog</a> just posted a link to a survey about what features should be in WordPress 2.8. If you use WordPress, you should take the survey and let your opinion be known.</p>

<p><a href="http://feedads.g.doubleclick.net/~a/aRy4jgFdLbGCFEQaT-D-iHD68oM/0/da"><img src="http://feedads.g.doubleclick.net/~a/aRy4jgFdLbGCFEQaT-D-iHD68oM/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/aRy4jgFdLbGCFEQaT-D-iHD68oM/1/da"><img src="http://feedads.g.doubleclick.net/~a/aRy4jgFdLbGCFEQaT-D-iHD68oM/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/itsananderson/~4/Di2FDu7VOrU" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.itsananderson.com/2008/12/wordpress-28-feature-survey/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.itsananderson.com/2008/12/wordpress-28-feature-survey/</feedburner:origLink></item>
		<item>
		<title>Creating Breadcrumb Navigation in WordPress</title>
		<link>http://feedproxy.google.com/~r/itsananderson/~3/9pABU5fsS2Q/</link>
		<comments>http://www.itsananderson.com/2008/12/creating-breadcrumb-navigation-in-wordpress/#comments</comments>
		<pubDate>Wed, 24 Dec 2008 00:50:44 +0000</pubDate>
		<dc:creator>Will</dc:creator>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[Bread Crumbs]]></category>
		<category><![CDATA[Breadcrumbs]]></category>
		<category><![CDATA[IRPA]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.itsananderson.com/?p=312</guid>
		<description><![CDATA[Bread Crumbs are something that&#8217;s been around for quite some time. I first remember seeing them in ANGEL when my dad was working for the company in 2005. Similar things can be found in File Browsers, and browser history is really a kind of bread crumb. In my work for IRPA one of the concerns [...]]]></description>
			<content:encoded><![CDATA[<p><a title="Wikipedia Article on Bread Crumbs" href="http://en.wikipedia.org/wiki/Breadcrumb_(navigation)">Bread Crumbs</a> are something that&#8217;s been around for quite some time. I first remember seeing them in <a title="ANGEL Learning" href="http://angellearning.com/">ANGEL</a> when my dad was working for the company in 2005. Similar things can be found in File Browsers, and browser history is really a kind of bread crumb.</p>
<p><span id="more-312"></span>In my work for IRPA one of the concerns we&#8217;ve had is the ability of visitors to navigate the site. Because WordPress isn&#8217;t really a CMS out of the box, navigation is sometimes difficult to facilitate on sites with deep &#8220;trees&#8221;. One of the solutions I looked at was Breadcrumbs because they can give users a quick look at their location in the site structure. Over the break (which I&#8217;m still enjoying) I&#8217;ve been able to finish implementing breadcrumbs on the IRPA Site.</p>
<p>I almost think something like this should be in core, but again, WordPress isn&#8217;t a CMS, so maybe it wouldn&#8217;t be useful for most people.</p>
<p>One of the things that took me the longest was figuring out how to handle different site settings. A site who&#8217;s home page displays latest posts needs a slightly different navigation list than a site which has a static home page. Even sites with static pages can have different structures depending on what page is the &#8220;home&#8221; page. Anyway, Here&#8217;s the code if you want to add it to your template. Simply paste the code into your <code>functions.php</code> file and add a call to <code>get_breadcrumbs()</code> where you want the breadcrumb list in your template. It outputs the breadcrumbs as list items. You&#8217;ll need to put the <code>ul</code> around them yourself in the template.</p>
<pre class="php">function get_breadcrumbs(){
	global $post;

	$separator = '  &amp;gt; '; // what to place between the pages

	if ( is_page() ){
		// bread crumb structure only logical on pages
		$trail = array($post); // initially $trail only contains the current page
		$parent = $post; // initially set to current post
		$show_on_front = get_option( 'show_on_front'); // does the front page display the latest posts or a static page
		$page_on_front = get_option( 'page_on_front' ); // if it shows a page, what page
		// while the current page isn't the home page and it has a parent
		while ( $parent-&gt;post_parent &amp;&amp; !($parent-&gt;ID == $page_on_front &amp;&amp; 'page') == $show_on_front ){
			$parent = get_post( $parent-&gt;post_parent ); // get the current page's parent
			array_unshift( $trail, $parent ); // add the parent object to beginning of array
		}
		if ( 'posts' == $show_on_front ) // if the front page shows latest posts, simply display a home link
			echo "&lt;li class='breadcrumb-item' id='breadcrumb-0'&gt;&lt;a href='" . get_bloginfo('home') . "'&gt;Home&lt;/a&gt;&lt;/li&gt;\n"; // home page link
		else{ // if the front page displays a static page, display a link to it
			$home_page = get_post( $page_on_front ); // get the front page object
			echo "&lt;li class='breadcrumb-item' id='breadcrumb-{$home_page-&gt;ID}'&gt;&lt;a href='" . get_bloginfo('home') . "'&gt;$home_page-&gt;post_title&lt;/a&gt;&lt;/li&gt;\n"; // home page link
			if($trail[0]-&gt;ID == $page_on_front) // if the home page is an ancestor of this page
				array_shift( $trail ); // remove the home page from the $trail because we've already printed it
		}
		foreach ( $trail as $page){
			// print the link to the current page in the foreach
			echo "&lt;li class='breadcrumb-item' id='breadcrumb-{$page-&gt;ID}' &gt;$separator&lt;a href='" . get_page_link( $page-&gt;ID ) . "'&gt;{$page-&gt;post_title}&lt;/a&gt;&lt;/li&gt;\n";
		}
	}else{
		// if what we're looking at isn't a page, simply display a home link
		echo "&lt;li class='breadcrumb-item' id='breadcrumb-0'&gt;&lt;a href='" . get_bloginfo('home') . "'&gt;Home&lt;/a&gt;&lt;/li&gt;\n"; // home page link
	}
}</pre>
<p>If you have any corrections or suggestions for this (rather long) bit of code, please add your comment bellow. I love feedback!</p>

<p><a href="http://feedads.g.doubleclick.net/~a/d8oC5g45ELGfR0HQBj5Ll7tntuQ/0/da"><img src="http://feedads.g.doubleclick.net/~a/d8oC5g45ELGfR0HQBj5Ll7tntuQ/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/d8oC5g45ELGfR0HQBj5Ll7tntuQ/1/da"><img src="http://feedads.g.doubleclick.net/~a/d8oC5g45ELGfR0HQBj5Ll7tntuQ/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/itsananderson/~4/9pABU5fsS2Q" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.itsananderson.com/2008/12/creating-breadcrumb-navigation-in-wordpress/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		<feedburner:origLink>http://www.itsananderson.com/2008/12/creating-breadcrumb-navigation-in-wordpress/</feedburner:origLink></item>
		<item>
		<title>An Interesting Offer</title>
		<link>http://feedproxy.google.com/~r/itsananderson/~3/wxFXS5W2Y8I/</link>
		<comments>http://www.itsananderson.com/2008/12/an-interesting-offer/#comments</comments>
		<pubDate>Sat, 20 Dec 2008 20:51:08 +0000</pubDate>
		<dc:creator>Will</dc:creator>
				<category><![CDATA[It's An Anderson]]></category>
		<category><![CDATA[Domain Registration Group]]></category>
		<category><![CDATA[Domains]]></category>

		<guid isPermaLink="false">http://www.itsananderson.com/2008/12/an-interesting-offer/</guid>
		<description><![CDATA[I got a letter today from &#8220;Domain Renewal Group&#8221; informing me that &#8220;itsananderson.com&#8221; will be expiring within the next couple months. They offered to let me transfer my domain registration to them for only $30! This is really amazing because I had just renewed &#8220;itsananderson.com&#8221; a couple days before and had been charged $10. What [...]]]></description>
			<content:encoded><![CDATA[<p>I got a letter today from &#8220;Domain Renewal Group&#8221; informing me that &#8220;itsananderson.com&#8221; will be expiring within the next couple months. They offered to let me transfer my domain registration to them for only $30! This is really amazing because I had just renewed &#8220;itsananderson.com&#8221; a couple days before and had been charged $10. What was I thinking! Next time I&#8217;ll have to go with &#8220;Domain Renewal Group&#8221; <img src='http://www.itsananderson.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>By the way, I&#8217;m currently listening to the Bitwire Holiday Marathon. If you&#8217;d like to listen to Jeff Chandler talk about non-WordPress related topics you should check it out.</p>
<p><a href="http://holidaymarathon.com/ " title="Bitwire Holiday Marathon">http://holidaymarathon.com/</a></p>

<p><a href="http://feedads.g.doubleclick.net/~a/sLEJs2ToVkbOK_fxv3OJPGKoTR4/0/da"><img src="http://feedads.g.doubleclick.net/~a/sLEJs2ToVkbOK_fxv3OJPGKoTR4/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/sLEJs2ToVkbOK_fxv3OJPGKoTR4/1/da"><img src="http://feedads.g.doubleclick.net/~a/sLEJs2ToVkbOK_fxv3OJPGKoTR4/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/itsananderson/~4/wxFXS5W2Y8I" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.itsananderson.com/2008/12/an-interesting-offer/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.itsananderson.com/2008/12/an-interesting-offer/</feedburner:origLink></item>
		<item>
		<title>List Pages Wrapper</title>
		<link>http://feedproxy.google.com/~r/itsananderson/~3/4PbO9r8U0mk/</link>
		<comments>http://www.itsananderson.com/2008/12/list-pages-wrapper/#comments</comments>
		<pubDate>Fri, 19 Dec 2008 16:45:39 +0000</pubDate>
		<dc:creator>Will</dc:creator>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[WordPress 2.7]]></category>

		<guid isPermaLink="false">http://www.itsananderson.com/2008/12/list-pages-wrapper/</guid>
		<description><![CDATA[I just read about a new feature of WordPress 2.7 that I had previously missed: wp_page_menu. It&#8217;s a wrapper around wp_list_pages, but it allows you to list the home page as well. When I get a chance, I&#8217;m going to update my template to use this, rather than the somewhat hacky solution I&#8217;m currently using. [...]]]></description>
			<content:encoded><![CDATA[<p>I just read about a new feature of WordPress 2.7 that I had previously missed: <code>wp_page_menu</code>. It&#8217;s a wrapper around <code>wp_list_pages</code>, but it allows you to list the home page as well. When I get a chance, I&#8217;m going to update my template to use this, rather than the somewhat hacky solution I&#8217;m currently using.</p>
<p>By the way, I found out about the new function <a href="http://www.noupe.com/wordpress/mastering-your-wordpress-27-theme-admin-area-tips-and-tricks.html" title="noupe.com article">here</a>. If you&#8217;d like to learn about other new features WordPress 2.7 (or how to use <code>wp_page_menu</code>) you should definitely check it out.</p>

<p><a href="http://feedads.g.doubleclick.net/~a/SaJ5ZZnhnE_wFOWsemPBRlG_HAE/0/da"><img src="http://feedads.g.doubleclick.net/~a/SaJ5ZZnhnE_wFOWsemPBRlG_HAE/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/SaJ5ZZnhnE_wFOWsemPBRlG_HAE/1/da"><img src="http://feedads.g.doubleclick.net/~a/SaJ5ZZnhnE_wFOWsemPBRlG_HAE/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/itsananderson/~4/4PbO9r8U0mk" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.itsananderson.com/2008/12/list-pages-wrapper/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.itsananderson.com/2008/12/list-pages-wrapper/</feedburner:origLink></item>
		<item>
		<title>Plugin Review: My Page Order</title>
		<link>http://feedproxy.google.com/~r/itsananderson/~3/cQX83SyligM/</link>
		<comments>http://www.itsananderson.com/2008/12/plugin-review-my-page-order/#comments</comments>
		<pubDate>Mon, 15 Dec 2008 03:21:34 +0000</pubDate>
		<dc:creator>Will</dc:creator>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[My Page Order]]></category>
		<category><![CDATA[Plugin]]></category>
		<category><![CDATA[Review]]></category>

		<guid isPermaLink="false">http://www.itsananderson.com/?p=293</guid>
		<description><![CDATA[A few weeks ago Nick Ohrn suggested that I write about some of the plugins I use in my work for IRPA. The beginning of winter term sort of put a hold on that idea, but today I finally have a little time, so I&#8217;m going to start by writing about My Page Order. WordPress [...]]]></description>
			<content:encoded><![CDATA[<p>A few weeks ago <a href="http://nickohrn.com/">Nick Ohrn</a> suggested that I write about some of the plugins I use in my work for IRPA. The beginning of winter term sort of put a hold on that idea, but today I finally have a little time, so I&#8217;m going to start by writing about <a href="http://wordpress.org/extend/plugins/my-page-order/">My Page Order</a>.</p>
<p><span id="more-293"></span>WordPress gives users two tools for structuring pages. One is page parent, which allows you to create a tree structure with your pages, much like a folder system on a computer. I&#8217;ll touch on this a little later.</p>
<p>The other tool provided by WordPress is the ability to specify &#8220;Page Order&#8221;. What does this mean? Well, take my site for example. I have several pages that are listed at the top of every page. Their order can be decided by several things. Page ID is one option (though not really useful, since the ID is meaningless to anyone but WordPress itself). Another option is Alphabetical ordering based on title. This can be useful, but it still doesn&#8217;t give the kind of control that most would probably like. The final option is &#8220;Page Order&#8221;. This is based on a numeric value that can be set while editing a page. As WordPress says, this is a bit janky, because you have to go into every page and set some numeric value for its order. This is where My Page Order comes in.</p>
<p><strong>Description</strong></p>
<p>When activated, My Page Order adds an admin page in the &#8220;Pages&#8221; category called &#8220;My Page Order&#8221;. Clicking on it gives you a list of the pages you have on your site. You can drag the page names to order them just like WordPress Widgets. If you have a tree structure, you can select a page to order its child pages.</p>
<p><strong>Likes</strong></p>
<p>I love the ease with which you can order pages using this plugin. It&#8217;s a great tool to install for users who would feel uncomfortable using the default numbered ordering system.</p>
<p><strong>Dislikes</strong></p>
<p>The way this plugin handles the tree structure of pages feels a little awkward to me. Being able to view the whole structure at the same time would be incredibly useful, and being able to drag pages between parents would be immensely helpful.</p>
<p>I&#8217;ve still not decided whether this is a feature, or a bug, but unpublished pages are listed along with published pages. On one hand, this is good, because it means you can decide where a page will show up before you publish it. On the other hand, it can lead to a little confusion and clutter if many unpublished pages exist. Being able to hide unpublished pages would be a great improvement.</p>
<p><strong>Overall Review</strong></p>
<p>This plugin is really one of my favorite tools. Its function is so simple, yet it is integral to using WordPress as a content management system.</p>
<p><a href="http://wordpress.org/extend/plugins/my-page-order/">Plugin page on WordPress.org</a></p>
<p><a href="http://geekyweekly.com/mypageorder">Author&#8217;s plugin page</a> (a bit outdated).</p>

<p><a href="http://feedads.g.doubleclick.net/~a/JRwCMpp8C5gs-6PJ0ArXRkCsxsM/0/da"><img src="http://feedads.g.doubleclick.net/~a/JRwCMpp8C5gs-6PJ0ArXRkCsxsM/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/JRwCMpp8C5gs-6PJ0ArXRkCsxsM/1/da"><img src="http://feedads.g.doubleclick.net/~a/JRwCMpp8C5gs-6PJ0ArXRkCsxsM/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/itsananderson/~4/cQX83SyligM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.itsananderson.com/2008/12/plugin-review-my-page-order/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		<feedburner:origLink>http://www.itsananderson.com/2008/12/plugin-review-my-page-order/</feedburner:origLink></item>
		<item>
		<title>WordPress 2.7 Final</title>
		<link>http://feedproxy.google.com/~r/itsananderson/~3/ozOCz8RKobQ/</link>
		<comments>http://www.itsananderson.com/2008/12/wordpress-27-final/#comments</comments>
		<pubDate>Thu, 11 Dec 2008 02:38:51 +0000</pubDate>
		<dc:creator>Will</dc:creator>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[WordPress 2.7]]></category>

		<guid isPermaLink="false">http://www.itsananderson.com/2008/12/wordpress-27-final/</guid>
		<description><![CDATA[Exactly a month after the originally scheduled release, WordPress 2.7 is here! Check out the Release Announcement. Download Page]]></description>
			<content:encoded><![CDATA[<p>Exactly a month after the originally scheduled release, WordPress 2.7 is here!</p>
<p>Check out the <a href="http://wordpress.org/development/2008/12/coltrane/" title="WordPress 2.7 Release Announcement">Release Announcement</a>.</p>
<p><a href="http://wordpress.org/download" title="download wordpress 2.7">Download Page</a></p>

<p><a href="http://feedads.g.doubleclick.net/~a/6x8iZxeRq1KYSp0q2CChTQOxuaU/0/da"><img src="http://feedads.g.doubleclick.net/~a/6x8iZxeRq1KYSp0q2CChTQOxuaU/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/6x8iZxeRq1KYSp0q2CChTQOxuaU/1/da"><img src="http://feedads.g.doubleclick.net/~a/6x8iZxeRq1KYSp0q2CChTQOxuaU/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/itsananderson/~4/ozOCz8RKobQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.itsananderson.com/2008/12/wordpress-27-final/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.itsananderson.com/2008/12/wordpress-27-final/</feedburner:origLink></item>
		<item>
		<title>WordPress 2.7 RC2</title>
		<link>http://feedproxy.google.com/~r/itsananderson/~3/MsD1NHICXOE/</link>
		<comments>http://www.itsananderson.com/2008/12/wordpress-27-rc2/#comments</comments>
		<pubDate>Wed, 10 Dec 2008 05:40:10 +0000</pubDate>
		<dc:creator>Will</dc:creator>
				<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://www.itsananderson.com/2008/12/wordpress-27-rc2/</guid>
		<description><![CDATA[Just wanted to really quickly say that WordPress 2.7 RC 2 came out today. The second release candidate means we&#8217;re probably only a couple days away from getting a final release. Its interesting that the final release will be almost exactly one month after its originally intended release. I suppose this is really to be [...]]]></description>
			<content:encoded><![CDATA[<p>Just wanted to really quickly say that WordPress 2.7 RC 2 came out today. The second release candidate means we&#8217;re probably only a couple days away from getting a final release. Its interesting that the final release will be almost exactly one month after its originally intended release. I suppose this is really to be expected though, considering all the changes that went into 2.7.</p>
<p>EDIT: Oh yes, and here&#8217;s the <a href="http://wordpress.org/development/2008/12/27-release-candidate-two/">dev blog announcement</a> and the direct <a href="http://wordpress.org/wordpress-2.7-RC2.zip">download link</a>.</p>

<p><a href="http://feedads.g.doubleclick.net/~a/kAJxxwAMvXsqBY7NEeksR4JCkKY/0/da"><img src="http://feedads.g.doubleclick.net/~a/kAJxxwAMvXsqBY7NEeksR4JCkKY/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/kAJxxwAMvXsqBY7NEeksR4JCkKY/1/da"><img src="http://feedads.g.doubleclick.net/~a/kAJxxwAMvXsqBY7NEeksR4JCkKY/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/itsananderson/~4/MsD1NHICXOE" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.itsananderson.com/2008/12/wordpress-27-rc2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.itsananderson.com/2008/12/wordpress-27-rc2/</feedburner:origLink></item>
		<item>
		<title>XPUbuntu: My Saga</title>
		<link>http://feedproxy.google.com/~r/itsananderson/~3/wmuBxQlr764/</link>
		<comments>http://www.itsananderson.com/2008/12/xpubuntu-my-saga/#comments</comments>
		<pubDate>Wed, 10 Dec 2008 04:49:12 +0000</pubDate>
		<dc:creator>Will</dc:creator>
				<category><![CDATA[Computers]]></category>
		<category><![CDATA[Themes]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[Windows XP]]></category>

		<guid isPermaLink="false">http://www.itsananderson.com/?p=270</guid>
		<description><![CDATA[Having perhaps a little too much time on my hands today, I decided to make my Windows XP installation look like Ubuntu. Why bother with Windows XP at all? Well, I still need many windows applications for various classes I&#8217;m currently taking, but I like the Ubuntu interface better than the one provided with Windows [...]]]></description>
			<content:encoded><![CDATA[<p>Having perhaps a little too much time on my hands today, I decided to make my Windows XP installation look like Ubuntu. Why bother with Windows XP at all? Well, I still need many windows applications for various classes I&#8217;m currently taking, but I like the Ubuntu interface better than the one provided with Windows XP, so making XP look like Ubuntu seemed like a good way to go. I&#8217;m actually quite pleased with what I was able to do, and I may stick with this configuration.</p>
<p><span id="more-270"></span>The first thing I had to do was find a theme that would change my interface to look like Ubuntu&#8217;s &#8220;Human&#8221; theme. I found a great (though slightly old) <a href="http://blog.shankarganesh.com/2007/09/18/ubuntu-themes-for-windows-xp/" title="Ubuntu Themes for Windows XP">post</a> that listed some of the options available. I patched the windows dll and (rather nervously) restarted Windows. After trying a few others, I finally settled on the <a href="http://fioressj.deviantart.com/art/Human-for-Windows-37743373" title="Human for Windows">first</a> one on the list. (Its interesting to note that the Cursor files didn&#8217;t seem to install automatically, but doing so manually wasn&#8217;t that hard)</p>
<p>Next I went ahead and set the default <a href="http://www.itsananderson.com/blog/wp-content/uploads/2008/12/warty-final-ubuntu.png">Ubuntu Intrepid Ibex Wallpaper</a> as my background to add to the Ubuntu atmosphere.</p>
<p>One of the things I love the most about Ubuntu is its <a href="http://en.wikipedia.org/wiki/Virtual_desktop" title="Wikipedia article on Virtual Desktops">Virtual desktops</a>. After looking around, I found <a href="http://virtuawin.sourceforge.net/" title="VirtuaWin project home page">VirtuaWin</a>, an open source virtual desktop manager for Windows. I tried it for a while, but while I loved its feature set, one thing I missed was the cool &#8220;Rotating Cube&#8221; effect that Compiz Fusion gives you in Ubuntu. I did a little more digging and came across <a href="http://en.wikipedia.org/wiki/Yod'm_3D" title="Wikipedia article on Yad'm3D">Yod&#8217;m3D</a>. As it turns out, this project is now <a href="http://www.otakusoftware.com/deskspace/" title="DeskSpace Official Website">DeskSpace</a>, and is no longer free. Fortunately for me, an older version of Yad&#8217;m3D is still available for <a href="http://en.wikipedia.org/wiki/Yod'm_3D#Download_Mirrors" title="Yad'm3D download mirrors">download</a>. I installed it, and am now working in full Ubuntu-like glory.</p>
<p>Here are some screenshots:</p>
<p><a href="http://www.itsananderson.com/blog/wp-content/uploads/2008/12/developmentdesktop.png"><img src="http://www.itsananderson.com/blog/wp-content/uploads/2008/12/developmentdesktop-150x150.png" alt="developmentdesktop" title="developmentdesktop" width="150" height="150" class="alignnone size-thumbnail wp-image-269" /></a> &#8220;Development&#8221; Desktop</p>
<p><a href="http://www.itsananderson.com/blog/wp-content/uploads/2008/12/browserdesktop.png"><img src="http://www.itsananderson.com/blog/wp-content/uploads/2008/12/browserdesktop-150x150.png" alt="browserdesktop" title="browserdesktop" width="150" height="150" class="alignnone size-thumbnail wp-image-271" /></a> &#8220;Browser&#8221; Desktop</p>
<p><a href="http://www.itsananderson.com/blog/wp-content/uploads/2008/12/graphicsdesktop.png"><img src="http://www.itsananderson.com/blog/wp-content/uploads/2008/12/graphicsdesktop-150x150.png" alt="graphicsdesktop" title="graphicsdesktop" width="150" height="150" class="alignnone size-thumbnail wp-image-272" /></a> &#8220;Graphics&#8221; Desktop</p>
<p><a href="http://www.itsananderson.com/blog/wp-content/uploads/2008/12/transition.png"><img src="http://www.itsananderson.com/blog/wp-content/uploads/2008/12/transition-150x150.png" alt="transition" title="transition" width="150" height="150" class="alignnone size-thumbnail wp-image-273" /></a> Cube Transition Effect</p>
<p>If I decide to keep this configuration, I&#8217;ll probably purchase the latest version of DeskSpace so I can enjoy the advanced feature set, but for now the free version is plenty of fun to play with.</p>

<p><a href="http://feedads.g.doubleclick.net/~a/6kK0t4cmDpH46dMh-iodTJVM4ik/0/da"><img src="http://feedads.g.doubleclick.net/~a/6kK0t4cmDpH46dMh-iodTJVM4ik/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/6kK0t4cmDpH46dMh-iodTJVM4ik/1/da"><img src="http://feedads.g.doubleclick.net/~a/6kK0t4cmDpH46dMh-iodTJVM4ik/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/itsananderson/~4/wmuBxQlr764" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.itsananderson.com/2008/12/xpubuntu-my-saga/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		<feedburner:origLink>http://www.itsananderson.com/2008/12/xpubuntu-my-saga/</feedburner:origLink></item>
		<item>
		<title>An Experiment</title>
		<link>http://feedproxy.google.com/~r/itsananderson/~3/UKj-EeZ5hgY/</link>
		<comments>http://www.itsananderson.com/2008/12/an-experiment/#comments</comments>
		<pubDate>Sun, 07 Dec 2008 03:40:50 +0000</pubDate>
		<dc:creator>Will</dc:creator>
				<category><![CDATA[Web]]></category>
		<category><![CDATA[AdSense]]></category>
		<category><![CDATA[Experiment]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[QuickPress]]></category>
		<category><![CDATA[Revenue]]></category>

		<guid isPermaLink="false">http://www.itsananderson.com/2008/12/an-experiment/</guid>
		<description><![CDATA[If you look to the right of this post you&#8217;ll see that I&#8217;ve added a small AdSense module in the sidebar. Far from being an evil plot to milk tons of money out of this blog, it really is just an experiment. I was curious about a couple of things, which I&#8217;m hoping to test. [...]]]></description>
			<content:encoded><![CDATA[<p>If you look to the right of this post you&#8217;ll see that I&#8217;ve added a small AdSense module in the sidebar. Far from being an evil plot to milk tons of money out of this blog, it really is just an experiment. I was curious about a couple of things, which I&#8217;m hoping to test.</p>
<p><span id="more-260"></span>The first thing I want to test is ad revenue in general. Can a low traffic site like mine even make anything from text ads. If so, how much. I suspect that the answer to this question will be &#8220;Yes, but very little&#8221;, but we&#8217;ll see.<br />
Second, I&#8217;m curious about visitor response. These days I get about 6 or 7 new visitors a week and I have about 5 or 6 people who read my blog frequently. Those numbers certainly aren&#8217;t very impressive, but they&#8217;ll do for the experiment. What I&#8217;d like to see is whether there&#8217;s a change in how long new visitors stay on my site, and if the number of people who actually return will be different.</p>
<p>I&#8217;m going to run this experiment for 3 months, and then at the end of that time I&#8217;ll do a report on the results. Whether I keep the ads will depend on the results of the experiment.<br />
Now its up to you to give me my first bit of feedback. Did you even notice the ad module before reading this post? If so, did it affect your opinion of this site in any way? If you&#8217;re a new visitor, will the ad have an affect on whether you return?</p>
<p>By the way, I&#8217;m writing this post with &#8220;<a title="WordPress Codex Description of QuickPress" href="http://codex.wordpress.org/Version_2.7#QuickPress">QuickPress</a>&#8220;, one of the many new features in WordPress 2.7.</p>

<p><a href="http://feedads.g.doubleclick.net/~a/Ge_FKvRQDCLekm52Jh3nL8EdNOI/0/da"><img src="http://feedads.g.doubleclick.net/~a/Ge_FKvRQDCLekm52Jh3nL8EdNOI/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/Ge_FKvRQDCLekm52Jh3nL8EdNOI/1/da"><img src="http://feedads.g.doubleclick.net/~a/Ge_FKvRQDCLekm52Jh3nL8EdNOI/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/itsananderson/~4/UKj-EeZ5hgY" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.itsananderson.com/2008/12/an-experiment/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		<feedburner:origLink>http://www.itsananderson.com/2008/12/an-experiment/</feedburner:origLink></item>
		<item>
		<title>WordPress 2.7 RC1</title>
		<link>http://feedproxy.google.com/~r/itsananderson/~3/qw_5ib7lPkQ/</link>
		<comments>http://www.itsananderson.com/2008/12/wordpress-27-rc1/#comments</comments>
		<pubDate>Tue, 02 Dec 2008 16:29:03 +0000</pubDate>
		<dc:creator>Will</dc:creator>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[Candidate]]></category>
		<category><![CDATA[Release]]></category>
		<category><![CDATA[WordPress 2.7]]></category>

		<guid isPermaLink="false">http://www.itsananderson.com/?p=255</guid>
		<description><![CDATA[I&#8217;ve been testing WordPress 2.7 since before the first Beta, but I wasn&#8217;t brave enough to install it on my main blog. Now that RC (Release Candidate) 1 is out, I feel more comfortable about using it for non-testing purposes, so I&#8217;ve installed it here. At some point, I&#8217;d like to do a review of [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been testing WordPress 2.7 since before the first Beta, but I wasn&#8217;t brave enough to install it on my main blog. Now that RC (Release Candidate) 1 is out, I feel more comfortable about using it for non-testing purposes, so I&#8217;ve installed it here. At some point, I&#8217;d like to do a review of what features I like best about 2.7, but for now I just wanted to post a short message so that if anything becomes broken, you&#8217;ll know why.</p>

<p><a href="http://feedads.g.doubleclick.net/~a/AHIiEZiebEREWdzUt2HvblVx05k/0/da"><img src="http://feedads.g.doubleclick.net/~a/AHIiEZiebEREWdzUt2HvblVx05k/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/AHIiEZiebEREWdzUt2HvblVx05k/1/da"><img src="http://feedads.g.doubleclick.net/~a/AHIiEZiebEREWdzUt2HvblVx05k/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/itsananderson/~4/qw_5ib7lPkQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.itsananderson.com/2008/12/wordpress-27-rc1/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<feedburner:origLink>http://www.itsananderson.com/2008/12/wordpress-27-rc1/</feedburner:origLink></item>
		<item>
		<title>Family Gathering</title>
		<link>http://feedproxy.google.com/~r/itsananderson/~3/DakZG1vDiL0/</link>
		<comments>http://www.itsananderson.com/2008/11/family-gathering/#comments</comments>
		<pubDate>Thu, 27 Nov 2008 23:34:11 +0000</pubDate>
		<dc:creator>Will</dc:creator>
				<category><![CDATA[Personal]]></category>
		<category><![CDATA[Family]]></category>
		<category><![CDATA[Thanksgiving]]></category>

		<guid isPermaLink="false">http://www.itsananderson.com/?p=253</guid>
		<description><![CDATA[I was blessed this week to be able to spend some time with the members of my family who live too far away to visit often. It was great to be together and to share the joy of Thanksgiving as a family.]]></description>
			<content:encoded><![CDATA[<p>I was blessed this week to be able to spend some time with the members of my family who live too far away to visit often. It was great to be together and to share the joy of Thanksgiving as a family.</p>

<p><a href="http://feedads.g.doubleclick.net/~a/msgpAnDcwJi0S4VBLs3FiZ3-ZSk/0/da"><img src="http://feedads.g.doubleclick.net/~a/msgpAnDcwJi0S4VBLs3FiZ3-ZSk/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/msgpAnDcwJi0S4VBLs3FiZ3-ZSk/1/da"><img src="http://feedads.g.doubleclick.net/~a/msgpAnDcwJi0S4VBLs3FiZ3-ZSk/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/itsananderson/~4/DakZG1vDiL0" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.itsananderson.com/2008/11/family-gathering/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.itsananderson.com/2008/11/family-gathering/</feedburner:origLink></item>
		<item>
		<title>Need an Excuse?</title>
		<link>http://feedproxy.google.com/~r/itsananderson/~3/JP56N0sujqs/</link>
		<comments>http://www.itsananderson.com/2008/11/need-an-excuse/#comments</comments>
		<pubDate>Sun, 23 Nov 2008 03:06:35 +0000</pubDate>
		<dc:creator>Will</dc:creator>
				<category><![CDATA[Web]]></category>
		<category><![CDATA[Eric Meyer]]></category>
		<category><![CDATA[Excuses]]></category>

		<guid isPermaLink="false">http://www.itsananderson.com/?p=242</guid>
		<description><![CDATA[Eric Meyer often has humerus perspectives on life. I just found one of his more less recent projects: Excuse of the day. [EDIT] It turns out this project is a lot older than I thought (as in over a decade older!). I assumed it was a lot younger because the twitter feed only goes back a couple [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://meyerweb.com/">Eric Meyer</a> often has humerus perspectives on life. I just found one of his <del>more</del> <ins>less</ins> recent projects: <a href="http://twitter.com/excuseoftheday">Excuse of the day</a>.</p>
<p>[EDIT] It turns out this project is a lot older than I thought (as in over a decade older!). I assumed it was a lot younger because the twitter feed only goes back a couple of months. You can find out more about the project <a href="http://meyerweb.com/feeds/excuse/">here</a>.</p>

<p><a href="http://feedads.g.doubleclick.net/~a/r4QkRAMfXhxBhfyvndsGmFVr93w/0/da"><img src="http://feedads.g.doubleclick.net/~a/r4QkRAMfXhxBhfyvndsGmFVr93w/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/r4QkRAMfXhxBhfyvndsGmFVr93w/1/da"><img src="http://feedads.g.doubleclick.net/~a/r4QkRAMfXhxBhfyvndsGmFVr93w/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/itsananderson/~4/JP56N0sujqs" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.itsananderson.com/2008/11/need-an-excuse/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://www.itsananderson.com/2008/11/need-an-excuse/</feedburner:origLink></item>
		<item>
		<title>Summer 2009 Internship Opportunity</title>
		<link>http://feedproxy.google.com/~r/itsananderson/~3/R64Rny5uxTE/</link>
		<comments>http://www.itsananderson.com/2008/11/summer-2009-internship-opportunity/#comments</comments>
		<pubDate>Sat, 22 Nov 2008 05:08:21 +0000</pubDate>
		<dc:creator>Will</dc:creator>
				<category><![CDATA[Jobs]]></category>
		<category><![CDATA[ANGEL Learning]]></category>
		<category><![CDATA[Internships]]></category>

		<guid isPermaLink="false">http://www.itsananderson.com/?p=240</guid>
		<description><![CDATA[I&#8217;ve been offered an internship opportunity for next summer with ANGEL learning. Apart from working in some development capacity, I don&#8217;t know exactly what I&#8217;ll be doing (and I probably couldn&#8217;t talk about it even if I did), but from the information they&#8217;ve shared I think I&#8217;ll really enjoy it, and it&#8217;ll be a good [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been offered an internship opportunity for next summer with <a href="http://angellearning.com/">ANGEL learning</a>. Apart from working in some development capacity, I don&#8217;t know exactly what I&#8217;ll be doing (and I probably couldn&#8217;t talk about it even if I did), but from the information they&#8217;ve shared I think I&#8217;ll really enjoy it, and it&#8217;ll be a good experience for me. The environment I saw during my interview (and what I saw a couple years ago when my Dad worked there) is extremely friendly, and I&#8217;m excited to have the chance to be part of it.</p>
<p><span id="more-240"></span>Of course, this is 6 months away, but I&#8217;m already looking at some of the housing options available. There&#8217;s a nice housing community called Deercross that&#8217;s only a couple miles from where I&#8217;ll be working. Their <a href="http://www.deercrossapartmenthomes.com/">website</a> certainly paints a pleasant picture, and their pricing seems pretty reasonable). As the time draws closer, I&#8217;ll start looking more actively and I&#8217;ll probably be visiting the places I find online. Overall, this should be an interesting adventure.</p>

<p><a href="http://feedads.g.doubleclick.net/~a/ioP6awSyxAK8VmuE9sfz02G3W0o/0/da"><img src="http://feedads.g.doubleclick.net/~a/ioP6awSyxAK8VmuE9sfz02G3W0o/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/ioP6awSyxAK8VmuE9sfz02G3W0o/1/da"><img src="http://feedads.g.doubleclick.net/~a/ioP6awSyxAK8VmuE9sfz02G3W0o/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/itsananderson/~4/R64Rny5uxTE" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.itsananderson.com/2008/11/summer-2009-internship-opportunity/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.itsananderson.com/2008/11/summer-2009-internship-opportunity/</feedburner:origLink></item>
		<item>
		<title>So Far So Good</title>
		<link>http://feedproxy.google.com/~r/itsananderson/~3/Lu7PoimBUaQ/</link>
		<comments>http://www.itsananderson.com/2008/11/so-far-so-good/#comments</comments>
		<pubDate>Tue, 18 Nov 2008 16:11:27 +0000</pubDate>
		<dc:creator>Will</dc:creator>
				<category><![CDATA[Rose-Hulman]]></category>
		<category><![CDATA[Fall Term]]></category>
		<category><![CDATA[Final Exams]]></category>

		<guid isPermaLink="false">http://www.itsananderson.com/?p=235</guid>
		<description><![CDATA[Two final exams down and two to go. I feel pretty good about the first two, so hopefully I&#8217;ll feel the same about the others. I gotta say though, I&#8217;ll be ready for the break when all this is over. I&#8217;m gonna get a lot of sleep, because going into winter term, I know I [...]]]></description>
			<content:encoded><![CDATA[<p>Two final exams down and two to go. I feel pretty good about the first two, so hopefully I&#8217;ll feel the same about the others. I gotta say though, I&#8217;ll be ready for the break when all this is over. I&#8217;m gonna get a lot of sleep, because going into winter term, I know I won&#8217;t be getting much. It&#8217;ll be fun though. Even though Computer Architecture I and Databases will be challenging, I think I&#8217;m going to really enjoy them (of course, we&#8217;ll have to see how I feel at the end of the term <img src='http://www.itsananderson.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  ).</p>

<p><a href="http://feedads.g.doubleclick.net/~a/RduXY1VnrYvFqOBESo__IPRnJ3k/0/da"><img src="http://feedads.g.doubleclick.net/~a/RduXY1VnrYvFqOBESo__IPRnJ3k/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/RduXY1VnrYvFqOBESo__IPRnJ3k/1/da"><img src="http://feedads.g.doubleclick.net/~a/RduXY1VnrYvFqOBESo__IPRnJ3k/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/itsananderson/~4/Lu7PoimBUaQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.itsananderson.com/2008/11/so-far-so-good/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.itsananderson.com/2008/11/so-far-so-good/</feedburner:origLink></item>
		<item>
		<title>Common Sense: So Seldom Common</title>
		<link>http://feedproxy.google.com/~r/itsananderson/~3/1FuQ8YchSLc/</link>
		<comments>http://www.itsananderson.com/2008/11/common-sense-so-seldom-common/#comments</comments>
		<pubDate>Sun, 16 Nov 2008 04:07:30 +0000</pubDate>
		<dc:creator>Will</dc:creator>
				<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://www.itsananderson.com/?p=229</guid>
		<description><![CDATA[Adrian Diaconescu has created a list of &#8220;8 common sense tips for writing clean WordPress blog posts&#8221;. If you haven&#8217;t read it, I suggest heading on over and having a look. Even if you don&#8217;t normally use WordPress, he shares some things that you might still find helpful if you ever have to publish content [...]]]></description>
			<content:encoded><![CDATA[<p>Adrian Diaconescu has created a list of &#8220;8 common sense tips for writing clean WordPress blog posts&#8221;. If you haven&#8217;t read it, I suggest heading on over and having a look. Even if you don&#8217;t normally use WordPress, he shares some things that you might still find helpful if you ever have to publish content online.</p>
<p><a href="http://rubiqube.com/8-common-sense-tips-for-writing-clean-wordpress-blog-posts/">http://rubiqube.com/8-common-sense-tips-for-writing-clean-wordpress-blog-posts/</a></p>
<p><span id="more-229"></span>Though some of it was kind of obvious to me, the other parts were really helpful. I&#8217;m planning to begin some more intensive training of IRPA staff once the stable version of WordPress 2.7 is released, and I get the feeling this article will find its way into the training.</p>

<p><a href="http://feedads.g.doubleclick.net/~a/bwKCxE1V1VBrS1MeSgWTfBMn-aI/0/da"><img src="http://feedads.g.doubleclick.net/~a/bwKCxE1V1VBrS1MeSgWTfBMn-aI/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/bwKCxE1V1VBrS1MeSgWTfBMn-aI/1/da"><img src="http://feedads.g.doubleclick.net/~a/bwKCxE1V1VBrS1MeSgWTfBMn-aI/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/itsananderson/~4/1FuQ8YchSLc" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.itsananderson.com/2008/11/common-sense-so-seldom-common/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://www.itsananderson.com/2008/11/common-sense-so-seldom-common/</feedburner:origLink></item>
		<item>
		<title>ANGEL Interview</title>
		<link>http://feedproxy.google.com/~r/itsananderson/~3/yGlpB36KRMc/</link>
		<comments>http://www.itsananderson.com/2008/11/angel-interview/#comments</comments>
		<pubDate>Sat, 15 Nov 2008 19:50:25 +0000</pubDate>
		<dc:creator>Will</dc:creator>
				<category><![CDATA[Jobs]]></category>
		<category><![CDATA[ANGEL Learning]]></category>
		<category><![CDATA[Internships]]></category>

		<guid isPermaLink="false">http://www.itsananderson.com/?p=222</guid>
		<description><![CDATA[Well, I went to my interview with ANGEL Learning yesterday. We got a tour of the office space (wow they&#8217;ve grown in the past couple years!). We got a quick history of ANGEL, then we were given a demo of ANGEL itself (of course we were all from Rose, so they were able to skip [...]]]></description>
			<content:encoded><![CDATA[<p>Well, I went to my interview with <a href="http://angellearning.com/">ANGEL Learning</a> yesterday. We got a tour of the office space (wow they&#8217;ve grown in the past couple years!). We got a quick history of ANGEL, then we were given a demo of ANGEL itself (of course we were all from Rose, so they were able to skip most of the basics and show us some of the more advanced conrols available to professors). They served us an amazing lunch and then we split into different rooms for interviews. Of course, I don&#8217;t know exactly what the interviewers thought of me, but I definitely came away very impressed with ANGEL.</p>

<p><a href="http://feedads.g.doubleclick.net/~a/RKXbihUWGa93r0ZtOr0ssWPm3fg/0/da"><img src="http://feedads.g.doubleclick.net/~a/RKXbihUWGa93r0ZtOr0ssWPm3fg/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/RKXbihUWGa93r0ZtOr0ssWPm3fg/1/da"><img src="http://feedads.g.doubleclick.net/~a/RKXbihUWGa93r0ZtOr0ssWPm3fg/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/itsananderson/~4/yGlpB36KRMc" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.itsananderson.com/2008/11/angel-interview/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.itsananderson.com/2008/11/angel-interview/</feedburner:origLink></item>
		<item>
		<title>Beginning 10th Week</title>
		<link>http://feedproxy.google.com/~r/itsananderson/~3/l7dVSshHBE8/</link>
		<comments>http://www.itsananderson.com/2008/11/beginning-10th-week/#comments</comments>
		<pubDate>Tue, 11 Nov 2008 01:10:25 +0000</pubDate>
		<dc:creator>Will</dc:creator>
				<category><![CDATA[Rose-Hulman]]></category>
		<category><![CDATA[Fall Term]]></category>

		<guid isPermaLink="false">http://www.itsananderson.com/?p=218</guid>
		<description><![CDATA[The last week of classes for this quarter is here. Dispite people&#8217;s usual expectations about 10th week, my schedule really isn&#8217;t very full. I have a project due tomorrow, as well as an exam, I have a lab writup due Wednesday, I have a project I&#8217;m trying to finish by Thursday, and I have an [...]]]></description>
			<content:encoded><![CDATA[<p>The last week of classes for this quarter is here. Dispite people&#8217;s usual expectations about 10<sup>th</sup> week, my schedule really isn&#8217;t very full.</p>
<ul>
<li>I have a project due tomorrow, as well as an exam,</li>
<li>I have a lab writup due Wednesday,</li>
<li>I have a project I&#8217;m trying to finish by Thursday, and</li>
<li>I have an interview with <a title="ANGEL Learning" href="http://angellearning.com/">ANGEL Learning</a> on Friday.</li>
</ul>
<p>Hmm, maybe I&#8217;ll be busier this week than I thought.</p>
<p>Oh well, I guess that&#8217;s just part of being a student at Rose.</p>

<p><a href="http://feedads.g.doubleclick.net/~a/AFvdbYJrQh1JxgKL7M0cOWieyUs/0/da"><img src="http://feedads.g.doubleclick.net/~a/AFvdbYJrQh1JxgKL7M0cOWieyUs/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/AFvdbYJrQh1JxgKL7M0cOWieyUs/1/da"><img src="http://feedads.g.doubleclick.net/~a/AFvdbYJrQh1JxgKL7M0cOWieyUs/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/itsananderson/~4/l7dVSshHBE8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.itsananderson.com/2008/11/beginning-10th-week/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.itsananderson.com/2008/11/beginning-10th-week/</feedburner:origLink></item>
		<item>
		<title>Ethical Downgrade – The Slippery Slope</title>
		<link>http://feedproxy.google.com/~r/itsananderson/~3/yfvMYM48JGQ/</link>
		<comments>http://www.itsananderson.com/2008/11/ethical-downgrade-the-slippery-slope/#comments</comments>
		<pubDate>Fri, 07 Nov 2008 20:09:40 +0000</pubDate>
		<dc:creator>Will</dc:creator>
				<category><![CDATA[Religion]]></category>
		<category><![CDATA[Ethics]]></category>
		<category><![CDATA[Rose Thorn]]></category>

		<guid isPermaLink="false">http://www.itsananderson.com/?p=216</guid>
		<description><![CDATA[&#8220;&#8230; And even though we view the conservative lifestyle as an unusual way of life, we&#8217;ll still let Republicans marry each other.&#8221; A quote from the Rose Thorn expressing the author&#8217;s opinion that the election outcome is good for everyone. What I see (in the whole article, but especially in that sentence) is a complete [...]]]></description>
			<content:encoded><![CDATA[<blockquote><p>&#8220;&#8230; And even though we view the conservative lifestyle as an unusual way of life, we&#8217;ll still let Republicans marry each other.&#8221;</p></blockquote>
<p>A quote from the Rose Thorn expressing the author&#8217;s opinion that the election outcome is good for everyone.</p>
<p>What I see (in the whole article, but especially in that sentence) is a complete moral turnaround from the values America held such a short time ago. Not only are those who believe homosexuality is wrong mocked, but the very heterosexual lifestyle is deemed as strange and unusual. We&#8217;re the one&#8217;s who need to be tolerated.</p>
<p>If that doesn&#8217;t scare you, I doubt anything ever will.</p>
<p>As for me, seeing the moral changes the past decade has brought about, I tremble to think what the next decade might bring.</p>

<p><a href="http://feedads.g.doubleclick.net/~a/tCnQeA5fFH1cZLQwqP66tPi6CiY/0/da"><img src="http://feedads.g.doubleclick.net/~a/tCnQeA5fFH1cZLQwqP66tPi6CiY/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/tCnQeA5fFH1cZLQwqP66tPi6CiY/1/da"><img src="http://feedads.g.doubleclick.net/~a/tCnQeA5fFH1cZLQwqP66tPi6CiY/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/itsananderson/~4/yfvMYM48JGQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.itsananderson.com/2008/11/ethical-downgrade-the-slippery-slope/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.itsananderson.com/2008/11/ethical-downgrade-the-slippery-slope/</feedburner:origLink></item>
		<item>
		<title>An Election Reflection</title>
		<link>http://feedproxy.google.com/~r/itsananderson/~3/uR02q0PnIZE/</link>
		<comments>http://www.itsananderson.com/2008/11/an-election-reflection/#comments</comments>
		<pubDate>Thu, 06 Nov 2008 04:17:41 +0000</pubDate>
		<dc:creator>Will</dc:creator>
				<category><![CDATA[Personal]]></category>
		<category><![CDATA[Ethics]]></category>
		<category><![CDATA[Politics]]></category>
		<category><![CDATA[Religion]]></category>

		<guid isPermaLink="false">http://www.itsananderson.com/?p=207</guid>
		<description><![CDATA[Yesterday marked a historical moment for our nation. I am proud to live in a country that can elect someone to our most honored office without regard to race. The color of a man&#8217;s skin, though so trivial, has divided our country for centuries. I&#8217;m glad to be able to witness this great step our [...]]]></description>
			<content:encoded><![CDATA[<p>Yesterday marked a historical moment for our nation. I am proud to live in a country that can elect someone to our most honored office without regard to race. The color of a man&#8217;s skin, though so trivial, has divided our country for centuries. I&#8217;m glad to be able to witness this great step our country has taken in the journey toward acceptance and inclusion of everyone, regardless of race.</p>
<p>My excitement and optimism ends here.</p>
<p><span id="more-207"></span>Our country seems on the verge of economic collapse, reminiscent of the Great Depression of the 20&#8242;s. Stocks are at all time lows, jobs are disappearing like rubber balls at a magic show, and foreclosures and bankruptcies seem imminent. Into this picture steps a man who promises hope and change. We don&#8217;t have to settle for the status quo. We can affect our future, and we can do it together. Our nation, looking for a savior in our time of trouble turns to this voice of hope and promise. We <em>want</em> change, and we feel that we&#8217;ve found the person who can bring it to us.</p>
<p>What concerns me about this change is both the <em>what</em> and <em>how</em>. I&#8217;m not opposed to change. I feel that change can be good on many levels, but I&#8217;m choosy about my change. One place I enjoy seeing change is in software. I often install beta versions of software before the stable releases are made because I&#8217;m excited to see what changes have been implemented (I&#8217;m writing this post from Google Chrome for example). If, on the other hand, I install the beta version of a program and I find that some part of it majorly degrades my experience, I&#8217;m very quick to go back to what I was using before. Again, I&#8217;m not opposed to change, but I don&#8217;t like change <em>just</em> for the sake of it.</p>
<p>Let&#8217;s analyze some of the &#8216;<em>whats</em>&#8216; and &#8216;<em>hows</em>&#8216; shall we?</p>
<p> </p>
<p><em><span style="text-decoration: underline;">What</span></em>: New health care plans including expanded eligibility for Medicaid and Government funded insurance.</p>
<p><em><span style="text-decoration: underline;">How</span></em>: This new plan is estimated to cost the federal government approximately 1.17 trillion dollars. Federal health care costs will raise to around 2.7 trillion dollars a year by 2010. This cost will ultimately fall to those of the working age (about 60% of the population). We&#8217;ll assume that other plans have created jobs for everyone and that there is no unemployment, so everyone who can work is working. With about 60% of the population, or 180 million people paying for the cost of federally funded health care, each person will be paying just under 15 thousand dollars a year. Now the plan suggests that these costs will actually be paid by large companies, but ultimately, this will simply mean smaller pay checks for employees&#8230; or that companies will have to cut back on jobs and unemployment will be created. I&#8217;ll leave it to the reader to determine whether this cost is worth the &#8220;benefit&#8221; of government funded health care.</p>
<p> </p>
<p><em><span style="text-decoration: underline;">What</span></em>: More research, innovation, and jobs.</p>
<p><em><span style="text-decoration: underline;">How</span></em>: The government will support company and university research to create new technologies and innovations, creating jobs and increasing the standard of living for American families. Another part of this plan promises publicly available broadband access in every community across the nation. While this will give rise to technology innovations and hopefully to an increased number of jobs, it will ultimately cost us more than if these services were provided by a private investor. The reason for this is that the administration assigned to these projects by the government usually has little to no experience in the fields they are investigating. They are administrators, not scientists or engineers. Because of this, it&#8217;s harder for them to determine the feasibility of a project proposal or innovation idea. Private investors, on the other hand, seem to have more people who are experienced in the science and engineering industries, so they are better able to determine whether a project will succeed or fail. Only investing in projects that are likely to succeed cuts back on costs and delivers cheaper products to the customer. Lower production costs will also allow employers to hire more workers, increasing employment.</p>
<p> </p>
<p><em><span style="text-decoration: underline;">What</span></em>: Civil rights reform.</p>
<p><em><span style="text-decoration: underline;">How</span></em>: &#8220;Overturn court rulings that curtail women&#8217;s and minority&#8217;s rights to challenge pay discrimination&#8221;. Pass a &#8220;Fair Pay Act&#8221; ensuring women receive equal pay for equal work. (I feel that these are great and I applaud equal opportunity employment for women and minorities). Pass an &#8220;Employment Non-Discrimination Act&#8221; that prohibits discrimination based on sexual orientation or gender identity or expression. This will effectively tie the hands of employers, making them choose a homosexual over a heterosexual employee for fear of being accused of discrimination.</p>
<p> </p>
<p><em><span style="text-decoration: underline;">Conclusion</span></em></p>
<p><em></em>These are just three of the changes promised by our next president. He has many other changes he plans to make during his 4 years in office. I&#8217;ve just highlighted a few that I feel are particularly alarming.</p>
<p>Now to the real purpose of this (rather long) post. How do I as a Christian respond to the results of this presidential election? I could throw my hands up in the air and complain about how unfair the world is, but that is not what God expects from me. Here are some thoughts that put things in perspective for me. I think the may also be helpful for Christians who feel that our next president will be the savior for our nation.</p>
<p>First, my biblical duty is not really to elect my nation&#8217;s leaders, but to pray for them.</p>
<p style="text-align: right;">&#8220;<em>As for me, far be it from me that I should sin against the LORD by failing to pray for you.</em>&#8220;</p>
<p style="text-align: right;"><a title="I Samuel 12" href="http://www.biblegateway.com/passage/?book_id=9&amp;chapter=12&amp;version=31">I Samuel 12:23 (NIV)</a></p>
<p style="text-align: left;">Second, regardless of who our nation&#8217;s leader is, it is my biblical duty to submit to them, because they were given their authority by God.</p>
<p style="text-align: right;">&#8220;<em>Everyone must submit himself to the governing authorities, for there is no authority except that which God has established. The authorities that exist have been established by God.</em>&#8220;</p>
<p style="text-align: right;"><a title="Romans 13" href="http://www.biblegateway.com/passage/?book_id=52&amp;chapter=13&amp;version=31">Romans 13:1 (NIV)</a></p>
<p style="text-align: left;">Third, because our nation&#8217;s leaders are really elected by God, they are under his control. They cannot do anything He doesn&#8217;t allow.</p>
<p style="text-align: right;">&#8220;<em>The king&#8217;s heart is in the hand of the LORD;<br />
       he directs it like a watercourse wherever he pleases.</em>&#8221;
</p>
<p style="text-align: right;"><a title="Proverbs 21" href="http://www.biblegateway.com/passage/?book_id=24&amp;chapter=21&amp;version=31">Proverbs 21:1 (NIV)</a></p>
<p style="text-align: left;"><em><span style="text-decoration: underline;">Finally</span></em>:</p>
<p style="text-align: left;">I welcome thoughts and criticisms of anyone, whether you agree with me, or have a totally opposing view. Feel free to comment, please just be courteous to me and anyone else who comments. Thanks for reading!</p>
<p style="text-align: left;"> </p>

<p><a href="http://feedads.g.doubleclick.net/~a/ZwOoNeG_AtGKiYbKovV6XXT3y68/0/da"><img src="http://feedads.g.doubleclick.net/~a/ZwOoNeG_AtGKiYbKovV6XXT3y68/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/ZwOoNeG_AtGKiYbKovV6XXT3y68/1/da"><img src="http://feedads.g.doubleclick.net/~a/ZwOoNeG_AtGKiYbKovV6XXT3y68/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/itsananderson/~4/uR02q0PnIZE" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.itsananderson.com/2008/11/an-election-reflection/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://www.itsananderson.com/2008/11/an-election-reflection/</feedburner:origLink></item>
		<item>
		<title>Conditional Classnames</title>
		<link>http://feedproxy.google.com/~r/itsananderson/~3/iwC9pWM1tZE/</link>
		<comments>http://www.itsananderson.com/2008/11/conditional-classnames/#comments</comments>
		<pubDate>Mon, 03 Nov 2008 20:22:10 +0000</pubDate>
		<dc:creator>Will</dc:creator>
				<category><![CDATA[Web]]></category>
		<category><![CDATA[(X)HTML]]></category>

		<guid isPermaLink="false">http://www.itsananderson.com/2008/11/conditional-classnames/</guid>
		<description><![CDATA[Actually saw this on Eric Meyer&#8217;s web page, but I thought it was kinda cool. While it eliminates the need for an extra HTTP request, it also means that the CSS style sheet will have to be larger for both IE and other browsers. Still, that&#8217;s probably faster than two HTTP requests. paulhammond.org: Conditional classnames.]]></description>
			<content:encoded><![CDATA[<p>Actually saw this on <a href="http://meyerweb.com/">Eric Meyer&#8217;s web page</a>, but I thought it was kinda cool.</p>
<p>While it eliminates the need for an extra HTTP request, it also means that the CSS style sheet will have to be larger for both IE and other browsers. Still, that&#8217;s probably faster than two HTTP requests.</p>
<p><a href="http://www.paulhammond.org/2008/10/conditional/">paulhammond.org: Conditional classnames</a>.</p>

<p><a href="http://feedads.g.doubleclick.net/~a/TDSUgvaTiDvqvxj7P7IWCxXi1f4/0/da"><img src="http://feedads.g.doubleclick.net/~a/TDSUgvaTiDvqvxj7P7IWCxXi1f4/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/TDSUgvaTiDvqvxj7P7IWCxXi1f4/1/da"><img src="http://feedads.g.doubleclick.net/~a/TDSUgvaTiDvqvxj7P7IWCxXi1f4/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/itsananderson/~4/iwC9pWM1tZE" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.itsananderson.com/2008/11/conditional-classnames/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.itsananderson.com/2008/11/conditional-classnames/</feedburner:origLink></item>
		<item>
		<title>WordPress: Using Conditional Tags in Plug-ins</title>
		<link>http://feedproxy.google.com/~r/itsananderson/~3/uzAWz-F6gjs/</link>
		<comments>http://www.itsananderson.com/2008/11/wordpress-using-conditional-tags-in-plug-ins/#comments</comments>
		<pubDate>Mon, 03 Nov 2008 19:02:45 +0000</pubDate>
		<dc:creator>Will</dc:creator>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[Actions]]></category>
		<category><![CDATA[Conditional Tags]]></category>
		<category><![CDATA[Plug-in]]></category>

		<guid isPermaLink="false">http://www.itsananderson.com/?p=191</guid>
		<description><![CDATA[I&#8217;ve been developing a WordPress plug-in for the Holidays (more on this at a later date) and I found something interesting. When plug-ins are loaded, the conditional tags (is_home, is_page, etc.) are effectively useless because the requested URL hasn&#8217;t been parsed yet. This was a problem for me because I wanted to be able to [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been developing a WordPress plug-in for the Holidays (more on this at a later date) and I found something interesting. When plug-ins are loaded, the <a title="Conditional Tags Documentation in the Codex" href="http://codex.wordpress.org/Conditional_Tags">conditional tags</a> (<code>is_home</code>, <code>is_page</code>, etc.) are effectively useless because the requested URL hasn&#8217;t been parsed yet. This was a problem for me because I wanted to be able to only have the script do its magic on the home page (by checking <code>is_front_page</code>). I did some searching but didn&#8217;t really find anything helpful. I even looked at the definition of <code>is_front_page</code> in the source code, which simply confirmed that it wouldn&#8217;t return accurate results when the plug-in was loaded. I finally thought of a good way to fix this&#8230; an <a title="WordPress Action Reference" href="http://codex.wordpress.org/Plugin_API/Action_Reference">action hook</a>.</p>
<p><span id="more-191"></span>I took everything that had been running when the script loaded and placed it in a function. Then added an action to run before the header was loaded (<code>get_header</code>). This way the function is executed after the template information has been loaded (so WordPress knows what page has been requested) but before <code>header.php</code> is included. Since what I was trying to do was to add a JavaScript file to the include Queue, I could have probably attached this to <code>wp_print_scripts</code>, but in my case it didn&#8217;t really make much of a difference.</p>
<p>Anyway, the most important thing I learned here was that in order to use conditional tags in a plug-in, you have to use an action hook to wait until enough information has been loaded.</p>
<p>Hope this is helpful to someone else!</p>

<p><a href="http://feedads.g.doubleclick.net/~a/yacEiA7AnxmYAgRK3nTROIQ6b4o/0/da"><img src="http://feedads.g.doubleclick.net/~a/yacEiA7AnxmYAgRK3nTROIQ6b4o/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/yacEiA7AnxmYAgRK3nTROIQ6b4o/1/da"><img src="http://feedads.g.doubleclick.net/~a/yacEiA7AnxmYAgRK3nTROIQ6b4o/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/itsananderson/~4/uzAWz-F6gjs" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.itsananderson.com/2008/11/wordpress-using-conditional-tags-in-plug-ins/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.itsananderson.com/2008/11/wordpress-using-conditional-tags-in-plug-ins/</feedburner:origLink></item>
		<item>
		<title>Something Different for Halloween</title>
		<link>http://feedproxy.google.com/~r/itsananderson/~3/Ql-3g1DWkho/</link>
		<comments>http://www.itsananderson.com/2008/10/something-different-for-halloween/#comments</comments>
		<pubDate>Fri, 31 Oct 2008 01:35:43 +0000</pubDate>
		<dc:creator>Will</dc:creator>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[Halloween]]></category>
		<category><![CDATA[Pumpkins]]></category>

		<guid isPermaLink="false">http://www.itsananderson.com/2008/10/something-different-for-halloween/</guid>
		<description><![CDATA[For anyone who thinks I&#8217;m about to talk about what Halloween really stands for and why we really shouldn&#8217;t celebrate it, I&#8217;m not. I&#8217;ll have to save that for another year. What I&#8217;m talking about today is a really creative jack-o-lantern a WordPress fan created. Check it out here: Eric Martin » WordPress Pumpkin.]]></description>
			<content:encoded><![CDATA[<p>For anyone who thinks I&#8217;m about to talk about what Halloween really stands for and why we really shouldn&#8217;t celebrate it, I&#8217;m not. I&#8217;ll have to save that for another year. What I&#8217;m talking about today is a really creative jack-o-lantern a WordPress fan created. Check it out here:</p>
<p><a href="http://www.ericmmartin.com/wordpress-pumpkin/">Eric Martin » WordPress Pumpkin</a>.</p>

<p><a href="http://feedads.g.doubleclick.net/~a/QPivDtMjU-iojTmplJa_EN_75Uo/0/da"><img src="http://feedads.g.doubleclick.net/~a/QPivDtMjU-iojTmplJa_EN_75Uo/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/QPivDtMjU-iojTmplJa_EN_75Uo/1/da"><img src="http://feedads.g.doubleclick.net/~a/QPivDtMjU-iojTmplJa_EN_75Uo/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/itsananderson/~4/Ql-3g1DWkho" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.itsananderson.com/2008/10/something-different-for-halloween/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://www.itsananderson.com/2008/10/something-different-for-halloween/</feedburner:origLink></item>
		<item>
		<title>Finding a Worthwhile Hobby</title>
		<link>http://feedproxy.google.com/~r/itsananderson/~3/PLDtDfyVSJ0/</link>
		<comments>http://www.itsananderson.com/2008/10/finding-a-worthwhile-hobby/#comments</comments>
		<pubDate>Tue, 28 Oct 2008 16:43:41 +0000</pubDate>
		<dc:creator>Will</dc:creator>
				<category><![CDATA[Personal]]></category>
		<category><![CDATA[Grammar]]></category>
		<category><![CDATA[Hobby]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[XKCD]]></category>

		<guid isPermaLink="false">http://www.itsananderson.com/2008/10/finding-a-worthwhile-hobby/</guid>
		<description><![CDATA[I&#8217;m afraid I&#8217;ve discovered that my current hobbies are apparently not only useless, but detrimental to my health (did you know you can get bad eyesight from programming in front of an LCD screen for hours at a time?!). Depressed by the thought that years of my life have been wasted trying to hone my [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m afraid I&#8217;ve discovered that my current hobbies are apparently not only useless, but detrimental to my health (did you know you can get bad eyesight from programming in front of an LCD screen for hours at a time?!). Depressed by the thought that years of my life have been wasted trying to hone my coding instincts, I&#8217;ve decided to launch myself into a new discipline in the hopes that it will help me to more quickly forget the life I&#8217;m leaving behind. My new hobby?</p>
<p><a href="http://imgs.xkcd.com/comics/effect_an_effect.png">Check it Out!</a></p>
<p>Perhaps if I display a humble affect I can talk the school into making this a major. Couldn&#8217;t be much harder than Civil Engineering right?</p>

<p><a href="http://feedads.g.doubleclick.net/~a/vOwC1KlU6VoiF2HuGVxdwcQdJKg/0/da"><img src="http://feedads.g.doubleclick.net/~a/vOwC1KlU6VoiF2HuGVxdwcQdJKg/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/vOwC1KlU6VoiF2HuGVxdwcQdJKg/1/da"><img src="http://feedads.g.doubleclick.net/~a/vOwC1KlU6VoiF2HuGVxdwcQdJKg/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/itsananderson/~4/PLDtDfyVSJ0" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.itsananderson.com/2008/10/finding-a-worthwhile-hobby/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.itsananderson.com/2008/10/finding-a-worthwhile-hobby/</feedburner:origLink></item>
		<item>
		<title>My New Toy(s)</title>
		<link>http://feedproxy.google.com/~r/itsananderson/~3/B06soF149sg/</link>
		<comments>http://www.itsananderson.com/2008/10/my-new-toy/#comments</comments>
		<pubDate>Sun, 19 Oct 2008 03:14:34 +0000</pubDate>
		<dc:creator>Will</dc:creator>
				<category><![CDATA[Personal]]></category>
		<category><![CDATA[Art]]></category>
		<category><![CDATA[Christmas]]></category>
		<category><![CDATA[Drawing]]></category>
		<category><![CDATA[Fall Break]]></category>
		<category><![CDATA[Graphics Tablet]]></category>
		<category><![CDATA[Joker]]></category>
		<category><![CDATA[Spider Man]]></category>
		<category><![CDATA[Toys]]></category>

		<guid isPermaLink="false">http://www.itsananderson.com/?p=142</guid>
		<description><![CDATA[Fall break turned into Christmas with the arrival of my new toy: an 8&#215;6 graphics drawing tablet. It&#8217;s not got a display of its own, but it hooks up to my computer by USB where I can use it on the GIMP. I&#8217;ve already done some stuff with it, but I&#8217;m hoping to get better. [...]]]></description>
			<content:encoded><![CDATA[<p>Fall break turned into Christmas with the arrival of my new toy: an 8&#215;6 graphics drawing tablet. It&#8217;s not got a display of its own, but it hooks up to my computer by USB where I can use it on the GIMP. I&#8217;ve already done some stuff with it, but I&#8217;m hoping to get better. As I use this thing more (if I get the time after classes start again), I&#8217;ll try to post some more of the stuff I do. And by all means, if you&#8217;ve got suggestions about how to improve (or even if you just want to tell me how bad these things are) please feel free to comment <img src='http://www.itsananderson.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><span id="more-142"></span></p>
<p>I&#8217;ve also gotten to try out my new technical drawing pens. Unfortunately, I&#8217;ve not done anything worth mentioning with them yet. Mostly just scribbles and a couple sketches. Drawing with pens is really a tricky art. I&#8217;ve got a lot to learn about the techniques required to produce worthwhile drawings with them. It&#8217;s really quite different than graphite!</p>
<p>A couple other things that came in the mail are my wireless router (which hopefully extend the wireless accessibility to my room) and my 1TB hard drive. I have yet to get either of these set up properly, but I&#8217;ll hopefully have a chance by the time break is over (man that time is coming fast!).</p>
<p>Anyway, here are the sketches I did with the graphics tablet.</p>
<p><a href="http://www.itsananderson.com/blog/wp-content/uploads/2008/10/joker1.png"><img class="alignnone size-medium wp-image-143" title="Joker" src="http://www.itsananderson.com/blog/wp-content/uploads/2008/10/joker1.png" alt="" width="400" height="300" /></a></p>
<p><a href="http://www.itsananderson.com/blog/wp-content/uploads/2008/10/spidey1.jpg"><img class="alignnone size-medium wp-image-144" title="Spider Man" src="http://www.itsananderson.com/blog/wp-content/uploads/2008/10/spidey1.jpg" alt="" width="300" height="450" /></a></p>
<p>Again, I hope to eventually produce something more worthwhile, but this is what we&#8217;ve got so far <img src='http://www.itsananderson.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>

<p><a href="http://feedads.g.doubleclick.net/~a/zzHkBWzxjwjaZoNlqSX9oKbjSlk/0/da"><img src="http://feedads.g.doubleclick.net/~a/zzHkBWzxjwjaZoNlqSX9oKbjSlk/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/zzHkBWzxjwjaZoNlqSX9oKbjSlk/1/da"><img src="http://feedads.g.doubleclick.net/~a/zzHkBWzxjwjaZoNlqSX9oKbjSlk/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/itsananderson/~4/B06soF149sg" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.itsananderson.com/2008/10/my-new-toy/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://www.itsananderson.com/2008/10/my-new-toy/</feedburner:origLink></item>
		<item>
		<title>Julian Beever’s Sidewalk Art</title>
		<link>http://feedproxy.google.com/~r/itsananderson/~3/ixK4GkCDelo/</link>
		<comments>http://www.itsananderson.com/2008/10/julian-beevers-sidewalk-art/#comments</comments>
		<pubDate>Wed, 15 Oct 2008 21:09:54 +0000</pubDate>
		<dc:creator>Will</dc:creator>
				<category><![CDATA[Web]]></category>
		<category><![CDATA[Art]]></category>
		<category><![CDATA[Chalk]]></category>

		<guid isPermaLink="false">http://www.itsananderson.com/?p=136</guid>
		<description><![CDATA[I came across the site of an amazing artist today. I&#8217;d seen some of his work before (online, not in person), but it never had any information about the author. He&#8217;s got some great pieces of work. Here are a couple of my favorites. Waste of Water Eiffel Tower Sand-Sculpture The Pause That Refreshes He&#8217;s [...]]]></description>
			<content:encoded><![CDATA[<p>I came across the site of an <a href="http://users.skynet.be/J.Beever/">amazing artist</a> today. I&#8217;d seen some of his work before (online, not in person), but it never had any information about the author. He&#8217;s got some great pieces of work. Here are a couple of my favorites.</p>
<p><a href="http://users.skynet.be/J.Beever/hosepipe.html">Waste of Water</a></p>
<p><a href="http://users.skynet.be/J.Beever/eiffel.html">Eiffel Tower Sand-Sculpture</a></p>
<p><a href="http://users.skynet.be/J.Beever/coke.html">The Pause That Refreshes</a><a href="http://users.skynet.be/J.Beever/postmod.htm"><br />
</a></p>
<p>He&#8217;s also done art in other media, but I personally think his chalk paintings are the best.</p>

<p><a href="http://feedads.g.doubleclick.net/~a/sK3iDI9u9fcVmZvTgihU3xe070k/0/da"><img src="http://feedads.g.doubleclick.net/~a/sK3iDI9u9fcVmZvTgihU3xe070k/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/sK3iDI9u9fcVmZvTgihU3xe070k/1/da"><img src="http://feedads.g.doubleclick.net/~a/sK3iDI9u9fcVmZvTgihU3xe070k/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/itsananderson/~4/ixK4GkCDelo" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.itsananderson.com/2008/10/julian-beevers-sidewalk-art/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.itsananderson.com/2008/10/julian-beevers-sidewalk-art/</feedburner:origLink></item>
		<item>
		<title>Fall Break Plans</title>
		<link>http://feedproxy.google.com/~r/itsananderson/~3/_K5iuUVZ9vQ/</link>
		<comments>http://www.itsananderson.com/2008/10/fall-break-plans/#comments</comments>
		<pubDate>Wed, 15 Oct 2008 19:22:09 +0000</pubDate>
		<dc:creator>Will</dc:creator>
				<category><![CDATA[Rose-Hulman]]></category>
		<category><![CDATA[Art]]></category>
		<category><![CDATA[Fall Break]]></category>
		<category><![CDATA[Pens]]></category>
		<category><![CDATA[Sleep]]></category>
		<category><![CDATA[Woot]]></category>

		<guid isPermaLink="false">http://www.itsananderson.com/?p=133</guid>
		<description><![CDATA[Fall Break officially begins at 5:10 today, and most students are off to visit friends and family. I of course don&#8217;t have to travel to see my family, so I instead will get a chance to catch up on the sleep I&#8217;ve lost over the past 6 weeks. Other things I plan to do over [...]]]></description>
			<content:encoded><![CDATA[<p>Fall Break officially begins at 5:10 today, and most students are off to visit friends and family. I of course don&#8217;t have to travel to see my family, so I instead will get a chance to catch up on the sleep I&#8217;ve lost over the past 6 weeks. Other things I plan to do over the break include work for IRPA, more development of my web hosting software, getting ahead in class reading/homework, and perhaps a little artwork.</p>
<p>Other bits of excitement&#8230; my parents are getting me a <a href="http://www.woot.com/Blog/ViewEntry.aspx?Id=6134">graphics tablet</a> from <a href="http://www.woot.com">WOOT</a> for my birthday, and I&#8217;m waiting on a 1 TB external hard drive which should arive in the next couple days. I also just purchased a set of <a href="http://www.dickblick.com/zz210/03/">Koh-I-Noor Rapidograph Technical Pens</a> which I can&#8217;t wait to try out. It should be an exciting 4 days <img src='http://www.itsananderson.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>

<p><a href="http://feedads.g.doubleclick.net/~a/YCSbga8D9oON3watWzmR2SyvjE8/0/da"><img src="http://feedads.g.doubleclick.net/~a/YCSbga8D9oON3watWzmR2SyvjE8/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/YCSbga8D9oON3watWzmR2SyvjE8/1/da"><img src="http://feedads.g.doubleclick.net/~a/YCSbga8D9oON3watWzmR2SyvjE8/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/itsananderson/~4/_K5iuUVZ9vQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.itsananderson.com/2008/10/fall-break-plans/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.itsananderson.com/2008/10/fall-break-plans/</feedburner:origLink></item>
		<item>
		<title>Rose-Hulman Ultimate Frisbee Tournament</title>
		<link>http://feedproxy.google.com/~r/itsananderson/~3/wOxe4jPRlWk/</link>
		<comments>http://www.itsananderson.com/2008/10/rose-hulman-ultimate-frisbee-tournament/#comments</comments>
		<pubDate>Mon, 13 Oct 2008 15:14:30 +0000</pubDate>
		<dc:creator>Will</dc:creator>
				<category><![CDATA[Rose-Hulman]]></category>
		<category><![CDATA[Frisbee]]></category>
		<category><![CDATA[Ultimate]]></category>

		<guid isPermaLink="false">http://www.itsananderson.com/?p=124</guid>
		<description><![CDATA[This past weekend Rose&#8217;s Ultimate Frisbee Team hosted an Ultimate Frisbee tournament. 10 teams participated in heated games that lasted two days. In the end, Rose&#8217;s &#8216;A&#8217; team beat Southern Illinois for the tournament title with a score of 12-10. I really enjoyed watching the tournament. Unfortunately, I enjoyed it so much that I forgot [...]]]></description>
			<content:encoded><![CDATA[<p>This past weekend Rose&#8217;s <a href="http://www.rose-hulman.edu/ufc/">Ultimate Frisbee Team</a> hosted an Ultimate Frisbee tournament. 10 teams participated in heated games that lasted two days. In the end, Rose&#8217;s &#8216;A&#8217; team beat Southern Illinois for the tournament title with a score of 12-10. I really enjoyed watching the tournament. Unfortunately, I enjoyed it so much that I forgot to take any pictures. Oh well, maybe I&#8217;ll get a chance in the spring.</p>

<p><a href="http://feedads.g.doubleclick.net/~a/pEXCSRCzXpHldOThw-DxP06qfL0/0/da"><img src="http://feedads.g.doubleclick.net/~a/pEXCSRCzXpHldOThw-DxP06qfL0/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/pEXCSRCzXpHldOThw-DxP06qfL0/1/da"><img src="http://feedads.g.doubleclick.net/~a/pEXCSRCzXpHldOThw-DxP06qfL0/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/itsananderson/~4/wOxe4jPRlWk" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.itsananderson.com/2008/10/rose-hulman-ultimate-frisbee-tournament/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.itsananderson.com/2008/10/rose-hulman-ultimate-frisbee-tournament/</feedburner:origLink></item>
		<item>
		<title>Rosie’s Homemade Bonfires!</title>
		<link>http://feedproxy.google.com/~r/itsananderson/~3/iHu_voWak9Y/</link>
		<comments>http://www.itsananderson.com/2008/10/rosies-homemade-bonfires/#comments</comments>
		<pubDate>Tue, 07 Oct 2008 15:27:42 +0000</pubDate>
		<dc:creator>Will</dc:creator>
				<category><![CDATA[Rose-Hulman]]></category>
		<category><![CDATA[2008]]></category>
		<category><![CDATA[Bonfire]]></category>

		<guid isPermaLink="false">http://www.itsananderson.com/?p=104</guid>
		<description><![CDATA[Rose-Hulman is a school full of tradition. Last weekend we celebrated one of our greatest Homecoming traditions&#8230; the bonfire. Freshman spend the week before homecoming constructing the bonfire out of about 5,000 railroad ties. It reaches 20-30 feet into the air and is crowned by an outhouse donated by someone in Terre Haute. Adding to [...]]]></description>
			<content:encoded><![CDATA[<p>Rose-Hulman is a school full of tradition. Last weekend we celebrated one of our greatest Homecoming traditions&#8230; the bonfire.</p>
<p>Freshman spend the week before homecoming constructing the bonfire out of about 5,000 railroad ties. It reaches 20-30 feet into the air and is crowned by an outhouse donated by someone in Terre Haute. Adding to the excitement, the sophamores attempt throughout the week to tear down the bonfire. 8:00 pm until 8:00 am is &#8220;open season&#8221;, but they have to get past the freshman who are guarding the bonfire with their lives (well, at least with nerf guns and maple syrup).</p>
<p><span id="more-104"></span></p>
<p>After the pep rally on Friday, everyone heads over to the bonfire to watch a fireworks display (which is amazing) and then the moment everyone has been waiting for&#8230; the lighting of the bonfire.</p>
<p style="text-align: left;"><a href="http://www.itsananderson.com/blog/wp-content/uploads/2008/10/dsc00024.jpg"><img class="alignnone size-thumbnail wp-image-107" title="Fireworks 2" src="http://www.itsananderson.com/blog/wp-content/uploads/2008/10/dsc00024-150x150.jpg" alt="" width="145" height="136" /></a><a href="http://www.itsananderson.com/blog/wp-content/uploads/2008/10/dsc00021.jpg"> <img class="alignnone size-medium wp-image-106" title="Fireworks 1" src="http://www.itsananderson.com/blog/wp-content/uploads/2008/10/dsc00021-800x600.jpg" alt="" width="169" height="134" /></a><a href="http://www.itsananderson.com/blog/wp-content/uploads/2008/10/dsc00025.jpg"> <img class="alignnone size-thumbnail wp-image-108" title="dsc00025" src="http://www.itsananderson.com/blog/wp-content/uploads/2008/10/dsc00025-150x150.jpg" alt="" width="144" height="133" /></a></p>
<p><a href="http://www.itsananderson.com/blog/wp-content/uploads/2008/10/dsc00028.jpg"><img class="alignnone size-thumbnail wp-image-109" title="dsc00028" src="http://www.itsananderson.com/blog/wp-content/uploads/2008/10/dsc00028-150x150.jpg" alt="" width="150" height="150" /></a><a href="http://www.itsananderson.com/blog/wp-content/uploads/2008/10/dsc00029.jpg"> <img class="alignnone size-thumbnail wp-image-110" title="dsc00029" src="http://www.itsananderson.com/blog/wp-content/uploads/2008/10/dsc00029-150x150.jpg" alt="" width="150" height="150" /></a></p>
<p>The fencing club decided to have some fun (it&#8217;s unfortunately hard to see here, but they&#8217;re fencing with fire brands).</p>
<p><a href="http://www.itsananderson.com/blog/wp-content/uploads/2008/10/swardfight.jpg"><img class="alignnone size-thumbnail wp-image-111" title="swardfight" src="http://www.itsananderson.com/blog/wp-content/uploads/2008/10/swardfight-150x150.jpg" alt="" width="150" height="150" /></a></p>
<p>Finally, &#8220;shiny guy&#8221; cooked us some marshmallows in the blaze.</p>
<p>EDIT: Turns out &#8220;shiny guy&#8221; is Daniel Sing, a grad student.</p>
<p><a href="http://www.itsananderson.com/blog/wp-content/uploads/2008/10/dsc00035.jpg"><img class="alignnone size-thumbnail wp-image-112" title="dsc00035" src="http://www.itsananderson.com/blog/wp-content/uploads/2008/10/dsc00035-150x150.jpg" alt="" width="150" height="150" /></a></p>
<p><a href="http://www.youtube.com/watch?v=xhHB6XiMkaY">Watch him on YouTube<br />
</a></p>
<p>I question the sanity of putting a bunch of engineers and scientists near so much fire, but the event ended safely and everyone had a good time (nobody did anything too stupid).</p>
<p>Now I can&#8217;t wait until next year&#8230; when I get to give the new freshman a hard time!</p>

<p><a href="http://feedads.g.doubleclick.net/~a/TcljJdCVoJR2GiMBGbNm52kBK7I/0/da"><img src="http://feedads.g.doubleclick.net/~a/TcljJdCVoJR2GiMBGbNm52kBK7I/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/TcljJdCVoJR2GiMBGbNm52kBK7I/1/da"><img src="http://feedads.g.doubleclick.net/~a/TcljJdCVoJR2GiMBGbNm52kBK7I/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/itsananderson/~4/iHu_voWak9Y" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.itsananderson.com/2008/10/rosies-homemade-bonfires/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		<feedburner:origLink>http://www.itsananderson.com/2008/10/rosies-homemade-bonfires/</feedburner:origLink></item>
		<item>
		<title>The Once and Future Web</title>
		<link>http://feedproxy.google.com/~r/itsananderson/~3/ZpGmQdYthiw/</link>
		<comments>http://www.itsananderson.com/2008/09/the-once-and-future-web/#comments</comments>
		<pubDate>Fri, 26 Sep 2008 20:15:03 +0000</pubDate>
		<dc:creator>Will</dc:creator>
				<category><![CDATA[Rose-Hulman]]></category>
		<category><![CDATA[Bebo White]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://www.itsananderson.com/?p=85</guid>
		<description><![CDATA[I had the opportunity to hear a lecture by Bebo White during his visit to Campus. He is known as &#8220;America&#8217;s First Webmaster&#8221;, so he&#8217;s got a lot of interesting stories to tell about the history of the World Wide Web. He discussed some of the challenges of the web, and shared some of his [...]]]></description>
			<content:encoded><![CDATA[<p>I had the opportunity to hear a lecture by <a title="Bebo's Home Page" href="http://www.bebowhite.com/">Bebo White</a> during his visit to Campus. He is known as &#8220;America&#8217;s First Webmaster&#8221;, so he&#8217;s got a lot of interesting stories to tell about the history of the World Wide Web.</p>
<p><span id="more-85"></span>He discussed some of the challenges of the web, and shared some of his thoughts on how the web will change in the future. It was an excellent time, with lots if interesting anecdotes and an informative question and answer time.</p>
<p>Here&#8217;s a picture if the lecture. Unfortunately, my phone doesn&#8217;t take very good pictures if the subject is more than a few yards away, so this one didn&#8217;t turn out very well. One of these days I&#8217;m actually going to purchase a real camera!</p>
<p><a href="http://www.itsananderson.com/blog/wp-content/uploads/2008/09/bebotalk.jpg"><img class="size-medium wp-image-90 alignnone" title="Bebo Begins His Lecture" src="http://www.itsananderson.com/blog/wp-content/uploads/2008/09/bebotalk-800x532.jpg" alt="Bebo Begins His Lecture" width="480" height="319" /></a></p>

<p><a href="http://feedads.g.doubleclick.net/~a/vGVeEjHyIt-7ViEsE-tiKt-EhHg/0/da"><img src="http://feedads.g.doubleclick.net/~a/vGVeEjHyIt-7ViEsE-tiKt-EhHg/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/vGVeEjHyIt-7ViEsE-tiKt-EhHg/1/da"><img src="http://feedads.g.doubleclick.net/~a/vGVeEjHyIt-7ViEsE-tiKt-EhHg/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/itsananderson/~4/ZpGmQdYthiw" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.itsananderson.com/2008/09/the-once-and-future-web/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.itsananderson.com/2008/09/the-once-and-future-web/</feedburner:origLink></item>
		<item>
		<title>Sidewalk Chalk Day</title>
		<link>http://feedproxy.google.com/~r/itsananderson/~3/P2LS7RFxufk/</link>
		<comments>http://www.itsananderson.com/2008/09/sidewalk-chalk-day/#comments</comments>
		<pubDate>Wed, 24 Sep 2008 22:26:23 +0000</pubDate>
		<dc:creator>Will</dc:creator>
				<category><![CDATA[Rose-Hulman]]></category>
		<category><![CDATA[Chalk]]></category>
		<category><![CDATA[Sidewalk]]></category>

		<guid isPermaLink="false">http://www.itsananderson.com/?p=80</guid>
		<description><![CDATA[Yesterday was sidewalk chalk day on campus. Following a tradition which started sometime in the distant past, students can pause between classes and do some chalk art on the many sidewalks crossing the Quad. A slightly newer tradition, started two years ago, is to write an irrational number to an insane number of digits. The [...]]]></description>
			<content:encoded><![CDATA[<p>Yesterday was sidewalk chalk day on campus. Following a tradition which started sometime in the distant past, students can pause between classes and do some chalk art on the many sidewalks crossing the Quad. A slightly newer tradition, started two years ago, is to write an irrational number to an insane number of digits.</p>
<p><span id="more-80"></span></p>
<p>The first year, the guy who started it all wrote out <a href="http://en.wikipedia.org/wiki/Pi">Pi</a>. He began in the Quad, went around the lake behind the Chapel, and finally went off the dock (if you&#8217;re not familiar with campus, that&#8217;s a LOT of numbers!). Last year, he did <a href="http://en.wikipedia.org/wiki/E_(mathematical_constant)">e</a>. This year he wrote out <a href="http://en.wikipedia.org/wiki/Golden_ratio">Phi</a> to 10,811 digits. I joined in the fun and wrote out root 2 to 2,226 digits.</p>

<p><a href="http://feedads.g.doubleclick.net/~a/X5aNYJcQKNhnZTndBIB7cf9AenE/0/da"><img src="http://feedads.g.doubleclick.net/~a/X5aNYJcQKNhnZTndBIB7cf9AenE/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/X5aNYJcQKNhnZTndBIB7cf9AenE/1/da"><img src="http://feedads.g.doubleclick.net/~a/X5aNYJcQKNhnZTndBIB7cf9AenE/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/itsananderson/~4/P2LS7RFxufk" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.itsananderson.com/2008/09/sidewalk-chalk-day/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.itsananderson.com/2008/09/sidewalk-chalk-day/</feedburner:origLink></item>
		<item>
		<title>Its An Anderson – Calendar</title>
		<link>http://feedproxy.google.com/~r/itsananderson/~3/uwWqtXkZnIY/</link>
		<comments>http://www.itsananderson.com/2008/09/its-an-anderson-calendar/#comments</comments>
		<pubDate>Tue, 16 Sep 2008 04:10:53 +0000</pubDate>
		<dc:creator>Will</dc:creator>
				<category><![CDATA[Personal]]></category>
		<category><![CDATA[Calendar]]></category>
		<category><![CDATA[It's An Anderson]]></category>

		<guid isPermaLink="false">http://www.itsananderson.com/2008/09/its-an-anderson-calendar/</guid>
		<description><![CDATA[So Google&#8217;s got a cool program that synchronizes your Outlook Calender with your Google Calender. I installed it, so now you can see my class/work/church schedule online. The only complaint I have is that Google Calenders apparently doesn&#8217;t support different colors for different events. Maybe it&#8217;s something they&#8217;re still working on. Anyway, the settings should [...]]]></description>
			<content:encoded><![CDATA[<p>So Google&#8217;s got a cool program that synchronizes your Outlook Calender with your Google Calender. I installed it, so now you can see my class/work/church schedule online. The only complaint I have is that Google Calenders apparently doesn&#8217;t support different colors for different events. Maybe it&#8217;s something they&#8217;re still working on. Anyway, the settings should allow anyone to see the calender.</p>
<p><a href="http://www.google.com/calendar/hosted/itsananderson.com/embed?src=will%40itsananderson.com&amp;ctz=America/New_York">Its An Anderson &#8211; Calendar</a>.</p>

<p><a href="http://feedads.g.doubleclick.net/~a/q20xXAUCEDjU3A1C7rnU1gkcMgU/0/da"><img src="http://feedads.g.doubleclick.net/~a/q20xXAUCEDjU3A1C7rnU1gkcMgU/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/q20xXAUCEDjU3A1C7rnU1gkcMgU/1/da"><img src="http://feedads.g.doubleclick.net/~a/q20xXAUCEDjU3A1C7rnU1gkcMgU/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/itsananderson/~4/uwWqtXkZnIY" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.itsananderson.com/2008/09/its-an-anderson-calendar/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.itsananderson.com/2008/09/its-an-anderson-calendar/</feedburner:origLink></item>
		<item>
		<title>Freedom of Religion or Freedom from Religion?</title>
		<link>http://feedproxy.google.com/~r/itsananderson/~3/cmIr2Jtgvvk/</link>
		<comments>http://www.itsananderson.com/2008/09/freedom-of-religion-or-freedom-from-religion/#comments</comments>
		<pubDate>Tue, 09 Sep 2008 16:20:17 +0000</pubDate>
		<dc:creator>Will</dc:creator>
				<category><![CDATA[Religion]]></category>
		<category><![CDATA[Ethics]]></category>

		<guid isPermaLink="false">http://www.itsananderson.com/?p=67</guid>
		<description><![CDATA[Glancing through the New York Times today, I noticed an ad who&#8217;s title read &#8220;Imagine a World Free From Religion&#8221;. That got my attention a little so I paused to read some more. Below the heading a picture of New York City (taken before the 9/11 attacks) was displayed. The implied message? A world without [...]]]></description>
			<content:encoded><![CDATA[<p>Glancing through the New York Times today, I noticed an ad who&#8217;s title read &#8220;Imagine a World Free From Religion&#8221;. That got my attention a little so I paused to read some more. Below the heading a picture of New York City (taken before the 9/11 attacks) was displayed. The implied message? A world without religion is a world without war and terror. The ad then went on describe the &#8220;growing threat of religious fanaticism here at home&#8221;. Beyond wondering whether pastors across our nation would agree with the claim that religious fanaticism is on the rise, I sense that the authors of this ad feel that anyone who is crazy enough to disagree with someone about whether God exists is crazy enough to blow up a building. It&#8217;s like someone who feels they were given the wrong change at the supermarket. Whether they are right or wrong, they&#8217;re probably not going to stab the sales clerk just because they disagree!</p>
<p><span id="more-67"></span></p>
<p>Another big claim they made is that our country was founded on the principles of freedom from God and freedom from religion. Funny, but I always thought it was Freedom OF Religion! They ask the reader to help them &#8220;shore up Jefferson&#8217;s battered &#8216;wall of seperation between church and state&#8217; &#8220;. I wonder if they&#8217;ve actually read <a title="Thomas Jefferson's Letter Requesting Protection of the Church from the State" href="http://www.usconstitution.net/jeffwall.html">Jefferson&#8217;s letter</a>. I wonder what he would have thought of the lengths people have gone to twist his words to mean the very opposite of what he was trying to do.</p>
<p>The last thing I want to point out (I could go on for quite a while) is that they bash faith based services in the community. They claim these are destructive to our culture and should be &#8220;legally challenged&#8221;. I wonder which part of the <a title="News Article About Faith Based Prisons" href="http://www.usatoday.com/news/religion/2007-10-13-prisons_N.htm">faith based prisons</a> (for example) they have issues with. Is it the reduced violence and trouble-making, or maybe the reduction in tax payer costs. Whichever part they&#8217;re against, I&#8217;m certainly glad they&#8217;re working so hard to make this country a better place to live.</p>
<p>Note: I feel it would be giving too much credit to the foundation that funded this ad if I put a link to their site on this post, but on the other hand, it would also be wrong not to let you see the other side of the argument. If you&#8217;d like to see what they have to say, search &#8220;The Freedom From Religion Foundation&#8221; on Google (or Yahoo, or whatever) and their site will be the first to come up.</p>

<p><a href="http://feedads.g.doubleclick.net/~a/Wfhw9E6i05GQjRiCtzqJRJ-W8Eg/0/da"><img src="http://feedads.g.doubleclick.net/~a/Wfhw9E6i05GQjRiCtzqJRJ-W8Eg/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/Wfhw9E6i05GQjRiCtzqJRJ-W8Eg/1/da"><img src="http://feedads.g.doubleclick.net/~a/Wfhw9E6i05GQjRiCtzqJRJ-W8Eg/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/itsananderson/~4/cmIr2Jtgvvk" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.itsananderson.com/2008/09/freedom-of-religion-or-freedom-from-religion/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://www.itsananderson.com/2008/09/freedom-of-religion-or-freedom-from-religion/</feedburner:origLink></item>
		<item>
		<title>Turn off the Language Bar</title>
		<link>http://feedproxy.google.com/~r/itsananderson/~3/_NkuqkhW9sI/</link>
		<comments>http://www.itsananderson.com/2008/09/turn-off-language-bar/#comments</comments>
		<pubDate>Sat, 06 Sep 2008 05:14:31 +0000</pubDate>
		<dc:creator>Will</dc:creator>
				<category><![CDATA[Computers]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Windows XP]]></category>

		<guid isPermaLink="false">http://www.itsananderson.com/2008/09/paul-stubbs-turn-off-the-language-bar/</guid>
		<description><![CDATA[Ever get annoyed by that language bar that comes back every time you log into your computer? I certainly have, but I recently found this article about how to keep it from automatically loading. Of course, if you actually need it for something, don&#8217;t remove it! Paul Stubbs : Turn off the Language Bar.]]></description>
			<content:encoded><![CDATA[<p>Ever get annoyed by that language bar that comes back every time you log into your computer? I certainly have, but I recently found this article about how to keep it from automatically loading. Of course, if you actually need it for something, don&#8217;t remove it!</p>
<p><a href="http://blogs.msdn.com/pstubbs/archive/2005/02/22/378195.aspx">Paul Stubbs : Turn off the Language Bar</a>.</p>

<p><a href="http://feedads.g.doubleclick.net/~a/hxgh5AGk773vH59rKw58_3XJlYg/0/da"><img src="http://feedads.g.doubleclick.net/~a/hxgh5AGk773vH59rKw58_3XJlYg/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/hxgh5AGk773vH59rKw58_3XJlYg/1/da"><img src="http://feedads.g.doubleclick.net/~a/hxgh5AGk773vH59rKw58_3XJlYg/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/itsananderson/~4/_NkuqkhW9sI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.itsananderson.com/2008/09/turn-off-language-bar/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.itsananderson.com/2008/09/turn-off-language-bar/</feedburner:origLink></item>
		<item>
		<title>Mechanical Pencils</title>
		<link>http://feedproxy.google.com/~r/itsananderson/~3/j9zYoV4WBU0/</link>
		<comments>http://www.itsananderson.com/2008/09/mechanical-pencils/#comments</comments>
		<pubDate>Fri, 05 Sep 2008 23:49:52 +0000</pubDate>
		<dc:creator>Will</dc:creator>
				<category><![CDATA[Personal]]></category>
		<category><![CDATA[Pencils]]></category>

		<guid isPermaLink="false">http://www.itsananderson.com/?p=57</guid>
		<description><![CDATA[I received my mechanical pencils today. With twelve pencils for about 30 dollars, it&#8217;s quite a deal (compared to normal store prices). I&#8217;ll also probably not run out any time soon! Here&#8217;s a picture of them. I love the new silvery white color! Anyway, I&#8217;m sort of geeky when it comes to pencils (and a [...]]]></description>
			<content:encoded><![CDATA[<p>I received my mechanical pencils today. With twelve pencils for about 30 dollars, it&#8217;s quite a deal (compared to normal store prices). I&#8217;ll also probably not run out any time soon! Here&#8217;s a picture of them. I love the new silvery white color!</p>
<p style="text-align: center;"><a href="http://www.itsananderson.com/blog/wp-content/uploads/2008/09/pencils.jpg"><img class="aligncenter size-full wp-image-59" title="pencils" src="http://www.itsananderson.com/blog/wp-content/uploads/2008/09/pencils.jpg" alt="" width="450" height="338" /></a></p>
<p style="text-align: left;">Anyway, I&#8217;m sort of geeky when it comes to pencils (and a lot of other things) but at least it keeps me off the streets!</p>

<p><a href="http://feedads.g.doubleclick.net/~a/RrEG9NP3mH7zdor6u06FCZIqMGQ/0/da"><img src="http://feedads.g.doubleclick.net/~a/RrEG9NP3mH7zdor6u06FCZIqMGQ/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/RrEG9NP3mH7zdor6u06FCZIqMGQ/1/da"><img src="http://feedads.g.doubleclick.net/~a/RrEG9NP3mH7zdor6u06FCZIqMGQ/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/itsananderson/~4/j9zYoV4WBU0" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.itsananderson.com/2008/09/mechanical-pencils/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.itsananderson.com/2008/09/mechanical-pencils/</feedburner:origLink></item>
		<item>
		<title>Classes Starting</title>
		<link>http://feedproxy.google.com/~r/itsananderson/~3/VkLKxFPrMlo/</link>
		<comments>http://www.itsananderson.com/2008/09/classes-starting/#comments</comments>
		<pubDate>Thu, 04 Sep 2008 03:06:04 +0000</pubDate>
		<dc:creator>Will</dc:creator>
				<category><![CDATA[Rose-Hulman]]></category>
		<category><![CDATA[Classes]]></category>
		<category><![CDATA[College]]></category>
		<category><![CDATA[Freshman]]></category>

		<guid isPermaLink="false">http://www.itsananderson.com/?p=54</guid>
		<description><![CDATA[Tomorrow is the day! Freshman classes will officially begin. Of course most of it will be no different than before, but I&#8217;ll have a much heavier load, plus I&#8217;m working 2-3 times as much this year than last year. It promises to be an interesting year! I purchased books yesterday for about $660. Fortunately most [...]]]></description>
			<content:encoded><![CDATA[<p>Tomorrow is the day! Freshman classes will officially begin. Of course most of it will be no different than before, but I&#8217;ll have a much heavier load, plus I&#8217;m working 2-3 times as much this year than last year. It promises to be an interesting year!</p>
<p><span id="more-54"></span>I purchased books yesterday for about $660. Fortunately most of them will be good for a couple classes, so next term I&#8217;ll probably only have to spend about $100 or so.</p>
<p>I&#8217;m taking Differential Equations 1, Discrete and Combinatorial Algebra 1 (kinda cool, my dad was one of the technical editors for the textbook), Physics 1, and Intro to Logic Design. I&#8217;ve also got college and life skills, but it won&#8217;t take nearly as much of my time as the other courses.</p>
<p>I plan to put up my class/work schedule for anyone who cares. It might go on my Rose-Hulman page though, we&#8217;ll see.</p>

<p><a href="http://feedads.g.doubleclick.net/~a/omHf3RnKagZVwKEAAQ09WFJA29w/0/da"><img src="http://feedads.g.doubleclick.net/~a/omHf3RnKagZVwKEAAQ09WFJA29w/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/omHf3RnKagZVwKEAAQ09WFJA29w/1/da"><img src="http://feedads.g.doubleclick.net/~a/omHf3RnKagZVwKEAAQ09WFJA29w/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/itsananderson/~4/VkLKxFPrMlo" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.itsananderson.com/2008/09/classes-starting/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.itsananderson.com/2008/09/classes-starting/</feedburner:origLink></item>
		<item>
		<title>Feel the Power</title>
		<link>http://feedproxy.google.com/~r/itsananderson/~3/ywdOHTagr04/</link>
		<comments>http://www.itsananderson.com/2008/09/feel-the-power/#comments</comments>
		<pubDate>Mon, 01 Sep 2008 22:07:14 +0000</pubDate>
		<dc:creator>Will</dc:creator>
				<category><![CDATA[Computers]]></category>
		<category><![CDATA[Freshman]]></category>
		<category><![CDATA[Laptop]]></category>
		<category><![CDATA[Orientation]]></category>
		<category><![CDATA[Power]]></category>
		<category><![CDATA[Rose-Hulman]]></category>

		<guid isPermaLink="false">http://www.itsananderson.com/?p=45</guid>
		<description><![CDATA[Today was the day! We finally received our laptop computers. These babies have 4 gigs of memory (hehe, watch out blender!) and a 120 gig hard drive (not wonderful, but an improvement over my old laptop which had only 80 Gigs). When I first booted, it took only about 2 minutes (even with the first [...]]]></description>
			<content:encoded><![CDATA[<p>Today was the day! We finally received our laptop computers. These babies have 4 gigs of memory (hehe, watch out blender!) and a 120 gig hard drive (not wonderful, but an improvement over my old laptop which had only 80 Gigs).</p>
<p><span id="more-45"></span></p>
<p>When I first booted, it took only about 2 minutes (even with the first time configuration and everything). Now it boots even faster. Here are some changes since the previous model.</p>
<ul>
<li>Improved &#8220;Dashboard&#8221;Rather than the clunky buttons to control the wireless adapter and the sound, the new computers have light sensors (way cool!) so you just place your finger on them to change things (and the volume control is a light sensing slider (again, way cool!).</li>
<li>Added portsThere are now 4 USB ports rather than just 3. Though not often an issue, I have had occasion to wish I had more than three ports. Now it won&#8217;t be as much of an issue.<br />
This model also includes an HDMI port, which could be useful for connecting to a (super) bug screen.<br />
It&#8217;s interesting to note that this model doesn&#8217;t include the serial port, but I no longer have the only device I ever used this with, so that&#8217;s not a problem.</li>
<li>Different speaker locationWhile I&#8217;m not sure whether to call this a feature or a problem, the speaker is now on the front of the machine, rather than beside the keyboard. I&#8217;m not sure the sound will be as good because of this, but it allows for a larger keyboard and it&#8217;s also less likely to get clogged with grime.</li>
</ul>
<p>Overall, the computing power is truly amazing. I&#8217;m now ready for classes to begin.</p>
<p>I also met with my freshman adviser today and finished registering for classes. I&#8217;ve got mostly morning classes, with ECE130 in the after noon. Hopefully this will let me do homework and my work at Ventures in the afternoon and then work for Noble Romans and IRPA in the evening. With 17 credit hours of classes (if you count college and life skills <img src='http://www.itsananderson.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  ) and 30+ hours of work a week, this promises to be a busy term.</p>

<p><a href="http://feedads.g.doubleclick.net/~a/IZ-J0pTfJnVcr-INr5D4yKlLQxc/0/da"><img src="http://feedads.g.doubleclick.net/~a/IZ-J0pTfJnVcr-INr5D4yKlLQxc/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/IZ-J0pTfJnVcr-INr5D4yKlLQxc/1/da"><img src="http://feedads.g.doubleclick.net/~a/IZ-J0pTfJnVcr-INr5D4yKlLQxc/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/itsananderson/~4/ywdOHTagr04" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.itsananderson.com/2008/09/feel-the-power/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://www.itsananderson.com/2008/09/feel-the-power/</feedburner:origLink></item>
		<item>
		<title>Freshman Orientation</title>
		<link>http://feedproxy.google.com/~r/itsananderson/~3/-IM0D8wfyYA/</link>
		<comments>http://www.itsananderson.com/2008/08/freshman-orientation/#comments</comments>
		<pubDate>Sun, 31 Aug 2008 01:49:00 +0000</pubDate>
		<dc:creator>Will</dc:creator>
				<category><![CDATA[Rose-Hulman]]></category>
		<category><![CDATA[Freshman]]></category>
		<category><![CDATA[Orientation]]></category>

		<guid isPermaLink="false">http://www.itsananderson.com/?p=37</guid>
		<description><![CDATA[&#8220;And in a fury of motivation, he began writing posts like, every day&#8221;&#8230; Actually, I&#8217;ve just got a lot more time on my hands since I&#8217;m not working (as much) and school hasn&#8217;t started yet. (In other words, don&#8217;t expect this pattern to continue for very long!) Freshman orientation began yesterday. So far the activities [...]]]></description>
			<content:encoded><![CDATA[<p>&#8220;And in a fury of motivation, he began writing posts like, every day&#8221;&#8230; Actually, I&#8217;ve just got a lot more time on my hands since I&#8217;m not working (as much) and school hasn&#8217;t started yet. (In other words, don&#8217;t expect this pattern to continue for very long!)</p>
<p>Freshman orientation began yesterday. So far the activities have been enjoyable.</p>
<p><span id="more-37"></span></p>
<p>Probably the most fun thing we&#8217;ve done is play bingo with the squares being things one of the other 400 people has done (or can do). The squares had things like &#8220;Been to at least three continents&#8221; and &#8220;can juggle&#8221;.</p>
<p>The most informative activity so far has been the CSI session. The Vigo County Coroner talked about the differences between the CSI TV shows and what really happens at a forensics lab.  The talk was quite interesting and enjoyable (though not for the faint of heart. He had many graphic images and gory stories to share).</p>
<p>I&#8217;ve also been able to meet lots of people, which has been fun.</p>

<p><a href="http://feedads.g.doubleclick.net/~a/UqtWElnV6r8SW4syvYM1JO66t6w/0/da"><img src="http://feedads.g.doubleclick.net/~a/UqtWElnV6r8SW4syvYM1JO66t6w/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/UqtWElnV6r8SW4syvYM1JO66t6w/1/da"><img src="http://feedads.g.doubleclick.net/~a/UqtWElnV6r8SW4syvYM1JO66t6w/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/itsananderson/~4/-IM0D8wfyYA" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.itsananderson.com/2008/08/freshman-orientation/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.itsananderson.com/2008/08/freshman-orientation/</feedburner:origLink></item>
		<item>
		<title>Too many cooks?</title>
		<link>http://feedproxy.google.com/~r/itsananderson/~3/VLMwwH8KeFY/</link>
		<comments>http://www.itsananderson.com/2008/08/too-many-cooks/#comments</comments>
		<pubDate>Fri, 29 Aug 2008 18:52:07 +0000</pubDate>
		<dc:creator>Will</dc:creator>
				<category><![CDATA[Web]]></category>
		<category><![CDATA[Flight of the Bumble Bee]]></category>
		<category><![CDATA[Youtube]]></category>

		<guid isPermaLink="false">http://www.itsananderson.com/?p=33</guid>
		<description><![CDATA[Actually, it&#8217;s musicians, and I don&#8217;t think they spoiled the soup. Check out this amazing rendition of &#8220;The Flight of the Bumblebee&#8220;.]]></description>
			<content:encoded><![CDATA[<p>Actually, it&#8217;s musicians, and I don&#8217;t think they spoiled the soup.</p>
<p>Check out this amazing rendition of &#8220;<a title="The Flight of the Bumblebee" href="http://www.youtube.com/watch?v=xXHd-ZLN_ew&amp;NR=1">The Flight of the Bumblebee</a>&#8220;.</p>

<p><a href="http://feedads.g.doubleclick.net/~a/PnLnaOUdxLHUnzWiFHnqmMu1Wgg/0/da"><img src="http://feedads.g.doubleclick.net/~a/PnLnaOUdxLHUnzWiFHnqmMu1Wgg/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/PnLnaOUdxLHUnzWiFHnqmMu1Wgg/1/da"><img src="http://feedads.g.doubleclick.net/~a/PnLnaOUdxLHUnzWiFHnqmMu1Wgg/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/itsananderson/~4/VLMwwH8KeFY" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.itsananderson.com/2008/08/too-many-cooks/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.itsananderson.com/2008/08/too-many-cooks/</feedburner:origLink></item>
		<item>
		<title>Decade of Excellence</title>
		<link>http://feedproxy.google.com/~r/itsananderson/~3/Kl5VOtwCGOE/</link>
		<comments>http://www.itsananderson.com/2008/08/decade-of-excellence/#comments</comments>
		<pubDate>Fri, 29 Aug 2008 02:48:04 +0000</pubDate>
		<dc:creator>Will</dc:creator>
				<category><![CDATA[Rose-Hulman]]></category>
		<category><![CDATA[Awards]]></category>
		<category><![CDATA[US News]]></category>

		<guid isPermaLink="false">http://www.itsananderson.com/?p=30</guid>
		<description><![CDATA[It was announced about a week ago (I&#8217;ve been too busy to post about it then) that Rose-Hulman has been voted the #1 undergraduate engineering college in the country (through a survey sponsored by U.S. News and World Report). This is the tenth year in a row that we&#8217;ve achieved this honor. It has been [...]]]></description>
			<content:encoded><![CDATA[<p>It was announced about a week ago (I&#8217;ve been too busy to post about it then) that <a title="Rose-Hulman" href="http://www.rose-hulman.edu/">Rose-Hulman</a> has been voted the #1 undergraduate engineering college in the country (through a survey sponsored by <a title="U.S. News Web Site" href="http://www.usnews.com/">U.S. News and World Report</a>). This is the tenth year in a row that we&#8217;ve achieved this honor. It has been referred to as a decade of excellence.</p>
<p>You can read more about this in the <a title="Rose-Hulman Ranks #1" href="http://www.rose-hulman.edu/news/articles/usnews2009.htm">Rose-Hulman news article</a>.</p>

<p><a href="http://feedads.g.doubleclick.net/~a/l3mL_xGFhzFqqhCZ3h6Y-sLNymg/0/da"><img src="http://feedads.g.doubleclick.net/~a/l3mL_xGFhzFqqhCZ3h6Y-sLNymg/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/l3mL_xGFhzFqqhCZ3h6Y-sLNymg/1/da"><img src="http://feedads.g.doubleclick.net/~a/l3mL_xGFhzFqqhCZ3h6Y-sLNymg/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/itsananderson/~4/Kl5VOtwCGOE" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.itsananderson.com/2008/08/decade-of-excellence/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.itsananderson.com/2008/08/decade-of-excellence/</feedburner:origLink></item>
		<item>
		<title>A List Apart 2008 Survey</title>
		<link>http://feedproxy.google.com/~r/itsananderson/~3/GUUTGkTTJyI/</link>
		<comments>http://www.itsananderson.com/2008/07/a-list-apart-2008-survey/#comments</comments>
		<pubDate>Wed, 30 Jul 2008 23:54:06 +0000</pubDate>
		<dc:creator>Will</dc:creator>
				<category><![CDATA[Web]]></category>
		<category><![CDATA[2008]]></category>
		<category><![CDATA[A List Apart]]></category>
		<category><![CDATA[Survey]]></category>

		<guid isPermaLink="false">http://www.itsananderson.com/?p=26</guid>
		<description><![CDATA[I just finished taking A List Apart&#8217;s 2008 web developer survey. If you&#8217;re a web developer in any capacity, you should head on over and take it yourself]]></description>
			<content:encoded><![CDATA[<p>I just finished taking A List Apart&#8217;s 2008 web developer survey. If you&#8217;re a web developer in any capacity, you should head on over and take it yourself <img src='http://www.itsananderson.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><a href="http://alistapart.com/articles/survey2008"><img class="alignleft" title="I Took A List Aparts 2008 Survey, You Should Too!" src="http://aneventapart.com/webdesignsurvey/templates/ala/images/i-took-the-2008-survey.gif" alt="" width="180" height="46" /></a></p>

<p><a href="http://feedads.g.doubleclick.net/~a/UMarcYq_LbshrTiB9Tf1YEKTj3k/0/da"><img src="http://feedads.g.doubleclick.net/~a/UMarcYq_LbshrTiB9Tf1YEKTj3k/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/UMarcYq_LbshrTiB9Tf1YEKTj3k/1/da"><img src="http://feedads.g.doubleclick.net/~a/UMarcYq_LbshrTiB9Tf1YEKTj3k/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/itsananderson/~4/GUUTGkTTJyI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.itsananderson.com/2008/07/a-list-apart-2008-survey/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.itsananderson.com/2008/07/a-list-apart-2008-survey/</feedburner:origLink></item>
		<item>
		<title>Summer Cleaning</title>
		<link>http://feedproxy.google.com/~r/itsananderson/~3/p2qAIW35d9Y/</link>
		<comments>http://www.itsananderson.com/2008/07/summer-cleaning/#comments</comments>
		<pubDate>Thu, 17 Jul 2008 04:00:08 +0000</pubDate>
		<dc:creator>Will</dc:creator>
				<category><![CDATA[It's An Anderson]]></category>
		<category><![CDATA[Themes]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://www.itsananderson.com/?p=18</guid>
		<description><![CDATA[I&#8217;ve finally done some of the work on this WordPress template that I wanted to do. The graphics look clearer now, and are also a bit more optimized, taking less time to download. I hope to get a chance to do some more work on it soon, but with my many commitments, it&#8217;s really hard to [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve finally done some of the work on this WordPress template that I wanted to do. The graphics look clearer now, and are also a bit more optimized, taking less time to download.</p>
<p><span id="more-18"></span></p>
<p>I hope to get a chance to do some more work on it soon, but with my many commitments, it&#8217;s really hard to find time to even post, much less develop the theme.</p>
<p>I&#8217;m having my wisdom teeth removed this coming Friday, so maybe if I&#8217;m feeling up to it, I can do some more work on the site while I&#8217;m recovering (no promises though <img src='http://www.itsananderson.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  )</p>

<p><a href="http://feedads.g.doubleclick.net/~a/6myCQh0Sa8cIL-1r2W01iH3bGRE/0/da"><img src="http://feedads.g.doubleclick.net/~a/6myCQh0Sa8cIL-1r2W01iH3bGRE/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/6myCQh0Sa8cIL-1r2W01iH3bGRE/1/da"><img src="http://feedads.g.doubleclick.net/~a/6myCQh0Sa8cIL-1r2W01iH3bGRE/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/itsananderson/~4/p2qAIW35d9Y" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.itsananderson.com/2008/07/summer-cleaning/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://www.itsananderson.com/2008/07/summer-cleaning/</feedburner:origLink></item>
		<item>
		<title>CSS Rollover Fun</title>
		<link>http://feedproxy.google.com/~r/itsananderson/~3/I0ymBdfJkBo/</link>
		<comments>http://www.itsananderson.com/2008/04/css-rollover-fun/#comments</comments>
		<pubDate>Thu, 24 Apr 2008 19:33:37 +0000</pubDate>
		<dc:creator>Will</dc:creator>
				<category><![CDATA[Web]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[Rollover]]></category>

		<guid isPermaLink="false">http://javayahtzee.tfcph.com/blog/?p=10</guid>
		<description><![CDATA[The goal of this tutorial is to find a way to allow images to be shown with rollovers without the use of Java Script. View the final example here. The basics of this trick are as follows. First we need our HTML to work off of. &#60;a href="#" class="rollover"&#62; Javayahtzee Icon &#60;img src="http://www.itsananderson.com/blog/wp-content/uploads/2008/04/av-1199.png"&#62; &#60;/a&#62; Of [...]]]></description>
			<content:encoded><![CDATA[<p>The goal of this tutorial is to find a way to allow images to be shown with rollovers <strong>without</strong> the use of Java Script. View the final example <a href="http://www.itsananderson.com/blog/wp-content/uploads/2008/04/fancyrollover.html">here</a>.</p>
<p><span id="more-10"></span></p>
<p>The basics of this trick are as follows.</p>
<p>First we need our HTML to work off of.</p>
<pre>
&lt;a href="#" class="rollover"&gt;
Javayahtzee Icon
&lt;img src="http://www.itsananderson.com/blog/wp-content/uploads/2008/04/av-1199.png"&gt;
&lt;/a&gt;
</pre>
<p>Of course, if this were a real world situation, the link would most likely point to a real place (like the user profile or something), but for now we&#8217;ll leave it at this.</p>
<p>Now for the CSS. First we&#8217;ll make the link color gray. There&#8217;s no real reason for this besides the fact that I want to do so.</p>
<pre>
a.rollover{
color: #777;
}
</pre>
<p>we want to hide the image unless the link is being hovered over.</p>
<pre>
a.rollover:link img{
display: none;
}
</pre>
<p>and finally we show it (and set its position to absolute) if the link cursor is moved over the mouse.</p>
<pre>
a.rollover:hover img{
display: block;
position: absolute;
left: 10px;
top: 1ex;
border: 0;
}
</pre>
<p>we have effectively made the image visible again, made its position absolute (we explicitly place it), given the coordinates of its top left corner, and set it&#8217;s border to 0.</p>
<p>the complete html code follows.</p>
<pre>
&lt;html&gt;
&lt;head&gt;
&lt;style type="text/css"&gt;
a:link{
color: #777;
}
a.rollover img{
display: none;
}
a.rollover:hover img{
display: block;
position: absolute;
top: 1ex;
left: 10px;
border: 0;
}
&lt;/style&gt;
&lt;title&gt;Fancy Rollovers&lt;/title&gt;
&lt;/head&gt;
 &lt;body&gt;
 &lt;p&gt;
 &lt;a href="#" class="rollover"&gt;
Javayahtzee Icon
&lt;img src="http://www.itsananderson.com/blog/wp-content/uploads/2008/04/av-1199.png"&gt;
&lt;/a&gt;
&lt;/p&gt;
&lt;/body&gt;
&lt;/html&gt;
</pre>
<p>I hope this article is helpful to someone!<br />
-Will Anderson</p>

<p><a href="http://feedads.g.doubleclick.net/~a/LtfqS4678-V-F_RqOdtrbap5AWE/0/da"><img src="http://feedads.g.doubleclick.net/~a/LtfqS4678-V-F_RqOdtrbap5AWE/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/LtfqS4678-V-F_RqOdtrbap5AWE/1/da"><img src="http://feedads.g.doubleclick.net/~a/LtfqS4678-V-F_RqOdtrbap5AWE/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/itsananderson/~4/I0ymBdfJkBo" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.itsananderson.com/2008/04/css-rollover-fun/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<feedburner:origLink>http://www.itsananderson.com/2008/04/css-rollover-fun/</feedburner:origLink></item>
	</channel>
</rss>

