<?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>Marcus Povey &#187; php</title>
	<atom:link href="http://www.marcus-povey.co.uk/tag/php/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.marcus-povey.co.uk</link>
	<description>Making the world a better place, one byte at a time...</description>
	<lastBuildDate>Mon, 06 Feb 2012 19:13:58 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.1</generator>
	<atom:link rel='hub' href='http://www.marcus-povey.co.uk/?pushpress=hub'/>
		<item>
		<title>Latakoo Flight API bindings for Python, PHP, Ruby and .NET</title>
		<link>http://www.marcus-povey.co.uk/2012/01/13/latakoo-flight-api-bindings-for-python-php-and-net/</link>
		<comments>http://www.marcus-povey.co.uk/2012/01/13/latakoo-flight-api-bindings-for-python-php-and-net/#comments</comments>
		<pubDate>Fri, 13 Jan 2012 08:40:00 +0000</pubDate>
		<dc:creator>Marcus Povey</dc:creator>
				<category><![CDATA[Latakoo]]></category>
		<category><![CDATA[.net]]></category>
		<category><![CDATA[api]]></category>
		<category><![CDATA[C]]></category>
		<category><![CDATA[github]]></category>
		<category><![CDATA[latakoo]]></category>
		<category><![CDATA[library]]></category>
		<category><![CDATA[mono]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[ruby]]></category>

		<guid isPermaLink="false">http://www.marcus-povey.co.uk/?p=988</guid>
		<description><![CDATA[I got bored one evening, so I hacked together the beginnings of an API library for latakoo Flight. Currently it&#8217;s available in three four tasty flavours &#8211; PHP, Python, Ruby and C# .NET / Mono. The libraries are minimal but functional; they let you perform both anonymous and authenticated queries against the latakoo API endpoint, [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.marcus-povey.co.uk/wp-content/pythonmonophplatakoo.jpg" align="right" width="200" />I got bored one evening, so I hacked together the beginnings of an API library for <a href="http://latakoo.com">latakoo Flight</a>. Currently it&#8217;s available in <strike>three</strike> four tasty flavours &#8211; <a href="https://github.com/mapkyca/Latakoo-Flight-API-Client/tree/master/php">PHP</a>, <a href="https://github.com/mapkyca/Latakoo-Flight-API-Client/tree/master/python">Python</a>, <a href="https://github.com/mapkyca/Latakoo-Flight-API-Client/tree/master/ruby">Ruby</a> and <a href="https://github.com/mapkyca/Latakoo-Flight-API-Client/tree/master/mono">C# .NET / Mono</a>.</p>
<p>The libraries are minimal but functional; they let you perform both anonymous and authenticated queries against the latakoo API endpoint, but I&#8217;ve only had time to add method wrappers for a few of api calls. Feel free to fork the project to help flesh these out!</p>
<p>Hopefully these libraries will make it easier to get the power of <a href="http://latakoo.com">latakoo</a> behind your project. </p>
<p>Happy hacking!</p>
<p>&raquo; <a href="http://docs.latakoo.com">API Documentation</a><br />
&raquo; <a href="https://github.com/mapkyca/Latakoo-Flight-API-Client">Github Project Page</a></p>
<div class="wsbuttons">
	<div class="shareblob facebook">
		<div class="fb-like" data-href="http://www.marcus-povey.co.uk/2012/01/13/latakoo-flight-api-bindings-for-python-php-and-net/" data-send="false" data-layout="box_count" data-width="60" data-show-faces="false" data-colorscheme="light"></div>
	</div>

	<div class="shareblob google">
		<div class="g-plusone" data-size="tall" data-href="http://www.marcus-povey.co.uk/2012/01/13/latakoo-flight-api-bindings-for-python-php-and-net/"></div>
	</div>

	<div class="shareblob twitter">
		<div class="twitter">
			<a href="https://twitter.com/share?url=http%3A%2F%2Fwww.marcus-povey.co.uk%2F2012%2F01%2F13%2Flatakoo-flight-api-bindings-for-python-php-and-net%2F&count=vertical" class="twitter-share-button" data-lang="en">Tweet</a>
			<script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script>
		</div>
	</div>

</div>
	]]></content:encoded>
			<wfw:commentRss>http://www.marcus-povey.co.uk/2012/01/13/latakoo-flight-api-bindings-for-python-php-and-net/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Introducing the BCT Framework</title>
		<link>http://www.marcus-povey.co.uk/2012/01/09/introducing-the-bct-framework/</link>
		<comments>http://www.marcus-povey.co.uk/2012/01/09/introducing-the-bct-framework/#comments</comments>
		<pubDate>Mon, 09 Jan 2012 16:32:34 +0000</pubDate>
		<dc:creator>Marcus Povey</dc:creator>
				<category><![CDATA[bct]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[framework]]></category>
		<category><![CDATA[licence]]></category>
		<category><![CDATA[license]]></category>
		<category><![CDATA[mit]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://www.marcus-povey.co.uk/?p=856</guid>
		<description><![CDATA[Over on GitHub I have just open sourced a PHP web and web services framework which I&#8217;ve been making use of to build a lot of projects recently. Initially, it was built for a single project but I&#8217;ve ended up using it for many other things, and I thought it might be useful to the [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.marcus-povey.co.uk/wp-content/class-act.jpg" align="right" width="150" />Over on <a href="https://github.com/mapkyca/BCT-Framework-Core">GitHub</a> I have just open sourced a <a href="https://github.com/mapkyca/BCT-Framework-Core">PHP web and web services framework</a> which I&#8217;ve been making use of to build a lot of projects recently.</p>
<p>Initially, it was built for a single project but I&#8217;ve ended up using it for many other things, and I thought it might be useful to the Open Source community. </p>
<p><strong>Features</strong></p>
<ul>
<li>Pluggable </li>
<li>Light weight</li>
<li>Sophisticated events system</li>
<li>Abstracted database layer</li>
<li>MVC architecture</li>
<li>Virtual pages </li>
<li>Object/Metadata based data model</li>
</ul>
<p>Its designed to have much of its functionality carried in plugins, many of which I will release a little bit later just as soon I&#8217;ve had the time to tidy them up a bit!</p>
<p>Anywho, its available under the <a href="http://www.opensource.org/licenses/mit-license.php">MIT licence</a> and hopefully it&#8217;ll be useful to you!</p>
<p>&raquo; <a href="https://github.com/mapkyca/BCT-Framework-Core">Github Project Page</a> (<a href="https://github.com/mapkyca/BCT-Framework-Plugins">Core Plugins</a>,  <a href="https://github.com/mapkyca/BCT-Framework-Plugins-Extra">Extra Plugins</a>)</p>
<div class="wsbuttons">
	<div class="shareblob facebook">
		<div class="fb-like" data-href="http://www.marcus-povey.co.uk/2012/01/09/introducing-the-bct-framework/" data-send="false" data-layout="box_count" data-width="60" data-show-faces="false" data-colorscheme="light"></div>
	</div>

	<div class="shareblob google">
		<div class="g-plusone" data-size="tall" data-href="http://www.marcus-povey.co.uk/2012/01/09/introducing-the-bct-framework/"></div>
	</div>

	<div class="shareblob twitter">
		<div class="twitter">
			<a href="https://twitter.com/share?url=http%3A%2F%2Fwww.marcus-povey.co.uk%2F2012%2F01%2F09%2Fintroducing-the-bct-framework%2F&count=vertical" class="twitter-share-button" data-lang="en">Tweet</a>
			<script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script>
		</div>
	</div>

</div>
	]]></content:encoded>
			<wfw:commentRss>http://www.marcus-povey.co.uk/2012/01/09/introducing-the-bct-framework/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Open Graph Headers plugin for WordPress</title>
		<link>http://www.marcus-povey.co.uk/2011/12/27/open-graph-headers-plugin-for-wordpress/</link>
		<comments>http://www.marcus-povey.co.uk/2011/12/27/open-graph-headers-plugin-for-wordpress/#comments</comments>
		<pubDate>Tue, 27 Dec 2011 10:24:15 +0000</pubDate>
		<dc:creator>Marcus Povey</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[github]]></category>
		<category><![CDATA[opengraph]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[plugin]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://www.marcus-povey.co.uk/?p=808</guid>
		<description><![CDATA[Another itch scratched, I would like to introduce a really simple Open Graph plugin for WordPress. This plugin adds open graph headers to posts and pages on a per post basis. It has no native interface, instead it listens out for og:* headers as input in the Custom Fields section of WordPress&#8217; edit page and [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://ogp.me/"><img src="http://www.marcus-povey.co.uk/wp-content/opengraphlogo.png" align="right" width="150" /></a>Another itch scratched, I would like to introduce a really simple <a href="https://developers.facebook.com/docs/opengraph/">Open Graph</a> <a href="https://github.com/mapkyca/OpenGraphHeaders/tree/master/opengraphheaders">plugin</a> for WordPress.</p>
<p>This plugin adds open graph headers to posts and pages on a per post basis.</p>
<p>It has no native interface, instead it listens out for og:* headers as input in the Custom Fields section of WordPress&#8217; edit page and adds the ones it recognises to the page header as meta tags.</p>
<p>Once installed you will be able to add the following tags to posts:</p>
<ul>
<li><strong>og:title</strong> (defaults to page title)</li>
<li><strong>og:type</strong> (defaults to &#8220;article&#8221;)</li>
<li><strong>og:image</strong> (URL, no default)</li>
<li><strong>og:url</strong> is also used, but this is automatically filled in</li>
</ul>
<p>I wrote this in about an hour so it isn&#8217;t all that fancy, and was designed to solve a specific problem for me. Hopefully it&#8217;ll be useful to someone else out there.</p>
<p>Feel free to leave comments and send in any patches!</p>
<p>&raquo; <a href="https://github.com/mapkyca/OpenGraphHeaders/tree/master/opengraphheaders">Plugin page on Github</a></p>
<div class="wsbuttons">
	<div class="shareblob facebook">
		<div class="fb-like" data-href="http://www.marcus-povey.co.uk/2011/12/27/open-graph-headers-plugin-for-wordpress/" data-send="false" data-layout="box_count" data-width="60" data-show-faces="false" data-colorscheme="light"></div>
	</div>

	<div class="shareblob google">
		<div class="g-plusone" data-size="tall" data-href="http://www.marcus-povey.co.uk/2011/12/27/open-graph-headers-plugin-for-wordpress/"></div>
	</div>

	<div class="shareblob twitter">
		<div class="twitter">
			<a href="https://twitter.com/share?url=http%3A%2F%2Fwww.marcus-povey.co.uk%2F2011%2F12%2F27%2Fopen-graph-headers-plugin-for-wordpress%2F&count=vertical" class="twitter-share-button" data-lang="en">Tweet</a>
			<script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script>
		</div>
	</div>

</div>
	]]></content:encoded>
			<wfw:commentRss>http://www.marcus-povey.co.uk/2011/12/27/open-graph-headers-plugin-for-wordpress/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Introducing a really simple regression tester</title>
		<link>http://www.marcus-povey.co.uk/2011/12/12/introducing-a-really-simple-regression-tester/</link>
		<comments>http://www.marcus-povey.co.uk/2011/12/12/introducing-a-really-simple-regression-tester/#comments</comments>
		<pubDate>Mon, 12 Dec 2011 09:59:01 +0000</pubDate>
		<dc:creator>Marcus Povey</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[github]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[regression]]></category>
		<category><![CDATA[testing]]></category>

		<guid isPermaLink="false">http://www.marcus-povey.co.uk/?p=791</guid>
		<description><![CDATA[Building on what I was talking about last week, I&#8217;ve spent a little time tidying up and genericising the simple regression test framework I often find myself using and have open sourced it over on Github. So without further ado, I&#8217;d like to introduce the Really Simple Test Framework! This is a PHP command line [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.marcus-povey.co.uk/wp-content/tcf320.jpg" width="150" align="right" />Building on what I was <a href="http://www.marcus-povey.co.uk/2011/12/05/regression-testing-if-you-dont-do-it-youre-a-fscking-idiot/">talking about last week</a>, I&#8217;ve spent a little time <a href="https://github.com/mapkyca/SimpleTestFramework">tidying up and genericising the simple regression test framework I often find myself using and have open sourced it over on Github</a>.</p>
<p>So without further ado, I&#8217;d like to introduce the <a href="https://github.com/mapkyca/SimpleTestFramework">Really Simple Test Framework</a>!</p>
<p>This is a PHP command line application, so you&#8217;ll need the <code>php5-cli</code> module installed. </p>
<p><strong>Usage</strong></p>
<blockquote style="float:none"><p><code>php test.php [-p path/to/tests] [-t HelloWorldTest]</code></p></blockquote>
<p>So for example, to run all the tests in the sub directory /tests/</p>
<blockquote style="float:none"><p><code>php test.php</code></p></blockquote>
<p>To specify another directory to look in for tests</p>
<blockquote style="float:none"><p><code>php test.php -p /path/to/my/tests</code></p></blockquote>
<p>To run a specific test only, specify it by its CLASS NAME</p>
<blockquote style="float:none"><p><code>php test.php -t MyClassTest</code></p></blockquote>
<p>You can specify multiple tests to run&#8230;</p>
<blockquote style="float:none"><p><code>php test.php -t MyClassTest -t AnotherTest</code></p></blockquote>
<p>Have a butchers at the <a href="https://github.com/mapkyca/SimpleTestFramework/blob/master/README.txt">README.txt</a> for more details on writing your own tests!</p>
<p>&raquo; <a href="https://github.com/mapkyca/SimpleTestFramework">Github Project Page</a></p>
<div class="wsbuttons">
	<div class="shareblob facebook">
		<div class="fb-like" data-href="http://www.marcus-povey.co.uk/2011/12/12/introducing-a-really-simple-regression-tester/" data-send="false" data-layout="box_count" data-width="60" data-show-faces="false" data-colorscheme="light"></div>
	</div>

	<div class="shareblob google">
		<div class="g-plusone" data-size="tall" data-href="http://www.marcus-povey.co.uk/2011/12/12/introducing-a-really-simple-regression-tester/"></div>
	</div>

	<div class="shareblob twitter">
		<div class="twitter">
			<a href="https://twitter.com/share?url=http%3A%2F%2Fwww.marcus-povey.co.uk%2F2011%2F12%2F12%2Fintroducing-a-really-simple-regression-tester%2F&count=vertical" class="twitter-share-button" data-lang="en">Tweet</a>
			<script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script>
		</div>
	</div>

</div>
	]]></content:encoded>
			<wfw:commentRss>http://www.marcus-povey.co.uk/2011/12/12/introducing-a-really-simple-regression-tester/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to set up ProFTP, MySQL and Virtual Users</title>
		<link>http://www.marcus-povey.co.uk/2010/06/15/proftp-mysql-virtual-users-howto/</link>
		<comments>http://www.marcus-povey.co.uk/2010/06/15/proftp-mysql-virtual-users-howto/#comments</comments>
		<pubDate>Tue, 15 Jun 2010 10:59:45 +0000</pubDate>
		<dc:creator>Marcus Povey</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[ftp]]></category>
		<category><![CDATA[howto]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[proftp]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[virtual users]]></category>

		<guid isPermaLink="false">http://www.marcus-povey.co.uk/?p=551</guid>
		<description><![CDATA[ProFTP is a configurable FTP server available on most *nix platforms. I recently had the need to get this working and authenticating off a PHP maintained MySQL backend, and this post is primarily to aid my own memory should I ever have to do it again. Installing ProFTP In order to use MySQL as a [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.proftp.org"><img src="http://www.marcus-povey.co.uk/wp-content/proftpd.png" alt="" width="150" align="right" />ProFTP</a> is a configurable FTP server available on most *nix platforms.</p>
<p>I recently had the need to get this working and authenticating off a PHP maintained MySQL backend, and this post is primarily to aid my own memory should I ever have to do it again.</p>
<p><strong>Installing ProFTP</strong></p>
<p>In order to use MySQL as a back end you need to install some packages. If you&#8217;re using a <a href="http://www.debian.org">Debian</a> based distro like <a href="http://www.ubuntu.com">Ubuntu</a>, this is easy:</p>
<blockquote><p><code>apt-get install mysql-server proftpd proftpd-mod-mysql</code></p></blockquote>
<p><strong>The database schema</strong></p>
<p>Next, you need to install the database schema to store your users and passwords.</p>
<blockquote><p><code>CREATE TABLE IF NOT EXISTS users (<br />
userid varchar(30) NOT NULL default '',<br />
passwd <strong>varchar(128)</strong> NOT NULL default '',<br />
uid int(11) default NULL,<br />
gid int(11) default NULL,<br />
homedir varchar(255) default NULL,<br />
shell varchar(255) default NULL,<br />
UNIQUE KEY uid (uid),<br />
UNIQUE KEY userid (userid)<br />
) TYPE=MyISAM;</code></p>
<p><code>CREATE TABLE IF NOT EXISTS groups (<br />
groupname varchar(30) NOT NULL default '',<br />
gid int(11) NOT NULL default '0',<br />
members varchar(255) default NULL<br />
) TYPE=MyISAM;</code></p></blockquote>
<p>One important thing to note here &#8211; that caused me a fair amount of hair pulling when I tried to use encrypted passwords &#8211; is that the password field shown in many howtos on the internet is much too short. This causes the hashed password to be quietly truncated by MySQL when saved.</p>
<p>This results in a somewhat misleading &#8220;<strong>No such user found</strong>&#8221; error to appear in the logs when using encrypted passwords.</p>
<p>To end all argument I&#8217;ve allowed passwords up to 128 chars, but this field could probably be a good deal shorter.</p>
<p>The user table looks much like /etc/passwd and is largely self explanatory. The <strong>uid</strong> &amp; <strong>gid</strong> fields correspond to a system user in most cases, but since we&#8217;re using virtual users they can largely be ignored. <strong>Homedir </strong>points to a location which will serve as the user&#8217;s default directory. <strong>Shell</strong> is largely unused and can be set to <strong>/bin/false</strong> or similar.</p>
<p><strong>Configuring ProFTP</strong></p>
<p>Next, you need to make some changes to the ProFTP configuration files stored in /etc/proftpd. While doing this it is handy to run proftp in debug mode from the console:</p>
<blockquote><p><code>proftpd -nd6</code></p></blockquote>
<p><strong><em>proftpd.conf</em></strong></p>
<ol>
<li>Make sure the AuthOrder line looks like:<br />
<blockquote><p><code>AuthOrder mod_sql.c</code></p></blockquote>
</li>
<li>Ensure that the following line is uncommented:<br />
<blockquote><p><code>Include /etc/proftpd/sql.conf</code></p></blockquote>
</li>
<li>For belts and braces I&#8217;ve included the following at the end, although I&#8217;m not entirely sure it&#8217;s strictly required:<br />
<blockquote><p><code>&lt;IfModule mod_auth_pam.c&gt;<br />
AuthPAM off<br />
&lt;/IfModule&gt;<br />
</code></p></blockquote>
</li>
<li>Our users don&#8217;t need a valid shell, so:<br />
<blockquote><p><code>RequireValidShell off</code></p></blockquote>
</li>
</ol>
<p><em><strong>modules.conf</strong></em></p>
<ol>
<li>Make sure the following lines are uncommented:<br />
<blockquote><p><code>LoadModule mod_sql.c<br />
LoadModule mod_sql_mysql.c</code></p></blockquote>
</li>
</ol>
<p><strong><em>sql.conf</em></strong></p>
<ol>
<li>Set your SQL backend and ensure that authentication is turned on:<br />
<blockquote><p><code>SQLBackend mysql<br />
SQLEngine on<br />
SQLAuthenticate on</code></p></blockquote>
</li>
<li>Tell proftp how passwords are stored. You have a number of options here, but since I was using mysql&#8217;s PASSWORD function, I&#8217;ll defer to the backend.<br />
<blockquote><p><code>SQLAuthTypes backend</code></p></blockquote>
</li>
<li>Tell proftp how to connect to your database by providing the required connection details, ensure that the user has full access to these tables.<br />
<blockquote><p><code>SQLConnectInfo <em>database</em>@<em>host</em> <em>user</em> <em>password</em></code></p></blockquote>
</li>
<li>Define your table structure in the format <em>tablename</em> <em>fields&#8230;.</em><br />
<blockquote><p><code>SQLUserInfo users userid passwd uid gid homedir shell<br />
SQLGroupInfo groups groupname gid members</code></p></blockquote>
</li>
</ol>
<p><strong>Adding users</strong></p>
<p>I manage users from within a <a href="http://php.net">PHP</a> web application that I&#8217;m developing, but in a nutshell adding FTP users from this point is a simple insert statement looking something like:</p>
<blockquote><p><code>mysql_query("REPLACE INTO users<br />
(userid, passwd, uid, gid, homedir, shell)<br />
VALUES<br />
('$userid', PASSWORD('$password'), $uid, $gid, '$homedir', '$shell')");</code></p></blockquote>
<p>Have fun!</p>
<div class="wsbuttons">
	<div class="shareblob facebook">
		<div class="fb-like" data-href="http://www.marcus-povey.co.uk/2010/06/15/proftp-mysql-virtual-users-howto/" data-send="false" data-layout="box_count" data-width="60" data-show-faces="false" data-colorscheme="light"></div>
	</div>

	<div class="shareblob google">
		<div class="g-plusone" data-size="tall" data-href="http://www.marcus-povey.co.uk/2010/06/15/proftp-mysql-virtual-users-howto/"></div>
	</div>

	<div class="shareblob twitter">
		<div class="twitter">
			<a href="https://twitter.com/share?url=http%3A%2F%2Fwww.marcus-povey.co.uk%2F2010%2F06%2F15%2Fproftp-mysql-virtual-users-howto%2F&count=vertical" class="twitter-share-button" data-lang="en">Tweet</a>
			<script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script>
		</div>
	</div>

</div>
	]]></content:encoded>
			<wfw:commentRss>http://www.marcus-povey.co.uk/2010/06/15/proftp-mysql-virtual-users-howto/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
	</channel>
</rss>

