<?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>tadhg.com &#187; Blog</title>
	<atom:link href="http://tadhg.com/wp/tag/blog/feed/" rel="self" type="application/rss+xml" />
	<link>http://tadhg.com/wp</link>
	<description>Wherein some things Tadhg are discussed</description>
	<lastBuildDate>Thu, 18 Mar 2010 19:19:20 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>WordPress 2.9 Upgrade</title>
		<link>http://tadhg.com/wp/2010/01/10/wordpress-2-9-upgrade/</link>
		<comments>http://tadhg.com/wp/2010/01/10/wordpress-2-9-upgrade/#comments</comments>
		<pubDate>Sun, 10 Jan 2010 23:56:30 +0000</pubDate>
		<dc:creator>Tadhg</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[coding]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[tech]]></category>
		<category><![CDATA[web-development]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://tadhg.com/wp/?p=2579</guid>
		<description><![CDATA[I upgraded this blog to WordPress 2.9 today, and it appeared to go entirely smoothly. Please let me know if you notice any breakage.
Tags: Blog, coding, PHP, tech, web-development, WordPressRelated PostsWordPress 2.8 Upgrade Sun 14 Jun 2009WP Plugins: Recent Commentary and Show Tags in RSS Mon 23 Mar 2009Some RSS Changes Thu 19 Mar 2009New [...]]]></description>
			<content:encoded><![CDATA[<p>I upgraded this blog to <a class="reference external" href="http://codex.wordpress.org/Version_2.9">WordPress 2.9</a> today, and it appeared to go entirely smoothly. Please let me know if you notice any breakage.</p>
<p>Tags: <a href="http://tadhg.com/wp/tag/blog/" rel="tag">Blog</a>, <a href="http://tadhg.com/wp/tag/coding/" rel="tag">coding</a>, <a href="http://tadhg.com/wp/tag/php/" rel="tag">PHP</a>, <a href="http://tadhg.com/wp/tag/tech/" rel="tag">tech</a>, <a href="http://tadhg.com/wp/tag/web-development/" rel="tag">web-development</a>, <a href="http://tadhg.com/wp/tag/wordpress/" rel="tag">WordPress</a></p><h4 class='related-posts-header'>Related Posts</h4><ul class="related-posts-list"><li class="related-post"><a href="http://tadhg.com/wp/2009/06/14/wordpress-2-8-upgrade/">WordPress 2.8 Upgrade</a> <span class="related-post-date timestamp">Sun 14 Jun 2009</span></li><li class="related-post"><a href="http://tadhg.com/wp/2009/03/23/wp-plugins-recent-commentary-and-show-tags-in-rss/">WP Plugins: Recent Commentary and Show Tags in RSS</a> <span class="related-post-date timestamp">Mon 23 Mar 2009</span></li><li class="related-post"><a href="http://tadhg.com/wp/2009/03/19/some-rss-changes/">Some RSS Changes</a> <span class="related-post-date timestamp">Thu 19 Mar 2009</span></li><li class="related-post"><a href="http://tadhg.com/wp/2009/02/23/new-blog-functionality-recent-commentary/">New Blog Functionality: Recent Commentary</a> <span class="related-post-date timestamp">Mon 23 Feb 2009</span></li><li class="related-post"><a href="http://tadhg.com/wp/2009/02/13/my-wordpress-development-setup/">My WordPress Development Setup</a> <span class="related-post-date timestamp">Fri 13 Feb 2009</span></li><li class="related-post"><a href="http://tadhg.com/wp/2009/07/28/better-rest-wordpress-pipeline/">Better reST–WordPress Pipeline</a> <span class="related-post-date timestamp">Tue 28 Jul 2009</span></li><li class="related-post"><a href="http://tadhg.com/wp/2009/07/14/blog-workflow-with-restructuredtext/">Blog Workflow with reStructuredText</a> <span class="related-post-date timestamp">Tue 14 Jul 2009</span></li><li class="related-post"><a href="http://tadhg.com/wp/2009/02/10/related-posts-plugin-and-sql-trickery/">Related Posts Plugin and SQL Trickery</a> <span class="related-post-date timestamp">Tue 10 Feb 2009</span></li><li class="related-post"><a href="http://tadhg.com/wp/2009/11/10/html-past-and-future/">HTML Past and Future</a> <span class="related-post-date timestamp">Tue 10 Nov 2009</span></li><li class="related-post"><a href="http://tadhg.com/wp/2009/09/10/404-pages/">404 Pages</a> <span class="related-post-date timestamp">Thu 10 Sep 2009</span></li></ul>]]></content:encoded>
			<wfw:commentRss>http://tadhg.com/wp/2010/01/10/wordpress-2-9-upgrade/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>2009 Goals Review</title>
		<link>http://tadhg.com/wp/2009/12/29/2009-goals-review/</link>
		<comments>http://tadhg.com/wp/2009/12/29/2009-goals-review/#comments</comments>
		<pubDate>Wed, 30 Dec 2009 01:43:17 +0000</pubDate>
		<dc:creator>Tadhg</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[goals]]></category>
		<category><![CDATA[personal]]></category>
		<category><![CDATA[reading]]></category>
		<category><![CDATA[reStructuredText]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[version-control]]></category>
		<category><![CDATA[web-development]]></category>
		<category><![CDATA[writing]]></category>

		<guid isPermaLink="false">http://tadhg.com/wp/?p=2548</guid>
		<description><![CDATA[I had eight goals for 2009, and all of them that I’m going to get done I’ve already completed. Time to review.

Here are the ones I accomplished:

Fix my blog. I resurrected the full blog in January, finishing on 27 Jan 2009. I’m rather happy to have gotten this one out of the way.

Fix my Subversion [...]]]></description>
			<content:encoded><![CDATA[<p>I had <a href="http://tadhg.com/wp/2009/01/01/2009-goals/" title="2009 Goals" >eight goals</a> for 2009, and all of them that I’m going to get done I’ve already completed. Time to review.<br />
<span id="more-2548"></span><br />
Here are the ones I accomplished:</p>
<ul>
<li><strong>Fix my blog</strong>. I resurrected the full blog in January, <a href="http://tadhg.com/wp/2009/01/27/blog-move-steps-part-three-dns-change/" title="Blog Move Steps, Part Three: DNS Change" >finishing on 27 Jan 2009</a>. I’m rather happy to have gotten this one out of the way.
</li>
<li><strong>Fix my Subversion repository</strong>. I’m even more glad I did this, as version control is just too important not to have. It <a href="http://tadhg.com/wp/2009/05/04/version-control-recovery/" title="Version Control Recovery" >took me until 04 May</a> to do this one.
</li>
<li><strong>Finish at least three software projects</strong>. More than three, even if none of them were sfmagic.org. The <a class="reference external" href="http://tadhg.com/wp/2009/07/28/better-rest-wordpress-pipeline/">reST–WordPress pipeline</a>, the various <a class="reference external" href="http://tadhg.com/wp/wordpress-plugins/">WordPress Plugins</a>, and the <a class="reference external" href="http://tadhg.com/wp/2009/09/24/rtf_word_restructuredtext-toolchain/">RTF/Word–reStructuredText Toolchain</a> all qualify.
</li>
</ul>
<p>I <a href="http://tadhg.com/wp/2009/02/27/giving-up-on-a-goal-for-2009/" title="Giving Up On A Goal For 2009" >abandoned</a> the “write a summary/review/synopsis of every book I read” goal fairly early into the year, on 27 Feb. I don’t think I’m going to try that one again, as it just seems that the practice simply isn’t right for me.</p>
<p>That leaves four goals I didn’t accomplish:</p>
<ul>
<li><strong>Write at least one draft of the fantasy novel</strong>. This, for me, is the big one. I didn’t get anywhere close, and in truth I feel like I never really gave it a good effort. I’ll make it a goal again this year.
</li>
<li><strong>Read 80 books</strong>. It was looking great until the middle of the year, when my reading inexplicably dropped off. I’ll be at 56 or 57 by the end of December, which is off by quite a few. I’m really not sure what went wrong with this one, and will probably try it again next year also.
</li>
<li><strong>Finish</strong> <a class="reference external" href="http://tadhg.com/wp/fiction/#pafib"><strong>pafib</strong></a>. Well, I got one, so just five more of those to go&#8230; I might not make that one a goal for next year, and instead I’ll just leave that series hanging around to work on whenever the right mood takes me.
</li>
<li><strong>Finish</strong> <a class="reference external" href="http://tadhg.com/afbh/.._reST–WordPresspipeline:"><strong>The Annotated Fantasy Bedtime Hour</strong></a>. No progress, but I still want to get this one done, and so I’ll probably leave it on there next year as well.
</li>
</ul>
<p>Looking at it as “three out of eight” probably isn’t a great plan. Instead, I’m going to consider it a great thing that I fixed my blog, fixed my Subversion repository (both things quite central to my activities), and wrote quite a few bits of software that I’m happy with. The failure that stings is the fantasy novel, and with that, I must fall back upon the old chestnut of trying again.</p>
<p>Tags: <a href="http://tadhg.com/wp/tag/blog/" rel="tag">Blog</a>, <a href="http://tadhg.com/wp/tag/goals/" rel="tag">goals</a>, <a href="http://tadhg.com/wp/tag/personal/" rel="tag">personal</a>, <a href="http://tadhg.com/wp/tag/reading/" rel="tag">reading</a>, <a href="http://tadhg.com/wp/tag/restructuredtext/" rel="tag">reStructuredText</a>, <a href="http://tadhg.com/wp/tag/software/" rel="tag">software</a>, <a href="http://tadhg.com/wp/tag/version-control/" rel="tag">version-control</a>, <a href="http://tadhg.com/wp/tag/web-development/" rel="tag">web-development</a>, <a href="http://tadhg.com/wp/tag/writing/" rel="tag">writing</a></p><h4 class='related-posts-header'>Related Posts</h4><ul class="related-posts-list"><li class="related-post"><a href="http://tadhg.com/wp/2009/07/30/2009-goals-status/">2009 Goals Status</a> <span class="related-post-date timestamp">Thu 30 Jul 2009</span></li><li class="related-post"><a href="http://tadhg.com/wp/2009/01/01/2009-goals/">2009 Goals</a> <span class="related-post-date timestamp">Thu 01 Jan 2009</span></li><li class="related-post"><a href="http://tadhg.com/wp/2010/01/01/2010-goals/">2010 Goals</a> <span class="related-post-date timestamp">Fri 01 Jan 2010</span></li><li class="related-post"><a href="http://tadhg.com/wp/2009/09/24/rtf_word_restructuredtext-toolchain/">RTF/Word–reStructuredText Toolchain</a> <span class="related-post-date timestamp">Thu 24 Sep 2009</span></li><li class="related-post"><a href="http://tadhg.com/wp/2009/07/28/better-rest-wordpress-pipeline/">Better reST–WordPress Pipeline</a> <span class="related-post-date timestamp">Tue 28 Jul 2009</span></li><li class="related-post"><a href="http://tadhg.com/wp/2009/07/14/blog-workflow-with-restructuredtext/">Blog Workflow with reStructuredText</a> <span class="related-post-date timestamp">Tue 14 Jul 2009</span></li><li class="related-post"><a href="http://tadhg.com/wp/2009/07/12/moving-from-word-processors-to-restructuredtext/">Moving From Word Processors to reStructuredText</a> <span class="related-post-date timestamp">Sun 12 Jul 2009</span></li><li class="related-post"><a href="http://tadhg.com/wp/2007/12/11/some-medium-term-plans/">Some Medium-Term Plans</a> <span class="related-post-date timestamp">Tue 11 Dec 2007</span></li><li class="related-post"><a href="http://tadhg.com/wp/2007/04/08/semantic-editor-application-search/">Semantic Editor Application Search</a> <span class="related-post-date timestamp">Sun 08 Apr 2007</span></li><li class="related-post"><a href="http://tadhg.com/wp/2009/05/26/1000th-post/">1000th Post</a> <span class="related-post-date timestamp">Tue 26 May 2009</span></li></ul>]]></content:encoded>
			<wfw:commentRss>http://tadhg.com/wp/2009/12/29/2009-goals-review/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Title Capitalization</title>
		<link>http://tadhg.com/wp/2009/07/31/title-capitalization/</link>
		<comments>http://tadhg.com/wp/2009/07/31/title-capitalization/#comments</comments>
		<pubDate>Sat, 01 Aug 2009 06:15:20 +0000</pubDate>
		<dc:creator>Tadhg</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[books]]></category>
		<category><![CDATA[grammar]]></category>
		<category><![CDATA[language]]></category>
		<category><![CDATA[writing]]></category>

		<guid isPermaLink="false">http://tadhg.com/wp/?p=2010</guid>
		<description><![CDATA[I capitalize the title of my blog posts (evidently), which means that five days a week I get to consider precisley how to do that. Often, as in today’s case, it’s simple and doesn’t require any thought. But sometimes it does, and—worse—sometimes it does but I don’t notice.

I have a reasonable intuitive grasp of when [...]]]></description>
			<content:encoded><![CDATA[<p>I capitalize the title of my blog posts (evidently), which means that five days a week I get to consider precisley how to do that. Often, as in today’s case, it’s simple and doesn’t require any thought. But sometimes it does, and—worse—sometimes it does but I don’t notice.<br />
<span id="more-2010"></span><br />
I have a reasonable intuitive grasp of when initial capitals should be applied and when they shouldn’t, but not a firm understanding of the rules governing this application. Naturally, this being a matter of both English grammar and writing style, the rules aren’t perfectly clear.</p>
<p>An example of one I just didn’t notice: <a class="reference external" href="http://tadhg.com/wp/2009/07/12/moving-from-word-processors-to-restructuredtext/">“Moving From Word Processors to reStructuredText”</a>. Generally the rule is to not capitalize prepositions (except when at the start of the title). Since “from” is a preposition, it shouldn’t be capitalized in that title. I’m not sure why it doesn’t look wrong to me, as “to” would if it were capitalized, but unless there’s an exception I’m unaware of, it’s wrong.</p>
<p>This means that I need to actually think about the capitalization of titles, rather than relying on my intuition to guide me. I need to remember that a) prepositions shouldn’t be capitalized, and b) “from” is a preposition.</p>
<p>The latter requires more thought than it should. The formal rules of English grammar, unlike the rules of English spelling, have never entirely worked their way into the depths of my brain.</p>
<p>Naturally, there are also plenty of edge cases, such as: <a class="reference external" href="http://tadhg.com/wp/2009/07/27/crows-are-smart-and-hold-grudges/">“Crows Are Smart—And Hold Grudges”</a>. I did think about this one, and decided to leave it as “And” despite the fact that it’s a conjunction, on the basis that its role in starting a new phrase in the middle of the title gave it special status. Is this correct? I actually don’t know.</p>
<p>While I don’t have a copy of <cite>The Chicago Manual of Style</cite>, apparently the best resource for this particular issue, I do have a copy of <a class="reference external" href="http://en.wikipedia.org/wiki/Garner%27s_Modern_American_Usage"><cite>Garner’s Modern American Usage</cite></a> (2003 edition), which I bought more or less as soon as I read <a class="reference external" href="http://instruct.westvalley.edu/lafave/DFW_present_tense.html">“Tense Present”</a> (I read the longer version in <cite>Consider the Lobster</cite>). Garner doesn’t explicitly address the rules for title capitalization when you’re writing your own titles, but does cover rules for “Up-Style Headings”, and I’ve decided that there’s no reason why those rules shouldn’t also work for the titles of my blog posts. His pointers on what to capitalize:</p>
<ul>
<li>First and last words.</li>
<li>“That”.</li>
<li>“With” if it’s close to or used with “Without”</li>
<li>Everything else, except:
<ul>
<li>articles;</li>
<li>conjunctions;</li>
<li>prepositions shorter than five letters (usually); and</li>
<li>‘to’ in infinitive form.</li>
</ul>
</li>
</ul>
<p>(Paraphrased from <span class="block-cite">p128–130. Brian Garner. <a href="http://en.wikipedia.org/wiki/Garner%27s_Modern_American_Usage"><em>Garner’s Modern American Usage</em></a>. New York: Oxford University Press, 2003. </span>)</p>
<p>Note that even here there’s a nod to how tricky it can be, with the “usually” rider in reference to the definition of short as five letters or less.</p>
<p>So, those are the rules I intend to follow from here on out. They still don’t tell me whether I was right or wrong about the title of <a class="reference external" href="http://tadhg.com/wp/2009/07/27/crows-are-smart-and-hold-grudges/">“Crows Are Smart—And Hold Grudges”</a>.</p>
<p>(Shamefully, this is the first time I’ve opened <a class="reference external" href="http://en.wikipedia.org/wiki/Garner%27s_Modern_American_Usage"><cite>Garner’s Modern American Usage</cite></a> in years. It’s excellent, and since looking over capitalization I’ve found quite a few other tidbits, and now intend to both consult and peruse it regularly.)</p>
<p>Tags: <a href="http://tadhg.com/wp/tag/blog/" rel="tag">Blog</a>, <a href="http://tadhg.com/wp/tag/books/" rel="tag">books</a>, <a href="http://tadhg.com/wp/tag/grammar/" rel="tag">grammar</a>, <a href="http://tadhg.com/wp/tag/language/" rel="tag">language</a>, <a href="http://tadhg.com/wp/tag/writing/" rel="tag">writing</a></p><h4 class='related-posts-header'>Related Posts</h4><ul class="related-posts-list"><li class="related-post"><a href="http://tadhg.com/wp/2009/12/29/2009-goals-review/">2009 Goals Review</a> <span class="related-post-date timestamp">Tue 29 Dec 2009</span></li><li class="related-post"><a href="http://tadhg.com/wp/2009/07/30/2009-goals-status/">2009 Goals Status</a> <span class="related-post-date timestamp">Thu 30 Jul 2009</span></li><li class="related-post"><a href="http://tadhg.com/wp/2009/05/26/1000th-post/">1000th Post</a> <span class="related-post-date timestamp">Tue 26 May 2009</span></li><li class="related-post"><a href="http://tadhg.com/wp/2009/05/24/fiction-organization/">Fiction Organization</a> <span class="related-post-date timestamp">Sun 24 May 2009</span></li><li class="related-post"><a href="http://tadhg.com/wp/2009/03/13/some-thoughts-on-racism-and-science-fictionfantasy/">Some Thoughts on Racism and Science Fiction/Fantasy</a> <span class="related-post-date timestamp">Fri 13 Mar 2009</span></li><li class="related-post"><a href="http://tadhg.com/wp/2009/01/18/unforced-error-by-the-onion-on-federer/">Unforced Error by The Onion on Federer</a> <span class="related-post-date timestamp">Sun 18 Jan 2009</span></li><li class="related-post"><a href="http://tadhg.com/wp/2009/01/01/2009-goals/">2009 Goals</a> <span class="related-post-date timestamp">Thu 01 Jan 2009</span></li><li class="related-post"><a href="http://tadhg.com/wp/2008/09/14/david-foster-wallace/">David Foster Wallace</a> <span class="related-post-date timestamp">Sun 14 Sep 2008</span></li><li class="related-post"><a href="http://tadhg.com/wp/2008/08/17/pedantor/">Pedantor</a> <span class="related-post-date timestamp">Sun 17 Aug 2008</span></li><li class="related-post"><a href="http://tadhg.com/wp/2007/12/11/some-medium-term-plans/">Some Medium-Term Plans</a> <span class="related-post-date timestamp">Tue 11 Dec 2007</span></li></ul>]]></content:encoded>
			<wfw:commentRss>http://tadhg.com/wp/2009/07/31/title-capitalization/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>2009 Goals Status</title>
		<link>http://tadhg.com/wp/2009/07/30/2009-goals-status/</link>
		<comments>http://tadhg.com/wp/2009/07/30/2009-goals-status/#comments</comments>
		<pubDate>Fri, 31 Jul 2009 06:50:46 +0000</pubDate>
		<dc:creator>Tadhg</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[goals]]></category>
		<category><![CDATA[personal]]></category>
		<category><![CDATA[reading]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[web-development]]></category>
		<category><![CDATA[writing]]></category>

		<guid isPermaLink="false">http://tadhg.com/wp/?p=1997</guid>
		<description><![CDATA[At the start of the year I laid out some goals for 2009, and it&#8217;s time to review how they&#8217;re going.

Abandoned

Write a summary/review/synopsis of every book I read: I&#8217;ve tried this one before, and failed, and it remains too hard for me.

Accomplished

Fix my blog: Did this early.
Fix my Subversion repository: Done, and I&#8217;ve been happily [...]]]></description>
			<content:encoded><![CDATA[<p>At the start of the year I <a href="http://tadhg.com/wp/2009/01/01/2009-goals/" title="2009 Goals" >laid out some goals for 2009</a>, and it&#8217;s time to review how they&#8217;re going.<br />
<span id="more-1997"></span><br />
<em>Abandoned</em></p>
<ul>
<li><strong>Write a summary/review/synopsis of every book I read</strong>: I&#8217;ve tried this one before, and failed, and it <a href="http://tadhg.com/wp/2009/02/27/giving-up-on-a-goal-for-2009/" title="Giving Up On a Goal for 2009" >remains too hard for me</a>.</li>
</ul>
<p><em>Accomplished</em></p>
<ul>
<li><strong>Fix my blog</strong>: <a href="http://tadhg.com/wp/2009/01/27/blog-move-steps-part-three-dns-change/" title="Blog Move Steps Part Three: DNS Change" >Did this early</a>.</li>
<li><strong>Fix my Subversion repository</strong>: <a href="http://tadhg.com/wp/2009/05/04/version-control-recovery/" title="Version Control Recovery" >Done</a>, and I&#8217;ve been happily using it since.</li>
</ul>
<p><em>Some Progress</em></p>
<ul>
<li><strong>Read 80 books</strong>: Hmm. Might be tough to make it. I&#8217;ve read <a class="reference external" href="http://books.tadhg.user.dev.freebaseapps.com/">35 books so far this year</a>, so would have to read nine per month for the rest of the year. Not impossible, but since March I just haven&#8217;t been reading that much, not sure why.</li>
<li><strong>Finish a writing series of mine called</strong> <a class="reference external" href="http://tadhg.com/wp/fiction/#pafib"><strong>pafib</strong></a>: I&#8217;ve written <a href="http://tadhg.com/wp/2009/05/22/pafib-6/" title="pafib #6" >one part of this, the sixth</a>, and if I get inspired or determined (or both) there&#8217;s some hope of finishing it.</li>
<li><strong>Finish at least three software projects</strong>: I&#8217;ve been doing a bunch of them, and the reStructuredText work certainly counts, as do the <a class="reference external" href="http://tadhg.com/wp/wordpress-plugins/">WordPress plugins</a> I&#8217;ve written. I have not, however, made progress with sfmagic.org, which remains dead.</li>
</ul>
<p><em>No Progress</em></p>
<ul>
<li><strong>Finish</strong> <a class="reference external" href="http://tadhg.com/afbh/"><strong>The Annotated Fantasy Bedtime Hour</strong></a>: Haven&#8217;t touched it. Again, some inspiration and determination are required.</li>
<li><strong>Write at least one draft of the fantasy novel</strong>: No progress. This is where the determination and inspiration, should they show up, should be directed.</li>
</ul>
<p>Overall, not too bad. I need to do more writing, particularly longer projects and especially fiction. At least I&#8217;ve been removing technical barriers to that.</p>
<p>Tags: <a href="http://tadhg.com/wp/tag/blog/" rel="tag">Blog</a>, <a href="http://tadhg.com/wp/tag/goals/" rel="tag">goals</a>, <a href="http://tadhg.com/wp/tag/personal/" rel="tag">personal</a>, <a href="http://tadhg.com/wp/tag/reading/" rel="tag">reading</a>, <a href="http://tadhg.com/wp/tag/software/" rel="tag">software</a>, <a href="http://tadhg.com/wp/tag/web-development/" rel="tag">web-development</a>, <a href="http://tadhg.com/wp/tag/writing/" rel="tag">writing</a></p><h4 class='related-posts-header'>Related Posts</h4><ul class="related-posts-list"><li class="related-post"><a href="http://tadhg.com/wp/2009/12/29/2009-goals-review/">2009 Goals Review</a> <span class="related-post-date timestamp">Tue 29 Dec 2009</span></li><li class="related-post"><a href="http://tadhg.com/wp/2009/01/01/2009-goals/">2009 Goals</a> <span class="related-post-date timestamp">Thu 01 Jan 2009</span></li><li class="related-post"><a href="http://tadhg.com/wp/2010/01/01/2010-goals/">2010 Goals</a> <span class="related-post-date timestamp">Fri 01 Jan 2010</span></li><li class="related-post"><a href="http://tadhg.com/wp/2007/12/11/some-medium-term-plans/">Some Medium-Term Plans</a> <span class="related-post-date timestamp">Tue 11 Dec 2007</span></li><li class="related-post"><a href="http://tadhg.com/wp/2007/04/08/semantic-editor-application-search/">Semantic Editor Application Search</a> <span class="related-post-date timestamp">Sun 08 Apr 2007</span></li><li class="related-post"><a href="http://tadhg.com/wp/2009/09/24/rtf_word_restructuredtext-toolchain/">RTF/Word–reStructuredText Toolchain</a> <span class="related-post-date timestamp">Thu 24 Sep 2009</span></li><li class="related-post"><a href="http://tadhg.com/wp/2009/07/28/better-rest-wordpress-pipeline/">Better reST–WordPress Pipeline</a> <span class="related-post-date timestamp">Tue 28 Jul 2009</span></li><li class="related-post"><a href="http://tadhg.com/wp/2009/07/14/blog-workflow-with-restructuredtext/">Blog Workflow with reStructuredText</a> <span class="related-post-date timestamp">Tue 14 Jul 2009</span></li><li class="related-post"><a href="http://tadhg.com/wp/2009/07/12/moving-from-word-processors-to-restructuredtext/">Moving From Word Processors to reStructuredText</a> <span class="related-post-date timestamp">Sun 12 Jul 2009</span></li><li class="related-post"><a href="http://tadhg.com/wp/2009/05/26/1000th-post/">1000th Post</a> <span class="related-post-date timestamp">Tue 26 May 2009</span></li></ul>]]></content:encoded>
			<wfw:commentRss>http://tadhg.com/wp/2009/07/30/2009-goals-status/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Python Syntax Highlighting for star-light</title>
		<link>http://tadhg.com/wp/2009/06/26/python-syntax-highlighting-for-star-light/</link>
		<comments>http://tadhg.com/wp/2009/06/26/python-syntax-highlighting-for-star-light/#comments</comments>
		<pubDate>Sat, 27 Jun 2009 07:37:13 +0000</pubDate>
		<dc:creator>Tadhg</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[coding]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[web-development]]></category>

		<guid isPermaLink="false">http://tadhg.com/wp/?p=1837</guid>
		<description><![CDATA[A couple of years ago I plugged star-light, a syntax highlighter that&#8217;s entirely client-side. I&#8217;ve been happy with it, but wanted a Python mode for it. I was going to post some other code this evening, and then decided that I should just make the Python mode myself.
This led to fun with regular expressions.

I probably [...]]]></description>
			<content:encoded><![CDATA[<p>A couple of years ago <a href="http://tadhg.com/wp/2007/05/29/star-light-syntax-highlighter/">I plugged star-light</a>, a syntax highlighter that&#8217;s entirely client-side. I&#8217;ve been happy with it, but wanted a Python mode for it. I was going to post some other code this evening, and then decided that I should just make the Python mode myself.</p>
<p>This led to fun with regular expressions.<br />
<span id="more-1837"></span><br />
I probably shouldn&#8217;t call it &#8220;fun&#8221;, though. In any case, I eventually got something that works relatively well:<br />
</p>
<pre class="python"><code>
@some_decorator()
def hello_world(arg, **kw):
    import pdb;
    if 1==1:
        print "Hello World"
        some_func('foo')
        some_other_func(list("string"))
    else:
        """
            No, we should never get to this condition.
            "grocer's quotes"
            Padding text.
        """
        pass
    return dict(message="Hello World printed")
</code></pre>
<p>I spent a lot longer on it than I would have liked, primarily due to the regular expression for multi-line comments:</p>
<pre class="js"><code>
var PYBLOCK_COMMENT1 = new RegExp(
    '"{3}'                  +   // opening triplet
    '('                     +   // open paren for main optional expression
    '([^"]*)'               +   // match not-" 0-inf times
    '("{1,2}[^"]+"{1,2})*'  +   // match "x1 followed by one or more not-"
                                // followed by "x1, all 0-inf times
    '([^"]*)'               +   // match not-" 0-inf times
    ')*'                    +   // close paren, make main expression optional
    '"{3}'                  +   // closing triplet
'');
</code></pre>
<p>If by some chance you&#8217;re using star-light, it&#8217;s relatively easy to add this mode. First, add this line to <code>bindings.xml</code></p>
<pre class="xml"><code>
&lt;binding id="star-python.htc|star-light.htc" extends="#behavior"/&gt;
</code></pre>
<p>Then add this line to <code>star-light.css</code>:</p>
<pre class="css"><code>
pre.python {
	behavior: url(star-python.htc) url(star-light.htc);
	-moz-binding: url(bindings.xml#star-python.htc|star-light.htc);
}
</code></pre>
</pre>
<p>Finally, get this code and save it alongside the other modes as <code>star-python.htc</code>:</p>
<pre class="htc"><code>
&lt;?xml version="1.0" encoding="ISO-8859-1"?&gt;
&lt;!--
    star-light - version 1.0.2 (2005/06/06)
    Copyright 2005, Dean Edwards
    Python mode Copyright 2009, Tadhg O'Higgins
	License: http://creativecommons.org/licenses/LGPL/2.1/
--&gt;
&lt;public:component xmlns:public="urn:HTMLComponent" lightweight="true"&gt;
&lt;public:attach event="ondocumentready" handler="init"/&gt;
&lt;script type="text/javascript"&gt;
//&lt;![CDATA[

var PUNCTUATION = new RegExp("!=|[\-+*|\~^/%=&lt;&gt;\\]\[{}\\(\),.:]")

var BUILTIN =   "__import__|abs|apply|basestring|bool|buffer|" +
                "callable|chr|classmethod|cmp|coerce|compile|complex|" +
                "delattr|dict|dir|divmod|" +
                "enumerate|eval|execfile|file|filter|float|" +
                "getattr|globals|hasattr|hash|help|hex|" +
                "id|input|int|intern|isinstance|issubclass|iter|" +
                "len|list|locals|long|" +
                "map|max|min|" +
                "object|oct|open|ord|pow|property|" +
                "range|raw_input|reduce|reload|repr|round|" +
                "setattr|slice|staticmethod|sum|super|str|tuple|type|" +
                "unichr|unicode|vars|" +
                "xrange|" +
                "zip";

var RESERVED =  "ArithmeticError|AssertionError|AttributeError|" +
                "DeprecationWarning|" +
                "EOFError|Ellipsis|EnvironmentError|Exception|False|" +
                "FloatingPointError|FutureWarning|" +
                "IOError|ImportError|IndentationError|IndexError|" +
                "KeyError|KeyboardInterrupt|LookupError|" +
                "MemoryError|NameError|None|NotImplemented|" +
                "NotImplementedError|" +
                "OSError|OverflowError|OverflowWarning|" +
                "PendingDeprecationWarning|" +
                "ReferenceError|RuntimeError|RuntimeWarning|" +
                "StandardError|StopIteration|SyntaxError|SyntaxWarning|" +
                "SystemError|SystemExit|TabError|True|TypeError|" +
                "UnboundLocalError|UnicodeDecodeError|UnicodeEncodeError|" +
                "UnicodeError|UnicodeTranslateError|UserWarning|ValueError|" +
                "Warning|WindowsError|" +
                "ZeroDivisionError|" +
                "and|assert|break|" +
                "class|continue|def|del|" +
                "elif|else|except|exec|finally|for|from|" +
                "global|" +
                "if|import|in|is|" +
                "lambda|" +
                "not|" +
                "or|pass|print|" +
                "raise|return|" +
                "try|" +
                "while|" +
                "yield";

var PYLINE_COMMENT = /#[^\n]*\n/

var PYBLOCK_COMMENT1 = new RegExp(
    '"{3}'                  +   // opening triplet
    '('                     +   // open paren for main optional expression
    '([^"]*)'               +   // match not-" 0-inf times
    '("{1,2}[^"]+"{1,2})*'  +   // match "x1 followed by one or more not-"
                                // followed by "x1, all 0-inf times
    '([^"]*)'               +   // match not-" 0-inf times
    ')*'                    +   // close paren, make main expression optional
    '"{3}'                  +   // closing triplet
'');

var PYBLOCK_COMMENT2 = new RegExp(
    "'{3}"                  +   // opening triplet
    "("                     +   // open paren for main optional expression
    "([^']*)"               +   // match not-' 0-inf times
    "('{1,2}[^']+'{1,2})*"  +   // match 'x1 followed by one or more not-'
                                // followed by 'x1, all 0-inf times
    "([^']*)"               +   // match not-' 0-inf times
    ")*"                    +   // close paren, make main expression optional
    "'{3}"                  +   // closing triplet
"");    

var DECORATOR = new RegExp(
    /\@[^\(]+/
);

function init() {
	// default text colour
	style.color = "black";

	// escape character
	parser.escapeChar = "\\";

	// comments
	parser.add(PYLINE_COMMENT, "color:green");
	parser.add(PYBLOCK_COMMENT1, "color:green; font-weight:bold;");
    parser.add(PYBLOCK_COMMENT2, "color:green; font-weight:bold;");

    //python decorators
	parser.add(DECORATOR, "color:orange;font-weight:bold;");

	// regular expressions
	parser.add(/([^\w\$\/'"*)])(\/[^\/\n\r\*][^\/\n\r]*\/g?i?)/, "color:maroon", "$2&lt;span&gt;$3&lt;/span&gt;");

	// strings
	parser.add(STRING1, "color:maroon");
	parser.add(STRING2, "color:maroon");

	// numbers
	parser.add(NUMBER, "color:maroon");

	// urls/email
	urls = true;
	email = true;

	tabStop = 4;

	// python builtins
	parser.add(BUILTIN, "color:teal; font-weight:bold;");

    // python reserved words
	parser.add(RESERVED, "color:blue; font-weight:bold");

    // python punctuation:
    parser.add(PUNCTUATION, "color:red;font-weight:bold");

    // other:
	parser.add(/\w+/, "color:black");

};

//]]&gt;
&lt;/script&gt;
&lt;/public:component&gt;
</code></pre>
<p>Tags: <a href="http://tadhg.com/wp/tag/blog/" rel="tag">Blog</a>, <a href="http://tadhg.com/wp/tag/coding/" rel="tag">coding</a>, <a href="http://tadhg.com/wp/tag/javascript/" rel="tag">JavaScript</a>, <a href="http://tadhg.com/wp/tag/python/" rel="tag">python</a>, <a href="http://tadhg.com/wp/tag/web-development/" rel="tag">web-development</a></p><h4 class='related-posts-header'>Related Posts</h4><ul class="related-posts-list"><li class="related-post"><a href="http://tadhg.com/wp/2008/01/27/some-minor-software-projects/">Some Minor Software Projects</a> <span class="related-post-date timestamp">Sun 27 Jan 2008</span></li><li class="related-post"><a href="http://tadhg.com/wp/2008/01/15/sfmagicorg-rewrite-planning-data-entry/">sfmagic.org Rewrite: Planning Data Entry</a> <span class="related-post-date timestamp">Tue 15 Jan 2008</span></li><li class="related-post"><a href="http://tadhg.com/wp/2008/01/08/sfmagicorg-rewrite-stalledgraphs/">sfmagic.org Rewrite: Stalled/Graphs</a> <span class="related-post-date timestamp">Tue 08 Jan 2008</span></li><li class="related-post"><a href="http://tadhg.com/wp/2010/01/21/jquery-project/">jQuery Project</a> <span class="related-post-date timestamp">Thu 21 Jan 2010</span></li><li class="related-post"><a href="http://tadhg.com/wp/2010/01/10/wordpress-2-9-upgrade/">WordPress 2.9 Upgrade</a> <span class="related-post-date timestamp">Sun 10 Jan 2010</span></li><li class="related-post"><a href="http://tadhg.com/wp/2009/12/08/gps-urls-math-python-featuritis/">GPS, URLs, Math, Python, Featuritis</a> <span class="related-post-date timestamp">Tue 08 Dec 2009</span></li><li class="related-post"><a href="http://tadhg.com/wp/2009/11/17/addons-mozilla-org-moving-from-cakephp-to-django/">addons.mozilla.org Moving from CakePHP to Django</a> <span class="related-post-date timestamp">Tue 17 Nov 2009</span></li><li class="related-post"><a href="http://tadhg.com/wp/2009/10/11/some-javascript-programming-patterns/">Some JavaScript Programming Patterns</a> <span class="related-post-date timestamp">Sun 11 Oct 2009</span></li><li class="related-post"><a href="http://tadhg.com/wp/2009/07/28/better-rest-wordpress-pipeline/">Better reST–WordPress Pipeline</a> <span class="related-post-date timestamp">Tue 28 Jul 2009</span></li><li class="related-post"><a href="http://tadhg.com/wp/2009/07/16/some-character-encoding-gotchas/">Some Character Encoding Gotchas</a> <span class="related-post-date timestamp">Thu 16 Jul 2009</span></li></ul>]]></content:encoded>
			<wfw:commentRss>http://tadhg.com/wp/2009/06/26/python-syntax-highlighting-for-star-light/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WordPress 2.8 Upgrade</title>
		<link>http://tadhg.com/wp/2009/06/14/wordpress-2-8-upgrade/</link>
		<comments>http://tadhg.com/wp/2009/06/14/wordpress-2-8-upgrade/#comments</comments>
		<pubDate>Mon, 15 Jun 2009 01:44:08 +0000</pubDate>
		<dc:creator>Tadhg</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[coding]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[tech]]></category>
		<category><![CDATA[web-development]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://tadhg.com/wp/?p=1796</guid>
		<description><![CDATA[Today I upgraded this blog to WordPress 2.8, a relatively smooth process. I ran into completely unrelated problems (hitting the process limit for my shell account) that derailed things for a while, but the WordPress upgrade itself was smooth.
I use Subversion to upgrade, first using
svn export --force http://core.svn.wordpress.org/tags/2.8/ . 
in my development environment, seeing if [...]]]></description>
			<content:encoded><![CDATA[<p>Today I upgraded this blog to <a href="http://codex.wordpress.org/Version_2.8">WordPress 2.8</a>, a relatively smooth process. I ran into completely unrelated problems (hitting the process limit for my shell account) that derailed things for a while, but the WordPress upgrade itself was smooth.</p>
<p>I use <a href="http://subversion.tigris.org/">Subversion</a> to upgrade, first using<br />
<code>svn export --force http://core.svn.wordpress.org/tags/2.8/ . </code><br />
in my <a href="http://tadhg.com/wp/2009/02/13/my-wordpress-development-setup/">development environment</a>, seeing if things look okay there, then checking in the 2.8 changes to my own repository (the only niggly part because I neglected to clean the dev environment of changes before the export, so I had to look through things to see what was part of the upgrade), backing up my live database, and then checking the changes out to the live environment. It all looks fine, and hopefully will continue to function normally.</p>
<p>Tags: <a href="http://tadhg.com/wp/tag/blog/" rel="tag">Blog</a>, <a href="http://tadhg.com/wp/tag/coding/" rel="tag">coding</a>, <a href="http://tadhg.com/wp/tag/php/" rel="tag">PHP</a>, <a href="http://tadhg.com/wp/tag/tech/" rel="tag">tech</a>, <a href="http://tadhg.com/wp/tag/web-development/" rel="tag">web-development</a>, <a href="http://tadhg.com/wp/tag/wordpress/" rel="tag">WordPress</a></p><h4 class='related-posts-header'>Related Posts</h4><ul class="related-posts-list"><li class="related-post"><a href="http://tadhg.com/wp/2010/01/10/wordpress-2-9-upgrade/">WordPress 2.9 Upgrade</a> <span class="related-post-date timestamp">Sun 10 Jan 2010</span></li><li class="related-post"><a href="http://tadhg.com/wp/2009/03/23/wp-plugins-recent-commentary-and-show-tags-in-rss/">WP Plugins: Recent Commentary and Show Tags in RSS</a> <span class="related-post-date timestamp">Mon 23 Mar 2009</span></li><li class="related-post"><a href="http://tadhg.com/wp/2009/03/19/some-rss-changes/">Some RSS Changes</a> <span class="related-post-date timestamp">Thu 19 Mar 2009</span></li><li class="related-post"><a href="http://tadhg.com/wp/2009/02/23/new-blog-functionality-recent-commentary/">New Blog Functionality: Recent Commentary</a> <span class="related-post-date timestamp">Mon 23 Feb 2009</span></li><li class="related-post"><a href="http://tadhg.com/wp/2009/02/13/my-wordpress-development-setup/">My WordPress Development Setup</a> <span class="related-post-date timestamp">Fri 13 Feb 2009</span></li><li class="related-post"><a href="http://tadhg.com/wp/2009/07/28/better-rest-wordpress-pipeline/">Better reST–WordPress Pipeline</a> <span class="related-post-date timestamp">Tue 28 Jul 2009</span></li><li class="related-post"><a href="http://tadhg.com/wp/2009/07/14/blog-workflow-with-restructuredtext/">Blog Workflow with reStructuredText</a> <span class="related-post-date timestamp">Tue 14 Jul 2009</span></li><li class="related-post"><a href="http://tadhg.com/wp/2009/02/10/related-posts-plugin-and-sql-trickery/">Related Posts Plugin and SQL Trickery</a> <span class="related-post-date timestamp">Tue 10 Feb 2009</span></li><li class="related-post"><a href="http://tadhg.com/wp/2009/11/10/html-past-and-future/">HTML Past and Future</a> <span class="related-post-date timestamp">Tue 10 Nov 2009</span></li><li class="related-post"><a href="http://tadhg.com/wp/2009/09/10/404-pages/">404 Pages</a> <span class="related-post-date timestamp">Thu 10 Sep 2009</span></li></ul>]]></content:encoded>
			<wfw:commentRss>http://tadhg.com/wp/2009/06/14/wordpress-2-8-upgrade/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>1000th Post</title>
		<link>http://tadhg.com/wp/2009/05/26/1000th-post/</link>
		<comments>http://tadhg.com/wp/2009/05/26/1000th-post/#comments</comments>
		<pubDate>Tue, 26 May 2009 22:26:49 +0000</pubDate>
		<dc:creator>Tadhg</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[personal]]></category>
		<category><![CDATA[writing]]></category>

		<guid isPermaLink="false">http://tadhg.com/wp/?p=1735</guid>
		<description><![CDATA[This is the thousandth published post on this site. It&#8217;s not the thousandth blog entry per se, since some of the entries on this site predate the blog (some predate the site itself, and indeed my awareness of the web). Still, it&#8217;s a fairly major milestone, and (working off a suggestion of Jeff&#8217;s) I used [...]]]></description>
			<content:encoded><![CDATA[<p>This is the thousandth published post on this site. It&#8217;s not the thousandth blog entry per se, since some of the entries on this site predate the blog (some predate the site itself, and indeed my awareness of the web). Still, it&#8217;s a fairly major milestone, and (working off a suggestion of <a href="http://testingjeff.wordpress.com/">Jeff</a>&#8217;s) I used <a href="http://www.wordle.net/">Wordle</a> to create a kind of commemorative graphic.<br />
<span id="more-1735"></span><br />
Jeff originally suggested feeding the text of all my posts into Wordle, but that would have been three megs (almost 500,000 words) of text, so I didn&#8217;t think that was really going to work. Instead, I fed it all the post tags, resulting in this:</p>
<p><a href="/images/tags_for_1000th_post.png" title="Tags for 999 posts" class="thickbox" rel="gallery"><img src="/images/tn_tags_for_1000th_post.png" alt="Tags for 999 posts" /></a></p>
<p>There you have it, a representation of what I&#8217;ve been focused on for the preceding 999 posts.</p>
<p>Here&#8217;s the same information in list form, all 171 different tags, doubtless including some typos, duplicates, and other things that might not belong:</p>
<ul>
<li><a href="http://tadhg.com/wp/tag/politics">politics</a>: 249</li>
<li><a href="http://tadhg.com/wp/tag/writing">writing</a>: 247</li>
<li><a href="http://tadhg.com/wp/tag/personal">personal</a>: 200</li>
<li><a href="http://tadhg.com/wp/tag/fiction">fiction</a>: 135</li>
<li><a href="http://tadhg.com/wp/tag/tech">tech</a>: 106</li>
<li><a href="http://tadhg.com/wp/tag/web-development">web-development</a>: 95</li>
<li><a href="http://tadhg.com/wp/tag/coding">coding</a>: 92</li>
<li><a href="http://tadhg.com/wp/tag/science-fiction">science-fiction</a>: 91</li>
<li><a href="http://tadhg.com/wp/tag/psychology">psychology</a>: 89</li>
<li><a href="http://tadhg.com/wp/tag/games">games</a>: 83</li>
<li><a href="http://tadhg.com/wp/tag/novel">novel</a>: 78</li>
<li><a href="http://tadhg.com/wp/tag/power">power</a>: 74</li>
<li><a href="http://tadhg.com/wp/tag/consciousness">consciousness</a>: 69</li>
<li><a href="http://tadhg.com/wp/tag/economics">economics</a>: 64</li>
<li><a href="http://tadhg.com/wp/tag/microfiction">microfiction</a>: 64</li>
<li><a href="http://tadhg.com/wp/tag/television">television</a>: 60</li>
<li><a href="http://tadhg.com/wp/tag/books">books</a>: 60</li>
<li><a href="http://tadhg.com/wp/tag/humor">humor</a>: 59</li>
<li><a href="http://tadhg.com/wp/tag/criticism">criticism</a>: 58</li>
<li><a href="http://tadhg.com/wp/tag/law">law</a>: 56</li>
<li><a href="http://tadhg.com/wp/tag/culture">culture</a>: 56</li>
<li><a href="http://tadhg.com/wp/tag/reading">reading</a>: 52</li>
<li><a href="http://tadhg.com/wp/tag/reviews">reviews</a>: 48</li>
<li><a href="http://tadhg.com/wp/tag/MTG">MTG</a>: 45</li>
<li><a href="http://tadhg.com/wp/tag/film">film</a>: 43</li>
<li><a href="http://tadhg.com/wp/tag/video">video</a>: 38</li>
<li><a href="http://tadhg.com/wp/tag/fantasy-bedtime-hour">fantasy-bedtime-hour</a>: 38</li>
<li><a href="http://tadhg.com/wp/tag/annotated-fantasy-bedtime-hour">annotated-fantasy-bedtime-hour</a>: 37</li>
<li><a href="http://tadhg.com/wp/tag/JavaScript">JavaScript</a>: 34</li>
<li><a href="http://tadhg.com/wp/tag/sports">sports</a>: 33</li>
<li><a href="http://tadhg.com/wp/tag/software">software</a>: 33</li>
<li><a href="http://tadhg.com/wp/tag/san-francisco">san-francisco</a>: 31</li>
<li><a href="http://tadhg.com/wp/tag/philosophy">philosophy</a>: 28</li>
<li><a href="http://tadhg.com/wp/tag/e-prime">e-prime</a>: 26</li>
<li><a href="http://tadhg.com/wp/tag/python">python</a>: 24</li>
<li><a href="http://tadhg.com/wp/tag/Blog">Blog</a>: 23</li>
<li><a href="http://tadhg.com/wp/tag/religion">religion</a>: 23</li>
<li><a href="http://tadhg.com/wp/tag/tennis">tennis</a>: 22</li>
<li><a href="http://tadhg.com/wp/tag/consumerism">consumerism</a>: 21</li>
<li><a href="http://tadhg.com/wp/tag/design">design</a>: 20</li>
<li><a href="http://tadhg.com/wp/tag/short-fiction">short-fiction</a>: 17</li>
<li><a href="http://tadhg.com/wp/tag/travel">travel</a>: 16</li>
<li><a href="http://tadhg.com/wp/tag/organization">organization</a>: 15</li>
<li><a href="http://tadhg.com/wp/tag/WordPress">WordPress</a>: 15</li>
<li><a href="http://tadhg.com/wp/tag/photos">photos</a>: 15</li>
<li><a href="http://tadhg.com/wp/tag/web-surfing">web-surfing</a>: 15</li>
<li><a href="http://tadhg.com/wp/tag/fantasy">fantasy</a>: 14</li>
<li><a href="http://tadhg.com/wp/tag/comics">comics</a>: 14</li>
<li><a href="http://tadhg.com/wp/tag/media">media</a>: 13</li>
<li><a href="http://tadhg.com/wp/tag/free-speech">free-speech</a>: 13</li>
<li><a href="http://tadhg.com/wp/tag/copyright">copyright</a>: 13</li>
<li><a href="http://tadhg.com/wp/tag/driving">driving</a>: 13</li>
<li><a href="http://tadhg.com/wp/tag/article">article</a>: 13</li>
<li><a href="http://tadhg.com/wp/tag/language">language</a>: 12</li>
<li><a href="http://tadhg.com/wp/tag/work">work</a>: 12</li>
<li><a href="http://tadhg.com/wp/tag/textual">textual</a>: 11</li>
<li><a href="http://tadhg.com/wp/tag/anarchism">anarchism</a>: 11</li>
<li><a href="http://tadhg.com/wp/tag/music">music</a>: 11</li>
<li><a href="http://tadhg.com/wp/tag/censorship">censorship</a>: 10</li>
<li><a href="http://tadhg.com/wp/tag/history">history</a>: 10</li>
<li><a href="http://tadhg.com/wp/tag/creativity">creativity</a>: 9</li>
<li><a href="http://tadhg.com/wp/tag/education">education</a>: 9</li>
<li><a href="http://tadhg.com/wp/tag/poetry">poetry</a>: 9</li>
<li><a href="http://tadhg.com/wp/tag/dublin">dublin</a>: 8</li>
<li><a href="http://tadhg.com/wp/tag/uselection2008">uselection2008</a>: 8</li>
<li><a href="http://tadhg.com/wp/tag/racism">racism</a>: 8</li>
<li><a href="http://tadhg.com/wp/tag/cycling">cycling</a>: 8</li>
<li><a href="http://tadhg.com/wp/tag/oldmisc">oldmisc</a>: 7</li>
<li><a href="http://tadhg.com/wp/tag/comedy">comedy</a>: 7</li>
<li><a href="http://tadhg.com/wp/tag/ireland">ireland</a>: 7</li>
<li><a href="http://tadhg.com/wp/tag/usability">usability</a>: 6</li>
<li><a href="http://tadhg.com/wp/tag/database">database</a>: 6</li>
<li><a href="http://tadhg.com/wp/tag/drafting">drafting</a>: 6</li>
<li><a href="http://tadhg.com/wp/tag/abstract">abstract</a>: 6</li>
<li><a href="http://tadhg.com/wp/tag/community">community</a>: 6</li>
<li><a href="http://tadhg.com/wp/tag/pafib">pafib</a>: 6</li>
<li><a href="http://tadhg.com/wp/tag/happiness">happiness</a>: 6</li>
<li><a href="http://tadhg.com/wp/tag/essays">essays</a>: 6</li>
<li><a href="http://tadhg.com/wp/tag/version-control">version-control</a>: 6</li>
<li><a href="http://tadhg.com/wp/tag/existentialism">existentialism</a>: 6</li>
<li><a href="http://tadhg.com/wp/tag/mysites">mysites</a>: 5</li>
<li><a href="http://tadhg.com/wp/tag/human-survival">human-survival</a>: 5</li>
<li><a href="http://tadhg.com/wp/tag/SQL">SQL</a>: 5</li>
<li><a href="http://tadhg.com/wp/tag/Sartre">Sartre</a>: 5</li>
<li><a href="http://tadhg.com/wp/tag/semantic-web">semantic-web</a>: 5</li>
<li><a href="http://tadhg.com/wp/tag/flow">flow</a>: 5</li>
<li><a href="http://tadhg.com/wp/tag/food">food</a>: 5</li>
<li><a href="http://tadhg.com/wp/tag/freebase">freebase</a>: 5</li>
<li><a href="http://tadhg.com/wp/tag/advertising">advertising</a>: 5</li>
<li><a href="http://tadhg.com/wp/tag/PHP">PHP</a>: 5</li>
<li><a href="http://tadhg.com/wp/tag/feminism">feminism</a>: 4</li>
<li><a href="http://tadhg.com/wp/tag/photography">photography</a>: 4</li>
<li><a href="http://tadhg.com/wp/tag/Discordianism">Discordianism</a>: 4</li>
<li><a href="http://tadhg.com/wp/tag/constructed-decks">constructed-decks</a>: 4</li>
<li><a href="http://tadhg.com/wp/tag/Mirrodin">Mirrodin</a>: 4</li>
<li><a href="http://tadhg.com/wp/tag/war">war</a>: 3</li>
<li><a href="http://tadhg.com/wp/tag/Q3A">Q3A</a>: 3</li>
<li><a href="http://tadhg.com/wp/tag/email">email</a>: 3</li>
<li><a href="http://tadhg.com/wp/tag/weather">weather</a>: 3</li>
<li><a href="http://tadhg.com/wp/tag/phone">phone</a>: 3</li>
<li><a href="http://tadhg.com/wp/tag/handedness">handedness</a>: 3</li>
<li><a href="http://tadhg.com/wp/tag/gender">gender</a>: 3</li>
<li><a href="http://tadhg.com/wp/tag/science">science</a>: 3</li>
<li><a href="http://tadhg.com/wp/tag/transport">transport</a>: 3</li>
<li><a href="http://tadhg.com/wp/tag/health">health</a>: 2</li>
<li><a href="http://tadhg.com/wp/tag/FPS">FPS</a>: 2</li>
<li><a href="http://tadhg.com/wp/tag/baseball">baseball</a>: 2</li>
<li><a href="http://tadhg.com/wp/tag/CrossFit">CrossFit</a>: 2</li>
<li><a href="http://tadhg.com/wp/tag/Nimblefish">Nimblefish</a>: 2</li>
<li><a href="http://tadhg.com/wp/tag/politcs">politcs</a>: 2</li>
<li><a href="http://tadhg.com/wp/tag/roleplaying">roleplaying</a>: 2</li>
<li><a href="http://tadhg.com/wp/tag/sex">sex</a>: 2</li>
<li><a href="http://tadhg.com/wp/tag/animation">animation</a>: 2</li>
<li><a href="http://tadhg.com/wp/tag/spam">spam</a>: 2</li>
<li><a href="http://tadhg.com/wp/tag/blogging">blogging</a>: 2</li>
<li><a href="http://tadhg.com/wp/tag/genre">genre</a>: 2</li>
<li><a href="http://tadhg.com/wp/tag/identity">identity</a>: 2</li>
<li><a href="http://tadhg.com/wp/tag/distraction">distraction</a>: 2</li>
<li><a href="http://tadhg.com/wp/tag/artificial-intelligence">artificial-intelligence</a>: 2</li>
<li><a href="http://tadhg.com/wp/tag/theater">theater</a>: 2</li>
<li><a href="http://tadhg.com/wp/tag/math">math</a>: 2</li>
<li><a href="http://tadhg.com/wp/tag/short-story">short-story</a>: 2</li>
<li><a href="http://tadhg.com/wp/tag/financial">financial</a>: 2</li>
<li><a href="http://tadhg.com/wp/tag/audio">audio</a>: 2</li>
<li><a href="http://tadhg.com/wp/tag/exercise">exercise</a>: 2</li>
<li><a href="http://tadhg.com/wp/tag/morning-pages">morning-pages</a>: 2</li>
<li><a href="http://tadhg.com/wp/tag/tournament-report">tournament-report</a>: 2</li>
<li><a href="http://tadhg.com/wp/tag/dreams">dreams</a>: 2</li>
<li><a href="http://tadhg.com/wp/tag/philosphy">philosphy</a>: 1</li>
<li><a href="http://tadhg.com/wp/tag/prejudice">prejudice</a>: 1</li>
<li><a href="http://tadhg.com/wp/tag/celebrity">celebrity</a>: 1</li>
<li><a href="http://tadhg.com/wp/tag/propaganda">propaganda</a>: 1</li>
<li><a href="http://tadhg.com/wp/tag/football">football</a>: 1</li>
<li><a href="http://tadhg.com/wp/tag/Twitter">Twitter</a>: 1</li>
<li><a href="http://tadhg.com/wp/tag/sleep">sleep</a>: 1</li>
<li><a href="http://tadhg.com/wp/tag/Chandler">Chandler</a>: 1</li>
<li><a href="http://tadhg.com/wp/tag/animals">animals</a>: 1</li>
<li><a href="http://tadhg.com/wp/tag/pool">pool</a>: 1</li>
<li><a href="http://tadhg.com/wp/tag/snooker">snooker</a>: 1</li>
<li><a href="http://tadhg.com/wp/tag/society">society</a>: 1</li>
<li><a href="http://tadhg.com/wp/tag/photocommentary">photocommentary</a>: 1</li>
<li><a href="http://tadhg.com/wp/tag/PURL">PURL</a>: 1</li>
<li><a href="http://tadhg.com/wp/tag/Iain-Banks">Iain-Banks</a>: 1</li>
<li><a href="http://tadhg.com/wp/tag/Iain-M.-Banks">Iain-M.-Banks</a>: 1</li>
<li><a href="http://tadhg.com/wp/tag/winter">winter</a>: 1</li>
<li><a href="http://tadhg.com/wp/tag/space">space</a>: 1</li>
<li><a href="http://tadhg.com/wp/tag/interview">interview</a>: 1</li>
<li><a href="http://tadhg.com/wp/tag/typing">typing</a>: 1</li>
<li><a href="http://tadhg.com/wp/tag/logic">logic</a>: 1</li>
<li><a href="http://tadhg.com/wp/tag/probability">probability</a>: 1</li>
<li><a href="http://tadhg.com/wp/tag/noir">noir</a>: 1</li>
<li><a href="http://tadhg.com/wp/tag/berlin">berlin</a>: 1</li>
<li><a href="http://tadhg.com/wp/tag/Ice-Age">Ice-Age</a>: 1</li>
<li><a href="http://tadhg.com/wp/tag/nationality">nationality</a>: 1</li>
<li><a href="http://tadhg.com/wp/tag/non-fiction">non-fiction</a>: 1</li>
<li><a href="http://tadhg.com/wp/tag/seamless">seamless</a>: 1</li>
<li><a href="http://tadhg.com/wp/tag/shell-scripting">shell-scripting</a>: 1</li>
<li><a href="http://tadhg.com/wp/tag/anthropology">anthropology</a>: 1</li>
<li><a href="http://tadhg.com/wp/tag/dance">dance</a>: 1</li>
<li><a href="http://tadhg.com/wp/tag/irish">irish</a>: 1</li>
<li><a href="http://tadhg.com/wp/tag/family">family</a>: 1</li>
<li><a href="http://tadhg.com/wp/tag/chess">chess</a>: 1</li>
<li><a href="http://tadhg.com/wp/tag/property">property</a>: 1</li>
<li><a href="http://tadhg.com/wp/tag/Csikszentmihalyi">Csikszentmihalyi</a>: 1</li>
<li><a href="http://tadhg.com/wp/tag/metadata">metadata</a>: 1</li>
<li><a href="http://tadhg.com/wp/tag/status">status</a>: 1</li>
<li><a href="http://tadhg.com/wp/tag/hardware">hardware</a>: 1</li>
<li><a href="http://tadhg.com/wp/tag/poe">poe</a>: 1</li>
<li><a href="http://tadhg.com/wp/tag/gilman">gilman</a>: 1</li>
<li><a href="http://tadhg.com/wp/tag/obsolete">obsolete</a>: 1</li>
<li><a href="http://tadhg.com/wp/tag/snippet">snippet</a>: 1</li>
</li>
<p>Tags: <a href="http://tadhg.com/wp/tag/blog/" rel="tag">Blog</a>, <a href="http://tadhg.com/wp/tag/personal/" rel="tag">personal</a>, <a href="http://tadhg.com/wp/tag/writing/" rel="tag">writing</a></p><h4 class='related-posts-header'>Related Posts</h4><ul class="related-posts-list"><li class="related-post"><a href="http://tadhg.com/wp/2009/12/29/2009-goals-review/">2009 Goals Review</a> <span class="related-post-date timestamp">Tue 29 Dec 2009</span></li><li class="related-post"><a href="http://tadhg.com/wp/2009/07/30/2009-goals-status/">2009 Goals Status</a> <span class="related-post-date timestamp">Thu 30 Jul 2009</span></li><li class="related-post"><a href="http://tadhg.com/wp/2009/01/01/2009-goals/">2009 Goals</a> <span class="related-post-date timestamp">Thu 01 Jan 2009</span></li><li class="related-post"><a href="http://tadhg.com/wp/2007/12/11/some-medium-term-plans/">Some Medium-Term Plans</a> <span class="related-post-date timestamp">Tue 11 Dec 2007</span></li><li class="related-post"><a href="http://tadhg.com/wp/2007/08/05/musings-on-blogging/">Musings on Blogging</a> <span class="related-post-date timestamp">Sun 05 Aug 2007</span></li><li class="related-post"><a href="http://tadhg.com/wp/2007/08/01/august-2007-blogging-year-in-review/">August 2007: Blogging Year in Review</a> <span class="related-post-date timestamp">Wed 01 Aug 2007</span></li><li class="related-post"><a href="http://tadhg.com/wp/2007/05/01/thematic-consideration/">Thematic Consideration</a> <span class="related-post-date timestamp">Tue 01 May 2007</span></li><li class="related-post"><a href="http://tadhg.com/wp/2007/03/02/februarymarch-blogging/">February/March Blogging</a> <span class="related-post-date timestamp">Fri 02 Mar 2007</span></li><li class="related-post"><a href="http://tadhg.com/wp/2007/01/31/six-months-of-blogging/">Six Months of Blogging</a> <span class="related-post-date timestamp">Wed 31 Jan 2007</span></li><li class="related-post"><a href="http://tadhg.com/wp/2007/01/01/decemberjanuary-blogging/">December/January Blogging</a> <span class="related-post-date timestamp">Mon 01 Jan 2007</span></li></ul>]]></content:encoded>
			<wfw:commentRss>http://tadhg.com/wp/2009/05/26/1000th-post/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Fiction Organization</title>
		<link>http://tadhg.com/wp/2009/05/24/fiction-organization/</link>
		<comments>http://tadhg.com/wp/2009/05/24/fiction-organization/#comments</comments>
		<pubDate>Sun, 24 May 2009 23:04:21 +0000</pubDate>
		<dc:creator>Tadhg</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[fiction]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[writing]]></category>

		<guid isPermaLink="false">http://tadhg.com/wp/?p=1723</guid>
		<description><![CDATA[I made a WordPress page containing a list of all the fiction I&#8217;ve published on this blog. I had to do this by hand, because it appears difficult to get a reasonable list using various WordPress approaches (such as tags). The page I created is hardly a masterpiece of user interface design (I hope to [...]]]></description>
			<content:encoded><![CDATA[<p>I made a WordPress page containing a <a href="http://tadhg.com/wp/fiction/" title="Fiction Index">list of all the fiction I&#8217;ve published on this blog</a>. I had to do this by hand, because it appears difficult to get a reasonable list using various WordPress approaches (such as tags). The page I created is hardly a masterpiece of user interface design (I hope to improve it significantly over time), but it&#8217;s better than what was there previously.<br />
<span id="more-1723"></span><br />
I will end up making it more complicated from a code point of view, because I want to be able to display by each link the publication date and some of the tags of the piece&#8212;and I don&#8217;t want to have to edit those by hand. This mix of manual selection and arbitrary tagging isn&#8217;t handled very well by the current WordPress functionality, which isn&#8217;t that surprising. I did think it would be slightly easier to achieve than it looks like it will be, however.</p>
<p>The series plugin I hope to write at some point would address some of the issues, by making it easy to get a list of links to each piece in a series, but even that wouldn&#8217;t address the lists that aren&#8217;t series.</p>
<p>One of the problems is with tagging. Partly it&#8217;s a nomenclature/overloading issue: I use the &#8220;fiction&#8221; and &#8220;writing&#8221; tags to mean not just my fiction and writing, but also the works of others and commentary on fiction and writing. For some reason the notion of a &#8220;my fiction&#8221; tag is unappealing to me.</p>
<p>The notion of a &#8220;my favorites&#8221; tag even less appealing. I don&#8217;t mind putting together a list of the pieces that I&#8217;m most happy with, but somehow tagging each one of them as a favorite seems extremely cheesy. That might be nomenclature again, and I could perhaps get around it somehow by having a less cloying name for the tag. I need to think about that one further and see if I can figure out just what the problem is.</p>
<p>Until I do, though, having all of my fiction work handily linked from one page is a significant advance (the power of HTML!). <a href="http://tadhg.com/wp/fiction/" title="Fiction Index">Use it to find stories of mine</a> to read or re-read&#8212;and, hopefully, enjoy.</a></p>
<p>Tags: <a href="http://tadhg.com/wp/tag/blog/" rel="tag">Blog</a>, <a href="http://tadhg.com/wp/tag/fiction/" rel="tag">fiction</a>, <a href="http://tadhg.com/wp/tag/wordpress/" rel="tag">WordPress</a>, <a href="http://tadhg.com/wp/tag/writing/" rel="tag">writing</a></p><h4 class='related-posts-header'>Related Posts</h4><ul class="related-posts-list"><li class="related-post"><a href="http://tadhg.com/wp/2010/01/10/wordpress-2-9-upgrade/">WordPress 2.9 Upgrade</a> <span class="related-post-date timestamp">Sun 10 Jan 2010</span></li><li class="related-post"><a href="http://tadhg.com/wp/2009/12/29/2009-goals-review/">2009 Goals Review</a> <span class="related-post-date timestamp">Tue 29 Dec 2009</span></li><li class="related-post"><a href="http://tadhg.com/wp/2009/07/31/title-capitalization/">Title Capitalization</a> <span class="related-post-date timestamp">Fri 31 Jul 2009</span></li><li class="related-post"><a href="http://tadhg.com/wp/2009/07/30/2009-goals-status/">2009 Goals Status</a> <span class="related-post-date timestamp">Thu 30 Jul 2009</span></li><li class="related-post"><a href="http://tadhg.com/wp/2009/06/14/wordpress-2-8-upgrade/">WordPress 2.8 Upgrade</a> <span class="related-post-date timestamp">Sun 14 Jun 2009</span></li><li class="related-post"><a href="http://tadhg.com/wp/2009/05/26/1000th-post/">1000th Post</a> <span class="related-post-date timestamp">Tue 26 May 2009</span></li><li class="related-post"><a href="http://tadhg.com/wp/2009/05/22/pafib-6/">pafib #6</a> <span class="related-post-date timestamp">Fri 22 May 2009</span></li><li class="related-post"><a href="http://tadhg.com/wp/2009/04/07/bad-behavior-plugin/">Bad Behavior Plugin</a> <span class="related-post-date timestamp">Tue 07 Apr 2009</span></li><li class="related-post"><a href="http://tadhg.com/wp/2009/03/23/wp-plugins-recent-commentary-and-show-tags-in-rss/">WP Plugins: Recent Commentary and Show Tags in RSS</a> <span class="related-post-date timestamp">Mon 23 Mar 2009</span></li><li class="related-post"><a href="http://tadhg.com/wp/2009/03/19/some-rss-changes/">Some RSS Changes</a> <span class="related-post-date timestamp">Thu 19 Mar 2009</span></li></ul>]]></content:encoded>
			<wfw:commentRss>http://tadhg.com/wp/2009/05/24/fiction-organization/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Bad Behavior Plugin</title>
		<link>http://tadhg.com/wp/2009/04/07/bad-behavior-plugin/</link>
		<comments>http://tadhg.com/wp/2009/04/07/bad-behavior-plugin/#comments</comments>
		<pubDate>Tue, 07 Apr 2009 18:55:14 +0000</pubDate>
		<dc:creator>Tadhg</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://tadhg.com/wp/?p=1567</guid>
		<description><![CDATA[The various blog moves and reworkings seemed to reduce the amount of comment spam I was getting, but now it&#8217;s gotten out of hand once more, so I&#8217;m resuming the use of the Bad Behavior WordPress plugin. Hopefully this isn&#8217;t something any legitimate readers or commenters will notice, but if for some reason you find [...]]]></description>
			<content:encoded><![CDATA[<p>The various blog moves and reworkings seemed to reduce the amount of comment spam I was getting, but now it&#8217;s gotten out of hand once more, so I&#8217;m resuming the use of the <a href="http://wordpress.org/extend/plugins/bad-behavior/">Bad Behavior</a> WordPress plugin. Hopefully this isn&#8217;t something any legitimate readers or commenters will notice, but if for some reason you find it affecting you, please let me know via email.</p>
<p>Tags: <a href="http://tadhg.com/wp/tag/blog/" rel="tag">Blog</a>, <a href="http://tadhg.com/wp/tag/wordpress/" rel="tag">WordPress</a></p><h4 class='related-posts-header'>Related Posts</h4><ul class="related-posts-list"><li class="related-post"><a href="http://tadhg.com/wp/2010/01/10/wordpress-2-9-upgrade/">WordPress 2.9 Upgrade</a> <span class="related-post-date timestamp">Sun 10 Jan 2010</span></li><li class="related-post"><a href="http://tadhg.com/wp/2009/06/14/wordpress-2-8-upgrade/">WordPress 2.8 Upgrade</a> <span class="related-post-date timestamp">Sun 14 Jun 2009</span></li><li class="related-post"><a href="http://tadhg.com/wp/2009/05/24/fiction-organization/">Fiction Organization</a> <span class="related-post-date timestamp">Sun 24 May 2009</span></li><li class="related-post"><a href="http://tadhg.com/wp/2009/03/23/wp-plugins-recent-commentary-and-show-tags-in-rss/">WP Plugins: Recent Commentary and Show Tags in RSS</a> <span class="related-post-date timestamp">Mon 23 Mar 2009</span></li><li class="related-post"><a href="http://tadhg.com/wp/2009/03/19/some-rss-changes/">Some RSS Changes</a> <span class="related-post-date timestamp">Thu 19 Mar 2009</span></li><li class="related-post"><a href="http://tadhg.com/wp/2009/02/23/new-blog-functionality-recent-commentary/">New Blog Functionality: Recent Commentary</a> <span class="related-post-date timestamp">Mon 23 Feb 2009</span></li><li class="related-post"><a href="http://tadhg.com/wp/2009/02/12/twitter-experimentation/">Twitter Experimentation</a> <span class="related-post-date timestamp">Thu 12 Feb 2009</span></li><li class="related-post"><a href="http://tadhg.com/wp/2009/02/01/new-blog-functionality-related-posts/">New Blog Functionality: Related Posts</a> <span class="related-post-date timestamp">Sun 01 Feb 2009</span></li><li class="related-post"><a href="http://tadhg.com/wp/2009/12/29/2009-goals-review/">2009 Goals Review</a> <span class="related-post-date timestamp">Tue 29 Dec 2009</span></li><li class="related-post"><a href="http://tadhg.com/wp/2009/09/10/404-pages/">404 Pages</a> <span class="related-post-date timestamp">Thu 10 Sep 2009</span></li></ul>]]></content:encoded>
			<wfw:commentRss>http://tadhg.com/wp/2009/04/07/bad-behavior-plugin/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WP Plugins: Recent Commentary and Show Tags in RSS</title>
		<link>http://tadhg.com/wp/2009/03/23/wp-plugins-recent-commentary-and-show-tags-in-rss/</link>
		<comments>http://tadhg.com/wp/2009/03/23/wp-plugins-recent-commentary-and-show-tags-in-rss/#comments</comments>
		<pubDate>Tue, 24 Mar 2009 03:38:25 +0000</pubDate>
		<dc:creator>Tadhg</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[coding]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[tech]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://tadhg.com/wp/?p=1516</guid>
		<description><![CDATA[I finally got around to writing up docs for, and then packaging, the two WordPress plugins I&#8217;ve finished recently:

Recent Commentary Widget, which contains the code used for the current comments sidebar on the main page and which I described here.
Show Tags in RSS, which adds a list of the tags for a post to the [...]]]></description>
			<content:encoded><![CDATA[<p>I finally got around to writing up docs for, and then packaging, the two WordPress plugins I&#8217;ve finished recently:</p>
<ul>
<li><a href="http://tadhg.com/wp/wordpress-plugins/recent-commentary-widget/">Recent Commentary Widget</a>, which contains the code used for the current comments sidebar on the main page and which I <a href="http://tadhg.com/wp/2009/02/23/new-blog-functionality-recent-commentary/" title="New Blog Functionality: Recent Commentary">described here</a>.</li>
<li><a href="http://tadhg.com/wp/wordpress-plugins/show-tags-in-rss/">Show Tags in RSS</a>, which adds a list of the tags for a post to the end of the post&#8217;s entry in the RSS feed.</li>
</ul>
<p>I&#8217;m currently looking at support for series in WordPress, and am considering either writing my own plugin or using/forking <a href="http://unfoldingneurons.com/neurotic-plugins/organize-series-wordpress-plugin">the Organize Series plugin</a>.</p>
<p>Tags: <a href="http://tadhg.com/wp/tag/blog/" rel="tag">Blog</a>, <a href="http://tadhg.com/wp/tag/coding/" rel="tag">coding</a>, <a href="http://tadhg.com/wp/tag/php/" rel="tag">PHP</a>, <a href="http://tadhg.com/wp/tag/sql/" rel="tag">SQL</a>, <a href="http://tadhg.com/wp/tag/tech/" rel="tag">tech</a>, <a href="http://tadhg.com/wp/tag/wordpress/" rel="tag">WordPress</a></p><h4 class='related-posts-header'>Related Posts</h4><ul class="related-posts-list"><li class="related-post"><a href="http://tadhg.com/wp/2009/02/23/new-blog-functionality-recent-commentary/">New Blog Functionality: Recent Commentary</a> <span class="related-post-date timestamp">Mon 23 Feb 2009</span></li><li class="related-post"><a href="http://tadhg.com/wp/2010/01/10/wordpress-2-9-upgrade/">WordPress 2.9 Upgrade</a> <span class="related-post-date timestamp">Sun 10 Jan 2010</span></li><li class="related-post"><a href="http://tadhg.com/wp/2009/06/14/wordpress-2-8-upgrade/">WordPress 2.8 Upgrade</a> <span class="related-post-date timestamp">Sun 14 Jun 2009</span></li><li class="related-post"><a href="http://tadhg.com/wp/2009/03/19/some-rss-changes/">Some RSS Changes</a> <span class="related-post-date timestamp">Thu 19 Mar 2009</span></li><li class="related-post"><a href="http://tadhg.com/wp/2009/02/10/related-posts-plugin-and-sql-trickery/">Related Posts Plugin and SQL Trickery</a> <span class="related-post-date timestamp">Tue 10 Feb 2009</span></li><li class="related-post"><a href="http://tadhg.com/wp/2009/02/13/my-wordpress-development-setup/">My WordPress Development Setup</a> <span class="related-post-date timestamp">Fri 13 Feb 2009</span></li><li class="related-post"><a href="http://tadhg.com/wp/2009/07/28/better-rest-wordpress-pipeline/">Better reST–WordPress Pipeline</a> <span class="related-post-date timestamp">Tue 28 Jul 2009</span></li><li class="related-post"><a href="http://tadhg.com/wp/2009/07/14/blog-workflow-with-restructuredtext/">Blog Workflow with reStructuredText</a> <span class="related-post-date timestamp">Tue 14 Jul 2009</span></li><li class="related-post"><a href="http://tadhg.com/wp/2009/02/12/twitter-experimentation/">Twitter Experimentation</a> <span class="related-post-date timestamp">Thu 12 Feb 2009</span></li><li class="related-post"><a href="http://tadhg.com/wp/2009/02/01/new-blog-functionality-related-posts/">New Blog Functionality: Related Posts</a> <span class="related-post-date timestamp">Sun 01 Feb 2009</span></li></ul>]]></content:encoded>
			<wfw:commentRss>http://tadhg.com/wp/2009/03/23/wp-plugins-recent-commentary-and-show-tags-in-rss/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Some RSS Changes</title>
		<link>http://tadhg.com/wp/2009/03/19/some-rss-changes/</link>
		<comments>http://tadhg.com/wp/2009/03/19/some-rss-changes/#comments</comments>
		<pubDate>Fri, 20 Mar 2009 03:44:20 +0000</pubDate>
		<dc:creator>Tadhg</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[coding]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[tech]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://tadhg.com/wp/?p=1491</guid>
		<description><![CDATA[I&#8217;ve made some changes to my Related Posts by Tags plugin, so that it&#8217;s now possible to add the list of related posts to the RSS feed entries. As I was experimenting with this, I realized that I wanted the RSS entries to show the tags for a post as well, so I wrote a [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve made some changes to my <a href="http://tadhg.com/wp/wordpress-plugins/related-posts-by-tag-widget/">Related Posts by Tags</a> plugin, so that it&#8217;s now possible to add the list of related posts to the RSS feed entries. As I was experimenting with this, I realized that I wanted the RSS entries to show the tags for a post as well, so I wrote a (very simple) plugin to do that, too.</p>
<p>As a result, those of you reading this via RSS will now see a list of tags at the end of posts, followed by links to related posts. Please let me know if this doesn&#8217;t work as intended, or if you have other comments on the change.</p>
<p>Tags: <a href="http://tadhg.com/wp/tag/blog/" rel="tag">Blog</a>, <a href="http://tadhg.com/wp/tag/coding/" rel="tag">coding</a>, <a href="http://tadhg.com/wp/tag/php/" rel="tag">PHP</a>, <a href="http://tadhg.com/wp/tag/tech/" rel="tag">tech</a>, <a href="http://tadhg.com/wp/tag/wordpress/" rel="tag">WordPress</a></p><h4 class='related-posts-header'>Related Posts</h4><ul class="related-posts-list"><li class="related-post"><a href="http://tadhg.com/wp/2010/01/10/wordpress-2-9-upgrade/">WordPress 2.9 Upgrade</a> <span class="related-post-date timestamp">Sun 10 Jan 2010</span></li><li class="related-post"><a href="http://tadhg.com/wp/2009/06/14/wordpress-2-8-upgrade/">WordPress 2.8 Upgrade</a> <span class="related-post-date timestamp">Sun 14 Jun 2009</span></li><li class="related-post"><a href="http://tadhg.com/wp/2009/03/23/wp-plugins-recent-commentary-and-show-tags-in-rss/">WP Plugins: Recent Commentary and Show Tags in RSS</a> <span class="related-post-date timestamp">Mon 23 Mar 2009</span></li><li class="related-post"><a href="http://tadhg.com/wp/2009/02/23/new-blog-functionality-recent-commentary/">New Blog Functionality: Recent Commentary</a> <span class="related-post-date timestamp">Mon 23 Feb 2009</span></li><li class="related-post"><a href="http://tadhg.com/wp/2009/02/13/my-wordpress-development-setup/">My WordPress Development Setup</a> <span class="related-post-date timestamp">Fri 13 Feb 2009</span></li><li class="related-post"><a href="http://tadhg.com/wp/2009/02/10/related-posts-plugin-and-sql-trickery/">Related Posts Plugin and SQL Trickery</a> <span class="related-post-date timestamp">Tue 10 Feb 2009</span></li><li class="related-post"><a href="http://tadhg.com/wp/2009/07/28/better-rest-wordpress-pipeline/">Better reST–WordPress Pipeline</a> <span class="related-post-date timestamp">Tue 28 Jul 2009</span></li><li class="related-post"><a href="http://tadhg.com/wp/2009/07/14/blog-workflow-with-restructuredtext/">Blog Workflow with reStructuredText</a> <span class="related-post-date timestamp">Tue 14 Jul 2009</span></li><li class="related-post"><a href="http://tadhg.com/wp/2009/02/12/twitter-experimentation/">Twitter Experimentation</a> <span class="related-post-date timestamp">Thu 12 Feb 2009</span></li><li class="related-post"><a href="http://tadhg.com/wp/2009/02/01/new-blog-functionality-related-posts/">New Blog Functionality: Related Posts</a> <span class="related-post-date timestamp">Sun 01 Feb 2009</span></li></ul>]]></content:encoded>
			<wfw:commentRss>http://tadhg.com/wp/2009/03/19/some-rss-changes/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>New Blog Functionality: Recent Commentary</title>
		<link>http://tadhg.com/wp/2009/02/23/new-blog-functionality-recent-commentary/</link>
		<comments>http://tadhg.com/wp/2009/02/23/new-blog-functionality-recent-commentary/#comments</comments>
		<pubDate>Tue, 24 Feb 2009 05:39:10 +0000</pubDate>
		<dc:creator>Tadhg</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[coding]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[tech]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://tadhg.com/wp/?p=1402</guid>
		<description><![CDATA[I&#8217;ve had a Recent Comments section on the front-page sidebar of the site for quite some time, and decided it was time for an upgrade. The old version was straightforward: it displayed a list of the most recent comments and who made them. What I decided I wanted was, rather, a list of the posts [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve had a Recent Comments section on the front-page sidebar of the site for quite some time, and decided it was time for an upgrade. The old version was straightforward: it displayed a list of the most recent comments and who made them. What I decided I wanted was, rather, a list of the posts with the most recent comments on them, how many comments there were, and a list of the people who made the comments in timestamp order.<br />
<span id="more-1402"></span><br />
That&#8217;s what I have on the front page now. I wrote this functionality as a WordPress plugin, and will release it sometime soon&#8212;I&#8217;m not doing so yet because to work as expected it needs the user to write some CSS, so either I write docs on how to do that, or I add an option to insert some styling with the widget HTML.</p>
<p>I think it&#8217;s a better approach, because it displays more information in about the same area, and because it allows posts with discussions to remain present in the widget for longer, rather than being bumped off due to multiple comments about some single post. I think that&#8217;s likely to be more interesting.</p>
<p>At the heart of the plugin are two SQL queries that I couldn&#8217;t figure out how to turn into a single query, and which took me a little while to figure out.</p>
<p>The desired result is a list of the <em>n</em> posts with the most recent comments on them, and a list of the comments for each post, with the comment list linked to the post in some fashion. I initially thought that the first query would be easy, but I was making poor assumptions about SELECT DISTINCT that mean that I was actually getting a list of the posts with comments ordered by the time of the <em>first</em> comment, not the latest comment. Simplified somewhat, the right way to do that is this:</p>
<p><pre class="php">
SELECT wp_posts.ID, MAX(wp_comments.comment_date) as datesort
FROM comments
LEFT JOIN wp_posts ON (wp_comments.comment_post_ID = wp_posts.ID)
WHERE wp_posts.post_status = 'publish'
    AND wp_posts.post_type = 'post'
    AND wp_comments.comment_approved = 1
GROUP BY wp_posts.ID
ORDER BY datesort DESC
</pre>
</p>
<p>If, as I did initially, you use SELECT DISTINCT, or you use GROUP BY without the MAX function and sort by <strong>comment_date</strong> instead of <strong>datesort</strong>, it&#8217;s sorted by the first comment, not the latest comment.</p>
<p>From those results we have the latest posts. After putting their IDs into a comma-separated list, we can then get the comments we want:</p>
<p><pre class="php">
SELECT *
FROM wp_posts
LEFT JOIN wp_comments ON (wp_posts.ID = wp_comments.comment_post_ID)
WHERE wp_posts.ID IN ($comma_separated_list_of_post_ids)
    AND wp_comments.comment_approved = 1
ORDER BY field(wp_posts.ID, $comma_separated_list_of_post_ids), wp_comments.comment_date;
</pre>
</p>
<p>This basically means &#8220;go get the comments on the specified posts&#8221;. The only interesting part is the ordering: I wanted to get the rows back so that the comments about a given post would all be together, and it turns out that the <strong>field()</strong> function is the way to do this, as it lets you sort things by whatever arbitrary order you like: it takes the column to sort on as the first argument, and a comma-separated list of values as the arbitrary order.</p>
<p>(It turns out that I didn&#8217;t need the ordering from field(), because of the PHP that later handles this data, but I left it in the example because it&#8217;s an interesting feature.)</p>
<p>After I have the results from that query, I go through them in PHP to organize into objects that I can handle more easily, essentially placing the post data at the outermost level and the comment data corresponding to each post inside the post data (<strong>$post_ids</strong> is the array of IDs of the posts with recent comments, <strong>$recent_commentary_results</strong> is the result from the latter SQL query above):</p>
<p><pre class="php">
$recent_commentary = array();

    foreach ($post_ids as $key=>$value) {
        //Go through each post, extract the data relevant to it from the
        //query results, and add it to the array we're going to return.
        $postdata = array(
            "id"=>$value,
            "comments"=>array()
        );
        foreach ($recent_commentary_results as &#038;$row) {
            //If the row matches the current post, insert the title, the
            //comment count, and add the row itself to the list of comments
            //on that post.
            if ($value == $row->ID) {
                $postdata["title"] = $row->post_title;
                $postdata["comment_count"] = $row->comment_count;
                array_push($postdata["comments"], $row);
            }
        }
        array_push($recent_commentary, $postdata);
    }

    return $recent_commentary;
</pre>
</p>
<p>That returns the required information in a format that&#8217;s relatively easy to go through and turn into HTML; none of the rest of the plugin code is particularly interesting.</p>
<p>I hope to release the plugin later this week.</p>
<p>Tags: <a href="http://tadhg.com/wp/tag/blog/" rel="tag">Blog</a>, <a href="http://tadhg.com/wp/tag/coding/" rel="tag">coding</a>, <a href="http://tadhg.com/wp/tag/php/" rel="tag">PHP</a>, <a href="http://tadhg.com/wp/tag/sql/" rel="tag">SQL</a>, <a href="http://tadhg.com/wp/tag/tech/" rel="tag">tech</a>, <a href="http://tadhg.com/wp/tag/wordpress/" rel="tag">WordPress</a></p><h4 class='related-posts-header'>Related Posts</h4><ul class="related-posts-list"><li class="related-post"><a href="http://tadhg.com/wp/2009/03/23/wp-plugins-recent-commentary-and-show-tags-in-rss/">WP Plugins: Recent Commentary and Show Tags in RSS</a> <span class="related-post-date timestamp">Mon 23 Mar 2009</span></li><li class="related-post"><a href="http://tadhg.com/wp/2010/01/10/wordpress-2-9-upgrade/">WordPress 2.9 Upgrade</a> <span class="related-post-date timestamp">Sun 10 Jan 2010</span></li><li class="related-post"><a href="http://tadhg.com/wp/2009/06/14/wordpress-2-8-upgrade/">WordPress 2.8 Upgrade</a> <span class="related-post-date timestamp">Sun 14 Jun 2009</span></li><li class="related-post"><a href="http://tadhg.com/wp/2009/03/19/some-rss-changes/">Some RSS Changes</a> <span class="related-post-date timestamp">Thu 19 Mar 2009</span></li><li class="related-post"><a href="http://tadhg.com/wp/2009/02/10/related-posts-plugin-and-sql-trickery/">Related Posts Plugin and SQL Trickery</a> <span class="related-post-date timestamp">Tue 10 Feb 2009</span></li><li class="related-post"><a href="http://tadhg.com/wp/2009/02/13/my-wordpress-development-setup/">My WordPress Development Setup</a> <span class="related-post-date timestamp">Fri 13 Feb 2009</span></li><li class="related-post"><a href="http://tadhg.com/wp/2009/07/28/better-rest-wordpress-pipeline/">Better reST–WordPress Pipeline</a> <span class="related-post-date timestamp">Tue 28 Jul 2009</span></li><li class="related-post"><a href="http://tadhg.com/wp/2009/07/14/blog-workflow-with-restructuredtext/">Blog Workflow with reStructuredText</a> <span class="related-post-date timestamp">Tue 14 Jul 2009</span></li><li class="related-post"><a href="http://tadhg.com/wp/2009/02/12/twitter-experimentation/">Twitter Experimentation</a> <span class="related-post-date timestamp">Thu 12 Feb 2009</span></li><li class="related-post"><a href="http://tadhg.com/wp/2009/02/01/new-blog-functionality-related-posts/">New Blog Functionality: Related Posts</a> <span class="related-post-date timestamp">Sun 01 Feb 2009</span></li></ul>]]></content:encoded>
			<wfw:commentRss>http://tadhg.com/wp/2009/02/23/new-blog-functionality-recent-commentary/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Twitter Experimentation</title>
		<link>http://tadhg.com/wp/2009/02/12/twitter-experimentation/</link>
		<comments>http://tadhg.com/wp/2009/02/12/twitter-experimentation/#comments</comments>
		<pubDate>Fri, 13 Feb 2009 02:00:40 +0000</pubDate>
		<dc:creator>Tadhg</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[personal]]></category>
		<category><![CDATA[tech]]></category>
		<category><![CDATA[Twitter]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://tadhg.com/wp/?p=1354</guid>
		<description><![CDATA[After refusing for quite some time, I&#8217;ve decided to give Twitter a try. This might prove short-lived, but we&#8217;ll see. I like the concept of easy status updates and of disconnecting them from a larger, clunkier framework, e.g. Facebook.

I&#8217;ll experiment with them for a while and see how I like it. So far, it&#8217;s interesting [...]]]></description>
			<content:encoded><![CDATA[<p>After refusing for quite some time, I&#8217;ve decided to give <a href="http://twitter.com/tadhg_ohiggins">Twitter</a> a try. This might prove short-lived, but we&#8217;ll see. I like the concept of easy status updates and of disconnecting them from a larger, clunkier framework, e.g. Facebook.<br />
<span id="more-1354"></span><br />
I&#8217;ll experiment with them for a while and see how I like it. So far, it&#8217;s interesting enough to try integrating them with my blog, which is why there&#8217;s now a grey line at the top that says &#8220;Status:&#8221; followed by my last twitter update. The placing and look are experimental, and we&#8217;ll see whether I change that, but for the moment I think that&#8217;s where it should go.</p>
<p>I&#8217;m using Alex King&#8217;s <a href="http://wordpress.org/extend/plugins/twitter-tools/">Twitter Tools</a>, with some minor modifications (like giving the timestamp element a class of its own), to handle blog integration.</p>
<p>Apart form showing status on this blog, this will also post notifications about my blog posts to my Twitter status, which I&#8217;m not sure about. I guess it depends on how many people follow the blog but not my Twitter status, or vice versa&#8212;if there&#8217;s a lot of overlap between those two groups (as I suspect there will be) then I might disable that feature.</p>
<p>Tags: <a href="http://tadhg.com/wp/tag/blog/" rel="tag">Blog</a>, <a href="http://tadhg.com/wp/tag/personal/" rel="tag">personal</a>, <a href="http://tadhg.com/wp/tag/tech/" rel="tag">tech</a>, <a href="http://tadhg.com/wp/tag/twitter/" rel="tag">Twitter</a>, <a href="http://tadhg.com/wp/tag/wordpress/" rel="tag">WordPress</a></p><h4 class='related-posts-header'>Related Posts</h4><ul class="related-posts-list"><li class="related-post"><a href="http://tadhg.com/wp/2010/01/10/wordpress-2-9-upgrade/">WordPress 2.9 Upgrade</a> <span class="related-post-date timestamp">Sun 10 Jan 2010</span></li><li class="related-post"><a href="http://tadhg.com/wp/2009/07/28/better-rest-wordpress-pipeline/">Better reST–WordPress Pipeline</a> <span class="related-post-date timestamp">Tue 28 Jul 2009</span></li><li class="related-post"><a href="http://tadhg.com/wp/2009/07/14/blog-workflow-with-restructuredtext/">Blog Workflow with reStructuredText</a> <span class="related-post-date timestamp">Tue 14 Jul 2009</span></li><li class="related-post"><a href="http://tadhg.com/wp/2009/06/14/wordpress-2-8-upgrade/">WordPress 2.8 Upgrade</a> <span class="related-post-date timestamp">Sun 14 Jun 2009</span></li><li class="related-post"><a href="http://tadhg.com/wp/2009/03/23/wp-plugins-recent-commentary-and-show-tags-in-rss/">WP Plugins: Recent Commentary and Show Tags in RSS</a> <span class="related-post-date timestamp">Mon 23 Mar 2009</span></li><li class="related-post"><a href="http://tadhg.com/wp/2009/03/19/some-rss-changes/">Some RSS Changes</a> <span class="related-post-date timestamp">Thu 19 Mar 2009</span></li><li class="related-post"><a href="http://tadhg.com/wp/2009/02/23/new-blog-functionality-recent-commentary/">New Blog Functionality: Recent Commentary</a> <span class="related-post-date timestamp">Mon 23 Feb 2009</span></li><li class="related-post"><a href="http://tadhg.com/wp/2009/02/01/new-blog-functionality-related-posts/">New Blog Functionality: Related Posts</a> <span class="related-post-date timestamp">Sun 01 Feb 2009</span></li><li class="related-post"><a href="http://tadhg.com/wp/2008/07/10/rss-borkage/">RSS Borkage</a> <span class="related-post-date timestamp">Thu 10 Jul 2008</span></li><li class="related-post"><a href="http://tadhg.com/wp/2009/12/29/2009-goals-review/">2009 Goals Review</a> <span class="related-post-date timestamp">Tue 29 Dec 2009</span></li></ul>]]></content:encoded>
			<wfw:commentRss>http://tadhg.com/wp/2009/02/12/twitter-experimentation/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>New Blog Functionality: Related Posts</title>
		<link>http://tadhg.com/wp/2009/02/01/new-blog-functionality-related-posts/</link>
		<comments>http://tadhg.com/wp/2009/02/01/new-blog-functionality-related-posts/#comments</comments>
		<pubDate>Mon, 02 Feb 2009 07:37:02 +0000</pubDate>
		<dc:creator>Tadhg</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[tech]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://tadhg.com/wp/?p=1293</guid>
		<description><![CDATA[Having revived my proper blog and transferred my content over, I&#8217;ve now started adding improvements, some of which I&#8217;ve been wanting to add for quite some time. The first one is a list of related posts on the individual post pages.

I used to have a spot there for similar content, but it merely fetched posts [...]]]></description>
			<content:encoded><![CDATA[<p>Having revived my proper blog and transferred my content over, I&#8217;ve now started adding improvements, some of which I&#8217;ve been wanting to add for quite some time. The first one is a list of related posts on the individual post pages.<br />
<span id="more-1293"></span><br />
I used to have a spot there for similar content, but it merely fetched posts that had some tag in common with the current one. The new version selects ten posts ordered by a) the number of tags shared with the current post and b) by date (newer first). That&#8217;s a significant improvement for browsing around, and with links to both related and random posts, I think that it makes the content on the site significantly more discoverable (which is increasingly important as I add more of it; WordPress counts 919 posts on the site, not including this one).</p>
<p>Those of your reading on RSS feeds won&#8217;t get much benefit from it, but I might try to add its functionality into my feeds sometime soon.</p>
<p>I found the process of writing it interesting, and learned a small SQL pattern that I think is interesting, but that&#8217;s something <a href="/wp/2009/02/10/related-posts-plugin-and-sql-trickery/" title="Related Posts Plugin and SQL Trickery">I&#8217;ll blog about another time, probably when I release the functionality as a plugin</a>.</p>
<p>Tags: <a href="http://tadhg.com/wp/tag/blog/" rel="tag">Blog</a>, <a href="http://tadhg.com/wp/tag/tech/" rel="tag">tech</a>, <a href="http://tadhg.com/wp/tag/wordpress/" rel="tag">WordPress</a></p><h4 class='related-posts-header'>Related Posts</h4><ul class="related-posts-list"><li class="related-post"><a href="http://tadhg.com/wp/2010/01/10/wordpress-2-9-upgrade/">WordPress 2.9 Upgrade</a> <span class="related-post-date timestamp">Sun 10 Jan 2010</span></li><li class="related-post"><a href="http://tadhg.com/wp/2009/06/14/wordpress-2-8-upgrade/">WordPress 2.8 Upgrade</a> <span class="related-post-date timestamp">Sun 14 Jun 2009</span></li><li class="related-post"><a href="http://tadhg.com/wp/2009/03/23/wp-plugins-recent-commentary-and-show-tags-in-rss/">WP Plugins: Recent Commentary and Show Tags in RSS</a> <span class="related-post-date timestamp">Mon 23 Mar 2009</span></li><li class="related-post"><a href="http://tadhg.com/wp/2009/03/19/some-rss-changes/">Some RSS Changes</a> <span class="related-post-date timestamp">Thu 19 Mar 2009</span></li><li class="related-post"><a href="http://tadhg.com/wp/2009/02/23/new-blog-functionality-recent-commentary/">New Blog Functionality: Recent Commentary</a> <span class="related-post-date timestamp">Mon 23 Feb 2009</span></li><li class="related-post"><a href="http://tadhg.com/wp/2009/02/12/twitter-experimentation/">Twitter Experimentation</a> <span class="related-post-date timestamp">Thu 12 Feb 2009</span></li><li class="related-post"><a href="http://tadhg.com/wp/2009/07/28/better-rest-wordpress-pipeline/">Better reST–WordPress Pipeline</a> <span class="related-post-date timestamp">Tue 28 Jul 2009</span></li><li class="related-post"><a href="http://tadhg.com/wp/2009/07/14/blog-workflow-with-restructuredtext/">Blog Workflow with reStructuredText</a> <span class="related-post-date timestamp">Tue 14 Jul 2009</span></li><li class="related-post"><a href="http://tadhg.com/wp/2009/05/24/fiction-organization/">Fiction Organization</a> <span class="related-post-date timestamp">Sun 24 May 2009</span></li><li class="related-post"><a href="http://tadhg.com/wp/2009/04/07/bad-behavior-plugin/">Bad Behavior Plugin</a> <span class="related-post-date timestamp">Tue 07 Apr 2009</span></li></ul>]]></content:encoded>
			<wfw:commentRss>http://tadhg.com/wp/2009/02/01/new-blog-functionality-related-posts/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>2009 Goals</title>
		<link>http://tadhg.com/wp/2009/01/01/2009-goals/</link>
		<comments>http://tadhg.com/wp/2009/01/01/2009-goals/#comments</comments>
		<pubDate>Fri, 02 Jan 2009 01:49:38 +0000</pubDate>
		<dc:creator>Tadhg</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[goals]]></category>
		<category><![CDATA[personal]]></category>
		<category><![CDATA[reading]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[web-development]]></category>
		<category><![CDATA[writing]]></category>

		<guid isPermaLink="false">http://www.tadhg.com/wp/?p=146</guid>
		<description><![CDATA[Happy New Year!
That&#8217;s goals for the year 2009, not two thousand and nine goals, people.
I tend to start the year with a bunch of ambitions and projects—many of which I even accomplish. Some of them for this year follow.


Write at least one draft of the fantasy novel. This includes, naturally, finishing the plan for it, [...]]]></description>
			<content:encoded><![CDATA[<p>Happy New Year!</p>
<p>That&#8217;s goals for the year 2009, not two thousand and nine goals, people.</p>
<p>I tend to start the year with a bunch of ambitions and projects—many of which I even accomplish. Some of them for this year follow.<br />
<span id="more-916"></span></p>
<ul>
<li>Write at least one draft of the fantasy novel. This includes, naturally, finishing the plan for it, now slated for 36 Dec.</li>
<li>Read 80 books. I did 75 this year, why not 80 next year?</li>
<li>Write a summary/review/synopsis of every book I read. This will be a lot harder, I think. Definitely a trickier one, and a hard discipline to maintain, but we&#8217;ll see how it goes.</li>
<li>Fix my blog. This blog has been at its “temporary” home for way too long, and I need to move it, and get the various painful migratory steps over with.</li>
<li>Fix my Subversion repository. This is something else I&#8217;ve let lie for way too long.</li>
<li>Finish <a class="reference external" href="http://tadhg.com/afbh/"><cite>The Annotated Fantasy Bedtime Hour</cite></a>. Just five episodes left, and this needs to be finished.</li>
<li>Finish a writing series of mine called <a class="reference external" href="http://tadhg.com/wp/fiction/#pafib">pafib</a>, which I would link to but can&#8217;t because it&#8217;s on the old blog&#8230;</li>
<li>Finish at least three software projects, e.g. sfmagic.org, which is still dead at the moment. I want to do more coding generally.</li>
</ul>
<p>That seems like a good set for now; I&#8217;m sure I&#8217;ll come up with more as the year moves along, but I&#8217;d like to check in next year and be able to cross all these off as done. Good luck to all of you who have your own goals and plans for 2009!</p>
<p>Tags: <a href="http://tadhg.com/wp/tag/blog/" rel="tag">Blog</a>, <a href="http://tadhg.com/wp/tag/goals/" rel="tag">goals</a>, <a href="http://tadhg.com/wp/tag/personal/" rel="tag">personal</a>, <a href="http://tadhg.com/wp/tag/reading/" rel="tag">reading</a>, <a href="http://tadhg.com/wp/tag/software/" rel="tag">software</a>, <a href="http://tadhg.com/wp/tag/web-development/" rel="tag">web-development</a>, <a href="http://tadhg.com/wp/tag/writing/" rel="tag">writing</a></p><h4 class='related-posts-header'>Related Posts</h4><ul class="related-posts-list"><li class="related-post"><a href="http://tadhg.com/wp/2009/12/29/2009-goals-review/">2009 Goals Review</a> <span class="related-post-date timestamp">Tue 29 Dec 2009</span></li><li class="related-post"><a href="http://tadhg.com/wp/2009/07/30/2009-goals-status/">2009 Goals Status</a> <span class="related-post-date timestamp">Thu 30 Jul 2009</span></li><li class="related-post"><a href="http://tadhg.com/wp/2010/01/01/2010-goals/">2010 Goals</a> <span class="related-post-date timestamp">Fri 01 Jan 2010</span></li><li class="related-post"><a href="http://tadhg.com/wp/2007/12/11/some-medium-term-plans/">Some Medium-Term Plans</a> <span class="related-post-date timestamp">Tue 11 Dec 2007</span></li><li class="related-post"><a href="http://tadhg.com/wp/2007/04/08/semantic-editor-application-search/">Semantic Editor Application Search</a> <span class="related-post-date timestamp">Sun 08 Apr 2007</span></li><li class="related-post"><a href="http://tadhg.com/wp/2009/09/24/rtf_word_restructuredtext-toolchain/">RTF/Word–reStructuredText Toolchain</a> <span class="related-post-date timestamp">Thu 24 Sep 2009</span></li><li class="related-post"><a href="http://tadhg.com/wp/2009/07/28/better-rest-wordpress-pipeline/">Better reST–WordPress Pipeline</a> <span class="related-post-date timestamp">Tue 28 Jul 2009</span></li><li class="related-post"><a href="http://tadhg.com/wp/2009/07/14/blog-workflow-with-restructuredtext/">Blog Workflow with reStructuredText</a> <span class="related-post-date timestamp">Tue 14 Jul 2009</span></li><li class="related-post"><a href="http://tadhg.com/wp/2009/07/12/moving-from-word-processors-to-restructuredtext/">Moving From Word Processors to reStructuredText</a> <span class="related-post-date timestamp">Sun 12 Jul 2009</span></li><li class="related-post"><a href="http://tadhg.com/wp/2009/05/26/1000th-post/">1000th Post</a> <span class="related-post-date timestamp">Tue 26 May 2009</span></li></ul>]]></content:encoded>
			<wfw:commentRss>http://tadhg.com/wp/2009/01/01/2009-goals/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Some Medium-Term Plans</title>
		<link>http://tadhg.com/wp/2007/12/11/some-medium-term-plans/</link>
		<comments>http://tadhg.com/wp/2007/12/11/some-medium-term-plans/#comments</comments>
		<pubDate>Tue, 11 Dec 2007 17:02:22 +0000</pubDate>
		<dc:creator>Tadhg</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[personal]]></category>
		<category><![CDATA[web-development]]></category>
		<category><![CDATA[writing]]></category>

		<guid isPermaLink="false">http://tadhg.com/wp/2007/12/11/some-medium-term-plans/</guid>
		<description><![CDATA[I&#8217;m a little behind schedule for December. I&#8217;m still going to try to work on sfmagic.org for this month, moving it over to Python and Pylons, and possibly to PostGreSQL, and moving it to a different server.

This month, then, will be much more tech-oriented, as I hope to write about the various problems I encounter [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m a little behind schedule for December. I&#8217;m still going to try to work on <a href="http://sfmagic.org/">sfmagic.org</a> for this month, moving it over to Python and Pylons, and possibly to PostGreSQL, and moving it to a different server.<br />
<span id="more-630"></span><br />
This month, then, will be much more tech-oriented, as I hope to write about the various problems I encounter trying to rewrite the code for the site. I hope it&#8217;ll be a fun learning experience, but we&#8217;ll see.</p>
<p>I also hope spend time planning my next novel. I intend to plan this one much more closely, and to have that plan finished by January so that I can start work on it in January, and finish work on it by early March. I&#8217;d been planning to do 1000 words per day, and so to have a 60,000 word novel after about two months. Taking what I can from my last experience, the plan for this novel will include every chapter (between 12 and 15 of them), broken down into sections of 1000 words, with a detailed sketch of what that section should contain. That way the experience each day should be much smoother, just sit down, look at the sketch, write.</p>
<p>I also intend the first draft of this one to be &#8220;readable&#8221;, in that I intend it to be sufficiently good that I&#8217;d be prepared to let other people see it. This is in direct contrast to my approach to the first novel, where I turned all quality controls off in order to be able to write at all. I think writing the first one, and the frequent writing-for-the-public I do on this site, have helped me beyond that requirement.</p>
<p>This novel should also be more amenable to a higher-quality first draft, and to more detailed planning, because it will be a lot more straightforward in terms of structure and flow. One primary protagonist (instead of four or more), a fairly linear plot (instead of one that connects events separated by a lot of space and time), less complicated characters (not tortured really-late-capitalist neurotics).</p>
<p>After that, I plan to adapt a story of mine into a script, a script I don&#8217;t intend to take too seriously and which I think could be a lot of fun.</p>
<p>Blogging shall continue (until morale improves&#8230;), most likely on the same Su-Mo-Tu-Th-Fr schedule. I think that editing had a bad effect on the quality of my posts, and hope to make them better. By next March I&#8217;d like to have written at least a couple of posts that aren&#8217;t written in a single day, that I spend a little more time on.</p>
<p>Tentatively, I hope to get all that done by the end of March, but a variety of factors could change that plan. I&#8217;ll have to see how I feel in January, for one thing&#8212;this second draft took a lot out of me, more than I expected, and I might not be ready to get going on it that soon. (Then again, right now I feel nothing but enthusiasm for starting a different project!)</p>
<p>Tags: <a href="http://tadhg.com/wp/tag/blog/" rel="tag">Blog</a>, <a href="http://tadhg.com/wp/tag/personal/" rel="tag">personal</a>, <a href="http://tadhg.com/wp/tag/web-development/" rel="tag">web-development</a>, <a href="http://tadhg.com/wp/tag/writing/" rel="tag">writing</a></p><h4 class='related-posts-header'>Related Posts</h4><ul class="related-posts-list"><li class="related-post"><a href="http://tadhg.com/wp/2009/12/29/2009-goals-review/">2009 Goals Review</a> <span class="related-post-date timestamp">Tue 29 Dec 2009</span></li><li class="related-post"><a href="http://tadhg.com/wp/2009/07/30/2009-goals-status/">2009 Goals Status</a> <span class="related-post-date timestamp">Thu 30 Jul 2009</span></li><li class="related-post"><a href="http://tadhg.com/wp/2009/01/01/2009-goals/">2009 Goals</a> <span class="related-post-date timestamp">Thu 01 Jan 2009</span></li><li class="related-post"><a href="http://tadhg.com/wp/2010/01/01/2010-goals/">2010 Goals</a> <span class="related-post-date timestamp">Fri 01 Jan 2010</span></li><li class="related-post"><a href="http://tadhg.com/wp/2009/05/26/1000th-post/">1000th Post</a> <span class="related-post-date timestamp">Tue 26 May 2009</span></li><li class="related-post"><a href="http://tadhg.com/wp/2007/08/05/musings-on-blogging/">Musings on Blogging</a> <span class="related-post-date timestamp">Sun 05 Aug 2007</span></li><li class="related-post"><a href="http://tadhg.com/wp/2007/08/01/august-2007-blogging-year-in-review/">August 2007: Blogging Year in Review</a> <span class="related-post-date timestamp">Wed 01 Aug 2007</span></li><li class="related-post"><a href="http://tadhg.com/wp/2007/05/01/thematic-consideration/">Thematic Consideration</a> <span class="related-post-date timestamp">Tue 01 May 2007</span></li><li class="related-post"><a href="http://tadhg.com/wp/2007/04/08/semantic-editor-application-search/">Semantic Editor Application Search</a> <span class="related-post-date timestamp">Sun 08 Apr 2007</span></li><li class="related-post"><a href="http://tadhg.com/wp/2007/03/02/februarymarch-blogging/">February/March Blogging</a> <span class="related-post-date timestamp">Fri 02 Mar 2007</span></li></ul>]]></content:encoded>
			<wfw:commentRss>http://tadhg.com/wp/2007/12/11/some-medium-term-plans/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Musings on Blogging</title>
		<link>http://tadhg.com/wp/2007/08/05/musings-on-blogging/</link>
		<comments>http://tadhg.com/wp/2007/08/05/musings-on-blogging/#comments</comments>
		<pubDate>Mon, 06 Aug 2007 01:35:50 +0000</pubDate>
		<dc:creator>Tadhg</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[personal]]></category>
		<category><![CDATA[writing]]></category>

		<guid isPermaLink="false">http://tadhg.com/wp/2007/08/05/musings-on-blogging/</guid>
		<description><![CDATA[It was strange not to write a post yesterday. After doing it every day for just over a year, I was acutely aware of its absence.

In fact, I was quite tempted to write one. But I know that if I had, I would have given up on the schedule of posting five times per week, [...]]]></description>
			<content:encoded><![CDATA[<p>It was strange not to write a post yesterday. After doing it every day for just over a year, I was acutely aware of its absence.<br />
<span id="more-500"></span><br />
In fact, I was quite tempted to write one. But I know that if I had, I would have given up on the schedule of posting five times per week, and would instead have just stuck to posting every day. Which wouldn&#8217;t be terrible, but I definitely need to try my current plan for at least a month to see how it works out.</p>
<p>It was a decidedly odd feeling to have to exert any will at all to not do something that thirteen months ago would have taken significant willpower to do. But I guess that makes sense, given the nature of habit. It doesn&#8217;t help to answer the question of why or how we can adopt some habits and not others, but that&#8217;s a difference discussion.</p>
<p>I had a conversation today with a friend about blogging, and this conversation made me think about what writing publicly gives me. That&#8217;s not strictly a question about just blogging, because I&#8217;ve had a web presence, under my own name, since around 1996. I don&#8217;t remember what the first content actually was&#8212;probably a r&eacute;sum&eacute;, some details about me, some links I liked&#8230; just like many websites of the time, really. The first &#8220;real&#8221; content I remember putting up on it was the <a href="http://tadhg.com/wp/1997/02/28/iain-m-banks-interview/">Iain M. Banks interview</a> that Sharon and I did in early 1997. After that, I would put things up from time to time, and I&#8217;ve migrated almost all of that content over to this, the current blog-based incarnation. But why put stuff up at all?</p>
<p>In some ways that&#8217;s a srtange question. Humans are social creatures, and having a web presence is a social statement. But that should suggest that everyone would have one, or some equivalent, and that&#8217;s clearly not true. So why do I have one?</p>
<p>Part of it stems from interest in the technology. I was interested in web design and development and in the internet, so I made a website for myself to see how that worked. That fact that it&#8217;s stuck around in various forms since then means that there are other factors.</p>
<p>The obvious one is self-expression. I&#8217;ve never been shy about making my opinions known, and a website is like a soapbox from which I can harangue the world, right? Not quite a perfect analogy, because I don&#8217;t actually do soapbox speeches. There is a part of me that wants to go &#8220;on record&#8221; with how I feel about a number of things, and this site is a good way to do that.</p>
<p>That&#8217;s only part of self-expression, the later part. Before you get there, you have to figure out how to put what you feel or think into words. Not necessarily a trivial feat. Sometimes it leads you to places you don&#8217;t expect (especially in fiction). In a number of respects it helps you to decide/discover who you are. The human condition, telling and absorbing stories which we assemble and disassemble, using them to call something &#8220;I&#8221;. I&#8217;ve been an adherent of the &#8220;know thyself, and to thine own self be true&#8221; creed for a very long time, although only in recent years have I accepted that it&#8217;s not just a question of unveiling the self, it&#8217;s also a question of creating the self. Hence the &#8220;decide/discover&#8221; dyad above. Shape, uncover, shape, uncover. Part of it is squinting through the dusk to catch a glimpse of what &#8220;I&#8221; looks like. Part of it is nudging the chisel or the brush to alter what &#8220;I&#8221; looks like.</p>
<p>Creativity and self-exploration (which feel like connected but separable things) are important to me, and I also feel that sharing them is important. Having a site gives me a vehicle for sharing them, and the presence of that vehicle also encourages me to actually do them&#8212;which is perhaps as important as anything else about it.</p>
<p>I happen to have forms of self-expression that work relatively well online, too. Writing, foremost, but also occasional photography and design. Theater, dance, other &#8220;live&#8221; forms of art, would have been much more difficult, and would have probably pushed me in another direction.</p>
<p>Another motivation for having a web presence is that I want to share information as a matter of principle. This especially applies to programming. Some of my earliest content was how-to instruction on HTML. Although I haven&#8217;t done much of it recently, I think that my commentary on my coding projects and related tech matters would be helpful to others engaged in similar projects, and that&#8217;s been a reason to have a site for quite some time.</p>
<p>I don&#8217;t seem to use my blog much for letting friends know what&#8217;s going on in my life. Occasionally, sure. But I suspect I can go months posting daily without giving much information about my life. As a form of keeping in touch, it&#8217;s more often a slice of what I&#8217;m like than a window into my life. I know that lots of people use their blogs quite differently, but the &#8220;here&#8217;s what I&#8217;m doing and feeling&#8221; approach somehow appeals to me only once in a while.</p>
<p>(The conversation in the comments, however, is frequently much more like a typical &#8220;staying in touch&#8221; mode, and those comments are clearly prompted by the posts, so I shouldn&#8217;t underestimate the site&#8217;s effect there.)</p>
<p>I&#8217;m not sure what the limits on what I post are. I know they&#8217;re there, as they are for almost everyone, but everyone has a different set. Other people I know write for more limited audiences, or they&#8217;re (pseudo-)anonymous. Some will write whatever they want without regard for who reads it. At the moment I&#8217;m fairly happy with the balance I have, although I think that I&#8217;ve drifted a little further away from the clearly personal since starting the posting-every-day routine. I&#8217;m not sure whether or not I should correct that drift, but I&#8217;ll see where things take me.</p>
<p>Those are the broad strokes of what I&#8217;ve been thinking since talking to that friend about why I post, and why I&#8217;ve had a website for that long. I know that a lot of you also have public (or semi-public) web presences. Why do you have them?</p>
<p>Tags: <a href="http://tadhg.com/wp/tag/blog/" rel="tag">Blog</a>, <a href="http://tadhg.com/wp/tag/personal/" rel="tag">personal</a>, <a href="http://tadhg.com/wp/tag/writing/" rel="tag">writing</a></p><h4 class='related-posts-header'>Related Posts</h4><ul class="related-posts-list"><li class="related-post"><a href="http://tadhg.com/wp/2009/12/29/2009-goals-review/">2009 Goals Review</a> <span class="related-post-date timestamp">Tue 29 Dec 2009</span></li><li class="related-post"><a href="http://tadhg.com/wp/2009/07/30/2009-goals-status/">2009 Goals Status</a> <span class="related-post-date timestamp">Thu 30 Jul 2009</span></li><li class="related-post"><a href="http://tadhg.com/wp/2009/05/26/1000th-post/">1000th Post</a> <span class="related-post-date timestamp">Tue 26 May 2009</span></li><li class="related-post"><a href="http://tadhg.com/wp/2009/01/01/2009-goals/">2009 Goals</a> <span class="related-post-date timestamp">Thu 01 Jan 2009</span></li><li class="related-post"><a href="http://tadhg.com/wp/2007/12/11/some-medium-term-plans/">Some Medium-Term Plans</a> <span class="related-post-date timestamp">Tue 11 Dec 2007</span></li><li class="related-post"><a href="http://tadhg.com/wp/2007/08/01/august-2007-blogging-year-in-review/">August 2007: Blogging Year in Review</a> <span class="related-post-date timestamp">Wed 01 Aug 2007</span></li><li class="related-post"><a href="http://tadhg.com/wp/2007/05/01/thematic-consideration/">Thematic Consideration</a> <span class="related-post-date timestamp">Tue 01 May 2007</span></li><li class="related-post"><a href="http://tadhg.com/wp/2007/03/02/februarymarch-blogging/">February/March Blogging</a> <span class="related-post-date timestamp">Fri 02 Mar 2007</span></li><li class="related-post"><a href="http://tadhg.com/wp/2007/01/31/six-months-of-blogging/">Six Months of Blogging</a> <span class="related-post-date timestamp">Wed 31 Jan 2007</span></li><li class="related-post"><a href="http://tadhg.com/wp/2007/01/01/decemberjanuary-blogging/">December/January Blogging</a> <span class="related-post-date timestamp">Mon 01 Jan 2007</span></li></ul>]]></content:encoded>
			<wfw:commentRss>http://tadhg.com/wp/2007/08/05/musings-on-blogging/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
