<?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:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Dan's Phorum Blog</title>
	<atom:link href="http://dlangille.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://dlangille.wordpress.com</link>
	<description>Phorum - With PostgreSQL</description>
	<pubDate>Sat, 08 Mar 2008 17:43:11 +0000</pubDate>
	<generator>http://wordpress.org/?v=MU</generator>
	<language>en</language>
			<item>
		<title>Adding captcha to Phorum 3</title>
		<link>http://dlangille.wordpress.com/2008/03/04/adding-captcha-to-phorum-3/</link>
		<comments>http://dlangille.wordpress.com/2008/03/04/adding-captcha-to-phorum-3/#comments</comments>
		<pubDate>Tue, 04 Mar 2008 23:25:10 +0000</pubDate>
		<dc:creator>dlangille</dc:creator>
		
		<category><![CDATA[phorum]]></category>

		<guid isPermaLink="false">http://dlangille.wordpress.com/?p=7</guid>
		<description><![CDATA[I&#8217;m still running Phorum 3 on a few websites. I have customized it and I&#8217;m running PostgreSQL.  Phorum 5 isn&#8217;t ready for me yet.
Yet the spammers don&#8217;t take any heed of that.  They&#8217;re still coming strong.  I&#8217;ve done several things to attempt to stop them, but nothing has taken the place of [...]]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>I&#8217;m still running Phorum 3 on a few websites. I have customized it and I&#8217;m running PostgreSQL.  Phorum 5 isn&#8217;t ready for me yet.</p>
<p>Yet the spammers don&#8217;t take any heed of that.  They&#8217;re still coming strong.  I&#8217;ve done several things to attempt to stop them, but nothing has taken the place of adding in <a HREF="http://en.wikipedia.org/wiki/Captcha">captcha</a>.   In short, captcha requires that you enter a special phrase when completing the form.  This is easy for people.  Very difficult for computers.</p>
<p>In this post, I will highlight what I did to get captcha running on Phorum 3.  Yesterday, there were 153 failed captchas.  That&#8217;s a lot of spam I don&#8217;t have to deal with.</p>
<p>I warn you: this solution requires sessions to be enabled.</p>
<p>This solution stops the automated registrations I&#8217;ve been getting.  Spammers have set up a robot that registers with the website, then posts to one of the phorume.  Adding a captcha to the process causes the registration to fail, thereby stopping the spam that would have followed.</p>
<h2>The code</h2>
<p>It took me a while to find a simple solution.  I did not want to write the code. I wanted to use an existing and easy to use solution. I found one at <a HREF="http://www.white-hat-web-design.co.uk/articles/php-captcha.php">http://www.white-hat-web-design.co.uk/articles/php-captcha.php</a>.  I was pretty impressed with their approach.</p>
<h2>The image file</h2>
<p>The heart of the solution is CaptchaSecurityImages.php.  This file generates the images.  You also need to add monofont.ttf to your server.  I&#8217;m sure there are various compile time options that you need in PHP, but I already had them, whatever they were. <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<h2>Adding the image to the form</h2>
<p>The following code adds the image to the registration form.</p>
<pre>
&lt;tr&gt;  

      &lt;td &lt;?php echo bgcolor($table_body_color_1); ?&gt;&gt;&lt;img src="CaptchaSecurityImages.php?width=100&amp;height=40&amp;characters=5" mce_src="CaptchaSecurityImages.php?width=100&amp;height=40&amp;characters=5" /&gt;&lt;br /&gt;
      &lt;td valign=top &lt;?php echo bgcolor($table_body_color_1); ?&gt; nowrap&gt;&lt;font color="&lt;?php echo $table_body_font_color_1; ?&gt;"&gt;
       &lt;label for="security_code"&gt;Security Code: &lt;/label&gt;&lt;/font&gt;&lt;input id="security_code" name="security_code" type="text" /&gt;&lt;br /&gt;&lt;/td&gt;  

&lt;/tr&gt;</pre>
<p>The above code was added to register.php around line 270.  See the call to CaptchaSecurityImages.php?  That is what creates the image from which the user must obtain the passphrase.  This value is supplied via the input field labelled <em>security_code</em>.</p>
<h2>Where&#8217;s the answer?</h2>
<p>You&#8217;ve seen how the image is added to the form.  When the user posts the form how does the computer know what the answer is?  Simple answer: session data.  The call to the CaptchaSecurityImages.php code not only creates a random number and produces an image for the form, it also stores that random number in a SESSION variable on the webserver. Explaining sessions variables is beyond the scope of this article.  Read up on it.  Imagine it like a special cookie that uniquely identifies every user on the website.</p>
<p>To enable sessions for register.php, I added this entry around line 1:</p>
<pre>
session_start();</pre>
<h2>Processing the answer</h2>
<p>The hardest part was finding a way to process the incoming answer.  Here is the code I added around line 82:</p>
<pre>
if (IsSet($_POST['process'])) {
  if ($_SESSION['security_code'] == $_POST['security_code'] &amp;&amp; !empty($_SESSION['security_code'] ) ) {
     // Insert you code for processing the form here, e.g emailing the submission, entering it into a database.
     unset($_SESSION['security_code']);
  } else {
     syslog(LOG_ERR, &#8220;captcha failure: user=&#8217;$user&#8217; IP=&#8217;&#8221; . $_SERVER['REMOTE_ADDR'] . &#8220;&#8216; email=&#8217;$email&#8217;&#8221;);
     die(&#8217;wrong security code.  press back&#8217;);
  }
}</pre>
<p>Here, the code checks to verify that we are doing a post. It then compares the security code provided by the user against the code stored in the session variable.  If it matches, it unsets the session variable and normal processing of the form resumes.</p>
<p>If the incorrect security code is supplied, syslog is invoked, and the user id, IP address, and email address are logged. The code then dies, and all processing finishes.</p>
<p>A log entry looks like this:</p>
<pre>
Mar  4 22:49:30 nyi httpd: captcha failure: user='Medoneax' IP='88.191.41.118' email='obw@compassunion.cn'</pre>
<p>Creating reports is easy.  How many failed captcha entries for Mar 3?</p>
<pre>
$ grep "Mar  3" /var/log/messages.0 | grep -c capt
62</pre>
<p>That&#8217;s just on one server. <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<h2>What about posting?</h2>
<p>At present, this solution merely stops the spammers from registering with an automated process.  They could register manually, then spam.  But that is not cost effective.  Should they try that approach, it would not take long to add captcha to the posting code as well.</p>
<p>Enjoy.</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/dlangille.wordpress.com/7/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/dlangille.wordpress.com/7/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/dlangille.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/dlangille.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/dlangille.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/dlangille.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/dlangille.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/dlangille.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/dlangille.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/dlangille.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/dlangille.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/dlangille.wordpress.com/7/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dlangille.wordpress.com&blog=2476879&post=7&subd=dlangille&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://dlangille.wordpress.com/2008/03/04/adding-captcha-to-phorum-3/feed/</wfw:commentRss>
		</item>
		<item>
		<title>PostgreSQL 8.3 released</title>
		<link>http://dlangille.wordpress.com/2008/02/05/postgresql-83-released/</link>
		<comments>http://dlangille.wordpress.com/2008/02/05/postgresql-83-released/#comments</comments>
		<pubDate>Tue, 05 Feb 2008 20:39:25 +0000</pubDate>
		<dc:creator>dlangille</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://dlangille.wordpress.com/?p=6</guid>
		<description><![CDATA[PostgreSQL 8.3 has been released.

The announcement
Press Release

The following is a list of press coverage taken from http://archives.postgresql.org/pgsql-advocacy/2008-02/msg00062.php

http://www.idg.se/2.1085/1.143620
http://www.regdeveloper.co.uk/2008/02/04/postresql_record_update/
http://linuxworld.idg.se/
http://www.heise.de/newsticker/meldung/102915/from/rss09
http://www.news.com/8301-13580_3-9864854-39.html
http://blog.wired.com/monkeybites/2008/02/postgresql-83-o.html
http://www.computerworld.com.au/index.php/id;883253935
http://computersweden.idg.se/2.2683/1.143724
http://www.computerworld.com.au/index.php/id;883253935
http://it.slashdot.org/article.pl?sid=08/02/04/1849201

Lots of impressive stuff there.  I&#8217;ve already run it with Bacula and all regression tests passed.  Of high interest to Phorum is full text search improvements.
       ]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>PostgreSQL 8.3 has been released.</p>
<ul>
<li><a HREF="http://www.postgresql.org/about/news.918">The announcement</a></li>
<li><a HREF="http://www.postgresql.org/about/press/presskit83">Press Release</a></li>
</ul>
<p>The following is a list of press coverage taken from <a href="http://archives.postgresql.org/pgsql-advocacy/2008-02/msg00062.php">http://archives.postgresql.org/pgsql-advocacy/2008-02/msg00062.php</a></p>
<ul>
<li><a href="http://www.idg.se/2.1085/1.143620">http://www.idg.se/2.1085/1.143620</a></li>
<li><a href="http://www.regdeveloper.co.uk/2008/02/04/postresql_record_update/">http://www.regdeveloper.co.uk/2008/02/04/postresql_record_update/</a></li>
<li><a href="http://linuxworld.idg.se/">http://linuxworld.idg.se/</a></li>
<li><a href="http://www.heise.de/newsticker/meldung/102915/from/rss09">http://www.heise.de/newsticker/meldung/102915/from/rss09</a></li>
<li><a href="http://www.news.com/8301-13580_3-9864854-39.html">http://www.news.com/8301-13580_3-9864854-39.html</a></li>
<li><a href="http://blog.wired.com/monkeybites/2008/02/postgresql-83-o.html">http://blog.wired.com/monkeybites/2008/02/postgresql-83-o.html</a></li>
<li><a href="http://www.computerworld.com.au/index.php/id;883253935">http://www.computerworld.com.au/index.php/id;883253935</a></li>
<li><a href="http://computersweden.idg.se/2.2683/1.143724">http://computersweden.idg.se/2.2683/1.143724</a></li>
<li><a href="http://www.computerworld.com.au/index.php/id;883253935">http://www.computerworld.com.au/index.php/id;883253935</a></li>
<li><a href="http://it.slashdot.org/article.pl?sid=08/02/04/1849201">http://it.slashdot.org/article.pl?sid=08/02/04/1849201</a></li>
</ul>
<p>Lots of impressive stuff there.  I&#8217;ve already run it with <a HREF="http://www.bacula.org/">Bacula</a> and all regression tests passed.  Of high interest to Phorum is full text search improvements.</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/dlangille.wordpress.com/6/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/dlangille.wordpress.com/6/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/dlangille.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/dlangille.wordpress.com/6/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/dlangille.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/dlangille.wordpress.com/6/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/dlangille.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/dlangille.wordpress.com/6/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/dlangille.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/dlangille.wordpress.com/6/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/dlangille.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/dlangille.wordpress.com/6/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dlangille.wordpress.com&blog=2476879&post=6&subd=dlangille&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://dlangille.wordpress.com/2008/02/05/postgresql-83-released/feed/</wfw:commentRss>
		</item>
		<item>
		<title>MySQL bought.  PostgreSQL not for sale.</title>
		<link>http://dlangille.wordpress.com/2008/01/20/mysql-bought-postgresql-not-for-sale/</link>
		<comments>http://dlangille.wordpress.com/2008/01/20/mysql-bought-postgresql-not-for-sale/#comments</comments>
		<pubDate>Mon, 21 Jan 2008 03:35:57 +0000</pubDate>
		<dc:creator>dlangille</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://dlangille.wordpress.com/2008/01/20/mysql-bought-postgresql-not-for-sale/</guid>
		<description><![CDATA[A very key point in this article. Product vs project.
Read:  http://people.planetpostgresql.org/greg/index.php?/archives/120-Postgres-is-not-for-sale.html
       ]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>A very key point in this article. Product vs project.</p>
<p>Read:  <a href="http://people.planetpostgresql.org/greg/index.php?/archives/120-Postgres-is-not-for-sale.html">http://people.planetpostgresql.org/greg/index.php?/archives/120-Postgres-is-not-for-sale.html</a></p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/dlangille.wordpress.com/5/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/dlangille.wordpress.com/5/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/dlangille.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/dlangille.wordpress.com/5/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/dlangille.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/dlangille.wordpress.com/5/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/dlangille.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/dlangille.wordpress.com/5/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/dlangille.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/dlangille.wordpress.com/5/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/dlangille.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/dlangille.wordpress.com/5/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dlangille.wordpress.com&blog=2476879&post=5&subd=dlangille&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://dlangille.wordpress.com/2008/01/20/mysql-bought-postgresql-not-for-sale/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Expanding Phorum</title>
		<link>http://dlangille.wordpress.com/2008/01/08/expanding-phorum/</link>
		<comments>http://dlangille.wordpress.com/2008/01/08/expanding-phorum/#comments</comments>
		<pubDate>Tue, 08 Jan 2008 23:54:46 +0000</pubDate>
		<dc:creator>dlangille</dc:creator>
		
		<category><![CDATA[phorum]]></category>

		<guid isPermaLink="false">http://dlangille.wordpress.com/2008/01/08/expanding-phorum/</guid>
		<description><![CDATA[I want to expand Phorum.  I want to be able to relate specific phorum threads to one specific entry on my FreeBSD Diarywebsite.  I do this for article feedback.  This is very much like comments on a weblog.
To see this features in action, look at Phorum - how to install and customize it.  This article is about Phorum 3, so you might not find much there for your existing Phorum 5 [...]]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>I want to expand Phorum.  I want to be able to relate specific phorum threads to one specific entry on my <a TITLE="FreeBSD Diary" HREF="http://www.freebsddiary.org/">FreeBSD Diary</a>website.  I do this for article feedback.  This is very much like comments on a weblog.</p>
<p>To see this features in action, look at <a HREF="http://www.freebsddiary.org/phorum.php">Phorum - how to install and customize it</a>.  This article is about Phorum 3, so you might not find much there for your existing Phorum 5 installation.  Note the link to the comments under the date in the top right corner.  If you click on it, you will find it links to <a HREF="http://www.freebsddiary.org/phorum/list.php?f=3&amp;article_id=258">http://www.freebsddiary.org/phorum/list.php?f=3<em>&amp;article_id=258</em></a>.  Note the additional URL paramter <em>article_id</em>. This uniquely identifies the article you were reading.</p>
<p>In the FreeBSD Diary database (freebsdiary.org), there is an article table:</p>
<pre>
freebsddiary.org=# \d articles
                               Table "public.articles"
    Column    |     Type     |                       Modifiers
--------------+--------------+-------------------------------------------------------
 id           | integer      | not null default nextval('articles_id_seq'::regclass)
 actual_date  | date         | not null
 name         | text         | not null
 completed    | character(1) | not null default 'N'::bpchar
 visible_date | text         | not null
 link         | text         | not null
 filename     | text         | not null
 description  | text         |
 author       | text         | default ''::text
Indexes:
    "articles_pkey" PRIMARY KEY, btree (id)
Check constraints:
    "articles_completed" CHECK (completed = 'Y'::bpchar OR completed = 'N'::bpchar)   

freebsddiary.org=#</pre>
<p>This table is referenced from the article_feedback_xref table:</p>
<pre>
freebsddiary.org=# \d article_feedback_xref
Table "public.article_feedback_xref"
   Column   |  Type   | Modifiers
------------+---------+-----------
 article_id | integer | not null
 thread_id  | integer | not null
Indexes:
    "article_feedback_xref_pkey" PRIMARY KEY, btree (article_id, thread_id)
Foreign-key constraints:
    "$2" FOREIGN KEY (thread_id) REFERENCES article_feedback(id) ON UPDATE CASCADE ON DELETE CASCADE  

freebsddiary.org=#</pre>
<p>I have customized the Phorum 3 code to restrict message selection to those related to this particular article.  The entry in the cross reference table is added when a new post is made to the phorum.</p>
<p>I want Phorum 5 to provide the same functionality.  I am not yet sure of how I am going to achieve this goal.  It may be with a table similar to the able. It could be with custom fields on the message table.</p>
<p>I&#8217;m still in the idea phase.  Ideas?  Comments?</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/dlangille.wordpress.com/4/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/dlangille.wordpress.com/4/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/dlangille.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/dlangille.wordpress.com/4/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/dlangille.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/dlangille.wordpress.com/4/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/dlangille.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/dlangille.wordpress.com/4/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/dlangille.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/dlangille.wordpress.com/4/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/dlangille.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/dlangille.wordpress.com/4/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dlangille.wordpress.com&blog=2476879&post=4&subd=dlangille&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://dlangille.wordpress.com/2008/01/08/expanding-phorum/feed/</wfw:commentRss>
		</item>
		<item>
		<title>PostgreSQL - flexible and fast</title>
		<link>http://dlangille.wordpress.com/2008/01/08/postgresql-flexible-and-fast/</link>
		<comments>http://dlangille.wordpress.com/2008/01/08/postgresql-flexible-and-fast/#comments</comments>
		<pubDate>Tue, 08 Jan 2008 22:43:03 +0000</pubDate>
		<dc:creator>dlangille</dc:creator>
		
		<category><![CDATA[phorum]]></category>

		<guid isPermaLink="false">http://dlangille.wordpress.com/2008/01/08/postgresql-flexible-and-fast/</guid>
		<description><![CDATA[I&#8217;m a PostgreSQL fan. I have been so since 2000.  It is fast.  Reliable.  And best of all, it treats your data right.
I&#8217;ve been using Phorum with PostgreSQL since 2000.  I&#8217;ve also been blogging since before the term blog was invented.  I called it a diary.
In this blog I shall outline my ideas and intentions with PostgreSQL.  It [...]]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>I&#8217;m a PostgreSQL fan. I have been so since 2000.  It is fast.  Reliable.  And best of all, it treats your data right.</p>
<p>I&#8217;ve been using Phorum with PostgreSQL since 2000.  I&#8217;ve also been blogging since before the term blog was invented.  I called it a diary.</p>
<p>In this blog I shall outline my ideas and intentions with PostgreSQL.  It is my way of documenting what I am going to do.  At the same time, it allows Phorum users to provide feedback on what they want out of PostgreSQL.  I think PostgreSQL has the potential to handle large forums in a very fast and efficient manner. PostgreSQL 8.3, due out within a few weeks, will have full-text search built-in (current versions have full-text search as add-on modules).</p>
<p>Enjoy. Comment.  Learn.  Have fun.</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/dlangille.wordpress.com/3/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/dlangille.wordpress.com/3/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/dlangille.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/dlangille.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/dlangille.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/dlangille.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/dlangille.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/dlangille.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/dlangille.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/dlangille.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/dlangille.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/dlangille.wordpress.com/3/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dlangille.wordpress.com&blog=2476879&post=3&subd=dlangille&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://dlangille.wordpress.com/2008/01/08/postgresql-flexible-and-fast/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>