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

<channel>
	<title>n8blog &#187; Blogging</title>
	<atom:link href="http://www.n8gray.org/blog/category/blogging/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.n8gray.org</link>
	<description>distraction in action</description>
	<lastBuildDate>Thu, 01 Jul 2010 18:21:04 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.6</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>A Paucity of Code</title>
		<link>http://www.n8gray.org/blog/2010/06/14/a-paucity-of-code/</link>
		<comments>http://www.n8gray.org/blog/2010/06/14/a-paucity-of-code/#comments</comments>
		<pubDate>Tue, 15 Jun 2010 01:13:28 +0000</pubDate>
		<dc:creator>n8</dc:creator>
				<category><![CDATA[Blogging]]></category>
		<category><![CDATA[Hacking]]></category>

		<guid isPermaLink="false">http://www.n8gray.org/?p=293</guid>
		<description><![CDATA[I just installed a plugin to do syntax highlighting on the code blocks in my blog, so naturally I went looking through my posts for code blocks to admire.  I was shocked to find that I haven&#8217;t shared much code at all!  I&#8217;ll have to change that.  Stay tuned&#8230;]]></description>
			<content:encoded><![CDATA[<p>I just installed a plugin to do syntax highlighting on the code blocks in my blog, so naturally I went looking through my posts for code blocks to admire.  I was shocked to find that I haven&#8217;t shared much code at all!  I&#8217;ll have to change that.  Stay tuned&#8230;</p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fwww.n8gray.org%2Fblog%2F2010%2F06%2F14%2Fa-paucity-of-code%2F&amp;linkname=A%20Paucity%20of%20Code"><img src="http://www.n8gray.org/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a>]]></content:encoded>
			<wfw:commentRss>http://www.n8gray.org/blog/2010/06/14/a-paucity-of-code/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Sorry for the downtime!</title>
		<link>http://www.n8gray.org/blog/2009/03/07/sorry-for-the-downtime/</link>
		<comments>http://www.n8gray.org/blog/2009/03/07/sorry-for-the-downtime/#comments</comments>
		<pubDate>Sun, 08 Mar 2009 06:21:39 +0000</pubDate>
		<dc:creator>n8</dc:creator>
				<category><![CDATA[Blogging]]></category>

		<guid isPermaLink="false">http://www.n8gray.org/?p=178</guid>
		<description><![CDATA[I apologize for letting n8gray.org fall off the planet for so long.  My server got migrated without warning and events in real life overtook me as well.  In any case, the site&#8217;s back up now and I hope everything&#8217;s working again.  Please let me know if you find something broken!]]></description>
			<content:encoded><![CDATA[<p>I apologize for letting n8gray.org fall off the planet for so long.  My server got migrated without warning and events in real life overtook me as well.  In any case, the site&#8217;s back up now and I hope everything&#8217;s working again.  Please let me know if you find something broken!</p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fwww.n8gray.org%2Fblog%2F2009%2F03%2F07%2Fsorry-for-the-downtime%2F&amp;linkname=Sorry%20for%20the%20downtime%21"><img src="http://www.n8gray.org/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a>]]></content:encoded>
			<wfw:commentRss>http://www.n8gray.org/blog/2009/03/07/sorry-for-the-downtime/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Upgraded to Wordpress 2.5.1</title>
		<link>http://www.n8gray.org/blog/2008/05/07/upgraded-to-wordpress-251/</link>
		<comments>http://www.n8gray.org/blog/2008/05/07/upgraded-to-wordpress-251/#comments</comments>
		<pubDate>Thu, 08 May 2008 01:46:34 +0000</pubDate>
		<dc:creator>n8</dc:creator>
				<category><![CDATA[Blogging]]></category>

		<guid isPermaLink="false">http://www.n8gray.org/?p=169</guid>
		<description><![CDATA[I just upgraded the blog to Wordpress 2.5.1.  I did some testing, but please let me know if anything&#8217;s busted.]]></description>
			<content:encoded><![CDATA[<p>I just upgraded the blog to Wordpress 2.5.1.  I did some testing, but please let me know if anything&#8217;s busted.</p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fwww.n8gray.org%2Fblog%2F2008%2F05%2F07%2Fupgraded-to-wordpress-251%2F&amp;linkname=Upgraded%20to%20Wordpress%202.5.1"><img src="http://www.n8gray.org/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a>]]></content:encoded>
			<wfw:commentRss>http://www.n8gray.org/blog/2008/05/07/upgraded-to-wordpress-251/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>RSS Feeds Fixed</title>
		<link>http://www.n8gray.org/blog/2008/01/11/rss-feeds-fixed/</link>
		<comments>http://www.n8gray.org/blog/2008/01/11/rss-feeds-fixed/#comments</comments>
		<pubDate>Fri, 11 Jan 2008 23:38:36 +0000</pubDate>
		<dc:creator>n8</dc:creator>
				<category><![CDATA[Blogging]]></category>
		<category><![CDATA[rss]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://www.n8gray.org/blog/2008/01/11/rss-feeds-fixed/</guid>
		<description><![CDATA[It turns out that the recent WordPress upgrade broke my RSS feeds because I failed to re-enable a plugin that I disabled.  It was a bit confusing because everything seemed to work without the plugin, so I figured I didn&#8217;t need it.  I&#8217;ve got that one in my notes now.]]></description>
			<content:encoded><![CDATA[<p>It turns out that the recent WordPress upgrade broke my <span class="caps">RSS </span>feeds because I failed to re-enable a plugin that I disabled.  It was a bit confusing because everything seemed to work without the plugin, so I figured I didn&#8217;t need it.  I&#8217;ve got that one in my notes now.</p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fwww.n8gray.org%2Fblog%2F2008%2F01%2F11%2Frss-feeds-fixed%2F&amp;linkname=RSS%20Feeds%20Fixed"><img src="http://www.n8gray.org/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a>]]></content:encoded>
			<wfw:commentRss>http://www.n8gray.org/blog/2008/01/11/rss-feeds-fixed/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Bling++, Flickr, Wordpress++++++</title>
		<link>http://www.n8gray.org/blog/2008/01/09/bling-flickr-wordpress/</link>
		<comments>http://www.n8gray.org/blog/2008/01/09/bling-flickr-wordpress/#comments</comments>
		<pubDate>Wed, 09 Jan 2008 20:08:49 +0000</pubDate>
		<dc:creator>n8</dc:creator>
				<category><![CDATA[Blogging]]></category>
		<category><![CDATA[bling]]></category>
		<category><![CDATA[flickr]]></category>
		<category><![CDATA[nikkor50mm1.8]]></category>
		<category><![CDATA[worldpress]]></category>

		<guid isPermaLink="false">http://www.n8gray.org/blog/2008/01/09/bling-flickr-wordpress/</guid>
		<description><![CDATA[Still more Bling comin&#8217; at ya.  Hopefully the site&#8217;s a bit easier on the eyes now.

The photo in the title is one I took while playing around with my new 50mm f/1.8 Nikkor lens.  With the right adapter the lens can be mounted in reverse and used as a pretty decent macro lens. [...]]]></description>
			<content:encoded><![CDATA[<p>Still more Bling comin&#8217; at ya.  Hopefully the site&#8217;s a bit easier on the eyes now.</p>

<p>The photo in the title is one I took while playing around with my new 50mm f/1.8 Nikkor lens.  With the right adapter the lens can be mounted in reverse and used as a pretty decent macro lens.  I didn&#8217;t have the adapter so I just held the lens up to the camera body instead and started goofing around.  When I saw that shot I immediately thought about using it on the site, and it seems to fit perfectly <span class="caps">IMHO. </span> Since then I&#8217;ve bought the reverse adapter ring (they&#8217;re dirt cheap on ebay) so I&#8217;ll be sharing some more of those shots in the near future on <a href="http://www.flickr.com/photos/n8gray/">my Flickr page</a>.</p>

<p>The Flickr page is another &#8220;news&#8221; item.  I&#8217;ve had a Flickr account for a long time now but never really used it because of various limitations in Flickr.  But now I realize that I just don&#8217;t want to deal with maintaining my own photo hosting software.  Flickr is reasonably priced, has unlimited storage/bandwidth, and gets my shots into an environment where real photographers might actually look at them and give feedback.</p>

<p>Finally, I thought I should mention that I upgraded across not 1, not 2, but 3 WordPress versions (from 2.0.something to 2.3.2) in a matter of minutes thanks to subversion.  My installation is a subversion checkout of the WP developers&#8217; repository, so all I needed to do was <code>svn switch</code> to the 2.3.2 tag to upgrade.  I was able to use <code>svn diff</code> to find the minor tweaks I&#8217;d made to some of the WP files and <code>svn revert</code> them once I determined that they weren&#8217;t needed anymore.  This is <strong>definitely</strong> the way to maintain a website.  Happily, my theme only needed one minor adjustment to work in 2.3.  </p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fwww.n8gray.org%2Fblog%2F2008%2F01%2F09%2Fbling-flickr-wordpress%2F&amp;linkname=Bling%2B%2B%2C%20Flickr%2C%20Wordpress%2B%2B%2B%2B%2B%2B"><img src="http://www.n8gray.org/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a>]]></content:encoded>
			<wfw:commentRss>http://www.n8gray.org/blog/2008/01/09/bling-flickr-wordpress/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Just in time for Christmas: Bling!</title>
		<link>http://www.n8gray.org/blog/2007/12/21/just-in-time-for-christmas-bling/</link>
		<comments>http://www.n8gray.org/blog/2007/12/21/just-in-time-for-christmas-bling/#comments</comments>
		<pubDate>Fri, 21 Dec 2007 19:47:28 +0000</pubDate>
		<dc:creator>n8</dc:creator>
				<category><![CDATA[Blogging]]></category>

		<guid isPermaLink="false">http://www.n8gray.org/blog/2007/12/21/just-in-time-for-christmas-bling/</guid>
		<description><![CDATA[Those of you browsing the site with Safari or Firefox (or other webkit/gecko-based browsers) may notice a bit of extra bling on the site now.  Safari users get maximum bling, Firefox users get slight bling, others &#8230; no bling for you!  I guess I should post some screenshots to show you what you&#8217;re [...]]]></description>
			<content:encoded><![CDATA[<p>Those of you browsing the site with Safari or Firefox (or other webkit/gecko-based browsers) may notice a bit of extra bling on the site now.  Safari users get maximum bling, Firefox users get slight bling, others &#8230; no bling for you!  I guess I should post some screenshots to show you what you&#8217;re missing, but naah, why ruin a great excuse to try out a new browser? <img src='http://www.n8gray.org/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>

<p>As always, editing <span class="caps">CSS </span>has left me annoyed.  I know that it&#8217;s important for <span class="caps">CSS </span>to be easy to parse and apply, but couldn&#8217;t we have simple variables or even functions?  My <span class="caps">CSS </span>is liberally sprinkled with stuff like <code>background-color: #f60;</code> that says nothing about what the design intent of <code>#f60</code> is.  This from the organization that stresses separation of semantics from presentation?  Imagine instead that I could do something like:</p>



<pre>let border_highlight = #f60
let button_hover = #f60
...
.somebox { border: 1px solid border_highlight }
.somebutton:hover { background-color: button_hover }</pre>



<p>Now if I want to change the border highlight but not the hover color it&#8217;s simple, and there&#8217;s no worries about accidental search/replace errors.  The argument for functions is similar.  If you want to define a bunch of related classes multiple times but with slightly different parameters, you end up defining one set, then overriding values to define the second, again for the third, and so on.  It would be much cleaner <span class="caps">IMHO </span>to be able to define a function to generate these classes and then invoke the function several times.  Possibly not a big win in terms of lines of code, but I think it would be easier to maintain.</p>

<p>It is, of course, possible to use the C pre-processor <code>cpp</code> with <span class="caps">CSS, </span>so that might be a way for me to get my wish, but I&#8217;m reluctant to add a compilation step into my already awkward web-development process.  (Speaking of which, <a href="http://www.css3.info/preview/">css3.info</a>, <a href="http://code.google.com/p/macfuse/">MacFuse</a>, <a href="http://www.sccs.swarthmore.edu/users/08/mgorbach/MacFusionWeb/">MacFusion</a> and <a href="http://fuse.sourceforge.net/sshfs.html"><span class="caps">SSHFS</span></a> rock!)</p>

<p>So anyway, enjoy the bling, variables are good, functions are great.</p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fwww.n8gray.org%2Fblog%2F2007%2F12%2F21%2Fjust-in-time-for-christmas-bling%2F&amp;linkname=Just%20in%20time%20for%20Christmas%3A%20Bling%21"><img src="http://www.n8gray.org/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a>]]></content:encoded>
			<wfw:commentRss>http://www.n8gray.org/blog/2007/12/21/just-in-time-for-christmas-bling/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Protecting .svn directories</title>
		<link>http://www.n8gray.org/blog/2006/09/05/protecting-svn-dirs/</link>
		<comments>http://www.n8gray.org/blog/2006/09/05/protecting-svn-dirs/#comments</comments>
		<pubDate>Tue, 05 Sep 2006 21:52:10 +0000</pubDate>
		<dc:creator>n8</dc:creator>
				<category><![CDATA[Blogging]]></category>

		<guid isPermaLink="false">http://www.n8gray.org/blog/2006/09/05/protecting-svn-dirs/</guid>
		<description><![CDATA[Wordpress 2.0.4 is out, and during the upgrade process I came to realize that I was potentially serving some unexpected content on my website.  I&#8217;m using subversion to manage my installs of several web apps, and it turns out that the .svn directories that it litters about were actually accessible if you crafted a [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://wordpress.org/">Wordpress</a> 2.0.4 is out, and during the upgrade process I came to realize that I was potentially serving some unexpected content on my website.  I&#8217;m using <a href="http://subversion.tigris.org/">subversion</a> to manage my installs of several web apps, and it turns out that the .svn directories that it litters about were actually accessible if you crafted a clever <span class="caps">URL. </span> I doubt this was much of a security problem, but it&#8217;s still something I&#8217;d rather fix.</p>

<p>The proper fix was slightly tricky, and it took a lot of searching to find help.  I was trying to fix it in an .htaccess file, but the <code>DirectoryMatch</code> tag I needed isn&#8217;t allowed in .htaccess files for some reason.  So in the end, here&#8217;s what I added to my httpd.conf file:</p>



<pre>
&lt;DirectoryMatch &quot;^/.*/\.svn/&quot;&gt;
  Order deny,allow
  Deny from all
&lt;/DirectoryMatch&gt;
</pre><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fwww.n8gray.org%2Fblog%2F2006%2F09%2F05%2Fprotecting-svn-dirs%2F&amp;linkname=Protecting%20.svn%20directories"><img src="http://www.n8gray.org/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a>]]></content:encoded>
			<wfw:commentRss>http://www.n8gray.org/blog/2006/09/05/protecting-svn-dirs/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Wordpress?  Why, you&#8217;re soaking in it!</title>
		<link>http://www.n8gray.org/blog/2006/06/27/wordpress-why-youre-soaking-in-it/</link>
		<comments>http://www.n8gray.org/blog/2006/06/27/wordpress-why-youre-soaking-in-it/#comments</comments>
		<pubDate>Tue, 27 Jun 2006 23:28:13 +0000</pubDate>
		<dc:creator>n8</dc:creator>
				<category><![CDATA[Blogging]]></category>
		<category><![CDATA[ScriptExport]]></category>

		<guid isPermaLink="false">http://sandbox.n8gray.org/blog/2006/06/27/wordpress-why-youre-soaking-in-it/</guid>
		<description><![CDATA[In my continuing quest for blogging/content-management bliss I&#8217;ve decided to migrate my website to WordPress.  The migration has been painful, but now it appears to be complete enough that I can take the site live.  You probably aren&#8217;t noticing any dramatic differences, since I ported my oh-so-sexy green and orange theme to WordPress, [...]]]></description>
			<content:encoded><![CDATA[<p>In my continuing quest for blogging/content-management bliss I&#8217;ve decided to migrate my website to <a href="http://www.wordpress.org">WordPress</a>.  The migration has been painful, but now it appears to be complete enough that I can take the site live.  You probably aren&#8217;t noticing any <em>dramatic</em> differences, since I ported my oh-so-sexy green and orange theme to WordPress, but this should make it easier for me to keep things running smoothly on my end, what with the awkward laggy web interface and all.  In the terribly unlikely event that you should find, say, a dead link, please let me know!</p>
<p>I&#8217;m posting this in the ScriptExport category so that those of you who subscribe to just the SE RSS feed will get the message as well.  I&#8217;ve added some redirects so that the old URLs will continue to work, but you should probably switch over to the new ones.  Here are the new links:</p>
<ul>
<li><a href="feed:http://www.n8gray.org/blog/feed/">The main blog feed</a>
<li><a href="feed:http://www.n8gray.org/blog/category/projects/scriptexport/">The ScriptExport AppCast feed</a>
</ul>
<p>BTW, to get an RSS feed of any category, just append &#8220;/feed/&#8221; to the URL you get by clicking on the category in the sidebar.</p>
<a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fwww.n8gray.org%2Fblog%2F2006%2F06%2F27%2Fwordpress-why-youre-soaking-in-it%2F&amp;linkname=Wordpress%3F%20%20Why%2C%20you%26%238217%3Bre%20soaking%20in%20it%21"><img src="http://www.n8gray.org/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a>]]></content:encoded>
			<wfw:commentRss>http://www.n8gray.org/blog/2006/06/27/wordpress-why-youre-soaking-in-it/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>RSS: How to Find Out when Things Change</title>
		<link>http://www.n8gray.org/blog/2005/07/13/rss-how-to-find-out-when-things-change/</link>
		<comments>http://www.n8gray.org/blog/2005/07/13/rss-how-to-find-out-when-things-change/#comments</comments>
		<pubDate>Thu, 14 Jul 2005 05:57:00 +0000</pubDate>
		<dc:creator>n8</dc:creator>
				<category><![CDATA[Blogging]]></category>

		<guid isPermaLink="false">http://www.n8gray.org/sandbox/wordpress/?p=57</guid>
		<description><![CDATA[
Since I just upgraded my photo album to a package that supports RSS feeds I thought I&apos;d write an introduction to RSS for people who haven&apos;t encountered it before.  If you&apos;re a web-tech expert, then this post is probably not going to be interesting to you.

If you&apos;re anything like me, you have a list [...]]]></description>
			<content:encoded><![CDATA[<p>
Since I just upgraded my photo album to a package that supports <span class="caps">RSS </span>feeds I thought I&apos;d write an introduction to <span class="caps">RSS </span>for people who haven&apos;t encountered it before.  If you&apos;re a web-tech expert, then this post is probably not going to be interesting to you.<br />
<p>
If you&apos;re anything like me, you have a list of a few websites that you check every day.  I call them my &#8220;daily fix&#8221;.  Every day I fire up my browser and go to each one to see what&apos;s new.  This is fine for a handful of sites that are updated daily, but there&apos;s a lot of interesting stuff out there on the internet.  Daily browsing doesn&apos;t scale well if you want to keep up with dozens or even hundreds of websites.  It also doesn&apos;t work very well if you want to follow a website that&apos;s only updated once or twice a month because you&apos;ll quickly lose the motivation to check in on it.  <span class="caps">RSS </span>is a web technology that can help solve these problems.<br />
<p>
What&apos;s <span class="caps">RSS</span>?  To oversimplify, it&apos;s a format that a website can use to provide a compact digest of itself, called an <em><span class="caps">RSS </span>feed</em>.  For example, a news site might provide a list of headlines along with the first paragraph of each story.  A photo album might provide a list of albums with a highlight photo from each.  You&apos;ll often find a link to the <span class="caps">RSS </span>feed of a website cryptically denoted by a little orange box like this: <br />
<br /><br />
<span class="caps">RSS</span><br />
<br /><br />
or this:<br />
<br /><br />
<span class="caps">XML  </span>(RSS is an <span class="caps">XML</span>-based format.)<br />
<p>
An <span class="caps">RSS </span>reader, or <em>aggregator</em>, is an application (either installed on your computer or on a website) that quickly scans tens or hundreds of <span class="caps">RSS </span>feeds and displays them for you in an easy-to-browse format.  For example, here&apos;s a screenshot of <a href="http://ranchero.com/netnewswire/">NetNewsWire Lite</a>, the <span class="caps">RSS </span>reader that I use:<br />
<br /><br />
<img src="/images/nnw-screenshot.jpg" alt="Screenshot of NetNewsWire Lite" />
<br /><br />
On the left is a list of all the feeds I&apos;m subscribed to.  The upper-right pane is a list of &#8220;headlines&#8221; from the currently selected feed, which happens to be my photo album.  The lower-right pane displays the &#8220;story&#8221; for the selected headline.  As you can see (if you have good eyesight), it&apos;s easy to tell at a glance that Buy Blue has 15 new headlines but KernelTrap has none.  If I were to select Buy Blue I could easily scan the headlines and decide if any of them were worth reading.  Also, I will find out if my lab-mate Cristian adds any new photos to his photo album without needing to browse to it on a regular basis.  The <span class="caps">RSS </span>reader allows me to focus on the content that I want to read without spending a long time browsing the web.<br />
<p>
So now that I&apos;ve told you what <span class="caps">RSS </span>is all about, I hope you&apos;ll download an <span class="caps">RSS </span>reader (<a href="http://www.mozilla.org/products/thunderbird/">Mozilla Thunderbird</a>, for example) and subscribe to the feeds for <a href="http://www.n8gray.org/blog/index.rss">my blog</a> and <a href="http://www.n8gray.org/photos/rss.php">photo albums</a>!<a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fwww.n8gray.org%2Fblog%2F2005%2F07%2F13%2Frss-how-to-find-out-when-things-change%2F&amp;linkname=RSS%3A%20How%20to%20Find%20Out%20when%20Things%20Change"><img src="http://www.n8gray.org/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a>]]></content:encoded>
			<wfw:commentRss>http://www.n8gray.org/blog/2005/07/13/rss-how-to-find-out-when-things-change/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Comment Spam and Turing Tests</title>
		<link>http://www.n8gray.org/blog/2005/04/23/comment-spam-and-turing-tests/</link>
		<comments>http://www.n8gray.org/blog/2005/04/23/comment-spam-and-turing-tests/#comments</comments>
		<pubDate>Sun, 24 Apr 2005 05:30:00 +0000</pubDate>
		<dc:creator>n8</dc:creator>
				<category><![CDATA[Blogging]]></category>

		<guid isPermaLink="false">http://www.n8gray.org/sandbox/wordpress/?p=66</guid>
		<description><![CDATA[
So n8blog got its first round of comment spam last night.  I figured this would 
come up at some point, but I had hoped that the relative obscurity of PyBlosxom 
and my site might keep the bogeyman at bay.  But there it was.  About 20 people
left comments, and golly, they all just [...]]]></description>
			<content:encoded><![CDATA[<p>
So n8blog got its first round of comment spam last night.  I figured this would <br />
come up at some point, but I had hoped that the relative obscurity of PyBlosxom <br />
and my site might keep the bogeyman at bay.  But there it was.  About 20 people<br />
left comments, and golly, they all just happened to be enthusiastic supporters<br />
of various casinos in France and Italy!<br />
<p>
As an utterly brain-dead way of preventing this sort of thing from happening<br />
again I&apos;ve implemented a simple <br />
<a href="http://en.wikipedia.org/wiki/Turing_test">Turing test</a><br />
on the comment entry form.  For<br />
those of you who aren&apos;t familiar with the concept, a Turing test is is a <br />
challenge posed to AI researchers.  A person is seated at a terminal,<br />
communicating with two entities.  One is another human, <br />
the other is an <span class="caps">AI. </span> The person is allowed to ask any question of either<br />
entity, and must try to correctly identify the <span class="caps">AI. </span> The AI has passed the<br />
Turing test if it is able to fool the person about 50% of the time.<br />
<p>
My Turing test, of course, is not a real Turing test.  You don&apos;t need to enter into a lengthy conversation to prove your humanity.  Also, the tester is not a human, but a Python script.  And the test is, shall we say, on the simple side?  <img src='http://www.n8gray.org/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> <br />
<p>
By the way, a type of real Turing test <a href="http://science.slashdot.org/article.pl?sid=05/04/20/1316206">was conducted recently</a>, but the results haven&apos;t been posted yet.<a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fwww.n8gray.org%2Fblog%2F2005%2F04%2F23%2Fcomment-spam-and-turing-tests%2F&amp;linkname=Comment%20Spam%20and%20Turing%20Tests"><img src="http://www.n8gray.org/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a>]]></content:encoded>
			<wfw:commentRss>http://www.n8gray.org/blog/2005/04/23/comment-spam-and-turing-tests/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>I want keywords!</title>
		<link>http://www.n8gray.org/blog/2004/12/23/i-want-keywords/</link>
		<comments>http://www.n8gray.org/blog/2004/12/23/i-want-keywords/#comments</comments>
		<pubDate>Thu, 23 Dec 2004 09:31:00 +0000</pubDate>
		<dc:creator>n8</dc:creator>
				<category><![CDATA[Blogging]]></category>

		<guid isPermaLink="false">http://www.n8gray.org/sandbox/wordpress/?p=68</guid>
		<description><![CDATA[
For those of you who haven&apos;t used a blogging tool like Blosxom or PyBlosxom, the way it works is that you put all your blog entries into a directory hierarchy that reflects the categories that you want these entries to go into.  This is kind of appealing to people like me, who are used [...]]]></description>
			<content:encoded><![CDATA[<p>
For those of you who haven&apos;t used a blogging tool like Blosxom or PyBlosxom, the way it works is that you put all your blog entries into a directory hierarchy that reflects the categories that you want these entries to go into.  This is kind of appealing to people like me, who are used to dealing with files and directories.  However, it forces you into the hierarchical mindset &#8212; everything must have exactly one place in the hierarchy.  <br />
<p>
However, it&apos;s not hard to imagine a blog post that concerns hacking, unix, and OS X.  I&apos;ve got these categories in separate branches of my directory tree, which makes it impossible for me to put my post in all three places without having it show up three times in the chronological view of the blog.  You could imagine a solution involving adding smarts to PyBlosxom with respect to symlinks, but even this strikes me as unsatisfying.<br />
<p>
You see, I&apos;ve been spoiled by iPhoto.  iPhoto allows you to assign keywords to each photo, which you can use to create &#8220;smart albums,&#8221; which are essentially frozen Boolean searches that update automatically as you tag new photos.  I guess I hadn&apos;t really thought about the potential for something like this until iPhoto gave it to me, but now I want to put keywords in everything!  I want to organize my blog using keywords so that entries can show up in multiple places.  I want to attach keywords to music files so I can attach descriptors like &#8220;instrumental&#8221; or &#8220;sleepy&#8221; to songs and make smart playlists.  It&apos;s <em>sort of</em> possible to do this now in iTunes, but it should be supported directly.<br />
<p>
Actually, I <em>should</em> say I&apos;ve been spoiled by the <em>potential</em> of iPhoto.  Unfortunately, iPhoto&apos;s interface for using keywords is downright shoddy.  You create keywords by adding them to a pop-up dialog that is extremely awkward to use because it seems to be based on some kind of bastard half-breed non-aqua list widget.  You only get one big list of keywords that you can&apos;t even rearrange.  Good luck if you want to create more than a dozen or so!  To do it right we need folders to organize &apos;em.  You also can&apos;t assign more than one keyword at once because there&apos;s no multiple selection.  You can&apos;t navigate by keyboard, so assigning keywords becomes a laborious click-fest.<br />
<p>
While I&apos;m ranting about iPhoto, I should mention the album interface.  Again, you simply get one long list of albums.  Thankfully, you can at least rearrange these as you see fit, but once again we really need folders to organize our albums into.  It&apos;s like the developers of iPhoto only really think in terms of 5 or 10 of anything: albums, keywords, even photos in older versions, which choked badly on large albums.<br />
<p>
This brings me to a fundamental rule of interface design:  Any time you&apos;re letting the user make a collection of things you should give them a way to organize it.  At <em>least</em> you need to give them a way to make a hierarchy.  Better still is to provide a keyword-based categorization system.  (Can you imagine it?  A keyword-based system for organizing your keywords?  I think it would actually work.  <img src='http://www.n8gray.org/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> <a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fwww.n8gray.org%2Fblog%2F2004%2F12%2F23%2Fi-want-keywords%2F&amp;linkname=I%20want%20keywords%21"><img src="http://www.n8gray.org/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a>]]></content:encoded>
			<wfw:commentRss>http://www.n8gray.org/blog/2004/12/23/i-want-keywords/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Migrating to PyBlosxom</title>
		<link>http://www.n8gray.org/blog/2004/06/23/migrating-to-pyblosxom/</link>
		<comments>http://www.n8gray.org/blog/2004/06/23/migrating-to-pyblosxom/#comments</comments>
		<pubDate>Wed, 23 Jun 2004 13:17:00 +0000</pubDate>
		<dc:creator>n8</dc:creator>
				<category><![CDATA[pyblosxom]]></category>

		<guid isPermaLink="false">http://www.n8gray.org/sandbox/wordpress/?p=76</guid>
		<description><![CDATA[Blosxom is nice, but unfortunately it&apos;s implemented in a write-only language.
This is a problem, because I already have ideas for pushing it in new 
directions but I&apos;m constantly confronted by the Perl Problem.

Luckily, any time something worthwhile is written in Perl, somebody comes
along and rewrites it in Python (and Ruby, and Scheme, and countless other
flavors [...]]]></description>
			<content:encoded><![CDATA[<p>Blosxom is nice, but unfortunately it&apos;s implemented in a write-only language.
This is a problem, because I already have ideas for pushing it in new <br />
directions but I&apos;m constantly confronted by the <i>Perl Problem</i>.</p>

<p>Luckily, any time something worthwhile is written in Perl, somebody comes
along and rewrites it in Python (and Ruby, and Scheme, and countless other<br />
flavors of various weeks).  Thus, we have <a href="http://roughingit.subtlehints.net/pyblosxom/">PyBlosxom</a>.  PyBlosxom<br />
is much younger than Blosxom, so it&apos;s not surprising that it&apos;s a little rougher<br />
around the edges.  The documentation is much worse than the already shaky <br />
documentation for Blosxom.  Even important plugins that come bundled with<br />
PyBlosxom, like the comments plugin, fail to document basic things like which<br />
variables they provide for use in your flavour files.  The PyBlosxom folks would<br />
be well advised to follow the Blosxom example and use an informally standardized<br />
format for documenting plugins.  Something along the lines of <br />
<ol>
    <li> Description
    <li> Configuration Parameters and Instructions
    <li> Variables provided
    <li> Examples
</ol>

<p>Also, it is repeatedly
stated that PyXML is a dependency for various plugins, which is not true since<br />
the xml module in question has been included in the Python standard library <br />
since Python 2.0.  Finally, PyBlosxom is often advertized as being compatible<br />
with Blosxom flavours, but this is not true.  PB uses a similar scheme, but the<br />
variables you use within the flavour files are different and there are <br />
differences in the set of files contained in a flavour.</p>

<p>Having said all that, I&apos;m still happy to be switching.  It&apos;s painful for
me to work with a system that I can&apos;t tweak and extend, and I&apos;d like to see how<br />
useful I can make this blog be.  With some improvements in the documentation,<br />
PyBlosxom should be a good platform for exploring blog-space.</p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fwww.n8gray.org%2Fblog%2F2004%2F06%2F23%2Fmigrating-to-pyblosxom%2F&amp;linkname=Migrating%20to%20PyBlosxom"><img src="http://www.n8gray.org/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a>]]></content:encoded>
			<wfw:commentRss>http://www.n8gray.org/blog/2004/06/23/migrating-to-pyblosxom/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Blosxom Permissions and Directories on OS X</title>
		<link>http://www.n8gray.org/blog/2004/06/02/blosxom-permissions-and-directories-on-os-x/</link>
		<comments>http://www.n8gray.org/blog/2004/06/02/blosxom-permissions-and-directories-on-os-x/#comments</comments>
		<pubDate>Wed, 02 Jun 2004 10:13:00 +0000</pubDate>
		<dc:creator>n8</dc:creator>
				<category><![CDATA[blosxom]]></category>

		<guid isPermaLink="false">http://www.n8gray.org/sandbox/wordpress/?p=77</guid>
		<description><![CDATA[Mac OS X Hints recently had a
useful hint about adding a preview pane to Blosxom writebacks.  (Yes, I&apos;ll
be implementing that at some point&#8230; ;^)  In the discussion that followed,
some people posted some comments about setting up Blosxom on OS X that struck
me as a bit misinformed.  In particular, people didn&apos;t seem to [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.macosxhints.com">Mac OS X Hints</a> recently had <a href="http://www.macosxhints.com/article.php?story=20040527154619100#comments">a
useful hint</a> about adding a preview pane to Blosxom writebacks.  (Yes, I&apos;ll<br />
be implementing that at some point&#8230; ;^)  In the discussion that followed,<br />
some people posted some comments about setting up Blosxom on OS X that struck<br />
me as a bit misinformed.  In particular, people didn&apos;t seem to know what files<br />
needed to be <em>readable</em> by the web server user (user: <code>www</code>,<br />
group: <code>www</code>) and what files needed to be <em>writable</em><br />
(usually owned) by that user.  Also, people seemed to be under the impression<br />
that they should put the raw <code>.txt</code> files inside their website&apos;s<br />
directory hierarchy, which is probably not wise.

<p>Here&apos;s the breakdown.  These files just need to be <em>readable</em> by
<code>www:www</code>:<br />
<ul>
    <li>Blog entries (usually <code>.txt</code> files)
    <li>Flavour files
    <li>Plugins
</ul>

<p>Therefore, these files can live <em>anywhere</em> as long as the
<code>www</code> user has read access.  I put them in<br />
<code>/Users/n8gray/web/blosxom</code>, which I made readable by all users.

<p>There&apos;s usually only one directory that needs to be writable by the web
server: The plugin state directory.  You want to make sure, however, that only<br />
you and <code>www</code> are able to write there.  One easy way to do this is<br />
to make the plugin state directory owned by you, but with group www.  Then make<br />
it both owner and group writable (Permissions 775, or drwxrwxr-x).  I use the <br />
directory <code>/Users/n8gray/web/blosxom/plugins/state</code> for plugins.

<p>One thing to note is that <em>none</em> of these files are under
<code>/Users/n8gray/Sites</code> or <code>/Library/WebServer</code>.  Putting<br />
them in those directories would potentially allow strangers to read raw files<br />
or activate plugins directly from their browsers, which is probably<br />
undesirable.  We want all access to the blog content to be through the<br />
<code>blosxom.cgi</code> script.  Therefore, <code>blosxom.cgi</code> should be<br />
the <em>only</em> part of the Blosxom system that lives in a<br />
publicly-accessible area (something like <code>~/Sites/cgi-bin</code>).

<p>Finally, I don&apos;t claim that this is the best or only way to set up Blosxom
under OS X.  I do, however, think that this is a sensible way to set it up. <br />
Leave a comment if you have a better idea!<a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fwww.n8gray.org%2Fblog%2F2004%2F06%2F02%2Fblosxom-permissions-and-directories-on-os-x%2F&amp;linkname=Blosxom%20Permissions%20and%20Directories%20on%20OS%20X"><img src="http://www.n8gray.org/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a>]]></content:encoded>
			<wfw:commentRss>http://www.n8gray.org/blog/2004/06/02/blosxom-permissions-and-directories-on-os-x/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
