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

<channel>
	<title>Jason Ferguson - Tampa Wordpress Development Blog</title>
	<atom:link href="http://www.jasonferguson.me/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.jasonferguson.me</link>
	<description>Tampa Wordpress Development Blog</description>
	<lastBuildDate>Mon, 30 Jan 2012 02:22:44 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>How to Reposition the WordPress &#8220;More&#8221; Tag</title>
		<link>http://www.jasonferguson.me/reposition-wordpress-more-tag/</link>
		<comments>http://www.jasonferguson.me/reposition-wordpress-more-tag/#comments</comments>
		<pubDate>Mon, 30 Jan 2012 02:18:26 +0000</pubDate>
		<dc:creator>jervis</dc:creator>
				<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://www.jasonferguson.me/?p=189</guid>
		<description><![CDATA[I came across a situation today where I wanted to show different links based on whether or not the &#60;!&#8211;more&#8211;&#62; was present in a WordPress Post. By default WordPress will automatically append something similar to &#8220;more&#8230;&#8221; directly after your posts content. WordPress presents multiple options for changing the more tag text1 , even as simply [...]]]></description>
			<content:encoded><![CDATA[<p>I came across a situation today where I wanted to show different links based on whether or not the <em>&lt;!&#8211;more&#8211;&gt;</em> was present in a WordPress Post.   By default WordPress will automatically append something similar to &#8220;more&#8230;&#8221; directly after your posts content.  WordPress presents multiple options for <a href="http://codex.wordpress.org/Customizing_the_Read_More" rel="nofollow">changing the more tag text</a><sup><a href="http://www.jasonferguson.me/reposition-wordpress-more-tag/#footnote_0_189" id="identifier_0_189" class="footnote-link footnote-identifier-link" title=" WordPress Codex : Customizing_the_Read_More ">1</a></sup>  , even as simply as just defining the text inline with the existing tag:<br /> (<small>e.g: &lt;!&#8211;more Click here for more Information &#8211;&gt;</small>).</p>
<p>But what if you don&#8217;t want this appended directly to the end of your post,   maybe you want to display this somewhere else on your posts page.  In my case,   I wanted to add a little more logic and display different options based on if the more tag actually existed in the post or not.  If it did exist,  I wanted to show a button link saying something along the generic lines of &#8220;Read the Full Post&#8221;, and if no more tag was in use I simply wanted to show a different button link saying &#8220;Permalink&#8221;.   Here&#8217;s a simple modification that will let us pull this off.</p>
<p>First, find in your theme where you are currently outputting the_content(); <small><em>(or get_the_content();)</em></small>.  This would usually be in <span class="highlight"><em>index.php</em></span>, <span class="highlight"><em>home.php</em></span>, <span class="highlight"><em>loops.php</em></span>, or somewhere similar depending on the actual theme you are using.  Change this line to read:</p>
<pre class="brush: php; title: ; notranslate">
echo the_content('');
</pre>
<p>Take note of the apostrophe&#8217;s (<strong>&#8221;</strong>),  this is telling WordPress NOT to output the default more text along with the post content.   Then, wherever we want to actually show our custom read more, we would do something like this:</p>
<pre class="brush: php; title: ; notranslate">
	&lt;?php if ($pos=strpos($post-&gt;post_content, '&lt;!--more--&gt;')): ?&gt;
		&lt;a href=&quot;&lt;?php the_permalink() ?&gt;#more-&lt;?php the_id() ?&gt;&quot; class=&quot;button&quot;&gt;&lt;span&gt;READ FULL POST&lt;/span&gt;&lt;/a&gt;
	&lt;?php else : ?&gt;
		&lt;a href=&quot;&lt;?php the_permalink() ?&gt;&quot; class=&quot;button&quot;&gt;&lt;span&gt;PERMALINK&lt;/span&gt;&lt;/a&gt;
	&lt;?php endif; ?&gt;
</pre>
<p>What we are doing here is looking through the content of post_content using strpos<sup><a href="http://www.jasonferguson.me/reposition-wordpress-more-tag/#footnote_1_189" id="identifier_1_189" class="footnote-link footnote-identifier-link" title="  PHP.net: strpos ">2</a></sup> to see if the default more tag exists within the post.  If it does, we take action and show our custom Read More button.   If the tag does <strong>NOT</strong> exist, we are going to simply display a similar output with different text, indicating that specific post is already being showed in its entirety and proving a Permalink button.   They both lead to the same place, the only thing changing is the indicator for that post.</p>
<ol class="footnotes"><li id="footnote_0_189" class="footnote"> <a href="http://codex.wordpress.org/Customizing_the_Read_More/">WordPress Codex : Customizing_the_Read_More</a> </li><li id="footnote_1_189" class="footnote"> <a href="http://php.net/manual/en/function.strpos.php"> PHP.net: strpos </li></ol>]]></content:encoded>
			<wfw:commentRss>http://www.jasonferguson.me/reposition-wordpress-more-tag/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tampa WordPress Meetup 6/8/11</title>
		<link>http://www.jasonferguson.me/tampa-wordpress-meetup-6-8-11/</link>
		<comments>http://www.jasonferguson.me/tampa-wordpress-meetup-6-8-11/#comments</comments>
		<pubDate>Wed, 08 Jun 2011 19:38:29 +0000</pubDate>
		<dc:creator>jervis</dc:creator>
				<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://www.jasonferguson.me/?p=172</guid>
		<description><![CDATA[These are the plugins I generally find myself using on various sites time and time again, most of them are pretty common, but users new to wordpress may not know of them and find them pretty handy.]]></description>
			<content:encoded><![CDATA[<p>Alison Foxall, sent the following message to some members of TampaBay WordPress:</p>
<blockquote><p>This meeting snuck up on us! So this month do some homework and come prepared to talk about a useful plugin for your site or blog or a plugin that you thought was really &#8220;cool.&#8221; We&#8217;ll all take part in this discussion and enjoy some Italian food while we&#8217;re at it.  </p></blockquote>
<p>These are the plugins I generally find myself using on various sites time and time again, most of them are pretty common, but users new to wordpress may not know of them and find them pretty handy. I only included the plugins gauranteed to work with the most current version of wordpress,  there are a few other plugins I love, but haven&#8217;t confirmed they are all stable with the latest version yet.</p>
<p><span id="more-172"></span></p>
<h2>SEO Related</h2>
<blockquote><h3>WordPress SEO by Yoast</h3>
<p>The most complete all in one SEO solution for your WordPress blog, this plugin has a huge list of features, including:</p>
<ul>
<li>Post title and meta description meta box to change these on a per post basis for ultimate SEO.</li>
<li>On page SEO Analysis using the Linkdex page analysis library.</li>
<li>Taxonomy (tag, category &#038; custom taxonomy) title and meta description support.</li>
<li>Google search result snippet previews</li>
</ul>
<p><a href="http://yoast.com/wordpress/seo/">Plugin Homepage</a><br />
<a href="http://wordpress.org/extend/plugins/wordpress-seo/">WordPress.org Plugin Page</a>
</p></blockquote>
<blockquote><h3>HeadSpace2 SEO</h3>
<p>HeadSpace2 is an all-in-one meta-data manager that allows you to fine-tune the SEO potential of your site. </p>
<p>You can configure meta-data for:<br />
Posts, Pages, Categories, Home page, Author pages, Search pages, 404 page</p>
<p>You can define:<br />
Tags/keywords, with suggested keywords, Descriptions, Page titles, Custom &#8216;more text&#8217;, Site name and site description, Custom themes &#8211; change your theme on each page, Custom plugins &#8211; load a plugin only on specific pages, Additional CSS and JavaScript files, Noindex and nofollow meta tags, Follow/follow on archive, category, page, tag, and comment links</p>
<p>It also allows you to add:<br />
Google Analytics, Google Webmaster, Google section targeting, Mint statistic, 103bees, Statcounter, CrazyEgg heat map, Feedburner Stats Pro, Apture, Yahoo! Site Explorer, Microsoft Live Verification, HitTail, Piwik tracking, AWStats tracking</p>
<p>You can also:<br />
Disable visual editing, Disable widgets, Configure first-time visitor messages, Add frame-breaker code, Disable WordPress auto-formatting (wpautop and wptexturize), Configure memory limits, error reporting, and system timeouts</p>
<p><a href="http://urbangiraffe.com/plugins/headspace2/">Plugin Homepage</a><br />
<a href="http://wordpress.org/extend/plugins/headspace2/">WordPress.org Plugin Page</a>
</p></blockquote>
<blockquote><h3>SEO Content Control</h3>
<p>Even if you care about search engine optimization, your WordPress site will quite likely still have potentials for an even better optimization. One very interesting area is regarding the many archives of WordPress, which are feared by some because of their potential to create internal duplicate content. If a search engine finds the same pieces of content on several pages of a site, many of these pages will be ignored. The basic solution for this is to make your archives as individual as possible. </p>
<p>SEO Content Control helps you with this kind of issues. It helps you to keep track, which of your posts have too little content, and shows, where an excerpt or a meta description is missing. You get it all at a glance in a neat summary with red, yellow and green colors.</p>
<p><a href="http://www.linkstrasse.de/en/seo-content-control/">Plugin Homepage</a><br />
<a href="http://wordpress.org/extend/plugins/seo-content-control/">WordPress.org Plugin Page</a>
</p></blockquote>
<blockquote><h3>SEO Smart Links</h3>
<p>SEO Smart Links provides automatic SEO benefits for your site in addition to custom keyword lists, nofollow and much more.</p>
<p>SEO Smart Links can automatically link keywords and phrases in your posts and comments with corresponding posts, pages, categories and tags on your blog. Further SEO Smart links allows you to set up your own keywords and set of matching URLs. Finally SEO Smart links allows you to set nofollow attribute and open links in new window. It is a perfect solution to get your blog posts interlinked or add affiliate links to other sites.</p>
<p><a href="http://www.prelovac.com/vladimir/wordpress-plugins/seo-smart-links">Plugin Homepage</a><br />
<a href="http://wordpress.org/extend/plugins/seo-automatic-links/">WordPress.org Plugin Page</a>
</p></blockquote>
<blockquote><h3>Google XML Sitemaps</h3>
<p>This plugin will generate a special XML sitemap which will help search engines like Google, Bing, Yahoo and Ask.com to better index your blog. With such a sitemap, it&#8217;s much easier for the crawlers to see the complete structure of your site and retrieve it more efficiently. The plugin supports all kinds of WordPress generated pages as well as custom URLs. Additionally it notifies all major search engines every time you create a post about the new content.</p>
<p><a href="http://www.arnebrachhold.de/redir/sitemap-home/">Plugin Homepage</a><br />
<a href="http://wordpress.org/extend/plugins/google-sitemap-generator/">WordPress.org Plugin Page</a>
</p></blockquote>
<h2>Other Useful Plugins</h2>
<blockquote><h3>W3 Total Cache</h3>
<p>Recommended by web hosts like: MediaTemple, Host Gator, Page.ly and WP Engine and countless more.</p>
<p>Trusted by countless sites like: mattcutts.com, mashable.com, smashingmagazine.com, makeuseof.com, yoast.com, kiss925.com, pearsonified.com, lockergnome.com, johnchow.com, ilovetypography.com, webdesignerdepot.com, css-tricks.com and tens of thousands of others.</p>
<p>W3 Total Cache improves the user experience of your site by improving your server performance, caching every aspect of your site, reducing the download times and providing transparent content delivery network (CDN) integration.</p>
<p><a href="http://www.w3-edge.com/wordpress-plugins/w3-total-cache/">Plugin Homepage</a><br />
<a href="http://wordpress.org/extend/plugins/w3-total-cache/">WordPress.org Plugin Page</a>
</p></blockquote>
<blockquote><h3>WP DB Manager</h3>
<p>Allows you to optimize database, repair database, backup database, restore database, delete backup database , drop/empty tables and run selected queries. Supports automatic scheduling of backing up, optimizing and repairing of database.</p>
<p><a href="http://lesterchan.net/portfolio/programming/php/">Plugin Homepage</a><br />
<a href="http://wordpress.org/extend/plugins/wp-dbmanager/">WordPress.org Plugin Page</a>
</p></blockquote>
<blockquote><h3>WP jQuery Lightbox</h3>
<p>This plugin lets you keep the awesome <a href="http://warren.mesozen.com/jquery-lightbox/">Lightbox 2-functionality</a>, but sheds the bulk of the Prototype Framework and Scriptaculous Effects Library.</p>
<p><a href="http://wordpress.org/extend/plugins/wp-jquery-lightbox/">Plugin Homepage</a><br />
<a href="http://wordpress.org/extend/plugins/wp-jquery-lightbox/">WordPress.org Plugin Page</a>
</p></blockquote>
<blockquote><h3>FD Feedburner</h3>
<p>Redirects the main feed and optionally the comments feed to Feedburner.com. It does this seamlessly without the need to modify templates, setup new hidden feeds, modify .htaccess files, or asking users to migrate to a new feed. All existing feeds simply become Feedburner feeds seamlessly and transparently for all users. Just tell the plugin what your Feedburner feed URL is and you&#8217;re done.</p>
<p><a href="http://flagrantdisregard.com/feedburner/">Plugin Homepage</a><br />
<a href="http://wordpress.org/extend/plugins/feedburner-plugin/">WordPress.org Plugin Page</a>
</p></blockquote>
<blockquote><h3>Simple Tags</h3>
<p>Helps manage existing tags and provides tags suggestion from Yahoo! Term Extraction API, OpenCalais, Alchemy, Zemanta, Tag The Net, Local DB with AJAX request.</p>
<p><a href="http://redmine.beapi.fr/projects/show/simple-tags/">Plugin Homepage</a><br />
<a href="http://wordpress.org/extend/plugins/simple-tags/">WordPress.org Plugin Page</a>
</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.jasonferguson.me/tampa-wordpress-meetup-6-8-11/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Not yet possible to assign complex types to properties.</title>
		<link>http://www.jasonferguson.me/not-yet-possible-to-assign-complex-types-to-properties/</link>
		<comments>http://www.jasonferguson.me/not-yet-possible-to-assign-complex-types-to-properties/#comments</comments>
		<pubDate>Thu, 17 Feb 2011 03:02:02 +0000</pubDate>
		<dc:creator>jervis</dc:creator>
				<category><![CDATA[Coding]]></category>

		<guid isPermaLink="false">http://www.jasonferguson.me/?p=150</guid>
		<description><![CDATA[Came across something new (for me anyway) today. I was using PHP5&#8242;s SimpleXML functions to grab youtube video data so I could make automatic posts (and attach youtube comments) in wordpress based off a video&#8217;s ID. At some point I was passing what I thought was a variable into an array that was then later [...]]]></description>
			<content:encoded><![CDATA[<p>Came across something new (for me anyway) today.   I was using PHP5&#8242;s SimpleXML functions to grab youtube video data so I could make automatic posts (and attach youtube comments) in wordpress based off a video&#8217;s ID.  At some point I was passing what I thought was a variable into an array that was then later being manipulated by a native wordpress function during the comment post processing.  While the code itself was actually working and attaching the comments to the posts, I was getting a weird error on each insert that was warning me about assigning complex types to properties, something I had never seen before.  </p>
<p>A stackoverflow post on <a href="http://stackoverflow.com/questions/416548/forcing-a-simplexml-object-to-a-string-regardless-of-context">Forcing a SimpleXML Object to a String</a> was the guiding light I needed. </p>
<blockquote><h2>The Error</h2>
<p>Warning: It is not yet possible to assign complex types to properties in wp-includes\formatting.php on line 1234
</p></blockquote>
<blockquote><h2>The Solution</h2>
<p><a href="http://www.php.net/manual/en/language.types.type-juggling.php#language.types.typecasting">Typecast</a> the object as a string before attempting to manipulate it.</p>
<p>$foo = array( <strong>(string)</strong> $xml->channel->item->title );</p>
</blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.jasonferguson.me/not-yet-possible-to-assign-complex-types-to-properties/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Web Developer Toolbar wont Display &#8211; Firefox Fix</title>
		<link>http://www.jasonferguson.me/web-developer-toolbar-wont-display-firefox-fix/</link>
		<comments>http://www.jasonferguson.me/web-developer-toolbar-wont-display-firefox-fix/#comments</comments>
		<pubDate>Mon, 13 Dec 2010 14:59:07 +0000</pubDate>
		<dc:creator>jervis</dc:creator>
				<category><![CDATA[Coding]]></category>

		<guid isPermaLink="false">http://www.jasonferguson.me/?p=144</guid>
		<description><![CDATA[Web Developer Toolbar suddenly disappeared.  I found a solution.]]></description>
			<content:encoded><![CDATA[<p>Today I was working on a cleaning up some CSS when suddenly a plugin I use for Firefox, Web Developer Toolbar, suddenly disappeared.  I found a couple older posts with people having a similar problem, but then I stumbled across <a href="http://voodish.co.uk">voodish.co.uk</a><sup><a href="http://www.jasonferguson.me/web-developer-toolbar-wont-display-firefox-fix/#footnote_0_144" id="identifier_0_144" class="footnote-link footnote-identifier-link" title=" source: Web Developer Toolbar Broken / Empty / not showing, Fixed ">1</a></sup> and it seemed to do the trick for me.</p>
<blockquote><h2>The Problem</h2>
<p>Firefox Web Developer Toolbar addon is not showing icons or text, or both.
</p></blockquote>
<blockquote><h2>The Solution</h2>
<p>A very very easy solution, <i>as long as your Firefox toolbar positioning isn&#8217;t extremely customized</i>. A few quick steps and you will be able to display the toolbar again.</p>
<ol>
<li>Right-click on the Toolbar and choose &#8216;Customize&#8217;</li>
<li>Click &#8216;<strong>Restore Default Set</strong>&#8216; or Drag any missing buttons from the &#8216;Customize Toolbar&#8217; window to the toolbar.</li>
<li>Click &#8216;Done.&#8217;</li>
</ol>
<p>And that&#8217;s it, make sure Icons and Text are selected from the drop down menu if you require both and your all set.</p>
<ol class="footnotes"><li id="footnote_0_144" class="footnote"> source: <a href="http://www.voodish.co.uk/articles/web-developer-toolbar-broken-empty-not-showing-fix/">Web Developer Toolbar Broken / Empty / not showing, Fixed</a> </li></ol>]]></content:encoded>
			<wfw:commentRss>http://www.jasonferguson.me/web-developer-toolbar-wont-display-firefox-fix/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Code Poetry Redeux, Ryans Response</title>
		<link>http://www.jasonferguson.me/code-poetry-redeux-ryans-response/</link>
		<comments>http://www.jasonferguson.me/code-poetry-redeux-ryans-response/#comments</comments>
		<pubDate>Fri, 20 Aug 2010 09:27:36 +0000</pubDate>
		<dc:creator>jervis</dc:creator>
				<category><![CDATA[Coding]]></category>

		<guid isPermaLink="false">http://www.jasonferguson.me/?p=139</guid>
		<description><![CDATA[As usual, ryan wins this round.]]></description>
			<content:encoded><![CDATA[<p>As usual, ryan wins this round.</p>
<pre class="brush: php; title: ; notranslate">
&lt;?php
//jackandjill.php
$kidsnames = $_SERVER['PHP_SELF'];
$kidsnames = basename($kidsnames, &quot;.php&quot;);
$firstkid = substr($kidsnames,0,4);
$joinword = substr($kidsnames,4,3);
$secondkid = substr($kidsnames,7,4);
$kidsnames = $firstkid . &quot; &quot; . $joinword . &quot; &quot; . $secondkid;
function makewherecode($whereto){
if($whereto == &quot;halibel&quot;){
$newplace = substr($whereto,0,1);
$newplace = $newplace . substr($whereto,3,1);
$newplace = $newplace . substr($whereto,2,1);
$newplace = $newplace . substr($whereto,2,1);
return $newplace . &quot;\n&quot;;
}
}
function hextostr($hex)
{
    $string='';
    for ($i=0; $i &lt; strlen($hex)-1; $i+=2)
    {
        $string .= chr(hexdec($hex[$i].$hex[$i+1]));
    }
    return $string;
}
$rhyme =  nl2br($kidsnames . &quot; went &amp;uarr; a &quot; . makewherecode(&quot;halibel&quot;));
$getting = array(&quot;pail&quot;,&quot;water&quot;);
$line = &quot;to fetch a &quot; . $getting[0] . &quot; of &quot; . $getting[1];
$rhyme = $rhyme . $line . &quot;&lt;br&gt;&quot;;
$line = $firstkid . &quot; fell &amp;darr; &lt;br&gt;&quot;;
$rhyme = $rhyme . $line;
$brokewhat = &quot;63726f776e&quot;;
if (hextostr($brokewhat) == &quot;crown&quot;){
$line = $joinword . &quot; broke his &quot; . hextostr($brokewhat);
}
$rhyme = $rhyme . $line . hextostr(&quot;3c62723e&quot;);
$line = $joinword . &quot; &quot; . $secondkid . &quot; came tumbling after.&quot;;
$rhyme = $rhyme . $line;
echo $rhyme;
?&gt;
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.jasonferguson.me/code-poetry-redeux-ryans-response/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Code is Poetry example? Ryan is Challenged!</title>
		<link>http://www.jasonferguson.me/code-is-poetry-example-im-a-little-teapot-php/</link>
		<comments>http://www.jasonferguson.me/code-is-poetry-example-im-a-little-teapot-php/#comments</comments>
		<pubDate>Thu, 19 Aug 2010 15:32:10 +0000</pubDate>
		<dc:creator>jervis</dc:creator>
				<category><![CDATA[Coding]]></category>

		<guid isPermaLink="false">http://www.jasonferguson.me/?p=136</guid>
		<description><![CDATA[The gauntlet has been dropped, Ryan has been challenged!]]></description>
			<content:encoded><![CDATA[<p>The gauntlet has been dropped, Ryan has been challenged!</p>
<pre class="brush: php; title: ; notranslate">
&lt;?php
//im-a-little-teapot.php
$whatami = $_SERVER['PHP_SELF'];
$whatami = basename($whatami);
$whatami = basename($whatami, '.php');
$im = str_replace(&quot;-&quot;, &quot; &quot;, $whatami);
function what_do_i_do($var, $poem) {
	if (strripos($var, &quot;teapot&quot;)) {
		return nl2br($mypoem = $poem . &quot;when i get all worked up&quot;);
	}
}
$im != &quot;im a little teapot&quot; ? die : $mypoem = $im . &quot;\n short and stout\n&quot;; $teapot = &quot;me&quot;;
$container = array(&quot;handle&quot;, &quot;spout&quot;);
foreach ($container as $part) {
	$mypoem = $mypoem . &quot;here is my &quot; . $part . &quot;\n&quot;;
}
echo what_do_i_do($im, $mypoem);
if (empty($error)) {
	trigger_error(&quot;YOU BETTER WATCH OUT!&quot;, E_USER_WARNING);
	$mypoem = &quot;TOOOOOOT! \n&quot;;
}
echo nl2br($mypoem . &quot;tip &quot; . $teapot . &quot; over and pour &quot; . $teapot . &quot; out&quot;);
?&gt;
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.jasonferguson.me/code-is-poetry-example-im-a-little-teapot-php/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tumblr Style Chat Posts for WordPress</title>
		<link>http://www.jasonferguson.me/tumblr-style-chat-posts-for-wordpress/</link>
		<comments>http://www.jasonferguson.me/tumblr-style-chat-posts-for-wordpress/#comments</comments>
		<pubDate>Mon, 16 Aug 2010 00:35:54 +0000</pubDate>
		<dc:creator>jervis</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[coding]]></category>
		<category><![CDATA[wordpress]]></category>
		<category><![CDATA[wordpress functions]]></category>
		<category><![CDATA[wp development]]></category>

		<guid isPermaLink="false">http://www.jasonferguson.me/?p=98</guid>
		<description><![CDATA[The problem with Tumblr, for me anyway, is the loss of direct control over the code and ability to host my submissions locally. I know tumblr has been around for a while and it doesn&#8217;t look like it&#8217;s going anywhere, but anyone who has been on the net for a while knows that just because [...]]]></description>
			<content:encoded><![CDATA[<p>The problem with Tumblr, for me anyway, is the loss of direct control over the code and ability to host my submissions locally. I know tumblr has been around for a while and it doesn&#8217;t look like it&#8217;s going anywhere, but anyone who has been on the net for a while knows that just because a site is here today, that doesn&#8217;t mean it will still be here tomorrow.  Tumblr doesn&#8217;t have an export option, so needless to say I&#8217;m a little wary about posting anything I might want to be able to look at or back reference a few years from now.  Does anyone remember scribble.nu, run by Dustin Vannatter<sup><a href="http://www.jasonferguson.me/tumblr-style-chat-posts-for-wordpress/#footnote_0_98" id="identifier_0_98" class="footnote-link footnote-identifier-link" title=" Dustin.Vannater.com : Things I&amp;#8217;ve Done ">1</a></sup> of the then OHHELLO network (Swank Army!). It was one of the first blogging platforms, before blog&#8217;s were even called blog&#8217;s and they were still just called journals.  For a time everyone who was anyone had a scribble.nu journal running inline with their current site.  The same goes for sites like MODblog<sup><a href="http://www.jasonferguson.me/tumblr-style-chat-posts-for-wordpress/#footnote_1_98" id="identifier_1_98" class="footnote-link footnote-identifier-link" title=" Interview of Mike Pacific from DeskMOD.com ">2</a></sup>, from Mike Pacific and Gorman of DeskMOD<sup><a href="http://www.jasonferguson.me/tumblr-style-chat-posts-for-wordpress/#footnote_2_98" id="identifier_2_98" class="footnote-link footnote-identifier-link" title="Stamford Advocate: Danbury man manages Web Site from his bedroom ">3</a></sup> fame.  I&#8217;m sure everyone has sites they have used at one time that just couldn&#8217;t handle the traffic or for one reason or another just died a unfortunate death.</p>
<p>I&#8217;ve have been toying around with Tumblr a little bit recently though and I <em>am</em> enjoying how it automatically handles different types of content and formats it without any thought on my part.  Right now this is something that is still lacking in WordPress, which I touched base in a round-about way on my last post.<sup><a href="http://www.jasonferguson.me/tumblr-style-chat-posts-for-wordpress/#footnote_3_98" id="identifier_3_98" class="footnote-link footnote-identifier-link" title=" The Problem with WordPress Custom Post Types ">4</a></sup></p>
<p>Tumblr makes it incredibly easy to post different types of submissions and have them styled automatically without any per-entry coding, not forcing us to remember which posts require what custom fields like we have to do in WordPress. I had thought WordPress 3.0 was going to help solve some of these problems by introducing Custom Post Types, but unfortunately it&#8217;s still not quiet there yet and Custom Post Types aren&#8217;t quiet what some of us expected them to be (<em>although the new functions are extremely useful if you use them in the way they were designed for</em>).</p>
<p>So, as part of a larger project I have been working on, here is a quick and easy way to implement tumblr-esque &#8220;chat&#8221; posts into your site.  The following code will take any content between the <strong>&#91;chat&#93;</strong> and<strong> &#91;/chat&#93;</strong> shortcodes, automatically format it and apply a specific style.  Currently it sorts anything that matches into relevant DL and DT html tags, and applies a highlight class to every other row.  So very quickly I can turn this:</p>
<blockquote><p><em>Fight Club (1999)</em><br />
Narrator: You’re making a big mistake, fellas!<br />
Police Officer: You said you would say that.<br />
Narrator: I’m not Tyler Durden!<br />
Police Officer: You told us you’d say that, too.<br />
Narrator: All right then, I’m Tyler Durden. Listen to me, I’m giving you a direct order. We’re aborting this mission right now.<br />
Police Officer: You said you would definitely say that.
</p></blockquote>
<p>Into something a little prettier, like this:</p>
<blockquote><dl class="chat-transcript">
</p>
<p><em>Fight Club (1999)</em></p>
<dt class="chat-highlight"><strong>Narrator:</strong></dt> <dd><i>You’re making a big mistake, fellas!</i></dd>
<dt><strong>Police Officer:</strong></dt> <dd><i>You said you would say that.</i></dd>
<dt class="chat-highlight"><strong>Narrator:</strong></dt> <dd><i>I’m not Tyler Durden!</i></dd>
<dt><strong>Police Officer:</strong></dt> <dd><i>You told us you’d say that, too.</i></dd>
<dt class="chat-highlight"><strong>Narrator:</strong></dt> <dd><i>All right then, I’m Tyler Durden. Listen to me, I’m giving you a direct order. We’re aborting this mission right now.</i></dd>
<dt><strong>Police Officer:</strong></dt> <dd><i>You said you would definitely say that.</i></dd>

</dl>
</blockquote>
<pre class="brush: php; title: ; notranslate">
function tumblr_chat_post_shortcode($atts, $content=null) {
$chatoutput = &quot;&lt;dl class=\&quot;chat-transcript\&quot;&gt;\n&quot;;
$split = preg_split(&quot;/(\r?\n)+|(&lt;br\s*\/?&gt;\s*)+/&quot;, $content);
	foreach($split as $haystack) {
		if (strpos($haystack, &quot;:&quot;)) {
			$string = explode(&quot;:&quot;, trim($haystack), 2);
			$who = strip_tags(trim($string[0]));
			$what = strip_tags(trim($string[1]));
			$row_class = empty($row_class)? &quot; class=\&quot;chat-highlight\&quot;&quot; : &quot;&quot;;
			$chatoutput = $chatoutput . &quot;&lt;dt$row_class&gt;&lt;strong&gt;$who:&lt;/strong&gt;&lt;/dt&gt; &lt;dd&gt;$what&lt;/dd&gt;\n&quot;;
		}
		else {
			// the string didn't contain a needle. Displaying anyway in case theres anything additional you want to add within the transcript
			$chatoutput = $chatoutput . $haystack . &quot;\n&quot;;
		}
	}
// print our new formated chat post
$content = $chatoutput . &quot;&lt;/dl&gt;\n&quot;;
return $content;
}
add_shortcode(&quot;chat&quot;, &quot;tumblr_chat_post_shortcode&quot;);
</pre>
<p>If shortcodes just aren&#8217;t your style and you want something to work on posts transparently, that&#8217;s not very difficult either.  All we have to do is create a new category (<em>in this example we are using &#8220;chats&#8221;</em>), and the code posted below will automatically process and format any submissions. Using the built in add_filter functions wordpress provides, it&#8217;s easy to modify content before it gets displayed to the browser, allowing us a way to format posts differently based on the category they are in.</p>
<pre class="brush: php; title: ; notranslate">
function tumblr_chat_post($content) {
global $post;
	//$content = $post-&gt;post_content;
	if ($post-&gt;post_type == 'post') {
		$postcats = wp_get_object_terms($post-&gt;ID, 'category');
		foreach ($postcats as $mycat) {
			if ($mycat-&gt;name == &quot;chats&quot;) {
			remove_filter ('the_content',  'wpautop');
				$chatoutput = &quot;&lt;dl class=\&quot;chat-transcript\&quot;&gt;\n&quot;;
				$split = preg_split(&quot;/(\r?\n)+|(&lt;br\s*\/?&gt;\s*)+/&quot;, $content);
					foreach($split as $haystack) {
						if (strpos($haystack, &quot;:&quot;)) {
							$string = explode(&quot;:&quot;, trim($haystack), 2);
							//list($who, $what) = explode(&quot;:&quot;, $haystack, 2);
							$who = strip_tags(trim($string[0]));
							$what = strip_tags(trim($string[1]));
							$row_class = empty($row_class)? &quot; class=\&quot;chat-highlight\&quot;&quot; : &quot;&quot;;
							$chatoutput = $chatoutput . &quot;&lt;dt$row_class&gt;&lt;strong&gt;$who:&lt;/strong&gt;&lt;/dt&gt; &lt;dd&gt;$what&lt;/dd&gt;\n&quot;;
						}
						else {
						// the string didn't contain a needle. Displaying anyway in case theres anything additional you want to add within the transcript
							$chatoutput = $chatoutput . $haystack . &quot;\n&quot;;
						}
					}
					// print our new formated chat post
					$content = $chatoutput . &quot;&lt;/dl&gt;\n&quot;;
					return $content;
			}
			else {
			add_filter ('the_content',  'wpautop');
			// I don't exist in the defined category, so no processing is needed
			return $content;
			}
		}
	}
	else {

		// I'm not a regular post, so no processing is needed.
		return $content;
	}
}
add_filter( &quot;the_content&quot;, &quot;tumblr_chat_post&quot;, 9);
</pre>
<p>Either of these functions can be placed in your themes <em>function.php</em> file and will work automatically as long as your chat transcripts are formatted in a <strong>Name: Message</strong> structure.  This is a fairly simple example on how to use wordpress hooks and shortcodes to modify your post before it gets outputted to the browser, which provides us with some interesting ways to implement specific styled post types without hacking apart the &#8220;Custom Post Type&#8221; functions WordPress released with version 3.0, something that is just not suited very well <em>or meant for </em>for these type of tasks.</p>
<ol class="footnotes"><li id="footnote_0_98" class="footnote"> <a href="http://dustin.vannatter.com/?page_id=59">Dustin.Vannater.com : Things I&#8217;ve Done</a> </li><li id="footnote_1_98" class="footnote"> <a href="http://www.gfxdiary.com/node/1240">Interview of Mike Pacific from DeskMOD.com</a> </li><li id="footnote_2_98" class="footnote"><a href="http://www.stamfordadvocate.com/default/article/Danbury-man-manages-Web-site-from-bedroom-246359.php">Stamford Advocate: Danbury man manages Web Site from his bedroom</a> </li><li id="footnote_3_98" class="footnote"> <a href="http://www.jasonferguson.me/the-problem-with-wordpress-custom-post-types/">The Problem with WordPress Custom Post Types</a> </li></ol>]]></content:encoded>
			<wfw:commentRss>http://www.jasonferguson.me/tumblr-style-chat-posts-for-wordpress/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>The Problem with WordPress Custom Post Types</title>
		<link>http://www.jasonferguson.me/the-problem-with-wordpress-custom-post-types/</link>
		<comments>http://www.jasonferguson.me/the-problem-with-wordpress-custom-post-types/#comments</comments>
		<pubDate>Thu, 12 Aug 2010 23:25:36 +0000</pubDate>
		<dc:creator>jervis</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[wordpress]]></category>
		<category><![CDATA[wp development]]></category>

		<guid isPermaLink="false">http://www.jasonferguson.me/?p=87</guid>
		<description><![CDATA[A lot of &#8220;names&#8221; in wordpress on the net are politely bashing people because they are trying to use Custom Post Types in the wrong way, but really in my (and clearly a lot of other users) opinions, what they are trying to do is what should be defaultly working in the first place. Custom [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.jasonferguson.me/aries/wp-content/uploads/2010/08/xzibit-wordpress-forthelawlz1.png" alt="Xzibit Moddin My WordPress!" title="xzibit-wordpress-forthelawlz" width="540" height="200" class="aligncenter size-full wp-image-90" /></p>
<p>A lot of &#8220;names&#8221; in wordpress on the net are politely bashing people because they are trying to use Custom Post Types in the wrong way, but really in my <em>(and clearly a lot of other users)</em> opinions, what they are trying to do is what should be defaultly working in the first place.</p>
<p>Custom post types should be exactly that, custom post types.  It should give me the ability to define a custom submission area with specific meta content completely separated from the normal &#8220;Submit New Post&#8221; area.  If you have ever built something for a client, and not just for personal use, you would see how extremely useful this would be. But what we have now with this new feature isn&#8217;t custom &#8220;post&#8221; types like it&#8217;s named, it&#8217;s actually custom &#8220;content&#8221; types.</p>
<p>Right now we are stuck with using custom fields and trying to explain to clients in explicitly detailed instructions how to properly define key pairs for specific post types that all still need to be displayed inline with the regular &#8220;blog&#8221;.  Why is it so hard for people to understand that being able to use custom post types as an ability to specifically define certain REAL post submission meta boxes and separate them out in the dashboard is a useful thing.</p>
<p><span id="more-87"></span></p>
<p>Part of the current version of custom post types works perfectly for this, the functionality is all there clearly.  The problem is it not only separates these post types in the dashboard, but removes them as &#8220;posts&#8221; completely and aren&#8217;t included in the standard loop, taxonomy, or outputted in the default rss feed period without some somewhat serious coding and work arounds.  If your using a plugin or theme that makes use of this feature to create custom posts, and then disable it,  you completely lose the ability to natively view the custom posts you have submitted. Yet there they are still sitting in the database.</p>
<p>I&#8217;ve seen a lot of different people responding to Custom Post type questions trying to be used in this regard in a similar way, parroting each other, ie <em>&#8220;Separation in the admin panel is not a good reason to create a whole new “type”. Not if what you really need is to separate existing posts by some other factor. That’s what taxonomies are explicitly designed for.&#8221;</em></p>
<p>And in that context, yes I absolutely agree, if you just need to separate the posts out for a specific taxonomy your much better just sticking with the amazing new taxonomy improvements introduced with WordPress 3.0. But more and more often it seems like people don&#8217;t understand the problem being described in the first place. It isn&#8217;t about taxonomies like everyone is jumping over each other to point out,  it&#8217;s about having true custom post types that work inline with normal existing posts.</p>
<hr />
<p>If I have a post category in a clients site called &#8220;Useful Applications&#8221; and another called &#8220;Quotes&#8221; with specific meta submission requirements that I want to be able to display inline with normal posts and not completely separated, then I should be able to display specific meta submission options for those types, almost exactly how the custom post feature works now. (<em>ie:</em> For Quotes I might want to only show a Quote Author and actual quote field.   If I have a custom taxonomy for those type of posts,  I only want to show that taxonomy for those posts.)</p>
<p>What I don&#8217;t want is to have a generic &#8220;Submit New Post&#8221; page filled with irrelevant meta fields and taxonomy options in order to cover each post types needs.  Or just as worse, using custom fields on that same global submission page and trying to explain to the client (<em>who has just enough technical ability to check his email</em>) how to actually use it.</p>
<p>The new Custom post type features works perfectly for this, but the inability to treat these the same way we do normal posts is mind boggling. If I want to &#8220;<em>opt out</em>&#8221; and have my custom post type be absolutely separated from normal posts, with a completely separate taxonomy and excluded from the normal loop entirely or on case by case basis, then I should have that ability.  But that should be an opt out,  not the default settings.</p>
<p>WordPress hasn&#8217;t done anything in pretty much as long as I&#8217;ve been using it that remotely aggravated and disappointed me as much as this.   I&#8217;m not saying I don&#8217;t see a use for the way custom post types currently work, because I absolutely do,  but I definitely think the ball was dropped and an extremely useful ability for it was forgotten.</p>
<hr />
<p>From where I’m standing there is just a big difference in how easy it is to create a custom post type compared to the wordpress knowledge it takes to write a custom write panel. For reference, check out;</p>
<ul>
<li><a href="http://wefunction.com/2009/10/revisited-creating-custom-write-panels-in-wordpress/">Creating Custom Write Panels in WordPress</a> @<a href="http://wefunction.com/" class="author">wefunction.com</a></li>
<li><a href="http://codex.wordpress.org/Function_Reference/add_meta_box">add_meta_box Function Reference </a> @<a href="http://codex.wordpress.org/" class="author">wordpress codex</a></li>
</ul>
<p><strong>Compared to:</strong></p>
<ul>
<li><a href=" http://kovshenin.com/archives/extending-custom-post-types-in-wordpress-3-0/">Extending Custom Post Types in WordPress 3.0</a> @<a href="http://kovshenin.com/" class="author">kovshenin.com</a></li>
</ul>
<p>Creating a new post type in order to have a specific, separated write panel is only overkill because of the way they implemented custom post types in the first place, which is something a lot of people are blogging incorrectly about by describing these new functions as a way to build <em>tumbler-esque</em> themes with customized wordpress write panels.</p>
<p>The current method of creating a basic write panel for a regular post is pretty rough compared to how incredibly easy the custom post types method is. Again, I’m not saying I don’t see a use for the way custom posts are implemented, because I definitely do, but there is still a huge difference in what’s required to be able to create these write panels for real posts within the normal wordpress loop, which is exactly the reason so many people are incorrectly trying to use custom post types and getting so frustrated with it in the first place.</p>
<blockquote><p>There is a lot of incorrect blogging right now about how Custom Post Types can be used. For more information on what Custom Post Types <em>actually are</em> and what <em>they are not</em>, I highly suggest the following posts:</p>
<p><a href="http://ottopress.com/2010/wordpress-3-0-and-custom-post-types/ ">WordPress 3.0 and Custom Post Types</a> @<a href="http://ottopress.com" class="author">Ottopress.com </a><br />
<a href="http://justintadlock.com/archives/2010/04/29/custom-post-types-in-wordpress">Custom Post Types in WordPress</a> @</strong><a href="http://justintadlock.com" class="author">Justinadlock.com </a></p>
<p>I highly recommend reading through them and checking out the commented responses,  there&#8217;s also some good information about the limits of Custom Post Types in the comments of a pretty great post by <a href="http://www.richardshepherd.com">Richard Sheperd</a> titled &#8220;<a href="http://thinkvitamin.com/dev/create-your-first-wordpress-custom-post-type/">Create your first WordPress Custom Post Type</a>&#8220;.</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.jasonferguson.me/the-problem-with-wordpress-custom-post-types/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Transparent PNG background turns into a Gradient in IE8 &#8211; Fixed</title>
		<link>http://www.jasonferguson.me/transparent-png-background-turns-into-a-gradient-in-ie8/</link>
		<comments>http://www.jasonferguson.me/transparent-png-background-turns-into-a-gradient-in-ie8/#comments</comments>
		<pubDate>Mon, 09 Aug 2010 04:19:37 +0000</pubDate>
		<dc:creator>jervis</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[ie hacks]]></category>
		<category><![CDATA[png]]></category>
		<category><![CDATA[transparency]]></category>

		<guid isPermaLink="false">http://www.jasonferguson.me/?p=65</guid>
		<description><![CDATA[While cross checking between Firefox and IE8 I came across an odd bug on a site I was working on. Whenever I tried to apply Internet Explorers gimped css opacity settings to a block level element that was wrapped by another div with a Alpha Transparent PNG background, the container background would gradient/fadeout from left [...]]]></description>
			<content:encoded><![CDATA[<p>While cross checking between Firefox and IE8 I came across an odd bug on a site I was working on.  Whenever I tried to apply Internet Explorers gimped css opacity settings to a block level element that was wrapped by another div with a Alpha Transparent PNG background,  the container background would gradient/fadeout from left to right, rather than displaying the alpha transparent png in it&#8217;s normal state.  For example:</p>
<div id="attachment_70" class="wp-caption aligncenter" style="width: 550px"><a href="http://www.jasonferguson.me/aries/wp-content/uploads/2010/08/png-transparency-shows-gradient-firefox1.png"><img src="http://www.jasonferguson.me/aries/wp-content/uploads/2010/08/png-transparency-shows-gradient-firefox-540x137.png" alt="PNG Trasparency shows correctly in Firefox" title="PNG Trasparency shows correctly in Firefox" width="540" height="137" class="size-large wp-image-70" /></a><p class="wp-caption-text">PNG Trasparency shows correctly in Firefox</p></div>
<div id="attachment_71" class="wp-caption aligncenter" style="width: 550px"><a href="http://www.jasonferguson.me/aries/wp-content/uploads/2010/08/png-transparency-shows-gradient1.png"><img src="http://www.jasonferguson.me/aries/wp-content/uploads/2010/08/png-transparency-shows-gradient-540x182.png" alt="Alpha Transparent PNG shows as Gradient in IE8" title="Alpha Transparent PNG shows as Gradient in IE8" width="540" height="182" class="size-large wp-image-71" /></a><p class="wp-caption-text">Alpha Transparent PNG shows as Gradient in IE8</p></div>
<p><span id="more-65"></span></p>
<p>I spent around two hours in Google trying to figure it out, trying every combination of opacity filters and old png hacks I could find.  Setting Zoom: 1, Z-index, and a couple other hacks that other people seemed to have luck with.  In the end, when re-saving my original png background to one with a darker alpha-transparency in hopes of having better luck figuring out what was going on, I stumbled across a solution that ended up working perfect for me.</p>
<p>The problem was my original png was 1&#215;1, and for whatever reason IE8 was not liking trying to tile that and handle the alpha transparency at the same time.  When I accidentally saved that image with a much larger copy I had on my clipboard, 100&#215;100, it ended up fixing whatever problem Internet Explorer was having with processing the png&#8217;s transparency.</p>
<div id="attachment_73" class="wp-caption aligncenter" style="width: 550px"><a href="http://www.jasonferguson.me/aries/wp-content/uploads/2010/08/png-transparency-shows-gradient-fixed1.png"><img src="http://www.jasonferguson.me/aries/wp-content/uploads/2010/08/png-transparency-shows-gradient-fixed-540x182.png" alt="PNG Alpha-Transparency fixed in IE8" title="PNG Alpha-Transparency fixed in IE8" width="540" height="182" class="size-large wp-image-73" /></a><p class="wp-caption-text">PNG Alpha-Transparency fixed in IE8</p></div>
<blockquote><p><b>Problem:</b> IE8 is turning my transparent PNG background into a gradient<br />
<b>Solution:</b> Increase the image dimensions to a large size, ie: 100&#215;100</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.jasonferguson.me/transparent-png-background-turns-into-a-gradient-in-ie8/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>July Desktop, Litestep Enabled Win7 x64bit</title>
		<link>http://www.jasonferguson.me/july-desktop-litestep-enabled-win7-x64bit/</link>
		<comments>http://www.jasonferguson.me/july-desktop-litestep-enabled-win7-x64bit/#comments</comments>
		<pubDate>Fri, 30 Jul 2010 19:53:49 +0000</pubDate>
		<dc:creator>jervis</dc:creator>
				<category><![CDATA[Customization]]></category>
		<category><![CDATA[litestep]]></category>

		<guid isPermaLink="false">http://www.jasonferguson.me/?p=49</guid>
		<description><![CDATA[Litestep theme: Switch LS [link] Visual Style: 7Pro Final for Win7 x64bit [link] Firefox Theme: Deuces [link] Wallpaper: The Great Wave off Kanagawa [link] Ad-Free MSN Live Messenger thanks to A-Patch (Lite)]]></description>
			<content:encoded><![CDATA[<p><center><a href="http://www.jasonferguson.me/aries/wp-content/uploads/2010/07/july2010-desktop-litestep1.png"><img src="http://www.jasonferguson.me/aries/wp-content/uploads/2010/07/july2010-desktop-litestep-480x270.png" alt="" title="july2010-desktop-litestep" width="480" height="270" class="size-large wp-image-50" /></a></center></p>
<blockquote><p><strong>Litestep theme:</strong> <em>Switch LS</em> <a href="http://jaime-b.deviantart.com/art/Switch-LS-161400563">[link]</a><br />
<strong>Visual Style:</strong> <em>7Pro Final for Win7 x64bit</em> <a href="http://krissirk.deviantart.com/art/7Pro-Final-for-7-146771367">[link]</a><br />
<strong>Firefox Theme:</strong> <em>Deuces</em> <a href="http://unkq.deviantart.com/art/Deuces-2-1-0FF-137421063">[link]</a><br />
<strong>Wallpaper:</strong> <em>The Great Wave off Kanagawa</em> <a href="http://painfullyxuncool.deviantart.com/art/The-Great-Wave-off-Kanagawa-WP-52380252">[link]</a><br />
<em>Ad-Free MSN Live Messenger thanks to <a href="http://apatch.org/">A-Patch (Lite)</a></em>
</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.jasonferguson.me/july-desktop-litestep-enabled-win7-x64bit/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>

